source: fedd/abac-src/rtml/schemas/RTMLv1.0q.xsd @ d9987ad

axis_examplecompt_changesinfo-opsversion-1.30version-2.00version-3.01version-3.02
Last change on this file since d9987ad was 8780cbec, checked in by Jay Jacobs <Jay.Jacobs@…>, 15 years ago

ABAC sources from Cobham

  • Property mode set to 100644
File size: 23.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Kangshi (Kangshi) -->
3<xs:schema targetNamespace="http://crypto.stanford.edu/dc/RTMLv1.0" xmlns="http://crypto.stanford.edu/dc/RTMLv1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified">
4        <!--xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/-->
5        <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="file:///var/tomcat4/webapps/demo/WEB-INF/xmldsig-core-schema.xsd"/>
6        <xs:element name="CredentialStore">
7                <xs:complexType>
8                        <xs:sequence>
9                                <xs:element name="DefaultPrincipal" type="Principal" minOccurs="0"/>
10                                <xs:element ref="ApplicationDomainSpecification" minOccurs="0" maxOccurs="unbounded"/>
11                                <xs:element name="PrincipalInfo" type="PrincipalInfo" minOccurs="0" maxOccurs="unbounded"/>
12                                <xs:element ref="Credential" minOccurs="0" maxOccurs="unbounded"/>
13                        </xs:sequence>
14                </xs:complexType>
15        </xs:element>
16        <xs:element name="ApplicationDomainSpecification">
17                <xs:annotation>
18                        <xs:documentation>This specifies data types and role names used in one application domain.              </xs:documentation>
19                </xs:annotation>
20                <xs:complexType>
21                        <xs:sequence>
22                                <xs:element name="ImportDomain" type="ImportDomain" minOccurs="0" maxOccurs="unbounded"/>
23                                <xs:choice minOccurs="0" maxOccurs="unbounded">
24                                        <xs:element name="IntegerType" type="IntegerTypeDeclaration"/>
25                                        <xs:element name="DecimalType" type="DecimalTypeDeclaration"/>
26                                        <xs:element name="EnumType" type="EnumTypeDeclaration"/>
27                                        <xs:element name="StringType" type="StringTypeDeclaration"/>
28                                        <xs:element name="RecordType" type="RecordTypeDeclaration"/>
29                                        <xs:element name="TreeType" type="TreeTypeDeclaration"/>
30                                </xs:choice>
31                                <xs:element name="PrincipalType" type="PrincipalTypeDeclaration" minOccurs="0"/>
32                                <xs:element name="RoleDeclaration" type="RoleDeclaration" minOccurs="0" maxOccurs="unbounded"/>
33                        </xs:sequence>
34                        <xs:attribute name="uri" type="xs:anyURI" use="required"/>
35                        <xs:attribute name="id" type="HashID"/>
36                </xs:complexType>
37        </xs:element>
38        <xs:complexType name="ImportDomain">
39                <xs:sequence>
40                        <xs:element name="Location" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
41                </xs:sequence>
42                <xs:attribute name="name" type="Identifier" use="required"/>
43                <xs:attribute name="idref" type="HashID" use="required"/>
44                <xs:attribute name="uri" type="xs:anyURI"/>
45        </xs:complexType>
46        <xs:complexType name="IntegerTypeDeclaration">
47                <xs:annotation>
48                        <xs:documentation>It is required that base  is between min and max.  A legal value is between min and max, and satisfies (v-base) % step = 0.</xs:documentation>
49                </xs:annotation>
50                <xs:attribute name="name" type="Identifier" use="required"/>
51                <xs:attribute name="min" type="xs:long" use="required"/>
52                <xs:attribute name="includeMin" type="xs:boolean" default="true"/>
53                <xs:attribute name="max" type="xs:long" use="required"/>
54                <xs:attribute name="includeMax" type="xs:boolean" default="true"/>
55                <xs:attribute name="step" type="xs:long" default="1"/>
56                <xs:attribute name="base" type="xs:long" default="0"/>
57        </xs:complexType>
58        <xs:complexType name="DecimalTypeDeclaration">
59                <xs:annotation>
60                        <xs:documentation>Similar to IntType.</xs:documentation>
61                </xs:annotation>
62                <xs:attribute name="name" type="Identifier" use="required"/>
63                <xs:attribute name="min" type="xs:decimal" use="required"/>
64                <xs:attribute name="includeMin" type="xs:boolean"/>
65                <xs:attribute name="max" type="xs:decimal" use="required"/>
66                <xs:attribute name="includeMax" type="xs:boolean"/>
67                <xs:attribute name="step" type="xs:decimal" default="1"/>
68                <xs:attribute name="base" type="xs:decimal" default="0"/>
69        </xs:complexType>
70        <xs:complexType name="EnumTypeDeclaration">
71                <xs:sequence>
72                        <xs:element name="EnumValue" type="Enum" maxOccurs="unbounded"/>
73                </xs:sequence>
74                <xs:attribute name="name" type="Identifier" use="required"/>
75                <xs:attribute name="ignoreCase" type="xs:boolean" default="false"/>
76                <xs:attribute name="ordered" type="xs:boolean" default="false"/>
77                <xs:attribute name="size" type="xs:int"/>
78        </xs:complexType>
79        <xs:complexType name="StringTypeDeclaration">
80                <xs:attribute name="name" type="Identifier" use="required"/>
81                <xs:attribute name="ignoreCase" type="xs:boolean" default="false"/>
82                <xs:attribute name="ordered" type="xs:boolean" default="false"/>
83        </xs:complexType>
84        <xs:complexType name="TreeTypeDeclaration">
85                <xs:annotation>
86                        <xs:documentation>The three attributes rootsymbol, separator, and rootFirst determine how a constant of a tree type looks like.</xs:documentation>
87                </xs:annotation>
88                <xs:attribute name="name" type="Identifier" use="required"/>
89                <xs:attribute name="separator" type="xs:string" use="required"/>
90                <xs:attribute name="order" type="TreeValueOrderType" use="required"/>
91        </xs:complexType>
92        <xs:simpleType name="TreeValueOrderType">
93                <xs:restriction base="xs:string">
94                        <xs:enumeration value="rootFirst"/>
95                        <xs:enumeration value="rootLast"/>
96                </xs:restriction>
97        </xs:simpleType>
98        <xs:complexType name="RecordTypeDeclaration">
99                <xs:sequence>
100                        <xs:element name="Field" maxOccurs="unbounded">
101                                <xs:complexType>
102                                        <xs:sequence>
103                                                <xs:element name="Type" type="NameRef"/>
104                                        </xs:sequence>
105                                        <xs:attribute name="name" type="Identifier" use="required"/>
106                                </xs:complexType>
107                        </xs:element>
108                </xs:sequence>
109                <xs:attribute name="name" type="Identifier" use="required"/>
110        </xs:complexType>
111        <xs:attributeGroup name="NameRef">
112                <xs:attribute name="name" type="Identifier" use="required"/>
113                <xs:attribute name="domain" type="Identifier"/>
114        </xs:attributeGroup>
115        <xs:complexType name="NameRef">
116                <xs:attributeGroup ref="NameRef"/>
117        </xs:complexType>
118        <xs:complexType name="PrincipalTypeDeclaration">
119                <xs:sequence>
120                        <xs:element name="Type" type="NameRef"/>
121                </xs:sequence>
122        </xs:complexType>
123        <xs:complexType name="RoleDeclaration">
124                <xs:sequence>
125                        <xs:element name="Description" minOccurs="0" maxOccurs="unbounded"/>
126                        <xs:choice minOccurs="0">
127                                <xs:element name="Restriction">
128                                        <xs:complexType>
129                                                <xs:sequence>
130                                                        <xs:element name="BaseRole" type="NameRef"/>
131                                                        <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
132                                                                <xs:complexType>
133                                                                        <xs:sequence>
134                                                                                <xs:element name="Type" type="NameRef"/>
135                                                                        </xs:sequence>
136                                                                        <xs:attribute name="name" type="Identifier" use="required"/>
137                                                                        <xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
138                                                                </xs:complexType>
139                                                        </xs:element>
140                                                </xs:sequence>
141                                        </xs:complexType>
142                                </xs:element>
143                                <xs:element name="Extension">
144                                        <xs:complexType>
145                                                <xs:sequence>
146                                                        <xs:element name="BaseRole" type="NameRef"/>
147                                                        <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
148                                                                <xs:complexType>
149                                                                        <xs:sequence>
150                                                                                <xs:element name="Type" type="NameRef"/>
151                                                                        </xs:sequence>
152                                                                        <xs:attribute name="name" type="Identifier" use="required"/>
153                                                                        <xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
154                                                                </xs:complexType>
155                                                        </xs:element>
156                                                </xs:sequence>
157                                        </xs:complexType>
158                                </xs:element>
159                                <xs:element name="Projection">
160                                        <xs:complexType>
161                                                <xs:sequence>
162                                                        <xs:element name="BaseRole"/>
163                                                        <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
164                                                                <xs:complexType>
165                                                                        <xs:attribute name="name" type="Identifier" use="required"/>
166                                                                </xs:complexType>
167                                                        </xs:element>
168                                                </xs:sequence>
169                                        </xs:complexType>
170                                </xs:element>
171                                <xs:element name="Plain">
172                                        <xs:complexType>
173                                                <xs:sequence>
174                                                        <xs:element name="Identity" minOccurs="0">
175                                                                <xs:complexType>
176                                                                        <xs:sequence>
177                                                                                <xs:element name="BaseRole" type="NameRef"/>
178                                                                        </xs:sequence>
179                                                                </xs:complexType>
180                                                        </xs:element>
181                                                        <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
182                                                                <xs:complexType>
183                                                                        <xs:sequence>
184                                                                                <xs:element name="Type" type="NameRef"/>
185                                                                        </xs:sequence>
186                                                                        <xs:attribute name="name" type="Identifier" use="required"/>
187                                                                        <xs:attribute name="requireSafety" type="xs:boolean" default="false"/>
188                                                                </xs:complexType>
189                                                        </xs:element>
190                                                </xs:sequence>
191                                                <xs:attribute name="dimension" type="xs:int" default="1"/>
192                                                <xs:attribute name="issuerTraces" type="IssuerTracesType" default="rule"/>
193                                                <xs:attribute name="subjectTraces" type="SubjectTracesType" default="fact"/>
194                                        </xs:complexType>
195                                </xs:element>
196                        </xs:choice>
197                </xs:sequence>
198                <xs:attribute name="name" type="Identifier" use="required"/>
199                <xs:attribute name="isIdentity" type="xs:boolean" default="false"/>
200        </xs:complexType>
201        <xs:simpleType name="IssuerTracesType">
202                <xs:restriction base="xs:token">
203                        <xs:enumeration value="all"/>
204                        <xs:enumeration value="def"/>
205                        <xs:enumeration value="rule"/>
206                        <xs:enumeration value="none"/>
207                </xs:restriction>
208        </xs:simpleType>
209        <xs:simpleType name="SubjectTracesType">
210                <xs:restriction base="xs:token">
211                        <xs:enumeration value="all"/>
212                        <xs:enumeration value="fact"/>
213                        <xs:enumeration value="none"/>
214                </xs:restriction>
215        </xs:simpleType>
216        <xs:element name="Credential">
217                <xs:complexType>
218                        <xs:sequence>
219                                <xs:element name="Preamble" type="Preamble"/>
220                                <xs:element name="Issuer">
221                                        <xs:complexType>
222                                                <xs:sequence>
223                                                        <xs:group ref="PrincipalValue"/>
224                                                </xs:sequence>
225                                        </xs:complexType>
226                                </xs:element>
227                                <xs:group ref="Definition" maxOccurs="unbounded"/>
228                                <xs:element name="ValidityTime" type="ValidityTime"/>
229                                <xs:element name="ValidityRule" type="ValidityRule" minOccurs="0" maxOccurs="unbounded"/>
230                                <xs:choice minOccurs="0">
231                                        <xs:element ref="ds:Signature"/>
232                                        <xs:element ref="ds:X509Data"/>
233                                </xs:choice>
234                        </xs:sequence>
235                        <xs:attribute name="id" type="HashID"/>
236                </xs:complexType>
237                <xs:unique name="principalShortName">
238                        <xs:selector xpath=".//Principal"/>
239                        <xs:field xpath="@shortName"/>
240                </xs:unique>
241                <xs:keyref name="principalShortNameRef" refer="principalShortName">
242                        <xs:selector xpath=".//PrincipaRef"/>
243                        <xs:field xpath="@shortName"/>
244                </xs:keyref>
245        </xs:element>
246        <xs:element name="LocalStatement">
247                <xs:complexType>
248                        <xs:sequence>
249                                <xs:element name="Preamble" type="Preamble"/>
250                                <xs:element name="RuleIdentifier" type="xs:token" minOccurs="0"/>
251                                <xs:group ref="Definition" maxOccurs="unbounded"/>
252                                <xs:element name="ValidityTime" type="ValidityTime"/>
253                        </xs:sequence>
254                </xs:complexType>
255        </xs:element>
256        <xs:complexType name="Preamble">
257                <xs:sequence>
258                        <xs:element name="ImportDomain" type="ImportDomain" minOccurs="0" maxOccurs="unbounded"/>
259                        <xs:element name="Principal" type="Principal" minOccurs="0" maxOccurs="unbounded"/>
260                </xs:sequence>
261        </xs:complexType>
262        <xs:complexType name="ValidityTime">
263                <xs:sequence>
264                        <xs:element name="IssueTime" type="xs:dateTime"/>
265                        <xs:element name="NotBefore" type="xs:dateTime" minOccurs="0"/>
266                        <xs:element name="NotAfter" type="xs:dateTime" minOccurs="0"/>
267                        <xs:element name="LifeTime" type="xs:duration" minOccurs="0"/>
268                </xs:sequence>
269        </xs:complexType>
270        <xs:complexType name="CRLLocator">
271                <xs:sequence>
272                        <xs:group ref="PrincipalValue"/>
273                </xs:sequence>
274                <xs:attribute name="frequency" type="xs:duration"/>
275                <xs:attribute name="uri" type="xs:anyURI"/>
276        </xs:complexType>
277        <xs:complexType name="ValidityRule">
278                <xs:sequence>
279                        <xs:any/>
280                </xs:sequence>
281        </xs:complexType>
282        <xs:group name="VerificationRecord">
283                <xs:sequence/>
284        </xs:group>
285        <xs:complexType name="RoleTerm">
286                <xs:sequence>
287                        <xs:element name="Parameter" type="Field" minOccurs="0" maxOccurs="unbounded"/>
288                </xs:sequence>
289                <xs:attributeGroup ref="NameRef"/>
290        </xs:complexType>
291        <xs:group name="Role">
292                <xs:choice>
293                        <xs:element name="RoleTerm" type="RoleTerm"/>
294                        <xs:element name="ExternalRole">
295                                <xs:complexType>
296                                        <xs:sequence>
297                                                <xs:group ref="PrincipalValue"/>
298                                                <xs:element name="RoleTerm" type="RoleTerm"/>
299                                        </xs:sequence>
300                                </xs:complexType>
301                        </xs:element>
302                </xs:choice>
303        </xs:group>
304        <xs:complexType name="Field">
305                <xs:group ref="Constraint" minOccurs="0"/>
306                <xs:attribute name="name" type="Identifier" use="required"/>
307                <xs:attribute name="id" type="xs:ID"/>
308        </xs:complexType>
309        <xs:complexType name="Record">
310                <xs:sequence>
311                        <xs:element name="Field" type="Field" maxOccurs="unbounded"/>
312                </xs:sequence>
313        </xs:complexType>
314        <xs:simpleType name="SpecialPrincipalType">
315                <xs:restriction base="xs:token">
316                        <xs:enumeration value="this"/>
317                        <xs:enumeration value="issuer"/>
318                </xs:restriction>
319        </xs:simpleType>
320        <xs:group name="Constraint">
321                <xs:choice>
322                        <xs:element name="IntegerValue" type="Integer"/>
323                        <xs:element name="DecimalValue" type="Decimal"/>
324                        <xs:element name="StringValue" type="String"/>
325                        <xs:element name="EnumValue" type="Enum"/>
326                        <xs:element name="TimeValue" type="Time"/>
327                        <xs:element name="TreeValue" type="Tree"/>
328                        <xs:element name="Record" type="Record"/>
329                        <xs:group ref="PrincipalValue"/>
330                        <xs:element name="SpecialPrincipal"/>
331                        <xs:element name="Interval" type="Interval"/>
332                        <xs:element name="Set" type="Set"/>
333                        <xs:element name="Equals">
334                                <xs:complexType>
335                                        <xs:attribute name="ref" type="xs:IDREF"/>
336                                </xs:complexType>
337                        </xs:element>
338                </xs:choice>
339        </xs:group>
340        <xs:group name="Definition">
341                <xs:choice>
342                        <xs:element name="SimpleMember" type="SimpleMember"/>
343                        <xs:element name="SimpleContainment" type="SimpleContainment"/>
344                        <xs:element name="LinkedContainment" type="LinkingContainment"/>
345                        <xs:element name="IntersectionContainment" type="IntersectionContainment"/>
346                        <xs:element name="ProductContainment" type="ProductContainment"/>
347                        <xs:element name="ExclusiveProductContainment" type="ExclusiveProductContainment"/>
348                        <xs:element name="SimpleDelegation" type="SimpleDelegation"/>
349                        <xs:element name="AdvancedDelegation" type="AdvancedDelegation"/>
350                </xs:choice>
351        </xs:group>
352        <xs:complexType name="RoleSequence">
353                <xs:sequence>
354                        <xs:group ref="Role" minOccurs="2" maxOccurs="unbounded"/>
355                </xs:sequence>
356        </xs:complexType>
357        <xs:complexType name="DefinitionBase" abstract="true">
358                <xs:sequence>
359                        <xs:element name="HeadRoleTerm" type="RoleTerm"/>
360                </xs:sequence>
361        </xs:complexType>
362        <xs:complexType name="SimpleMember">
363                <xs:complexContent>
364                        <xs:extension base="DefinitionBase">
365                                <xs:sequence>
366                                        <xs:group ref="PrincipalValue"/>
367                                </xs:sequence>
368                        </xs:extension>
369                </xs:complexContent>
370        </xs:complexType>
371        <xs:complexType name="SimpleContainment">
372                <xs:complexContent>
373                        <xs:extension base="DefinitionBase">
374                                <xs:sequence>
375                                        <xs:group ref="Role"/>
376                                </xs:sequence>
377                        </xs:extension>
378                </xs:complexContent>
379        </xs:complexType>
380        <xs:complexType name="IntersectionContainment">
381                <xs:complexContent>
382                        <xs:extension base="DefinitionBase">
383                                <xs:sequence>
384                                        <xs:element name="Intersection" type="RoleSequence"/>
385                                </xs:sequence>
386                        </xs:extension>
387                </xs:complexContent>
388        </xs:complexType>
389        <xs:complexType name="LinkingContainment">
390                <xs:complexContent>
391                        <xs:extension base="DefinitionBase">
392                                <xs:sequence>
393                                        <xs:element name="LinkedRole">
394                                                <xs:complexType>
395                                                        <xs:sequence>
396                                                                <xs:element name="RoleTerm" type="RoleTerm"/>
397                                                                <xs:element name="RoleTerm" type="RoleTerm"/>
398                                                        </xs:sequence>
399                                                </xs:complexType>
400                                        </xs:element>
401                                </xs:sequence>
402                        </xs:extension>
403                </xs:complexContent>
404        </xs:complexType>
405        <xs:complexType name="ProductContainment">
406                <xs:complexContent>
407                        <xs:extension base="DefinitionBase">
408                                <xs:sequence>
409                                        <xs:element name="Product" type="RoleSequence"/>
410                                </xs:sequence>
411                        </xs:extension>
412                </xs:complexContent>
413        </xs:complexType>
414        <xs:complexType name="ExclusiveProductContainment">
415                <xs:complexContent>
416                        <xs:extension base="DefinitionBase">
417                                <xs:sequence>
418                                        <xs:element name="ExclusiveProduct" type="RoleSequence"/>
419                                </xs:sequence>
420                        </xs:extension>
421                </xs:complexContent>
422        </xs:complexType>
423        <xs:complexType name="SimpleDelegation">
424                <xs:complexContent>
425                        <xs:extension base="DefinitionBase">
426                                <xs:sequence>
427                                        <xs:element name="DelegateTo">
428                                                <xs:complexType>
429                                                        <xs:sequence>
430                                                                <xs:group ref="PrincipalValue"/>
431                                                        </xs:sequence>
432                                                </xs:complexType>
433                                        </xs:element>
434                                        <xs:element name="Control" minOccurs="0">
435                                                <xs:complexType>
436                                                        <xs:sequence>
437                                                                <xs:group ref="Role"/>
438                                                        </xs:sequence>
439                                                </xs:complexType>
440                                        </xs:element>
441                                </xs:sequence>
442                        </xs:extension>
443                </xs:complexContent>
444        </xs:complexType>
445        <xs:complexType name="AdvancedDelegation">
446                <xs:complexContent>
447                        <xs:extension base="DefinitionBase">
448                                <xs:sequence>
449                                        <xs:element name="DelegateTo">
450                                                <xs:complexType>
451                                                        <xs:sequence>
452                                                                <xs:element name="RoleTerm" type="RoleTerm"/>
453                                                        </xs:sequence>
454                                                </xs:complexType>
455                                        </xs:element>
456                                        <xs:element name="Control" minOccurs="0">
457                                                <xs:complexType>
458                                                        <xs:sequence>
459                                                                <xs:group ref="Role"/>
460                                                        </xs:sequence>
461                                                </xs:complexType>
462                                        </xs:element>
463                                </xs:sequence>
464                        </xs:extension>
465                </xs:complexContent>
466        </xs:complexType>
467        <xs:simpleType name="Identifier">
468                <xs:annotation>
469                        <xs:documentation>The schema data type of identifier used for domain names, role names, type names, etc.</xs:documentation>
470                </xs:annotation>
471                <xs:restriction base="xs:token"/>
472        </xs:simpleType>
473        <xs:simpleType name="HashID">
474                <xs:restriction base="xs:base64Binary"/>
475        </xs:simpleType>
476        <xs:simpleType name="Integer">
477                <xs:annotation>
478                        <xs:documentation>The schema data type for IntegerValue.  Although it is xs:long, the current xerces parser only allows int.</xs:documentation>
479                </xs:annotation>
480                <xs:restriction base="xs:long"/>
481        </xs:simpleType>
482        <xs:simpleType name="Decimal">
483                <xs:annotation>
484                        <xs:documentation>The schema data type for DecimalValue.</xs:documentation>
485                </xs:annotation>
486                <xs:restriction base="xs:decimal"/>
487        </xs:simpleType>
488        <xs:simpleType name="String">
489                <xs:annotation>
490                        <xs:documentation>The schema data type for the StringValue element in RTML credentials.  Now using token.</xs:documentation>
491                </xs:annotation>
492                <xs:restriction base="xs:token"/>
493        </xs:simpleType>
494        <xs:simpleType name="Enum">
495                <xs:restriction base="xs:token"/>
496        </xs:simpleType>
497        <xs:simpleType name="Time">
498                <xs:union memberTypes="xs:dateTime xs:date xs:time xs:gYear xs:gYearMonth xs:gMonth xs:gMonthDay xs:gDay"/>
499        </xs:simpleType>
500        <xs:complexType name="Tree">
501                <xs:annotation>
502                        <xs:documentation>A tree value contains a string which consists of token values separated by a separator symbol, which is declared in TreeType.  The attributes determines whether the current node, children, and descendents are included.</xs:documentation>
503                </xs:annotation>
504                <xs:simpleContent>
505                        <xs:extension base="xs:string">
506                                <xs:attribute name="includeCurrent" type="xs:boolean" default="true"/>
507                                <xs:attribute name="includeChildren" type="xs:boolean" default="false"/>
508                                <xs:attribute name="includeDescendents" type="xs:boolean" default="false"/>
509                        </xs:extension>
510                </xs:simpleContent>
511        </xs:complexType>
512        <xs:complexType name="Principal">
513                <xs:choice>
514                        <xs:element name="KeyHash" type="HashID"/>
515                        <xs:element name="IntegerValue" type="Integer"/>
516                        <xs:element name="StringValue" type="String"/>
517                </xs:choice>
518                <xs:attribute name="shortName" type="Identifier"/>
519        </xs:complexType>
520        <xs:complexType name="PrincipalRef">
521                <xs:attribute name="shortName" type="Identifier"/>
522        </xs:complexType>
523        <xs:complexType name="PrincipalInfo">
524                <xs:sequence>
525                        <xs:element ref="ds:KeyValue"/>
526                </xs:sequence>
527        </xs:complexType>
528        <xs:group name="PrincipalValue">
529                <xs:choice>
530                        <xs:element name="Principal" type="Principal"/>
531                        <xs:element name="PrincipalRef" type="PrincipalRef"/>
532                </xs:choice>
533        </xs:group>
534        <xs:complexType name="Interval">
535                <xs:choice>
536                        <xs:sequence>
537                                <xs:element name="From" minOccurs="0">
538                                        <xs:complexType>
539                                                <xs:sequence>
540                                                        <xs:element name="IntegerValue" type="Integer"/>
541                                                </xs:sequence>
542                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
543                                        </xs:complexType>
544                                </xs:element>
545                                <xs:element name="To" minOccurs="0">
546                                        <xs:complexType>
547                                                <xs:sequence>
548                                                        <xs:element name="IntegerValue" type="Integer"/>
549                                                </xs:sequence>
550                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
551                                        </xs:complexType>
552                                </xs:element>
553                        </xs:sequence>
554                        <xs:sequence>
555                                <xs:element name="From" minOccurs="0">
556                                        <xs:complexType>
557                                                <xs:sequence>
558                                                        <xs:element name="DecimalValue" type="Decimal"/>
559                                                </xs:sequence>
560                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
561                                        </xs:complexType>
562                                </xs:element>
563                                <xs:element name="To" minOccurs="0">
564                                        <xs:complexType>
565                                                <xs:sequence>
566                                                        <xs:element name="DecimalValue" type="Decimal"/>
567                                                </xs:sequence>
568                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
569                                        </xs:complexType>
570                                </xs:element>
571                        </xs:sequence>
572                        <xs:sequence>
573                                <xs:element name="From" minOccurs="0">
574                                        <xs:complexType>
575                                                <xs:sequence>
576                                                        <xs:element name="EnumValue" type="Enum"/>
577                                                </xs:sequence>
578                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
579                                        </xs:complexType>
580                                </xs:element>
581                                <xs:element name="To" minOccurs="0">
582                                        <xs:complexType>
583                                                <xs:sequence>
584                                                        <xs:element name="EnumValue" type="Enum"/>
585                                                </xs:sequence>
586                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
587                                        </xs:complexType>
588                                </xs:element>
589                        </xs:sequence>
590                        <xs:sequence>
591                                <xs:element name="From" minOccurs="0">
592                                        <xs:complexType>
593                                                <xs:sequence>
594                                                        <xs:element name="StringValue" type="String"/>
595                                                </xs:sequence>
596                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
597                                        </xs:complexType>
598                                </xs:element>
599                                <xs:element name="To" minOccurs="0">
600                                        <xs:complexType>
601                                                <xs:sequence>
602                                                        <xs:element name="StringValue" type="String"/>
603                                                </xs:sequence>
604                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
605                                        </xs:complexType>
606                                </xs:element>
607                        </xs:sequence>
608                        <xs:sequence>
609                                <xs:element name="From" minOccurs="0">
610                                        <xs:complexType>
611                                                <xs:sequence>
612                                                        <xs:element name="TimeValue" type="Time"/>
613                                                </xs:sequence>
614                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
615                                        </xs:complexType>
616                                </xs:element>
617                                <xs:element name="To" minOccurs="0">
618                                        <xs:complexType>
619                                                <xs:sequence>
620                                                        <xs:element name="TimeValue" type="Time"/>
621                                                </xs:sequence>
622                                                <xs:attribute name="included" type="xs:boolean" default="true"/>
623                                        </xs:complexType>
624                                </xs:element>
625                        </xs:sequence>
626                </xs:choice>
627        </xs:complexType>
628        <xs:complexType name="Set">
629                <xs:choice>
630                        <xs:element name="IntegerValue" type="Integer" maxOccurs="unbounded"/>
631                        <xs:element name="DecimalValue" type="Decimal" maxOccurs="unbounded"/>
632                        <xs:element name="StringValue" type="String" maxOccurs="unbounded"/>
633                        <xs:element name="EnumValue" type="Enum" maxOccurs="unbounded"/>
634                        <xs:group ref="PrincipalValue" maxOccurs="unbounded"/>
635                </xs:choice>
636        </xs:complexType>
637</xs:schema>
Note: See TracBrowser for help on using the repository browser.