Project

Profile

Help

How to connect?
Download (49.7 KB) Statistics
| Branch: | Tag: | Revision:

he / latest9.9 / samples / scm / scmschema.xsd @ 37441b23

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
           xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" 
4
           elementFormDefault="qualified" 
5
		   targetNamespace="http://ns.saxonica.com/schema-component-model" 
6
		   xmlns:scm="http://ns.saxonica.com/schema-component-model">
7

    
8
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
9
             schemaLocation="http://www.w3.org/2001/xml.xsd"/>
10

    
11
  <xs:element name="schema">
12
    <xs:annotation>
13
      <xs:documentation>
14
      </xs:documentation>
15
    </xs:annotation>
16
    <xs:complexType>
17
      <xs:choice minOccurs="0" maxOccurs="unbounded">
18
        <xs:element ref="scm:element"/>
19
        <xs:element ref="scm:attribute"/>
20
        <xs:element ref="scm:complexType"/>
21
        <xs:element ref="scm:simpleType"/>
22
		<xs:element ref="scm:attributeGroup"/>
23
		<xs:element ref="scm:modelGroupDefinition"/>
24
		<xs:element ref="scm:notation"/>
25
		<xs:element ref="scm:wildcard"/>
26
        <xs:element ref="scm:unique"/>
27
        <xs:element ref="scm:key"/>
28
        <xs:element ref="scm:keyref"/>
29
      </xs:choice>
30
      <xs:attribute name="generatedAt" type="xs:dateTime"/>
31
      <xs:attribute name="xsdVersion" type="scm:xsdVersionType"/>
32
      <xs:attribute name="dmk" use="optional" type="xs:base64Binary"/>
33
    </xs:complexType>
34
  </xs:element>
35
  
36
  <xs:element name="attribute">
37
    <xs:annotation>
38
      <xs:documentation>
39
      Corresponds to an attribute declaration schema component (3.2.1). 
40
      The properties are represented as follows:
41
      {name}                 The name attribute
42
      {target namespace}     The targetNamespace attribute
43
      {type definition}      The type attribute
44
      {scope}.{variety}      The global attribute; 
45
      {scope}.{parent}       The containingComplexType attribute
46
      {value constraint}     The "default" attribute (holding the lexical form of the value)
47
	                         or the child element "fixed" (holding the typed value)
48
      {annotation}           Not retained in SCM                  
49
      </xs:documentation>
50
    </xs:annotation>  
51
    <xs:complexType>
52
	  <xs:sequence>
53
	    <xs:choice>
54
	      <xs:element ref="scm:fixed" minOccurs="0" maxOccurs="1"/>
55
	      <xs:element ref="scm:default" minOccurs="0" maxOccurs="1"/>
56
	    </xs:choice>
57
	  </xs:sequence>
58
      <xs:attribute name="containingComplexType" type="xs:IDREF"/>
59
      <xs:attribute name="default" type="xs:string"/>
60
      <xs:attribute name="global" use="required" type="xs:boolean"/>
61
      <xs:attribute name="id" use="required" type="xs:ID"/>
62
      <xs:attribute name="name" use="required" type="xs:NCName"/>
63
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
64
      <xs:attribute name="type" use="required" type="scm:typeReferenceType"/>
65
      <xs:attribute name="inheritable" use="required" type="xs:boolean"/> 
66
    </xs:complexType>
67
  </xs:element>  
68

    
69
  <xs:element name="element">
70
    <xs:annotation>
71
      <xs:documentation>
72
      Corresponds to an element declaration schema component (3.3.1). 
73
      The properties are represented as follows:
74
      {annotations}          Not retained in SCM  
75
      {name}                 The name attribute
76
      {target namespace}     The targetNamespace attribute
77
      {type definition}      The type attribute
78
      {type table}           The sequence of scm:alternativeType elements. The {default type definition}
79
                             is the last scm:alternativeType in the sequence, if it has a condition of "true()".
80
      {scope}.{variety}      The global attribute; 
81
      {scope}.{parent}       The containingComplexType attribute
82
      {value constraint}     The attribute "default" (holding the lexical form of the value)
83
	                         and the child element "fixed" (holding the typed value)
84
      {nillable}             The nillable attribute
85
      {identity-constraint definitions}
86
                             The scm:unique, scm:key, and scm:keyref elements referenced by the 
87
                             contained scm:identityConstraint elements
88
      {substitution group affiliations}
89
                             The contained scm:substitutionGroupAffiliation elements                       
90
      {substitution group exclusions}
91
                             The final attribute 
92
      {disallowed substitutions}
93
                             The block attribute
94
      {abstract}             The abstract attribute                                  
95
      </xs:documentation>
96
    </xs:annotation>  
97
    <xs:complexType>
98
	  <xs:sequence>
99
	  	<xs:element ref="scm:substitutionGroupAffiliation" minOccurs="0" maxOccurs="unbounded"/>
100
	  	<xs:element ref="scm:alternativeType" minOccurs="0" maxOccurs="unbounded"/>
101
	  	<xs:element ref="scm:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
102
	    <xs:choice>
103
		    <xs:element ref="scm:fixed" minOccurs="0" maxOccurs="1"/>
104
	      <xs:element ref="scm:default" minOccurs="0" maxOccurs="1"/>
105
	    </xs:choice>
106
	  </xs:sequence>
107
      <xs:attribute name="abstract" use="required" type="xs:boolean"/>
108
	  <xs:attribute name="block" use="optional" type="scm:blockType"/>
109
      <xs:attribute name="containingComplexType" use="optional" type="xs:IDREF"/>
110
	  <xs:attribute name="default" use="optional" type="xs:string"/>
111
	  <xs:attribute name="final" use="optional" type="scm:finalType"/>
112
      <xs:attribute name="global" use="required" type="xs:boolean"/>
113
      <xs:attribute name="id" use="required" type="xs:ID"/>
114
      <xs:attribute name="name" use="required" type="xs:NCName"/>
115
      <xs:attribute name="nillable" use="required" type="xs:boolean"/>
116
      <xs:attribute name="targetNamespace" use="optional" type="scm:uriType"/>
117
      <xs:attribute name="type" use="required" type="scm:typeReferenceType"/>
118
	  <xs:assert test="not(@default and scm:fixed)" vc:minVersion="1.1"/>
119
    </xs:complexType>
120
  </xs:element>
121

    
122
  <xs:element name="substitutionGroupAffiliation">
123
    <xs:annotation>
124
      <xs:documentation>
125
      Represents the participation of the containing element in the substitution group of the referenced element
126
      </xs:documentation>
127
    </xs:annotation>  
128
    <xs:complexType>
129
	  <xs:attribute name="ref" use="required" type="xs:IDREF"/>
130
	</xs:complexType>
131
  </xs:element>
132
  
133
  <xs:element name="alternativeType">
134
    <xs:annotation>
