msvcrt: Added read tests on unicode files.
[wine] / dlls / msxml3 / datatypes.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3     XDR (XML-Data Reduced) datatypes implementation
4
5     Copyright 2010 Adam Martinson for CodeWeavers
6
7     This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Lesser General Public
9     License as published by the Free Software Foundation; either
10     version 2.1 of the License, or (at your option) any later version.
11
12     This library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15     Lesser General Public License for more details.
16
17     You should have received a copy of the GNU Lesser General Public
18     License along with this library; if not, write to the Free Software
19     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 -->
21 <xsd:schema xmlns="urn:schemas-microsoft-com:datatypes"
22             xmlns:dt="urn:schemas-microsoft-com:datatypes"
23             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
24             targetNamespace="urn:schemas-microsoft-com:datatypes"
25             elementFormDefault="qualified"
26             attributeFormDefault="unqualified">
27
28     <xsd:simpleType name="bin.base64">
29         <xsd:annotation>
30             <xsd:documentation>
31
32                 Equivalent to xsd:base64Binary
33
34             </xsd:documentation>
35         </xsd:annotation>
36
37         <xsd:restriction base="xsd:base64Binary"/>
38     </xsd:simpleType>
39
40     <xsd:element name="bin.base64" type="dt:bin.base64"/>
41
42     <xsd:simpleType name="bin.hex">
43         <xsd:annotation>
44             <xsd:documentation>
45
46                 Equivalent to xsd:hexBinary
47
48             </xsd:documentation>
49         </xsd:annotation>
50
51         <xsd:restriction base="xsd:hexBinary"/>
52     </xsd:simpleType>
53
54     <xsd:element name="bin.hex" type="dt:bin.hex"/>
55
56     <xsd:simpleType name="boolean">
57         <xsd:annotation>
58             <xsd:documentation>
59
60                 Equivalent to xsd:boolean
61
62             </xsd:documentation>
63         </xsd:annotation>
64
65         <xsd:restriction base="xsd:boolean"/>
66     </xsd:simpleType>
67
68     <xsd:element name="boolean" type="dt:boolean"/>
69
70     <xsd:simpleType name="char">
71         <xsd:annotation>
72             <xsd:documentation>
73
74                 Single unicode char
75
76             </xsd:documentation>
77         </xsd:annotation>
78
79         <xsd:restriction base="xsd:string">
80             <xsd:length value="1"/>
81         </xsd:restriction>
82     </xsd:simpleType>
83
84     <xsd:element name="char" type="dt:char"/>
85
86     <xsd:simpleType name="date">
87         <xsd:annotation>
88             <xsd:documentation>
89
90                 Equivalent to xsd:date with no timezone
91
92                 TODO: restrict -> force no timezone
93
94             </xsd:documentation>
95         </xsd:annotation>
96
97         <xsd:restriction base="xsd:date"/>
98     </xsd:simpleType>
99
100     <xsd:element name="date" type="dt:date"/>
101
102     <xsd:simpleType name="date.tz">
103         <xsd:annotation>
104             <xsd:documentation>
105
106                 Equivalent to xsd:date with timezone
107
108                 TODO: restrict -> force timezone
109
110             </xsd:documentation>
111         </xsd:annotation>
112
113         <xsd:restriction base="xsd:date"/>
114     </xsd:simpleType>
115
116     <xsd:element name="date.tz" type="dt:date.tz"/>
117
118     <xsd:simpleType name="dateTime">
119         <xsd:annotation>
120             <xsd:documentation>
121
122                 Equivalent to xsd:dateTime with no timezone
123
124                 TODO: restrict -> force no timezone
125
126             </xsd:documentation>
127         </xsd:annotation>
128
129         <xsd:restriction base="xsd:dateTime"/>
130     </xsd:simpleType>
131
132     <xsd:element name="dateTime" type="dt:dateTime"/>
133
134     <xsd:simpleType name="dateTime.tz">
135         <xsd:annotation>
136             <xsd:documentation>
137
138                 Equivalent to xsd:dateTime with timezone
139
140                 TODO: restrict -> force timezone
141
142             </xsd:documentation>
143         </xsd:annotation>
144
145         <xsd:restriction base="xsd:dateTime"/>
146     </xsd:simpleType>
147
148     <xsd:element name="dateTime.tz" type="dt:dateTime.tz"/>
149
150     <xsd:simpleType name="entity">
151         <xsd:annotation>
152             <xsd:documentation>
153
154                 Equivalent to xsd:ENTITY
155
156             </xsd:documentation>
157         </xsd:annotation>
158
159         <xsd:restriction base="xsd:ENTITY"/>
160     </xsd:simpleType>
161
162     <xsd:element name="entity" type="dt:entity"/>
163
164     <xsd:simpleType name="entities">
165         <xsd:annotation>
166             <xsd:documentation>
167
168                 Equivalent to xsd:ENTITIES
169
170             </xsd:documentation>
171         </xsd:annotation>
172
173         <xsd:restriction base="xsd:ENTITIES"/>
174     </xsd:simpleType>
175
176     <xsd:element name="entities" type="dt:entities"/>
177
178     <xsd:simpleType name="enumeration">
179         <xsd:annotation>
180             <xsd:documentation>
181
182                 Valid for attributes only
183                 dt:values is equivalent to xsd:list
184
185             </xsd:documentation>
186         </xsd:annotation>
187
188         <xsd:restriction base="xsd:string"/>
189     </xsd:simpleType>
190
191     <xsd:simpleType name="fixed.14.4">
192         <xsd:annotation>
193             <xsd:documentation>
194
195                 Fixed-length decimal floating-point value
196                 Up to 14 digits before the decimal point
197                 Up to 4 digits after the decimal point
198
199             </xsd:documentation>
200         </xsd:annotation>
201
202         <xsd:restriction base="xsd:decimal">
203             <xsd:pattern value="([0-9]{,14})([.][0-9]{,4})?"/>
204         </xsd:restriction>
205     </xsd:simpleType>
206
207     <xsd:element name="fixed.14.4" type="dt:fixed.14.4"/>
208
209     <xsd:simpleType name="float">
210         <xsd:annotation>
211             <xsd:documentation>
212
213                 Equivalent to xsd:decimal
214
215             </xsd:documentation>
216         </xsd:annotation>
217
218         <xsd:restriction base="xsd:decimal"/>
219     </xsd:simpleType>
220
221     <xsd:element name="float" type="dt:float"/>
222
223     <xsd:simpleType name="i1">
224         <xsd:annotation>
225             <xsd:documentation>
226
227                 Equivalent to xsd:byte
228
229             </xsd:documentation>
230         </xsd:annotation>
231
232         <xsd:restriction base="xsd:byte"/>
233     </xsd:simpleType>
234
235     <xsd:element name="i1" type="dt:i1"/>
236
237     <xsd:simpleType name="i2">
238         <xsd:annotation>
239             <xsd:documentation>
240
241                 Equivalent to xsd:short
242
243             </xsd:documentation>
244         </xsd:annotation>
245
246         <xsd:restriction base="xsd:short"/>
247     </xsd:simpleType>
248
249     <xsd:element name="i2" type="dt:i2"/>
250
251     <xsd:simpleType name="i4">
252         <xsd:annotation>
253             <xsd:documentation>
254
255                 Equivalent to xsd:int
256
257             </xsd:documentation>
258         </xsd:annotation>
259
260         <xsd:restriction base="xsd:int"/>
261     </xsd:simpleType>
262
263     <xsd:element name="i4" type="dt:i4"/>
264
265     <xsd:simpleType name="i8">
266         <xsd:annotation>
267             <xsd:documentation>
268
269                 Equivalent to xsd:long
270
271             </xsd:documentation>
272         </xsd:annotation>
273
274         <xsd:restriction base="xsd:long"/>
275     </xsd:simpleType>
276
277     <xsd:element name="i8" type="dt:i8"/>
278
279     <xsd:simpleType name="id">
280         <xsd:annotation>
281             <xsd:documentation>
282
283                 Valid for attributes only
284                 Equivalent to xsd:ID
285
286             </xsd:documentation>
287         </xsd:annotation>
288
289         <xsd:restriction base="xsd:ID"/>
290     </xsd:simpleType>
291
292     <xsd:simpleType name="idref">
293         <xsd:annotation>
294             <xsd:documentation>
295
296                 Valid for attributes only
297                 Equivalent to xsd:IDREF
298
299             </xsd:documentation>
300         </xsd:annotation>
301
302         <xsd:restriction base="xsd:IDREF"/>
303     </xsd:simpleType>
304
305     <xsd:simpleType name="idrefs">
306         <xsd:annotation>
307             <xsd:documentation>
308
309                 Valid for attributes only
310                 Equivalent to xsd:IDREFS
311
312             </xsd:documentation>
313         </xsd:annotation>
314
315         <xsd:restriction base="xsd:IDREFS"/>
316     </xsd:simpleType>
317
318     <xsd:simpleType name="int">
319         <xsd:annotation>
320             <xsd:documentation>
321
322                 Equivalent to xsd:integer
323
324             </xsd:documentation>
325         </xsd:annotation>
326
327         <xsd:restriction base="xsd:integer"/>
328     </xsd:simpleType>
329
330     <xsd:element name="int" type="dt:int"/>
331
332     <xsd:simpleType name="nmtoken">
333         <xsd:annotation>
334             <xsd:documentation>
335
336                 Equivalent to xsd:NMTOKEN
337
338             </xsd:documentation>
339         </xsd:annotation>
340
341         <xsd:restriction base="xsd:NMTOKEN"/>
342     </xsd:simpleType>
343
344     <xsd:element name="nmtoken" type="dt:nmtoken"/>
345
346     <xsd:simpleType name="nmtokens">
347         <xsd:annotation>
348             <xsd:documentation>
349
350                 Equivalent to xsd:NMTOKENS
351
352             </xsd:documentation>
353         </xsd:annotation>
354
355         <xsd:restriction base="xsd:NMTOKENS"/>
356     </xsd:simpleType>
357
358     <xsd:element name="nmtokens" type="dt:nmtokens"/>
359
360     <xsd:simpleType name="notation">
361         <xsd:annotation>
362             <xsd:documentation>
363
364                 Equivalent to xsd:NOTATION
365
366             </xsd:documentation>
367         </xsd:annotation>
368
369         <xsd:restriction base="xsd:NOTATION"/>
370     </xsd:simpleType>
371
372     <xsd:element name="notation" type="dt:notation"/>
373
374     <xsd:simpleType name="number">
375         <xsd:annotation>
376             <xsd:documentation>
377
378                 Equivalent to xsd:decimal
379
380             </xsd:documentation>
381         </xsd:annotation>
382
383         <xsd:restriction base="xsd:decimal"/>
384     </xsd:simpleType>
385
386     <xsd:element name="number" type="dt:number"/>
387
388     <xsd:simpleType name="r4">
389         <xsd:annotation>
390             <xsd:documentation>
391
392                 Equivalent to xsd:float
393
394             </xsd:documentation>
395         </xsd:annotation>
396
397         <xsd:restriction base="xsd:float"/>
398     </xsd:simpleType>
399
400     <xsd:element name="r4" type="dt:r4"/>
401
402     <xsd:simpleType name="r8">
403         <xsd:annotation>
404             <xsd:documentation>
405
406                 Equivalent to xsd:double
407
408             </xsd:documentation>
409         </xsd:annotation>
410
411         <xsd:restriction base="xsd:double"/>
412     </xsd:simpleType>
413
414     <xsd:element name="r8" type="dt:r8"/>
415
416     <xsd:simpleType name="string">
417         <xsd:annotation>
418             <xsd:documentation>
419
420                 Equivalent to xsd:string
421
422             </xsd:documentation>
423         </xsd:annotation>
424
425         <xsd:restriction base="xsd:string"/>
426     </xsd:simpleType>
427
428     <xsd:element name="string" type="dt:string"/>
429
430     <xsd:simpleType name="time">
431         <xsd:annotation>
432             <xsd:documentation>
433
434                 Equivalent to xsd:time with no timezone
435
436                 TODO: restrict -> force no timezone
437
438             </xsd:documentation>
439         </xsd:annotation>
440
441         <xsd:restriction base="xsd:time"/>
442     </xsd:simpleType>
443
444     <xsd:element name="time" type="dt:time"/>
445
446     <xsd:simpleType name="time.tz">
447         <xsd:annotation>
448             <xsd:documentation>
449
450                 Equivalent to xsd:time with timezone
451
452                 TODO: restrict -> force timezone
453
454             </xsd:documentation>
455         </xsd:annotation>
456
457         <xsd:restriction base="xsd:time"/>
458     </xsd:simpleType>
459
460     <xsd:element name="time.tz" type="dt:time.tz"/>
461
462     <xsd:simpleType name="ui1">
463         <xsd:annotation>
464             <xsd:documentation>
465
466                 Equivalent to xsd:unsignedByte
467
468             </xsd:documentation>
469         </xsd:annotation>
470
471         <xsd:restriction base="xsd:unsignedByte"/>
472     </xsd:simpleType>
473
474     <xsd:element name="ui1" type="dt:ui1"/>
475
476     <xsd:simpleType name="ui2">
477         <xsd:annotation>
478             <xsd:documentation>
479
480                 Equivalent to xsd:unsignedShort
481
482             </xsd:documentation>
483         </xsd:annotation>
484
485         <xsd:restriction base="xsd:unsignedShort"/>
486     </xsd:simpleType>
487
488     <xsd:element name="ui2" type="dt:ui2"/>
489
490     <xsd:simpleType name="ui4">
491         <xsd:annotation>
492             <xsd:documentation>
493
494                 Equivalent to xsd:unsignedInt
495
496             </xsd:documentation>
497         </xsd:annotation>
498
499         <xsd:restriction base="xsd:unsignedInt"/>
500     </xsd:simpleType>
501
502     <xsd:element name="ui4" type="dt:ui4"/>
503
504     <xsd:simpleType name="ui8">
505         <xsd:annotation>
506             <xsd:documentation>
507
508                 Equivalent to xsd:unsignedLong
509
510             </xsd:documentation>
511         </xsd:annotation>
512
513         <xsd:restriction base="xsd:unsignedLong"/>
514     </xsd:simpleType>
515
516     <xsd:element name="ui8" type="dt:ui8"/>
517
518     <xsd:simpleType name="uri">
519         <xsd:annotation>
520             <xsd:documentation>
521
522                 Equivalent to xsd:anyURI
523
524             </xsd:documentation>
525         </xsd:annotation>
526
527         <xsd:restriction base="xsd:anyURI"/>
528     </xsd:simpleType>
529
530     <xsd:element name="uri" type="dt:uri"/>
531
532     <xsd:simpleType name="uuid">
533         <xsd:annotation>
534             <xsd:documentation>
535
536                 Hex octet string with optional hyphens
537
538             </xsd:documentation>
539         </xsd:annotation>
540
541         <xsd:restriction base="xsd:string">
542             <xsd:pattern value="([0-9A-Fa-f]{4})([-]{,1}[0-9A-Fa-f]{4})*"/>
543         </xsd:restriction>
544     </xsd:simpleType>
545
546     <xsd:element name="uuid" type="dt:uuid"/>
547
548     <xsd:attribute name="dt" default="string">
549         <xsd:simpleType>
550             <xsd:restriction base="string">
551                 <xsd:enumeration value="bin.base64"/>
552                 <xsd:enumeration value="bin.hex"/>
553                 <xsd:enumeration value="boolean"/>
554                 <xsd:enumeration value="char"/>
555                 <xsd:enumeration value="date"/>
556                 <xsd:enumeration value="date.tz"/>
557                 <xsd:enumeration value="dateTime"/>
558                 <xsd:enumeration value="dateTime.tz"/>
559                 <xsd:enumeration value="entity"/>
560                 <xsd:enumeration value="entities"/>
561                 <xsd:enumeration value="enumeration"/>
562                 <xsd:enumeration value="fixed.14.4"/>
563                 <xsd:enumeration value="float"/>
564                 <xsd:enumeration value="i1"/>
565                 <xsd:enumeration value="i2"/>
566                 <xsd:enumeration value="i4"/>
567                 <xsd:enumeration value="i8"/>
568                 <xsd:enumeration value="id"/>
569                 <xsd:enumeration value="idref"/>
570                 <xsd:enumeration value="idrefs"/>
571                 <xsd:enumeration value="int"/>
572                 <xsd:enumeration value="nmtoken"/>
573                 <xsd:enumeration value="nmtokens"/>
574                 <xsd:enumeration value="notation"/>
575                 <xsd:enumeration value="number"/>
576                 <xsd:enumeration value="r4"/>
577                 <xsd:enumeration value="r8"/>
578                 <xsd:enumeration value="string"/>
579                 <xsd:enumeration value="time"/>
580                 <xsd:enumeration value="time.tz"/>
581                 <xsd:enumeration value="ui1"/>
582                 <xsd:enumeration value="ui2"/>
583                 <xsd:enumeration value="ui4"/>
584                 <xsd:enumeration value="ui8"/>
585                 <xsd:enumeration value="uri"/>
586                 <xsd:enumeration value="uuid"/>
587             </xsd:restriction>
588         </xsd:simpleType>
589     </xsd:attribute>
590
591 </xsd:schema>