Merge pull request #3274 from Unity-Technologies/fix-path-getfullpath-windows
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / ldml-limited.rng
1 <!--
2
3 The purpose of this "limited" grammar is just to check if there is unexpected
4 elements and attributes in our tailoring collector executables.
5
6 -->
7 <grammar xmlns='http://relaxng.org/ns/structure/1.0'>
8   <start>
9     <ref name='ldml' />
10   </start>
11   <define name='ldml'>
12     <element name='ldml'>
13       <ref name='anyAttributes' />
14       <element name='identity'>
15         <ref name='any' />
16       </element>
17       <ref name='collations' />
18     </element>
19   </define>
20   <define name='anyAttributes'>
21     <zeroOrMore>
22       <attribute>
23         <anyName/>
24         <text/>
25       </attribute>
26     </zeroOrMore>
27   </define>
28   <define name='any'>
29     <ref name='anyAttributes' />
30     <zeroOrMore>
31       <mixed>
32         <element>
33           <anyName/>
34           <ref name='any' />
35         </element>
36       </mixed>
37     </zeroOrMore>
38   </define>
39   <define name='collations'>
40     <element name='collations'>
41       <ref name='anyAttributes' />
42       <choice>
43         <element name='alias'>
44           <attribute name='source'><text/></attribute>
45           <attribute name='path'><text/></attribute>
46         </element>
47         <oneOrMore>
48           <ref name='collation' />
49         </oneOrMore>
50       </choice>
51     </element>
52   </define>
53   <define name='collation'>
54     <element name='collation'>
55       <attribute name='type'><text/></attribute>
56       <optional>
57         <element name='settings'>
58           <optional>
59             <!-- it is not handled in .NET -->
60             <attribute name='strength'><text/></attribute>
61             <!-- it is not handled in .NET -->
62             <attribute name='hiraganaQuarternary'><text/></attribute>
63           </optional>
64           <optional>
65             <attribute name='normalization'>
66             <!-- it is however not handled in .NET -->
67               <choice>
68                 <value>on</value>
69                 <value>off</value>
70               </choice>
71             </attribute>
72           </optional>
73           <optional>
74             <attribute name='backwards'>
75               <choice>
76                 <value>on</value>
77                 <value>off</value>
78               </choice>
79             </attribute>
80           </optional>
81           <optional>
82             <attribute name='caseFirst'>
83             <!-- it is however not handled in .NET -->
84               <choice>
85                 <value>upper</value>
86                 <value>lower</value>
87               </choice>
88             </attribute>
89           </optional>
90         </element>
91       </optional>
92       <optional>
93         <!-- FIXME: currently we don't handle it ... should we? -->
94         <element name='suppress_contractions'><text/></element>
95       </optional>
96       <optional>
97         <!-- we already optimize Hangul Syllables -->
98         <element name='optimize'><text/></element>
99       </optional>
100       <optional>
101       <element name='rules'>
102         <oneOrMore>
103           <element name='reset'>
104             <optional>
105               <attribute name='before'>
106                 <choice>
107                   <value>primary</value>
108                   <value>secondary</value>
109                 </choice>
110               </attribute>
111             </optional>
112             <choice>
113               <element name='cp'>
114                 <attribute name='hex'><text/></attribute>
115                 <empty/>
116               </element>
117               <text/>
118               <!-- FIXME: we don't support them for now -->
119               <element name='last_non_ignorable'><empty/></element>
120               <element name='last_secondary_ignorable'><empty/></element>
121             </choice>
122           </element>
123           <choice>
124             <oneOrMore>
125               <ref name='x' />
126             </oneOrMore>
127             <oneOrMore>
128               <ref name='simple-rule-content' />
129             </oneOrMore>
130           </choice>
131         </oneOrMore>
132       </element>
133       </optional>
134     </element>
135   </define>
136   <define name='simple-rule-content'>
137     <choice>
138       <element name='p'><text/></element>
139       <element name='pc'><text/></element>
140       <element name='s'><text/></element>
141       <element name='sc'><text/></element>
142       <element name='t'><text/></element>
143       <element name='tc'><text/></element>
144       <element name='q'><text/></element>
145       <element name='qc'><text/></element>
146       <element name='i'><text/></element>
147       <element name='ic'><text/></element>
148     </choice>
149   </define>
150   <define name='x'>
151     <element name='x'>
152       <ref name='simple-rule-content' />
153       <element name='extend'><text/></element>
154     </element>
155   </define>
156 </grammar>
157