135
      <xs:documentation>
136
      Corresponds to a type alternative schema component (3.12.1). 
137
      The properties are represented as follows:
138
      {annotations}         Not retained in SCM  
139
      {test}                The test attribute represents the {expression}; the {namespace bindings} and
140
                            {base URI} are represented by the in-scope namespace bindings and base URI of the
141
                            scm:alternativeType element itself. The {default namespace} property is 
142
							represented by the defaultNamespace property.
143
      {type definition}     The type attribute
144
      </xs:documentation>
145
    </xs:annotation>  
146
    <xs:complexType>
147
	  <xs:attribute name="type" use="required" type="scm:typeReferenceType"/>
148
	  <xs:attribute name="test" use="required" type="scm:xpathExpressionType"/>
149
	  <xs:attribute name="defaultNamespace" use="required" type="scm:uriType"/>
150
	  <xs:attribute ref="xml:base" use="optional"/>
151
	</xs:complexType>
152
  </xs:element>
153
  
154
  <xs:element name="identityConstraint">
155
    <xs:annotation>
156
        <xs:documentation>
157
            A reference to an identityConstraint in an element declaration. In XSD 1.1,
158
            identity constraints can effectively be shared between multiple element declarations
159
            by use of the "ref" attribute. In SCM, the identity constraints are represented
160
            as first-class components, referenced from all the element declarations that use
161
            them; none of these is considered to be the primary "owner" or "container" of the
162
            constraint.
163
        </xs:documentation>
164
    </xs:annotation>
165
    <xs:complexType>
166
	  <xs:attribute name="ref" use="required" type="xs:IDREF"/>
167
	  <xs:attribute ref="xml:base" use="optional"/>
168
	</xs:complexType>
169
  </xs:element>  
170

    
171
  <xs:element name="complexType">
172
    <xs:annotation>
173
      <xs:documentation>
174
      Corresponds to a complex type definition schema component (3.4.1). 
175
      The properties are represented as follows:
176
      {annotations}          Not retained in SCM  
177
      {name}                 The name attribute
178
      {target namespace}     The targetNamespace attribute
179
      {base type definition} The base attribute
180
      {final}                The final attribute 
181
      {context}              Not retained in SCM
182
      {derivation method}    The derivationMethod attribute
183
      {abstract}             The abstract attribute
184
      {attribute uses}       The contained scm:attributeUse elements
185
      {attribute wildcard}   The contained scm:attributeWildcard element
186
      {content type}.{variety}
187
                             The variety attribute
188
      {content type}.{particle}
189
                             The contained scm:abstractParticle element 
190
                             (elementParticle, elementWildcard, or modelGroupParticle)
191
      {content type}.{open content}.{mode}
192
                             The mode attribute of the child scm:openContent element
193
      {content type}.{open content}.{wildcard}                       
194
                             The scm:wildcard referenced by the child cm:openContent element
195
      {content type}.{simple type definition}
196
                             The simpleType attribute                                               
197
      {prohibited substitutions}
198
                             The block attribute
199
                          
200
      </xs:documentation>
201
    </xs:annotation>  
202
    <xs:complexType>
203
      <xs:sequence>
204
        <xs:element minOccurs="0" maxOccurs="1" ref="scm:openContent"/>
205
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:attributeUse"/>
206
        <xs:element minOccurs="0" maxOccurs="1" ref="scm:attributeWildcard"/>
207
        <xs:element minOccurs="0" ref="scm:abstractParticle"/>
208
        <xs:element minOccurs="0" ref="scm:finiteStateMachine"/>
209
		<xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:assertion"/>
210
      </xs:sequence>
211
      <xs:attribute name="abstract" use="required" type="xs:boolean"/>
212
      <xs:attribute name="base" use="required" type="scm:typeReferenceType"/>
213
      <xs:attribute name="derivationMethod" use="required" type="scm:derivationMethodType"/>
214
      <xs:attribute name="block" use="optional" type="scm:blockType"/>
215
      <xs:attribute name="final" use="optional" type="scm:finalType"/>
216
      <xs:attribute name="id" use="required" type="xs:ID"/>
217
      <xs:attribute name="name" type="xs:NCName"/>
218
      <xs:attribute name="simpleType" type="scm:typeReferenceType"/>
219
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
220
      <xs:attribute name="variety" use="required" type="scm:complexVarietyType"/>
221
    </xs:complexType>
222
  </xs:element>
223
  
224
  <xs:element name="openContent">
225
    <xs:annotation>
226
      <xs:documentation>
227
      Corresponds to an Open Content property record (3.4.1). 
228
      The properties are represented as follows:
229
      {mode}            The mode attribute  
230
      {wildcard}        The wildcard child element  
231
      </xs:documentation>
232
    </xs:annotation> 
233
    <xs:complexType>
234
      <xs:attribute name="mode" type="scm:openContentModeType"/>
235
      <xs:attribute name="wildcard" type="xs:IDREF"/>  
236
    </xs:complexType>
237
  </xs:element>
238

    
239
  <xs:element name="attributeUse">
240
    <xs:annotation>
241
      <xs:documentation>
242
      Corresponds to an attribute use schema component (3.5.1). 
243
      The properties are represented as follows:
244
      {annotations}            Not retained in SCM  
245
      {required}               The required attribute
246
      {attribute declaration}  The ref attribute
247
      {value constraint}       The "default" attributes (containing the lexical form of the value)
248
	                           or the child element "fixed" (containing the typed value)      
249
      </xs:documentation>
250
    </xs:annotation>  
251
    <xs:complexType>
252
      <xs:sequence>
253
        <xs:choice>
254
          <xs:element ref="scm:fixed" minOccurs="0" maxOccurs="1"/>
255
          <xs:element ref="scm:default" minOccurs="0" maxOccurs="1"/>
256
        </xs:choice>
257
	    </xs:sequence>
258
      <xs:attribute name="default" type="xs:string"/>
259
      <xs:attribute name="ref" use="required" type="xs:IDREF"/>
260
      <xs:attribute name="required" use="required" type="xs:boolean"/>
261
      <xs:attribute name="inheritable" use="required" type="xs:boolean"/>      
262
    </xs:complexType>
263
  </xs:element>
264
  
265
  <xs:element name="attributeWildcard">
266
    <xs:annotation>
267
      <xs:documentation>
268
      Represents an attribute wildcard
269
      </xs:documentation>
270
    </xs:annotation>  
271
    <xs:complexType>
272
      <xs:attribute name="ref" use="required" type="xs:IDREF"/>
273
    </xs:complexType>
274
  </xs:element>
275
  
276
  <xs:element name="fixed" type="scm:typedValueType"/> 
277
  <xs:element name="default" type="scm:typedValueType"/> 
278

    
279
  <xs:element name="abstractParticle" abstract="true" type="scm:abstractParticleType">
280
    <xs:annotation>
