1 <?xml version=
"1.0" encoding=
"UTF-8"?>
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
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">
32 Equivalent to xsd:base64Binary
37 <xsd:restriction base=
"xsd:base64Binary"/>
40 <xsd:element name=
"bin.base64" type=
"dt:bin.base64"/>
42 <xsd:simpleType name=
"bin.hex">
46 Equivalent to xsd:hexBinary
51 <xsd:restriction base=
"xsd:hexBinary"/>
54 <xsd:element name=
"bin.hex" type=
"dt:bin.hex"/>
56 <xsd:simpleType name=
"boolean">
60 Equivalent to xsd:boolean
65 <xsd:restriction base=
"xsd:boolean"/>
68 <xsd:element name=
"boolean" type=
"dt:boolean"/>
70 <xsd:simpleType name=
"char">
79 <xsd:restriction base=
"xsd:string">
80 <xsd:length value=
"1"/>
84 <xsd:element name=
"char" type=
"dt:char"/>
86 <xsd:simpleType name=
"date">
90 Equivalent to xsd:date with no timezone
92 TODO: restrict -
> force no timezone
97 <xsd:restriction base=
"xsd:date"/>
100 <xsd:element name=
"date" type=
"dt:date"/>
102 <xsd:simpleType name=
"date.tz">
106 Equivalent to xsd:date with timezone
108 TODO: restrict -
> force timezone
113 <xsd:restriction base=
"xsd:date"/>
116 <xsd:element name=
"date.tz" type=
"dt:date.tz"/>
118 <xsd:simpleType name=
"dateTime">
122 Equivalent to xsd:dateTime with no timezone
124 TODO: restrict -
> force no timezone
129 <xsd:restriction base=
"xsd:dateTime"/>
132 <xsd:element name=
"dateTime" type=
"dt:dateTime"/>
134 <xsd:simpleType name=
"dateTime.tz">
138 Equivalent to xsd:dateTime with timezone
140 TODO: restrict -
> force timezone
145 <xsd:restriction base=
"xsd:dateTime"/>
148 <xsd:element name=
"dateTime.tz" type=
"dt:dateTime.tz"/>
150 <xsd:simpleType name=
"entity">
154 Equivalent to xsd:ENTITY
159 <xsd:restriction base=
"xsd:ENTITY"/>
162 <xsd:element name=
"entity" type=
"dt:entity"/>
164 <xsd:simpleType name=
"entities">
168 Equivalent to xsd:ENTITIES
173 <xsd:restriction base=
"xsd:ENTITIES"/>
176 <xsd:element name=
"entities" type=
"dt:entities"/>
178 <xsd:simpleType name=
"enumeration">
182 Valid for attributes only
183 dt:values is equivalent to xsd:list
188 <xsd:restriction base=
"xsd:string"/>
191 <xsd:simpleType name=
"fixed.14.4">
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
202 <xsd:restriction base=
"xsd:decimal">
203 <xsd:pattern value=
"([0-9]{0,14})([.][0-9]{0,4})?"/>
207 <xsd:element name=
"fixed.14.4" type=
"dt:fixed.14.4"/>
209 <xsd:simpleType name=
"float">
213 Equivalent to xsd:decimal
218 <xsd:restriction base=
"xsd:decimal"/>
221 <xsd:element name=
"float" type=
"dt:float"/>
223 <xsd:simpleType name=
"i1">
227 Equivalent to xsd:byte
232 <xsd:restriction base=
"xsd:byte"/>
235 <xsd:element name=
"i1" type=
"dt:i1"/>
237 <xsd:simpleType name=
"i2">
241 Equivalent to xsd:short
246 <xsd:restriction base=
"xsd:short"/>
249 <xsd:element name=
"i2" type=
"dt:i2"/>
251 <xsd:simpleType name=
"i4">
255 Equivalent to xsd:int
260 <xsd:restriction base=
"xsd:int"/>
263 <xsd:element name=
"i4" type=
"dt:i4"/>
265 <xsd:simpleType name=
"i8">
269 Equivalent to xsd:long
274 <xsd:restriction base=
"xsd:long"/>
277 <xsd:element name=
"i8" type=
"dt:i8"/>
279 <xsd:simpleType name=
"id">
283 Valid for attributes only
289 <xsd:restriction base=
"xsd:ID"/>
292 <xsd:simpleType name=
"idref">
296 Valid for attributes only
297 Equivalent to xsd:IDREF
302 <xsd:restriction base=
"xsd:IDREF"/>
305 <xsd:simpleType name=
"idrefs">
309 Valid for attributes only
310 Equivalent to xsd:IDREFS
315 <xsd:restriction base=
"xsd:IDREFS"/>
318 <xsd:simpleType name=
"int">
322 Equivalent to xsd:integer
327 <xsd:restriction base=
"xsd:integer"/>
330 <xsd:element name=
"int" type=
"dt:int"/>
332 <xsd:simpleType name=
"nmtoken">
336 Equivalent to xsd:NMTOKEN
341 <xsd:restriction base=
"xsd:NMTOKEN"/>
344 <xsd:element name=
"nmtoken" type=
"dt:nmtoken"/>
346 <xsd:simpleType name=
"nmtokens">
350 Equivalent to xsd:NMTOKENS
355 <xsd:restriction base=
"xsd:NMTOKENS"/>
358 <xsd:element name=
"nmtokens" type=
"dt:nmtokens"/>
360 <xsd:simpleType name=
"notation">
364 Equivalent to xsd:NOTATION
369 <xsd:restriction base=
"xsd:NOTATION"/>
372 <xsd:element name=
"notation" type=
"dt:notation"/>
374 <xsd:simpleType name=
"number">
378 Equivalent to xsd:decimal
383 <xsd:restriction base=
"xsd:decimal"/>
386 <xsd:element name=
"number" type=
"dt:number"/>
388 <xsd:simpleType name=
"r4">
392 Equivalent to xsd:float
397 <xsd:restriction base=
"xsd:float"/>
400 <xsd:element name=
"r4" type=
"dt:r4"/>
402 <xsd:simpleType name=
"r8">
406 Equivalent to xsd:double
411 <xsd:restriction base=
"xsd:double"/>
414 <xsd:element name=
"r8" type=
"dt:r8"/>
416 <xsd:simpleType name=
"string">
420 Equivalent to xsd:string
425 <xsd:restriction base=
"xsd:string"/>
428 <xsd:element name=
"string" type=
"dt:string"/>
430 <xsd:simpleType name=
"time">
434 Equivalent to xsd:time with no timezone
436 TODO: restrict -
> force no timezone
441 <xsd:restriction base=
"xsd:time"/>
444 <xsd:element name=
"time" type=
"dt:time"/>
446 <xsd:simpleType name=
"time.tz">
450 Equivalent to xsd:time with timezone
452 TODO: restrict -
> force timezone
457 <xsd:restriction base=
"xsd:time"/>
460 <xsd:element name=
"time.tz" type=
"dt:time.tz"/>
462 <xsd:simpleType name=
"ui1">
466 Equivalent to xsd:unsignedByte
471 <xsd:restriction base=
"xsd:unsignedByte"/>
474 <xsd:element name=
"ui1" type=
"dt:ui1"/>
476 <xsd:simpleType name=
"ui2">
480 Equivalent to xsd:unsignedShort
485 <xsd:restriction base=
"xsd:unsignedShort"/>
488 <xsd:element name=
"ui2" type=
"dt:ui2"/>
490 <xsd:simpleType name=
"ui4">
494 Equivalent to xsd:unsignedInt
499 <xsd:restriction base=
"xsd:unsignedInt"/>
502 <xsd:element name=
"ui4" type=
"dt:ui4"/>
504 <xsd:simpleType name=
"ui8">
508 Equivalent to xsd:unsignedLong
513 <xsd:restriction base=
"xsd:unsignedLong"/>
516 <xsd:element name=
"ui8" type=
"dt:ui8"/>
518 <xsd:simpleType name=
"uri">
522 Equivalent to xsd:anyURI
527 <xsd:restriction base=
"xsd:anyURI"/>
530 <xsd:element name=
"uri" type=
"dt:uri"/>
532 <xsd:simpleType name=
"uuid">
536 Hex octet string with optional hyphens
541 <xsd:restriction base=
"xsd:string">
542 <xsd:pattern value=
"([0-9A-Fa-f]{4})([-]{0,1}[0-9A-Fa-f]{4})*"/>
546 <xsd:element name=
"uuid" type=
"dt:uuid"/>
548 <xsd:attribute name=
"dt" default=
"string">
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"/>