summaryrefslogtreecommitdiff
path: root/xsd/documentation/custom-literals.xsd
blob: ab2d6492fb51775c36497a5c40e782eaceaa746b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0"?>

<!--

file      : documentation/custom-literals.xsd
author    : Boris Kolpackov <boris@codesynthesis.com>
copyright : not copyrighted - public domain

This schema describes the XML format used to provide the custom string
to C++ string literal mapping with the -custom-literals XSD compiler
command line option. Here is a sample instance:

<string-literal-map>
  <entry>
    <string>hello</string>
    <literal>"hello"</literal>
  </entry>
  <entry>
    <string>greeting</string>
    <literal>"greeting"</literal>
  </entry>
</string-literal-map>

-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:simpleType name="literal_t">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value='".+"'/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:complexType name="entry_t">
    <xsd:sequence>
      <xsd:element name="string" type="xsd:string"/>
      <xsd:element name="literal" type="literal_t"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="string_literal_map_t">
    <xsd:sequence>
      <xsd:element name="entry" type="entry_t" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="string-literal-map" type="string_literal_map_t"/>

</xsd:schema>