281
      <xs:documentation>
282
      Corresponds to a Particle Schema Component (3.9.1). There are three concrete elements
283
      in the substitution group: elementParticle, elementWildcard, and modelGroupParticle
284
      The properties are represented as follows:
285
      {annotations}            Not retained in SCM  
286
      {min Occurs}             The minOccurs attribute
287
      {max Occurs}             The maxOccurs attribute
288
      {term}                   depends on the concrete subtype   
289
      </xs:documentation>
290
    </xs:annotation>
291
  </xs:element>    
292

    
293
  <xs:element name="elementWildcard" substitutionGroup="scm:abstractParticle">
294
    <xs:annotation>
295
      <xs:documentation>
296
      Corresponds to a Particle Schema Component (3.9.1) whose {term} is a wildcard
297
      The properties are represented as follows:
298
      {annotations}            Not retained in SCM  
299
      {min Occurs}             The minOccurs attribute
300
      {max Occurs}             The maxOccurs attribute
301
      {term}                   The scm:wildcard element referenced by the ref attribute  
302
      </xs:documentation>
303
    </xs:annotation>  
304
    <xs:complexType>
305
      <xs:complexContent>
306
        <xs:extension base="scm:abstractParticleType">
307
          <xs:attribute name="ref" use="required" type="xs:IDREF"/>
308
        </xs:extension>
309
      </xs:complexContent>
310
    </xs:complexType>
311
  </xs:element>
312

    
313
  <xs:element name="wildcard">
314
    <xs:annotation>
315
      <xs:documentation>
316
      Corresponds to a Wildcard Schema Component (3.10.1) representing either an element wildcard (xs:any)
317
      or an attribute wildcard (xs:anyAttribute)
318
      The properties are represented as follows:
319
      {annotations}            Not retained in SCM  
320
      {namespace constraint}.{variety}
321
                               The constraint attribute
322
      {namespace constraint}.{namespaces}
323
                               The namespaces attribute
324
      {process contents}       The processContents attribute         
325
      </xs:documentation>
326
    </xs:annotation>  
327
    <xs:complexType>
328
      <xs:attribute name="constraint" use="required" type="xs:NCName"/>
329
      <xs:attribute name="id" use="required" type="xs:ID"/>
330
      <xs:attribute name="namespaces" type="scm:namespaceListType"/>
331
      <xs:attribute name="processContents" use="required" type="scm:processContentsType"/>
332
      <xs:attribute name="notQName" use="optional" type="scm:notQNameListType"/>
333
    </xs:complexType>
334
  </xs:element>
335

    
336
  <xs:element name="finiteStateMachine">
337
    <xs:annotation>
338
      <xs:documentation>
339
      </xs:documentation>
340
    </xs:annotation>  
341
    <xs:complexType>
342
      <xs:sequence>
343
        <xs:element maxOccurs="unbounded" ref="scm:state"/>
344
      </xs:sequence>
345
      <xs:attribute name="initialState" use="required" type="xs:integer"/>
346
    </xs:complexType>
347
  </xs:element>
348

    
349
  <xs:element name="state">
350
    <xs:annotation>
351
      <xs:documentation>
352
      </xs:documentation>
353
    </xs:annotation>  
354
    <xs:complexType>
355
      <xs:sequence>
356
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:edge"/>
357
      </xs:sequence>
358
      <xs:attribute name="afterMax" type="xs:integer"/>
359
      <xs:attribute name="final" type="xs:boolean"/>
360
      <xs:attribute name="maxOccurs" type="scm:maxOccursType"/>
361
      <xs:attribute name="minOccurs" type="xs:integer"/>
362
      <xs:attribute name="nr" use="required" type="xs:integer"/>
363
    </xs:complexType>
364
  </xs:element>
365

    
366
  <xs:element name="edge">
367
    <xs:annotation>
368
      <xs:documentation>
369
      </xs:documentation>
370
    </xs:annotation>  
371
    <xs:complexType>
372
      <xs:attribute name="term" use="required" type="xs:IDREF"/>
373
      <xs:attribute name="to" use="required" type="xs:integer"/>
374
    </xs:complexType>
375
  </xs:element>
376

    
377
  <xs:element name="simpleType">
378
    <xs:annotation>
379
      <xs:documentation>
380
      Corresponds to a simple type definition schema component (3.16.1). 
381
      The properties are represented as follows:
382
      {annotations}          Not retained in SCM  
383
      {name}                 The name attribute
384
      {target namespace}     The targetNamespace attribute
385
      {final}                The final attribute 
386
      {context}              Not retained in SCM      
387
      {base type definition} The base attribute
388
      {facets}               The contained scm:abstractFacet elements
389
      {fundamental facets}   Not represented in SCM
390
      {variety}              The variety attribute
391
      {primitive type definition}
392
                             The primitiveType attribute
393
      {item type definition} The itemType attribute 
394
      {member type definitions}
395
                             The memberTypes attribute                       
396
      </xs:documentation>
397
    </xs:annotation>  
398
    <xs:complexType>
399
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
400
        <xs:element ref="scm:abstractFacet"/>
401
      </xs:sequence>
402
      <xs:attribute name="base" use="required" type="scm:typeReferenceType"/>
403
      <xs:attribute name="final" use="optional" type="scm:finalType"/>
404
      <xs:attribute name="id" use="required" type="xs:ID"/>
405
	  <xs:attribute name="itemType" use="optional" type="scm:typeReferenceType"/>
406
	  <xs:attribute name="memberTypes" use="optional" type="scm:typeReferenceListType"/>
407
      <xs:attribute name="name" type="xs:NCName"/>
408
      <xs:attribute name="primitiveType" use="optional" type="scm:builtInTypeReferenceType"/>
409
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
410
      <xs:attribute name="variety" use="required" type="xs:NCName"/>
411
    </xs:complexType>
412
  </xs:element>
413

    
414
  <xs:element name="abstractFacet" abstract="true">
415
    <xs:annotation>
416
      <xs:documentation>
417
      Corresponds to a Constraining Facet schema component (Part 2, 4.3)
418
      </xs:documentation>
419
    </xs:annotation>
420
  </xs:element>    
421

    
422
  <xs:element name="whiteSpace" substitutionGroup="scm:abstractFacet">
423
    <xs:annotation>
424
      <xs:documentation>
425
      Corresponds to the whiteSpace schema component (Part 2, 4.3.6.1). 
426
      The properties are represented as follows:
427
      {annotations}          Not retained in SCM
428
      {value}                The value attribute
429
      {fixed}                The fixed attribute  
430
      </xs:documentation>
431
    </xs:annotation>  
432
    <xs:complexType>
433
      <xs:attribute name="value" use="required" type="scm:whitespaceType"/>
434
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
435
    </xs:complexType>
436
  </xs:element>
437
  
438
  <xs:element name="assert" substitutionGroup="scm:abstractFacet">
