dwrite/tests: Use fabs for floating point numbers (clang).
[wine.git] / dlls / msxml3 / datatypes.xsd
blob9e0479d8ca21e3b58256fc635c388ffe4ebb2d91
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 XDR (XML-Data Reduced) datatypes implementation
5 Copyright 2010 Adam Martinson for CodeWeavers
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.
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.
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">
28 <xsd:simpleType name="bin.base64">
29 <xsd:annotation>
30 <xsd:documentation>
32 Equivalent to xsd:base64Binary
34 </xsd:documentation>
35 </xsd:annotation>
37 <xsd:restriction base="xsd:base64Binary"/>
38 </xsd:simpleType>
40 <xsd:element name="bin.base64" type="dt:bin.base64"/>
42 <xsd:simpleType name="bin.hex">
43 <xsd:annotation>
44 <xsd:documentation>
46 Equivalent to xsd:hexBinary
48 </xsd:documentation>
49 </xsd:annotation>
51 <xsd:restriction base="xsd:hexBinary"/>
52 </xsd:simpleType>
54 <xsd:element name="bin.hex" type="dt:bin.hex"/>
56 <xsd:simpleType name="boolean">
57 <xsd:annotation>
58 <xsd:documentation>
60 Equivalent to xsd:boolean
62 </xsd:documentation>
63 </xsd:annotation>
65 <xsd:restriction base="xsd:boolean"/>
66 </xsd:simpleType>
68 <xsd:element name="boolean" type="dt:boolean"/>
70 <xsd:simpleType name="char">
71 <xsd:annotation>
72 <xsd:documentation>
74 Single unicode char
76 </xsd:documentation>
77 </xsd:annotation>
79 <xsd:restriction base="xsd:string">
80 <xsd:length value="1"/>
81 </xsd:restriction>
82 </xsd:simpleType>
84 <xsd:element name="char" type="dt:char"/>
86 <xsd:simpleType name="date">
87 <xsd:annotation>
88 <xsd:documentation>
90 Equivalent to xsd:date with no timezone
92 TODO: restrict -> force no timezone
94 </xsd:documentation>
95 </xsd:annotation>
97 <xsd:restriction base="xsd:date"/>
98 </xsd:simpleType>
100 <xsd:element name="date" type="dt:date"/>
102 <xsd:simpleType name="date.tz">
103 <xsd:annotation>
104 <xsd:documentation>
106 Equivalent to xsd:date with timezone
108 TODO: restrict -> force timezone
110 </xsd:documentation>
111 </xsd:annotation>
113 <xsd:restriction base="xsd:date"/>
114 </xsd:simpleType>
116 <xsd:element name="date.tz" type="dt:date.tz"/>
118 <xsd:simpleType name="dateTime">
119 <xsd:annotation>
120 <xsd:documentation>
122 Equivalent to xsd:dateTime with no timezone
124 TODO: restrict -> force no timezone
126 </xsd:documentation>
127 </xsd:annotation>
129 <xsd:restriction base="xsd:dateTime"/>
130 </xsd:simpleType>
132 <xsd:element name="dateTime" type="dt:dateTime"/>
134 <xsd:simpleType name="dateTime.tz">
135 <xsd:annotation>
136 <xsd:documentation>
138 Equivalent to xsd:dateTime with timezone
140 TODO: restrict -> force timezone
142 </xsd:documentation>
143 </xsd:annotation>
145 <xsd:restriction base="xsd:dateTime"/>
146 </xsd:simpleType>
148 <xsd:element name="dateTime.tz" type="dt:dateTime.tz"/>
150 <xsd:simpleType name="entity">
151 <xsd:annotation>
152 <xsd:documentation>
154 Equivalent to xsd:ENTITY
156 </xsd:documentation>
157 </xsd:annotation>
159 <xsd:restriction base="xsd:ENTITY"/>
160 </xsd:simpleType>
162 <xsd:element name="entity" type="dt:entity"/>
164 <xsd:simpleType name="entities">
165 <xsd:annotation>
166 <xsd:documentation>
168 Equivalent to xsd:ENTITIES
170 </xsd:documentation>
171 </xsd:annotation>
173 <xsd:restriction base="xsd:ENTITIES"/>
174 </xsd:simpleType>
176 <xsd:element name="entities" type="dt:entities"/>
178 <xsd:simpleType name="enumeration">
179 <xsd:annotation>
180 <xsd:documentation>
182 Valid for attributes only
183 dt:values is equivalent to xsd:list
185 </xsd:documentation>
186 </xsd:annotation>
188 <xsd:restriction base="xsd:string"/>
189 </xsd:simpleType>
191 <xsd:simpleType name="fixed.14.4">
192 <xsd:annotation>
193 <xsd:documentation>
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
199 </xsd:documentation>
200 </xsd:annotation>
202 <xsd:restriction base="xsd:decimal">
203 <xsd:pattern value="([0-9]{,14})([.][0-9]{,4})?"/>
204 </xsd:restriction>
205 </xsd:simpleType>
207 <xsd:element name="fixed.14.4" type="dt:fixed.14.4"/>
209 <xsd:simpleType name="float">
210 <xsd:annotation>
211 <xsd:documentation>
213 Equivalent to xsd:decimal
215 </xsd:documentation>
216 </xsd:annotation>
218 <xsd:restriction base="xsd:decimal"/>
219 </xsd:simpleType>
221 <xsd:element name="float" type="dt:float"/>
223 <xsd:simpleType name="i1">
224 <xsd:annotation>
225 <xsd:documentation>
227 Equivalent to xsd:byte
229 </xsd:documentation>
230 </xsd:annotation>
232 <xsd:restriction base="xsd:byte"/>
233 </xsd:simpleType>
235 <xsd:element name="i1" type="dt:i1"/>
237 <xsd:simpleType name="i2">
238 <xsd:annotation>
239 <xsd:documentation>
241 Equivalent to xsd:short
243 </xsd:documentation>
244 </xsd:annotation>
246 <xsd:restriction base="xsd:short"/>
247 </xsd:simpleType>
249 <xsd:element name="i2" type="dt:i2"/>
251 <xsd:simpleType name="i4">
252 <xsd:annotation>
253 <xsd:documentation>
255 Equivalent to xsd:int
257 </xsd:documentation>
258 </xsd:annotation>
260 <xsd:restriction base="xsd:int"/>
261 </xsd:simpleType>
263 <xsd:element name="i4" type="dt:i4"/>
265 <xsd:simpleType name="i8">
266 <xsd:annotation>
267 <xsd:documentation>
269 Equivalent to xsd:long
271 </xsd:documentation>
272 </xsd:annotation>
274 <xsd:restriction base="xsd:long"/>
275 </xsd:simpleType>
277 <xsd:element name="i8" type="dt:i8"/>
279 <xsd:simpleType name="id">
280 <xsd:annotation>
281 <xsd:documentation>
283 Valid for attributes only
284 Equivalent to xsd:ID
286 </xsd:documentation>
287 </xsd:annotation>
289 <xsd:restriction base="xsd:ID"/>
290 </xsd:simpleType>
292 <xsd:simpleType name="idref">
293 <xsd:annotation>
294 <xsd:documentation>
296 Valid for attributes only
297 Equivalent to xsd:IDREF
299 </xsd:documentation>
300 </xsd:annotation>
302 <xsd:restriction base="xsd:IDREF"/>
303 </xsd:simpleType>
305 <xsd:simpleType name="idrefs">
306 <xsd:annotation>
307 <xsd:documentation>
309 Valid for attributes only
310 Equivalent to xsd:IDREFS
312 </xsd:documentation>
313 </xsd:annotation>
315 <xsd:restriction base="xsd:IDREFS"/>
316 </xsd:simpleType>
318 <xsd:simpleType name="int">
319 <xsd:annotation>
320 <xsd:documentation>
322 Equivalent to xsd:integer
324 </xsd:documentation>
325 </xsd:annotation>
327 <xsd:restriction base="xsd:integer"/>
328 </xsd:simpleType>
330 <xsd:element name="int" type="dt:int"/>
332 <xsd:simpleType name="nmtoken">
333 <xsd:annotation>
334 <xsd:documentation>
336 Equivalent to xsd:NMTOKEN
338 </xsd:documentation>
339 </xsd:annotation>
341 <xsd:restriction base="xsd:NMTOKEN"/>
342 </xsd:simpleType>
344 <xsd:element name="nmtoken" type="dt:nmtoken"/>
346 <xsd:simpleType name="nmtokens">
347 <xsd:annotation>
348 <xsd:documentation>
350 Equivalent to xsd:NMTOKENS
352 </xsd:documentation>
353 </xsd:annotation>
355 <xsd:restriction base="xsd:NMTOKENS"/>
356 </xsd:simpleType>
358 <xsd:element name="nmtokens" type="dt:nmtokens"/>
360 <xsd:simpleType name="notation">
361 <xsd:annotation>
362 <xsd:documentation>
364 Equivalent to xsd:NOTATION
366 </xsd:documentation>
367 </xsd:annotation>
369 <xsd:restriction base="xsd:NOTATION"/>
370 </xsd:simpleType>
372 <xsd:element name="notation" type="dt:notation"/>
374 <xsd:simpleType name="number">
375 <xsd:annotation>
376 <xsd:documentation>
378 Equivalent to xsd:decimal
380 </xsd:documentation>
381 </xsd:annotation>
383 <xsd:restriction base="xsd:decimal"/>
384 </xsd:simpleType>
386 <xsd:element name="number" type="dt:number"/>
388 <xsd:simpleType name="r4">
389 <xsd:annotation>
390 <xsd:documentation>
392 Equivalent to xsd:float
394 </xsd:documentation>
395 </xsd:annotation>
397 <xsd:restriction base="xsd:float"/>
398 </xsd:simpleType>
400 <xsd:element name="r4" type="dt:r4"/>
402 <xsd:simpleType name="r8">
403 <xsd:annotation>
404 <xsd:documentation>
406 Equivalent to xsd:double
408 </xsd:documentation>
409 </xsd:annotation>
411 <xsd:restriction base="xsd:double"/>
412 </xsd:simpleType>
414 <xsd:element name="r8" type="dt:r8"/>
416 <xsd:simpleType name="string">
417 <xsd:annotation>
418 <xsd:documentation>
420 Equivalent to xsd:string
422 </xsd:documentation>
423 </xsd:annotation>
425 <xsd:restriction base="xsd:string"/>
426 </xsd:simpleType>
428 <xsd:element name="string" type="dt:string"/>
430 <xsd:simpleType name="time">
431 <xsd:annotation>
432 <xsd:documentation>
434 Equivalent to xsd:time with no timezone
436 TODO: restrict -> force no timezone
438 </xsd:documentation>
439 </xsd:annotation>
441 <xsd:restriction base="xsd:time"/>
442 </xsd:simpleType>
444 <xsd:element name="time" type="dt:time"/>
446 <xsd:simpleType name="time.tz">
447 <xsd:annotation>
448 <xsd:documentation>
450 Equivalent to xsd:time with timezone
452 TODO: restrict -> force timezone
454 </xsd:documentation>
455 </xsd:annotation>
457 <xsd:restriction base="xsd:time"/>
458 </xsd:simpleType>
460 <xsd:element name="time.tz" type="dt:time.tz"/>
462 <xsd:simpleType name="ui1">
463 <xsd:annotation>
464 <xsd:documentation>
466 Equivalent to xsd:unsignedByte
468 </xsd:documentation>
469 </xsd:annotation>
471 <xsd:restriction base="xsd:unsignedByte"/>
472 </xsd:simpleType>
474 <xsd:element name="ui1" type="dt:ui1"/>
476 <xsd:simpleType name="ui2">
477 <xsd:annotation>
478 <xsd:documentation>
480 Equivalent to xsd:unsignedShort
482 </xsd:documentation>
483 </xsd:annotation>
485 <xsd:restriction base="xsd:unsignedShort"/>
486 </xsd:simpleType>
488 <xsd:element name="ui2" type="dt:ui2"/>
490 <xsd:simpleType name="ui4">
491 <xsd:annotation>
492 <xsd:documentation>
494 Equivalent to xsd:unsignedInt
496 </xsd:documentation>
497 </xsd:annotation>
499 <xsd:restriction base="xsd:unsignedInt"/>
500 </xsd:simpleType>
502 <xsd:element name="ui4" type="dt:ui4"/>
504 <xsd:simpleType name="ui8">
505 <xsd:annotation>
506 <xsd:documentation>
508 Equivalent to xsd:unsignedLong
510 </xsd:documentation>
511 </xsd:annotation>
513 <xsd:restriction base="xsd:unsignedLong"/>
514 </xsd:simpleType>
516 <xsd:element name="ui8" type="dt:ui8"/>
518 <xsd:simpleType name="uri">
519 <xsd:annotation>
520 <xsd:documentation>
522 Equivalent to xsd:anyURI
524 </xsd:documentation>
525 </xsd:annotation>
527 <xsd:restriction base="xsd:anyURI"/>
528 </xsd:simpleType>
530 <xsd:element name="uri" type="dt:uri"/>
532 <xsd:simpleType name="uuid">
533 <xsd:annotation>
534 <xsd:documentation>
536 Hex octet string with optional hyphens
538 </xsd:documentation>
539 </xsd:annotation>
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>
546 <xsd:element name="uuid" type="dt:uuid"/>
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>
591 </xsd:schema>