439
    <xs:annotation>
440
      <xs:documentation>
441
      Corresponds to one assertion in the assertions facet schema component (Part 2, 4.3.11.1). 
442
      The properties are represented as follows:
443
      {annotations}          Not retained in SCM
444
      {value}                The contained scm assertion element
445
      {fixed}                The fixed attribute        
446
      </xs:documentation>
447
    </xs:annotation>  
448
    <xs:complexType>
449
      <xs:sequence>
450
        <xs:element ref="scm:assertion" minOccurs="1" maxOccurs="1"/>
451
      </xs:sequence>  
452
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
453
    </xs:complexType>
454
  </xs:element>  
455

    
456
  <xs:element name="totalDigits" substitutionGroup="scm:abstractFacet">
457
    <xs:annotation>
458
      <xs:documentation>
459
      Corresponds to the totalDigits schema component (Part 2, 4.3.11.1). 
460
      The properties are represented as follows:
461
      {annotations}          Not retained in SCM
462
      {value}                The value attribute
463
      {fixed}                The fixed attribute        
464
      </xs:documentation>
465
    </xs:annotation>  
466
    <xs:complexType>
467
      <xs:attribute name="value" use="required" type="xs:positiveInteger"/>
468
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
469
    </xs:complexType>
470
  </xs:element>
471

    
472
  <xs:element name="fractionDigits" substitutionGroup="scm:abstractFacet">
473
    <xs:annotation>
474
      <xs:documentation>
475
      Corresponds to the fractionDigits schema component (Part 2, 4.3.11.1). 
476
      The properties are represented as follows:
477
      {annotations}          Not retained in SCM
478
      {value}                The value attribute
479
      {fixed}                The fixed attribute       
480
      </xs:documentation>
481
    </xs:annotation>  
482
    <xs:complexType>
483
      <xs:attribute name="value" use="required" type="xs:nonNegativeInteger"/>
484
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
485
    </xs:complexType>
486
  </xs:element>
487

    
488
  <xs:element name="enumeration" substitutionGroup="scm:abstractFacet">
489
    <xs:annotation>
490
      <xs:documentation>
491
      Corresponds to (part of) the enumeration schema component (Part 2, 4.3.11.1).
492
      Each value in the {value} of the enumeration component is represented by a separate
493
      scm:enumeration element. 
494
      The properties are represented as follows:
495
      {annotations}          Not retained in SCM
496
      {value}                The value attribute (as a lexical representation of the value)
497
      The attribute namespaceSensitive is set to true if the value is (or contains) a QName or NOTATION
498
      </xs:documentation>
499
    </xs:annotation>  
500
    <xs:complexType>
501
      <xs:attribute name="value" use="required"/>
502
      <xs:attribute name="namespaceSensitive" use="optional" type="xs:boolean" default="false"/>
503
    </xs:complexType>
504
  </xs:element>
505

    
506
  <xs:element name="pattern" substitutionGroup="scm:abstractFacet">
507
    <xs:annotation>
508
      <xs:documentation>
509
      Corresponds to the pattern schema component (Part 2, 4.3.4.1).
510
      The properties are represented as follows:
511
      {annotations}          Not retained in SCM
512
      {value}                The value attribute     
513
      </xs:documentation>
514
    </xs:annotation>  
515
    <xs:complexType>
516
      <xs:attribute name="value" use="required" type="xs:string"/>
517
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
518
    </xs:complexType>
519
  </xs:element>
520

    
521
  <xs:element name="minInclusive" substitutionGroup="scm:abstractFacet">
522
    <xs:annotation>
523
      <xs:documentation>
524
      Corresponds to the minInclusive schema component (Part 2, 4.3.10.1).
525
      The properties are represented as follows:
526
      {annotations}          Not retained in SCM
527
      {value}                The value attribute (as a lexical representation of the value)
528
      {fixed}                The fixed attribute      
529
      </xs:documentation>
530
    </xs:annotation>  
531
    <xs:complexType>
532
      <xs:attribute name="value" use="required"/>
533
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
534
    </xs:complexType>
535
  </xs:element>
536

    
537
  <xs:element name="maxInclusive" substitutionGroup="scm:abstractFacet">
538
    <xs:annotation>
539
      <xs:documentation>
540
      Corresponds to the maxInclusive schema component (Part 2, 4.3.8.1).
541
      The properties are represented as follows:
542
      {annotations}          Not retained in SCM
543
      {value}                The value attribute (as a lexical representation of the value)
544
      {fixed}                The fixed attribute       
545
      </xs:documentation>
546
    </xs:annotation>  
547
    <xs:complexType>
548
      <xs:attribute name="value" use="required"/>
549
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
550
    </xs:complexType>
551
  </xs:element>
552
  
553
  <xs:element name="minExclusive" substitutionGroup="scm:abstractFacet">
554
    <xs:annotation>
555
      <xs:documentation>
556
      Corresponds to the minExclusive schema component (Part 2, 4.3.9.1).
557
      The properties are represented as follows:
558
      {annotations}          Not retained in SCM
559
      {value}                The value attribute (as a lexical representation of the value)
560
      {fixed}                The fixed attribute      
561
      </xs:documentation>
562
    </xs:annotation>  
563
    <xs:complexType>
564
      <xs:attribute name="value" use="required"/>
565
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
566
    </xs:complexType>
567
  </xs:element>
568

    
569
  <xs:element name="maxExclusive" substitutionGroup="scm:abstractFacet">
570
    <xs:annotation>
571
      <xs:documentation>
572
      Corresponds to the maxExclusive schema component (Part 2, 4.3.8.1).
573
      The properties are represented as follows:
574
      {annotations}          Not retained in SCM
575
      {value}                The value attribute (as a lexical representation of the value)
576
      {fixed}                The fixed attribute       
577
      </xs:documentation>
578
    </xs:annotation>  
579
    <xs:complexType>
580
      <xs:attribute name="value" use="required"/>
581
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
582
    </xs:complexType>
583
  </xs:element>  
584

    
585
  <xs:element name="length" substitutionGroup="scm:abstractFacet">
586
    <xs:annotation>
587
      <xs:documentation>
588
      Corresponds to the length schema component (Part 2, 4.3.1.1).
589
      The properties are represented as follows:
590
      {annotations}          Not retained in SCM
591
      {value}                The value attribute 
592
      {fixed}                The fixed attribute       
593
      </xs:documentation>
594
    </xs:annotation>  
595
    <xs:complexType>
596
      <xs:attribute name="value" use="required" type="xs:nonNegativeInteger"/>
597
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
598
    </xs:complexType>
599
  </xs:element>
600

    
601
  <xs:element name="minLength" substitutionGroup="scm:abstractFacet">
602
    <xs:annotation>
603
      <xs:documentation>
604
      Corresponds to the minLength schema component (Part 2, 4.3.2.1).
605
      The properties are represented as follows:
606
      {annotations}          Not retained in SCM
607
      {value}                The value attribute 
608
      {fixed}                The fixed attribute       
609
      </xs:documentation>
610
    </xs:annotation>  
611
    <xs:complexType>
612
      <xs:attribute name="value" use="required" type="xs:nonNegativeInteger"/>
613
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
614
    </xs:complexType>
615
  </xs:element>
616

    
617
  <xs:element name="maxLength" substitutionGroup="scm:abstractFacet">
618
    <xs:annotation>
619
      <xs:documentation>
620
      Corresponds to the maxLength schema component (Part 2, 4.3.3.1).
621
      The properties are represented as follows:
622
      {annotations}          Not retained in SCM
623
      {value}                The value attribute 
624
      {fixed}                The fixed attribute
625
      </xs:documentation>
626
    </xs:annotation>  
627
    <xs:complexType>
628
      <xs:attribute name="value" use="required" type="xs:nonNegativeInteger"/>
629
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
630
    </xs:complexType>
631
  </xs:element>
632
  
633
  <xs:element name="explicitTimezone" substitutionGroup="scm:abstractFacet">
634
    <xs:annotation>
635
      <xs:documentation>
636
      Corresponds to the explicitTimezone schema component (New in XSD 1.1, Part 2, 4.3.16).
637
      The properties are represented as follows:
638
      {annotations}          Not retained in SCM
639
      {value}                The value attribute 
640
      {fixed}                The fixed attribute
641
      </xs:documentation>
642
    </xs:annotation>  
643
    <xs:complexType>
644
      <xs:attribute name="value" use="required" type="scm:explicitTimezoneType"/>
645
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
646
    </xs:complexType>
647
  </xs:element>
648
  
649
  <xs:element name="minScale" substitutionGroup="scm:abstractFacet">
650
    <xs:annotation>
651
      <xs:documentation>
652
      Corresponds to the minScale schema component.
653
      The properties are represented as follows:
654
      {annotations}          Not retained in SCM
655
      {value}                The value attribute (as a lexical representation of the value)
656
      {fixed}                The fixed attribute      
657
      </xs:documentation>
658
    </xs:annotation>  
659
    <xs:complexType>
660
      <xs:attribute name="value" use="required"/>
661
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
662
    </xs:complexType>
663
  </xs:element>
664

    
665
  <xs:element name="maxScale" substitutionGroup="scm:abstractFacet">
666
    <xs:annotation>
667
      <xs:documentation>
668
      Corresponds to the maxScale schema component.
669
      The properties are represented as follows:
670
      {annotations}          Not retained in SCM
671
      {value}                The value attribute (as a lexical representation of the value)
672
      {fixed}                The fixed attribute       
673
      </xs:documentation>
674
    </xs:annotation>  
675
    <xs:complexType>
676
      <xs:attribute name="value" use="required"/>
677
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
678
    </xs:complexType>
679
  </xs:element>
680
  
681
  <xs:element name="preprocess" substitutionGroup="scm:abstractFacet">
682
    <xs:annotation>
683
      <xs:documentation>
684
      Corresponds to the Saxon-specific preprocess facet schema component. 
685
      The first assertion element represents the preprocessing action to be performed; 
686
      the second (if present) represents the reverse action.
687
      </xs:documentation>
688
    </xs:annotation>  
689
    <xs:complexType>
690
      <xs:sequence>
691
        <xs:element ref="scm:assertion" minOccurs="1" maxOccurs="2"/>
692
      </xs:sequence>  
693
      <xs:attribute name="fixed" use="optional" type="xs:boolean" default="false"/>
694
    </xs:complexType>
695
  </xs:element>      
696

    
697
  <xs:element name="elementParticle" substitutionGroup="scm:abstractParticle">
698
    <xs:annotation>
699
      <xs:documentation>
700
      Corresponds to a Particle Schema Component (3.9.1) whose {term} is an element declaration
701
      The properties are represented as follows:
702
      {annotations}            Not retained in SCM  
703
      {min Occurs}             The minOccurs attribute
704
      {max Occurs}             The maxOccurs attribute
705
      {term}                   The element declaration referenced by the ref attribute   
706
      </xs:documentation>
707
    </xs:annotation>  
708
    <xs:complexType>
709
      <xs:complexContent>
710
        <xs:extension base="scm:abstractParticleType">
711
          <xs:attribute name="ref" use="required" type="xs:IDREF"/>
712
        </xs:extension>
713
      </xs:complexContent>  
714
    </xs:complexType>
715
  </xs:element>
716

    
717
  <xs:element name="modelGroupParticle" substitutionGroup="scm:abstractParticle">
718
    <xs:annotation>
719
      <xs:documentation>
720
      Corresponds to a Particle Schema Component (3.9.1) whose {term} is a model group.
721
      In the W3C Schema Component Model, named model groups exist as Model Group Definition
722
      components, but they are never referenced, because the references are fully expanded
723
      (recursively). In this model, the references remain as references to scm:modelGroupDefinition
724
      elements.
725
      The properties are represented as follows:
726
      {annotations}            Not retained in SCM  
727
      {min Occurs}             The minOccurs attribute
728
      {max Occurs}             The maxOccurs attribute
729
      {term}                   Either the contained sequence of scm:abstractModelGroup elements,
730
                               or the scm:modelGroupDefinition referenced by the ref attribute        
731
      </xs:documentation>
732
    </xs:annotation>  
733
    <xs:complexType>
734
      <xs:complexContent>
735
        <xs:extension base="scm:abstractParticleType">
736
          <xs:sequence>
737
            <xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:abstractModelGroup"/>
738
          </xs:sequence>
739
          <xs:attribute name="ref" type="xs:IDREF"/>  
740
        </xs:extension>
741
      </xs:complexContent>      
742
    </xs:complexType>
743
  </xs:element>
744

    
745
  <xs:element name="abstractModelGroup" abstract="true">
746
    <xs:annotation>
747
      <xs:documentation>
748
      Corresponds to a ModelGroup component (3.8.1).
749
      The properties are represented as follows:
750
      {annotations}            Not retained in SCM  
751
      {compositor}             The specific element name: all, choice, or sequence
752
      {particles}              The contained scm:abstractParticle elements 
753
                               (elementParticle, elementWildcard, or modelGroupParticle)  
754
      </xs:documentation>
755
    </xs:annotation>  
756
   <xs:complexType>
757
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
758
        <xs:element ref="scm:abstractParticle"/>
759
      </xs:sequence>
760
    </xs:complexType>
761
  </xs:element>
762

    
763
  <xs:element name="sequence" substitutionGroup="scm:abstractModelGroup">
764
    <xs:annotation>
765
      <xs:documentation>
766
      Corresponds to a ModelGroup component (3.8.1) whose compositor is "sequence"
767
      The properties are represented as follows:
768
      {annotations}            Not retained in SCM  
769
      {compositor}             Always "sequence"
770
      {particles}              The contained scm:abstractParticle elements 
771
                               (elementParticle, elementWildcard, or modelGroupParticle)       
772
      </xs:documentation>
773
    </xs:annotation>
774
  </xs:element>    
775
 
776
  <xs:element name="choice" substitutionGroup="scm:abstractModelGroup">
777
    <xs:annotation>
778
      <xs:documentation>
779
      Corresponds to a ModelGroup component (3.8.1) whose compositor is "choice"
780
      The properties are represented as follows:
781
      {annotations}            Not retained in SCM  
782
      {compositor}             Always "choice"
783
      {particles}              The contained scm:abstractParticle elements 
784
                               (elementParticle, elementWildcard, or modelGroupParticle)       
785
      </xs:documentation>
786
    </xs:annotation>
787
  </xs:element>
788

    
789
  <xs:element name="all" substitutionGroup="scm:abstractModelGroup">
790
    <xs:annotation>
791
      <xs:documentation>
792
      Corresponds to a ModelGroup component (3.8.1) whose compositor is "all"
793
      The properties are represented as follows:
794
      {annotations}            Not retained in SCM  
795
      {compositor}             Always "all"
796
      {particles}              The contained scm:abstractParticle elements 
797
                               (elementParticle, elementWildcard, or modelGroupParticle)       
798
      </xs:documentation>
799
    </xs:annotation>
800
  </xs:element>  
801
 
802
  <xs:element name="key" type="scm:identityConstraintType">
803
    <xs:annotation>
804
      <xs:documentation>
805
      Corresponds to an IdentityConstraint Definition component (3.11.1) whose category is "key"
806
      The properties are represented as follows:
807
      {annotations}            Not retained in SCM  
808
      {name}                   The name attribute
809
      {target namespace}       The targetNamespace attribute
810
      {identity-constraint category}
811
                               Always "key"
812
      {selector}               The contained scm:selector element
813
      {fields}                 The sequence of contained scm:field elements                         
814
      </xs:documentation>
815
    </xs:annotation>
816
  </xs:element>
817

    
818
  <xs:element name="unique" type="scm:identityConstraintType">
819
    <xs:annotation>
820
      <xs:documentation>
821
      Corresponds to an IdentityConstraint Definition component (3.11.1) whose category is "unique"
822
      The properties are represented as follows:
823
      {annotations}            Not retained in SCM  
824
      {name}                   The name attribute
825
      {target namespace}       The targetNamespace attribute
826
      {identity-constraint category}
827
                               Always "unique"
828
      {selector}               The contained scm:selector element
829
      {fields}                 The sequence of contained scm:field elements      
830
      </xs:documentation>
831
    </xs:annotation>
832
  </xs:element>
833

    
834
  <xs:element name="keyref" type="scm:identityConstraintType">
835
    <xs:annotation>
836
      <xs:documentation>
837
      Corresponds to an IdentityConstraint Definition component (3.11.1) whose category is "keyref"
838
      The properties are represented as follows:
839
      {annotations}            Not retained in SCM  
840
      {name}                   The name attribute
841
      {target namespace}       The targetNamespace attribute
842
      {identity-constraint category}
843
                               Always "keyref"
844
      {selector}               The contained scm:selector element
845
      {fields}                 The sequence of contained scm:field elements
846
      {referenced key}         The scm:key or scm:unique element referenced by the key attribute
847
      </xs:documentation>
848
    </xs:annotation>
849
  </xs:element>
850

    
851
  <xs:element name="selector" type="scm:xpathContainerType">
852
    <xs:annotation>
853
      <xs:documentation>
854
      Represents the {selector} property of an Identity-Constraint Definition (3.11.1)
855
      </xs:documentation>
856
    </xs:annotation>
857
  </xs:element>
858
  
859

    
860
  <xs:element name="field" type="scm:xpathContainerType">
861
    <xs:annotation>
862
      <xs:documentation>
863
      Represents one property record within the {fields} property of an Identity-Constraint Definition (3.11.1)
864
      </xs:documentation>
865
    </xs:annotation>
866
  </xs:element>
867

    
868
  <xs:element name="assertion">
869
    <xs:annotation>
870
      <xs:documentation>
871
      </xs:documentation>
872
    </xs:annotation>
873
    <xs:complexType>
874
	  <xs:attribute name="test" use="required" type="scm:xpathExpressionType"/>
875
	  <xs:attribute name="defaultNamespace" use="required" type="scm:uriType"/>
876
	  <xs:attribute ref="xml:base" use="optional"/>
877
	</xs:complexType>
878
  </xs:element>
879

    
880
  <xs:element name="attributeGroup">
881
    <xs:annotation>
882
      <xs:documentation>
883
      Corresponds to an Attribute Group Definition Schema Component (3.6.1). Note that attribute group
884
      definitions are not referenced from any other components in the schema (their expansion is included in 
885
      complex type definition components).
886
      The properties are represented as follows:
887
      {annotations}            Not retained in SCM  
888
      {name}                   The name attribute
889
      {target namespace}       The targetNamespace attribute
890
      {attribute uses}         The contained scm:attributeUse elements
891
      {attribute wildcard}     The contained scm:attributeWildcard element
892
      </xs:documentation>
893
    </xs:annotation>  
894
    <xs:complexType>
895
      <xs:sequence>
896
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:attributeUse"/>
897
        <xs:element minOccurs="0" maxOccurs="1" ref="scm:attributeWildcard"/>
898
      </xs:sequence>
899
      <xs:attribute name="id" use="required" type="xs:ID"/>
900
      <xs:attribute name="name" type="xs:NCName"/>
901
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
902
    </xs:complexType>
903
  </xs:element>
904
  
905
  <xs:element name="modelGroupDefinition">
906
    <xs:annotation>
907
      <xs:documentation>
908
      Corresponds to a Model Group Definition Schema Component (3.7.1). In the W3C model, model group
909
      definitions are not referenced from any other components in the schema (their expansion is included in 
910
      complex type definition components). In this model, however, an scm:modeGroupDefinition can be referenced
911
      from an scm:modelGroupReference.
912
      The properties are represented as follows:
913
      {annotations}            Not retained in SCM  
914
      {name}                   The name attribute
915
      {target namespace}       The targetNamespace attribute
916
      {model group}            The contained sequence of scm:abstractParticle elements. This is implicitly
917
                               treated as a sequence model group.
918
      </xs:documentation>
919
    </xs:annotation>  
920
    <xs:complexType>
921
      <xs:sequence>
922
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="scm:abstractParticle"/>
923
      </xs:sequence>
924
      <xs:attribute name="id" use="required" type="xs:ID"/>
925
      <xs:attribute name="name" type="xs:NCName"/>
926
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
927
    </xs:complexType>
928
  </xs:element>  
929
  
930
  <xs:element name="notation">
931
    <xs:annotation>
932
      <xs:documentation>
933
      Corresponds to an Notation Declaration Schema Component (3.14.1). 
934
      The properties are represented as follows:
935
      {annotations}            Not retained in SCM  
936
      {name}                   The name attribute
937
      {target namespace}       The targetNamespace attribute
938
      {system identifier}      The systemId attribute
939
      {public identifier}      The publicId attribute
940
      </xs:documentation>
941
    </xs:annotation>  
942
    <xs:complexType>
943
      <xs:attribute name="id" use="required" type="xs:ID"/>
944
      <xs:attribute name="name" type="xs:NCName"/>
945
      <xs:attribute name="targetNamespace" type="scm:uriType"/>
946
      <xs:attribute name="systemId" type="scm:uriType"/>
947
      <xs:attribute name="publicId" type="xs:string"/>
948
    </xs:complexType>
949
  </xs:element>  
950

    
951
  <xs:complexType name="abstractParticleType" abstract="true">
952
    <xs:annotation>
953
      <xs:documentation>
954
      </xs:documentation>
955
    </xs:annotation>  
956
    <xs:attribute name="maxOccurs" use="required" type="scm:maxOccursType"/>
957
    <xs:attribute name="minOccurs" use="required" type="xs:nonNegativeInteger"/>
958
  </xs:complexType>	  
959

    
960
  <xs:complexType name="identityConstraintType">
961
    <xs:annotation>
962
      <xs:documentation>
963
      </xs:documentation>
964
    </xs:annotation>  
965
    <xs:sequence>
966
	  <xs:element ref="scm:selector"/>
967
	  <xs:element ref="scm:field" minOccurs="1" maxOccurs="unbounded"/>
968
    </xs:sequence>
969
    <xs:attribute name="id" use="required" type="xs:ID"/>
970
    <xs:attribute name="name" use="required" type="xs:NCName"/>
971
    <xs:attribute name="targetNamespace" use="optional" type="scm:uriType"/>
972
    <xs:attribute name="key" use="optional" type="xs:IDREF"/>
973
  </xs:complexType>
974

    
975
  <xs:complexType name="typedValueType">
976
    <xs:annotation>
977
	    <xs:documentation>
978
	    </xs:documentation>
979
	  </xs:annotation>
980
	  <xs:sequence>
981
	    <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
982
	  	  <xs:complexType>
983
		      <xs:attribute name="type" type="scm:builtInTypeReferenceType" use="required"/>
984
		      <xs:attribute name="value" type="xs:string" use="required"/>
985
		      <xs:attribute name="namespace" type="scm:uriType" use="optional"/>
986
		    </xs:complexType>
987
	    </xs:element>
988
	  </xs:sequence>
989
    <xs:attribute name="lexicalForm" type="xs:string" use="optional"/> <!-- introduced by bug 3711 -->
990
  </xs:complexType>
991

    
992
  <xs:complexType name="xpathContainerType">
993
    <xs:annotation>
994
      <xs:documentation>
995
      </xs:documentation>
996
    </xs:annotation>  
997
    <xs:attribute name="xpath" use="required" type="scm:xpathExpressionType"/>
998
    <xs:attribute name="defaultNamespace" use="required" type="scm:uriType"/>
999
    <xs:attribute name="type" use="optional" type="scm:builtInTypeReferenceType"/> <!-- TODO: only used for fields, not selectors -->
1000
    <xs:attribute ref="xml:base" use="optional"/>
1001
  </xs:complexType>
1002

    
1003
  <xs:simpleType name="blockType">
1004
    <xs:annotation>
1005
      <xs:documentation>
1006
      </xs:documentation>
1007
    </xs:annotation>  
1008
    <xs:list itemType="scm:derivationMethodType"/>
1009
  </xs:simpleType>
1010

    
1011
  <xs:simpleType name="builtInTypeReferenceType">
1012
    <xs:annotation>
1013
      <xs:documentation>
1014
        <p>A built-in type such as #string or #integer, optionally followed by "*" if list-valued.</p>
1015
      </xs:documentation>
1016
    </xs:annotation>  
1017
    <xs:restriction base="xs:string">
1018
      <xs:pattern value="#[a-zA-Z0-9]+\*?"/>
1019
    </xs:restriction>
1020
  </xs:simpleType>
1021
  
1022
  <xs:simpleType name="clarkNameType">
1023
     <xs:annotation>
1024
      <xs:documentation>
1025
        A qualified QName in Clark notation: {uri}local
1026
      </xs:documentation>
1027
    </xs:annotation> 
1028
    <xs:restriction base="xs:string">
1029
	  <xs:pattern value="\{[^{}]*\}\i\c*"/>
1030
    </xs:restriction>
1031
  </xs:simpleType>
1032

    
1033
  <xs:simpleType name="complexVarietyType">
1034
     <xs:annotation>
1035
      <xs:documentation>
1036
      </xs:documentation>
1037
    </xs:annotation> 
1038
    <xs:restriction base="xs:NCName">
1039
	  <xs:enumeration value="empty"/>
1040
	  <xs:enumeration value="simple"/>
1041
	  <xs:enumeration value="mixed"/>
1042
	  <xs:enumeration value="element-only"/>
1043
    </xs:restriction>
1044
  </xs:simpleType>
1045

    
1046
  <xs:simpleType name="derivationMethodType">
1047
     <xs:annotation>
1048
      <xs:documentation>
1049
      </xs:documentation>
1050
    </xs:annotation> 
1051
    <xs:restriction base="xs:NCName">
1052
	  <xs:enumeration value="extension"/>
1053
	  <xs:enumeration value="restriction"/>
1054
      <xs:enumeration value="substitution"/>
1055
	  <xs:enumeration value="list"/>
1056
	  <xs:enumeration value="union"/>
1057
    </xs:restriction>
1058
  </xs:simpleType>
1059
  
1060
  <xs:simpleType name="explicitTimezoneType">
1061
     <xs:annotation>
1062
      <xs:documentation>
1063
      Defines the permitted values of the explicitTimezone facet introduced in XSD 1.1
1064
      </xs:documentation>
1065
    </xs:annotation> 
1066
    <xs:restriction base="xs:NCName">
1067
	  <xs:enumeration value="required"/>
1068
	  <xs:enumeration value="prohibited"/>
1069
      <xs:enumeration value="optional"/>
1070
    </xs:restriction>
1071
  </xs:simpleType>  
1072

    
1073
  <xs:simpleType name="finalType">
1074
    <xs:annotation>
1075
      <xs:documentation>
1076
      </xs:documentation>
1077
    </xs:annotation>  
1078
    <xs:list itemType="scm:derivationMethodType"/>
1079
  </xs:simpleType>
1080

    
1081
  <xs:simpleType name="maxOccursType">
1082
    <xs:annotation>
1083
      <xs:documentation>
1084
      </xs:documentation>
1085
    </xs:annotation>  
1086
    <xs:union memberTypes="xs:nonNegativeInteger scm:unboundedType"/>
1087
  </xs:simpleType>
1088
  
1089
  <xs:simpleType name="namespaceListType">
1090
    <xs:annotation>
1091
      <xs:documentation>
1092
      </xs:documentation>
1093
    </xs:annotation>  
1094
    <xs:list itemType="scm:namespaceType"/>
1095
  </xs:simpleType>
1096
  
1097
  <xs:simpleType name="namespaceType">
1098
    <xs:annotation>
1099
      <xs:documentation>
1100
      </xs:documentation>
1101
    </xs:annotation>  
1102
    <xs:union memberTypes="scm:pseudoNamespaceType scm:uriType"/>
1103
  </xs:simpleType>    
1104
  
1105
  <xs:simpleType name="notQNameListType">
1106
    <xs:annotation>
1107
      <xs:documentation>
1108
      A list of tokens each of which is either ##defined, ##definedSibling, or a QName in Clark notation
1109
      </xs:documentation>
1110
    </xs:annotation>  
1111
    <xs:list itemType="scm:notQNameType"/>
1112
  </xs:simpleType>
1113
  
1114
  <xs:simpleType name="notQNameType">
1115
    <xs:annotation>
1116
      <xs:documentation>
1117
      </xs:documentation>
1118
    </xs:annotation>  
1119
    <xs:union memberTypes="scm:pseudoQNameType scm:clarkNameType xs:NCName"/>
1120
  </xs:simpleType>     
1121
  
1122
  <xs:simpleType name="openContentModeType">
1123
    <xs:annotation>
1124
      <xs:documentation>
1125
      Represents the open content mode (XSD 1.1): either "suffix" or "interleave"
1126
      </xs:documentation>
1127
    </xs:annotation>  
1128
    <xs:restriction base="xs:NCName">
1129
	  <xs:enumeration value="suffix"/>
1130
	  <xs:enumeration value="interleave"/>
1131
    </xs:restriction>
1132
  </xs:simpleType>    
1133

    
1134
  <xs:simpleType name="processContentsType">
1135
    <xs:annotation>
1136
      <xs:documentation>
1137
      </xs:documentation>
1138
    </xs:annotation>  
1139
    <xs:restriction base="xs:NCName">
1140
	  <xs:enumeration value="strict"/>
1141
	  <xs:enumeration value="lax"/>
1142
	  <xs:enumeration value="skip"/>
1143
    </xs:restriction>
1144
  </xs:simpleType>
1145
  
1146
  <xs:simpleType name="pseudoNamespaceType">
1147
    <xs:annotation>
1148
      <xs:documentation>
1149
      </xs:documentation>
1150
    </xs:annotation>  
1151
    <xs:restriction base="xs:string">
1152
	  <xs:enumeration value="##any"/>    
1153
	  <xs:enumeration value="##absent"/>
1154
	  <xs:enumeration value="##defaultNamespace"/>	  	  
1155
	  <xs:enumeration value="##local"/>	  
1156
	  <xs:enumeration value="##other"/>
1157
	  <xs:enumeration value="##targetNamespace"/>
1158
    </xs:restriction>
1159
  </xs:simpleType>
1160
  
1161
  <xs:simpleType name="pseudoQNameType">
1162
    <xs:annotation>
1163
      <xs:documentation>
1164
      </xs:documentation>
1165
    </xs:annotation>  
1166
    <xs:restriction base="xs:string">
1167
	  <xs:enumeration value="##defined"/>    
1168
	  <xs:enumeration value="##definedSibling"/>
1169
    </xs:restriction>
1170
  </xs:simpleType>  
1171

    
1172
  <xs:simpleType name="typeReferenceType">
1173
    <xs:annotation>
1174
      <xs:documentation>
1175
        A reference to a type, which may either be a built-in type (written for example #string or #NCName)
1176
        or a user-defined type represented by its ID value.
1177
      </xs:documentation>
1178
    </xs:annotation>  
1179
    <xs:union memberTypes="scm:builtInTypeReferenceType xs:IDREF"/>
1180
  </xs:simpleType>
1181

    
1182
  <xs:simpleType name="typeReferenceListType">
1183
    <xs:annotation>
1184
      <xs:documentation>
1185
      </xs:documentation>
1186
    </xs:annotation>  
1187
    <xs:list itemType="scm:typeReferenceType"/>
1188
  </xs:simpleType>
1189

    
1190
  <xs:simpleType name="unboundedType">
1191
    <xs:annotation>
1192
      <xs:documentation>
1193
      </xs:documentation>
1194
    </xs:annotation>  
1195
    <xs:restriction base="xs:NCName">
1196
	<xs:enumeration value="unbounded"/>
1197
    </xs:restriction>
1198
 </xs:simpleType>
1199
 
1200
 <xs:simpleType name="uriType">
1201
   <xs:annotation>
1202
     <xs:documentation>
1203
	 We don't use xs:anyURI because we don't want to be prescriptive about namespace URIs
1204
	 </xs:documentation>
1205
   </xs:annotation>
1206
   <xs:restriction base="xs:token">
1207
     <xs:pattern value="[^\s\r\n\t]*"/>
1208
   </xs:restriction>
1209
 </xs:simpleType> 
1210

    
1211
  <xs:simpleType name="whitespaceType">
1212
    <xs:annotation>
1213
      <xs:documentation>
1214
      </xs:documentation>
1215
    </xs:annotation>  
1216
    <xs:restriction base="xs:NCName">
1217
      <xs:enumeration value="preserve"/>
1218
      <xs:enumeration value="replace"/>
1219
      <xs:enumeration value="collapse"/>
1220
    </xs:restriction>
1221
 </xs:simpleType> 
1222
    
1223
  <xs:simpleType name="xpathExpressionType">
1224
    <xs:annotation>
1225
      <xs:documentation>
1226
        An XPath expression
1227
      </xs:documentation>
1228
    </xs:annotation>  
1229
    <xs:restriction base="xs:string">
1230
	<xs:pattern value=".+"/>
1231
    </xs:restriction>
1232
  </xs:simpleType> 
1233
  
1234
  <xs:simpleType name="xsdVersionType">
1235
    <xs:annotation>
1236
      <xs:documentation>
1237
        A string representing a version of the XSD language: either "1.0" or "1.1"
1238
      </xs:documentation>
1239
    </xs:annotation>  
1240
    <xs:restriction base="xs:string">
1241
	  <xs:enumeration value="1.0"/>
1242
	  <xs:enumeration value="1.1"/>
1243
    </xs:restriction>
1244
  </xs:simpleType>  
1245

    
1246

    
1247

    
1248

    
1249
</xs:schema>
(2-2/2)