This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 203793
Collapse All | Expand All

(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/AbstractElementTest.java (+82 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2011 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU General
10
 * Public License Version 2 only ("GPL") or the Common Development and
11
 * Distribution License("CDDL") (collectively, the "License"). You may not use
12
 * this file except in compliance with the License. You can obtain a copy of the
13
 * License at http://www.netbeans.org/cddl-gplv2.html or
14
 * nbbuild/licenses/CDDL-GPL-2-CP. See the License for the specific language
15
 * governing permissions and limitations under the License. When distributing
16
 * the software, include this License Header Notice in each file and include the
17
 * License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
18
 * particular file as subject to the "Classpath" exception as provided by Oracle
19
 * in the GPL Version 2 section of the License file that accompanied this code.
20
 * If applicable, add the following below the License Header, with the fields
21
 * enclosed by brackets [] replaced by your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL or only
25
 * the GPL Version 2, indicate your decision by adding "[Contributor] elects to
26
 * include this software in this distribution under the [CDDL or GPL Version 2]
27
 * license." If you do not indicate a single choice of license, a recipient has
28
 * the option to distribute your version of this file under either the CDDL, the
29
 * GPL Version 2 or to extend the choice of license to its licensees as provided
30
 * above. However, if you add GPL Version 2 code and therefore, elected the GPL
31
 * Version 2 license, then the option applies only if the new code is made
32
 * subject to such option by the copyright holder.
33
 *
34
 * Contributor(s):
35
 *
36
 * Portions Copyrighted 2011 Sun Microsystems, Inc.
37
 */
38
package org.netbeans.modules.xml.schema.completion;
39
40
import java.util.List;
41
import junit.framework.Test;
42
import junit.framework.TestSuite;
43
import static org.hamcrest.CoreMatchers.not;
44
import static org.junit.Assert.assertThat;
45
46
/**
47
 *
48
 * @author Daniel Bell (dbell@netbeans.org)
49
 */
50
public class AbstractElementTest extends AbstractTestCase {
51
52
    static final String COMPLETION_DOCUMENT = "resources/AbstractElementCompletion.xml";
53
    static final String PARENT_SCHEMA = "resources/AbstractElementParent.xsd";
54
    static final String CHILD_SCHEMA_ONE = "resources/AbstractElementChildOne.xsd";
55
    static final String CHILD_SCHEMA_TWO = "resources/AbstractElementChildTwo.xsd";
56
57
    public AbstractElementTest(String testName) {
58
        super(testName);
59
    }
60
61
    public static Test suite() {
62
        TestSuite suite = new TestSuite();
63
        suite.addTest(new AbstractElementTest("shouldNotSuggestAbstractElement"));
64
        suite.addTest(new AbstractElementTest("shouldSuggestAllAbstractElementSubtypes"));
65
        return suite;
66
    }
67
    
68
    @Override
69
    public void setUp() throws Exception {
70
        setupCompletion(COMPLETION_DOCUMENT);
71
    }
72
        
73
    public void shouldNotSuggestAbstractElement() {
74
        List<CompletionResultItem> items = query(157);
75
        assertThat(items, not(containsSuggestions("child")));
76
    }
77
    
78
    public void shouldSuggestAllAbstractElementSubtypes() {
79
        List<CompletionResultItem> items = query(157);
80
        assertThat(items, containsSuggestions("child-one", "child-two"));
81
    }
82
}
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/AbstractTestCase.java (-5 / +55 lines)
Lines 43-50 Link Here
43
 */
43
 */
44
package org.netbeans.modules.xml.schema.completion;
44
package org.netbeans.modules.xml.schema.completion;
45
45
46
import java.util.ArrayList;
47
import java.util.Arrays;
46
import java.util.List;
48
import java.util.List;
47
import junit.framework.*;
49
import junit.framework.*;
50
import org.hamcrest.Description;
51
import org.hamcrest.Matcher;
52
import org.junit.internal.matchers.TypeSafeMatcher;
48
import org.netbeans.api.lexer.Language;
53
import org.netbeans.api.lexer.Language;
49
import org.netbeans.api.xml.lexer.XMLTokenId;
54
import org.netbeans.api.xml.lexer.XMLTokenId;
50
import org.netbeans.editor.BaseDocument;
55
import org.netbeans.editor.BaseDocument;
Lines 75-88 Link Here
75
    protected void tearDown() throws Exception {
80
    protected void tearDown() throws Exception {
76
    }
81
    }
77
    
82
    
78
    protected void setupCompletion(String path, StringBuffer buffer) throws Exception {
83
    /**
84
     * Set up the test for a particular XML document
85
     * @param path the XML document
86
     * @see #setupCompletion(java.lang.String, java.lang.StringBuffer) 
87
     */
88
    protected void setupCompletion(String path) throws Exception {
89
        setupCompletion(path, null);
90
    }
91
    
92
    
93
    /**
94
     * Set up the test for a particular XML document
95
     * @param path the XML document
96
     * @param content the content to insert into the document
97
     * @see #setupCompletion(java.lang.String)
98
     */
99
    protected void setupCompletion(String path, StringBuffer content) throws Exception {
79
        this.instanceResourcePath = path;
100
        this.instanceResourcePath = path;
80
        this.instanceFileObject = Util.getResourceAsFileObject(path);
101
        this.instanceFileObject = Util.getResourceAsFileObject(path);
81
        this.instanceDocument = Util.getResourceAsDocument(path);
102
        this.instanceDocument = Util.getResourceAsDocument(path);
82
        this.support = ((XMLSyntaxSupport)instanceDocument.getSyntaxSupport());
103
        this.support = ((XMLSyntaxSupport)instanceDocument.getSyntaxSupport());
83
        if(buffer != null) {
104
        if(content != null) {
84
            instanceDocument.remove(0, instanceDocument.getLength());
105
            instanceDocument.remove(0, instanceDocument.getLength());
85
            instanceDocument.insertString(0, buffer.toString(), null);
106
            instanceDocument.insertString(0, content.toString(), null);
86
        }
107
        }
87
        instanceDocument.putProperty(Language.class, XMLTokenId.language());        
108
        instanceDocument.putProperty(Language.class, XMLTokenId.language());        
88
    }
109
    }
Lines 90-104 Link Here
90
    /**
111
    /**
91
     * Queries and returns a list of completion items.
112
     * Queries and returns a list of completion items.
92
     * Each unit test is supposed to evaluate this result.
113
     * Each unit test is supposed to evaluate this result.
114
     * @param caretOffset the caret offset at which code completion is invoked
115
     * @return the code completion results 
93
     */
116
     */
94
    protected List<CompletionResultItem> query(int caretOffset) throws Exception {
117
    protected List<CompletionResultItem> query(int caretOffset) {
95
        assert(instanceFileObject  != null && instanceDocument != null);
118
        assert(instanceFileObject  != null && instanceDocument != null);
96
        CompletionQuery instance = new CompletionQuery(instanceFileObject);
119
        CompletionQuery instance = new CompletionQuery(instanceFileObject);
97
        return instance.getCompletionItems(instanceDocument, caretOffset);
120
        return instance.getCompletionItems(instanceDocument, caretOffset);
98
    }
121
    }
99
    
122
    
100
    protected void assertResult(List<CompletionResultItem> result,
123
    protected void assertResult(List<CompletionResultItem> result,
101
            String[] expectedResult) {
124
            String... expectedResult) {
102
        if(result == null && expectedResult == null) {
125
        if(result == null && expectedResult == null) {
103
            assert(true);
126
            assert(true);
104
            return;
127
            return;
Lines 136-141 Link Here
136
        }
159
        }
137
    }
160
    }
138
    
161
    
162
    protected Matcher<List<CompletionResultItem>> containsSuggestions(String... suggestions) {
163
        return new SuggestionsContaining(suggestions);
164
    }
165
    
139
    BaseDocument getDocument() {
166
    BaseDocument getDocument() {
140
        return instanceDocument;
167
        return instanceDocument;
141
    }
168
    }
Lines 153-156 Link Here
153
        context.initContext();
180
        context.initContext();
154
        return context;
181
        return context;
155
    }
182
    }
183
184
    private class SuggestionsContaining extends TypeSafeMatcher<List<CompletionResultItem>> {
185
186
        private final List<String> expectedSuggestionStrings;
187
        public SuggestionsContaining(String... suggestions) {
188
            expectedSuggestionStrings = Arrays.asList(suggestions);
189
        }
190
191
        @Override
192
        public boolean matchesSafely(List<CompletionResultItem> t) {
193
            List<String> actualSuggestionStrings = new ArrayList<String>(t.size());
194
            for (CompletionResultItem result : t) {
195
                actualSuggestionStrings.add(result.getItemText());
196
            }
197
            return actualSuggestionStrings.size() == expectedSuggestionStrings.size()
198
                    && actualSuggestionStrings.containsAll(expectedSuggestionStrings);
199
        }
200
201
        @Override
202
        public void describeTo(Description d) {
203
            d.appendText("Completion results containing only ").appendValue(expectedSuggestionStrings);
204
        }
205
    }
156
}
206
}
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/resources/AbstractElementChildOne.xsd (+21 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema version="1.0" 
3
           xmlns="urn:child1"
4
           xmlns:parent="urn:parent"
5
           targetNamespace="urn:child1"
6
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
7
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
           xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd
9
                               urn:parent parent.xsd"
10
           elementFormDefault="qualified" xml:lang="EN">
11
12
    <xs:import namespace="urn:parent" schemaLocation="parent.xsd"/> 
13
     
14
    <xs:element name="child-one" substitutionGroup="parent:child" type="ChildOne"/>
15
16
    <xs:complexType name="ChildOne">
17
        <xs:complexContent>
18
            <xs:extension base="parent:Child"/>
19
        </xs:complexContent>
20
    </xs:complexType>
21
</xs:schema>
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/resources/AbstractElementChildTwo.xsd (+21 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema version="1.0" 
3
           xmlns="urn:child2"
4
           xmlns:parent="urn:parent"
5
           targetNamespace="urn:child2"
6
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
7
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
           xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd
9
                               urn:parent parent.xsd"
10
           elementFormDefault="qualified" xml:lang="EN">
11
12
    <xs:import namespace="urn:parent" schemaLocation="parent.xsd"/> 
13
     
14
    <xs:element name="child-two" substitutionGroup="parent:child" type="ChildTwo"/>
15
16
    <xs:complexType name="ChildTwo">
17
        <xs:complexContent>
18
            <xs:extension base="parent:Child"/>
19
        </xs:complexContent>
20
    </xs:complexType>
21
</xs:schema>
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/resources/AbstractElementCompletion.xml (+11 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<parent xmlns="urn:parent"
3
        xmlns:c1="urn:child1"
4
        xmlns:c2="urn:child2"
5
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
        xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd
7
                            urn:parent Parent.xsd
8
                            urn:child1 ChildOne.xsd
9
                            urn:child2 ChildTwo.xsd">
10
    <!-- Invoke code completion here -->
11
</parent>
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/resources/AbstractElementParent.xsd (+23 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema version="1.0" 
3
           xmlns="urn:parent"
4
           targetNamespace="urn:parent"
5
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
6
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7
           xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
8
           elementFormDefault="qualified" xml:lang="EN">
9
               
10
    <xs:element name="parent" type="Parent"/>
11
12
    <xs:element name="child" abstract="true"/>
13
14
    <xs:complexType name="Parent">
15
        <xs:sequence>
16
            <xs:element ref="child" maxOccurs="unbounded"/>
17
        </xs:sequence>
18
    </xs:complexType>
19
20
    <xs:complexType name="Child" abstract="true">
21
        <xs:attribute name="name" type="xs:string"/>
22
    </xs:complexType>
23
</xs:schema>
(-)a/xml.schema.completion/test/unit/src/org/netbeans/modules/xml/schema/completion/resources/XMLSchema.xsd (+2473 lines)
Line 0 Link Here
1
<?xml version='1.0' encoding='UTF-8'?>
2
3
<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema"
4
blockDefault="#all"
5
elementFormDefault="qualified" version="1.0"
6
xmlns:xs="http://www.w3.org/2001/XMLSchema"
7
xml:lang="EN" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty">
8
 <xs:annotation>
9
  <xs:documentation>
10
    Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp 
11
    Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp 
12
  </xs:documentation>
13
 </xs:annotation>
14
15
 <xs:annotation>
16
   <xs:documentation source="http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/structures.html">
17
   The schema corresponding to this document is normative,
18
   with respect to the syntactic constraints it expresses in the
19
   XML Schema language.  The documentation (within &lt;documentation> elements)
20
   below, is not normative, but rather highlights important aspects of
21
   the W3C Recommendation of which this is a part</xs:documentation>
22
 </xs:annotation>
23
24
 <xs:annotation>
25
   <xs:documentation>
26
   The simpleType element and all of its members are defined
27
      towards the end of this schema document</xs:documentation>
28
 </xs:annotation>
29
30
 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd">
31
   <xs:annotation>
32
     <xs:documentation>
33
       Get access to the xml: attribute groups for xml:lang
34
       as declared on 'schema' and 'documentation' below
35
     </xs:documentation>
36
   </xs:annotation>
37
 </xs:import>
38
39
 <xs:complexType name="openAttrs">
40
   <xs:annotation>
41
     <xs:documentation>
42
       This type is extended by almost all schema types
43
       to allow attributes from other namespaces to be
44
       added to user schemas.
45
     </xs:documentation>
46
   </xs:annotation>
47
   <xs:complexContent>
48
     <xs:restriction base="xs:anyType">
49
       <xs:anyAttribute namespace="##other" processContents="lax"/>
50
     </xs:restriction>
51
   </xs:complexContent>
52
 </xs:complexType>
53
54
 <xs:complexType name="annotated">
55
   <xs:annotation>
56
     <xs:documentation>
57
       This type is extended by all types which allow annotation
58
       other than &lt;schema&gt; itself
59
     </xs:documentation>
60
   </xs:annotation>
61
   <xs:complexContent>
62
     <xs:extension base="xs:openAttrs">
63
       <xs:sequence>
64
         <xs:element ref="xs:annotation" minOccurs="0"/>
65
       </xs:sequence>
66
       <xs:attribute name="id" type="xs:ID"/>
67
     </xs:extension>
68
   </xs:complexContent>
69
 </xs:complexType>
70
71
 <xs:group name="schemaTop">
72
  <xs:annotation>
73
   <xs:documentation>
74
   This group is for the
75
   elements which occur freely at the top level of schemas.
76
   All of their types are based on the "annotated" type by extension.</xs:documentation>
77
  </xs:annotation>
78
  <xs:choice>
79
   <xs:group ref="xs:redefinable"/>
80
   <xs:element ref="xs:element"/>
81
   <xs:element ref="xs:attribute"/>
82
   <xs:element ref="xs:notation"/>
83
  </xs:choice>
84
 </xs:group>
85
 
86
 <xs:group name="redefinable">
87
  <xs:annotation>
88
   <xs:documentation>
89
   This group is for the
90
   elements which can self-redefine (see &lt;redefine> below).</xs:documentation>
91
  </xs:annotation>
92
  <xs:choice>
93
   <xs:element ref="xs:simpleType"/>
94
   <xs:element ref="xs:complexType"/>
95
   <xs:element ref="xs:group"/>
96
   <xs:element ref="xs:attributeGroup"/>
97
  </xs:choice>
98
 </xs:group>
99
100
 <xs:simpleType name="formChoice">
101
  <xs:annotation>
102
   <xs:documentation>
103
   A utility type, not for public use</xs:documentation>
104
  </xs:annotation>
105
  <xs:restriction base="xs:NMTOKEN">
106
   <xs:enumeration value="qualified"/>
107
   <xs:enumeration value="unqualified"/>
108
  </xs:restriction>
109
 </xs:simpleType>
110
111
 <xs:simpleType name="reducedDerivationControl">
112
  <xs:annotation>
113
   <xs:documentation>
114
   A utility type, not for public use</xs:documentation>
115
  </xs:annotation>
116
  <xs:restriction base="xs:derivationControl">
117
   <xs:enumeration value="extension"/>
118
   <xs:enumeration value="restriction"/>
119
  </xs:restriction>
120
 </xs:simpleType>
121
122
 <xs:simpleType name="derivationSet">
123
  <xs:annotation>
124
   <xs:documentation>
125
   A utility type, not for public use</xs:documentation>
126
   <xs:documentation>
127
   #all or (possibly empty) subset of {extension, restriction}</xs:documentation>
128
  </xs:annotation>
129
  <xs:union>
130
   <xs:simpleType>    
131
    <xs:restriction base="xs:token">
132
     <xs:enumeration value="#all"/>
133
    </xs:restriction>
134
   </xs:simpleType>
135
   <xs:simpleType>
136
    <xs:list itemType="xs:reducedDerivationControl"/>
137
   </xs:simpleType>
138
  </xs:union>
139
 </xs:simpleType>
140
141
 <xs:simpleType name="typeDerivationControl">
142
  <xs:annotation>
143
   <xs:documentation>
144
   A utility type, not for public use</xs:documentation>
145
  </xs:annotation>
146
  <xs:restriction base="xs:derivationControl">
147
   <xs:enumeration value="extension"/>
148
   <xs:enumeration value="restriction"/>
149
   <xs:enumeration value="list"/>
150
   <xs:enumeration value="union"/>
151
  </xs:restriction>
152
 </xs:simpleType>
153
154
  <xs:simpleType name="fullDerivationSet">
155
  <xs:annotation>
156
   <xs:documentation>
157
   A utility type, not for public use</xs:documentation>
158
   <xs:documentation>
159
   #all or (possibly empty) subset of {extension, restriction, list, union}</xs:documentation>
160
  </xs:annotation>
161
  <xs:union>
162
   <xs:simpleType>    
163
    <xs:restriction base="xs:token">
164
     <xs:enumeration value="#all"/>
165
    </xs:restriction>
166
   </xs:simpleType>
167
   <xs:simpleType>
168
    <xs:list itemType="xs:typeDerivationControl"/>
169
   </xs:simpleType>
170
  </xs:union>
171
 </xs:simpleType>
172
173
 <xs:element name="schema" id="schema">
174
  <xs:annotation>
175
    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"/>
176
  </xs:annotation>
177
  <xs:complexType>
178
   <xs:complexContent>
179
    <xs:extension base="xs:openAttrs">
180
     <xs:sequence>
181
      <xs:choice minOccurs="0" maxOccurs="unbounded">
182
       <xs:element ref="xs:include"/>
183
       <xs:element ref="xs:import"/>
184
       <xs:element ref="xs:redefine"/>
185
       <xs:element ref="xs:annotation"/>
186
      </xs:choice>
187
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
188
       <xs:group ref="xs:schemaTop"/>
189
       <xs:element ref="xs:annotation" minOccurs="0" maxOccurs="unbounded"/>
190
      </xs:sequence>
191
     </xs:sequence>
192
     <xs:attribute name="targetNamespace" type="xs:anyURI"/>
193
     <xs:attribute name="version" type="xs:token"/>
194
     <xs:attribute name="finalDefault" type="xs:fullDerivationSet" use="optional" default=""/>
195
     <xs:attribute name="blockDefault" type="xs:blockSet" use="optional" default=""/>
196
     <xs:attribute name="attributeFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
197
     <xs:attribute name="elementFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
198
     <xs:attribute name="id" type="xs:ID"/>
199
     <xs:attribute ref="xml:lang"/>
200
    </xs:extension>
201
   </xs:complexContent>
202
  </xs:complexType>
203
204
  <xs:key name="element">
205
   <xs:selector xpath="xs:element"/>
206
   <xs:field xpath="@name"/>
207
  </xs:key>
208
209
  <xs:key name="attribute">
210
   <xs:selector xpath="xs:attribute"/>
211
   <xs:field xpath="@name"/>
212
  </xs:key>
213
214
  <xs:key name="type">
215
   <xs:selector xpath="xs:complexType|xs:simpleType"/>
216
   <xs:field xpath="@name"/>
217
  </xs:key>
218
 
219
  <xs:key name="group">
220
   <xs:selector xpath="xs:group"/>
221
   <xs:field xpath="@name"/>
222
  </xs:key>
223
 
224
  <xs:key name="attributeGroup">
225
   <xs:selector xpath="xs:attributeGroup"/>
226
   <xs:field xpath="@name"/>
227
  </xs:key>
228
 
229
  <xs:key name="notation">
230
   <xs:selector xpath="xs:notation"/>
231
   <xs:field xpath="@name"/>
232
  </xs:key>
233
234
  <xs:key name="identityConstraint">
235
   <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
236
   <xs:field xpath="@name"/>
237
  </xs:key>
238
239
 </xs:element>
240
241
 <xs:simpleType name="allNNI">
242
  <xs:annotation><xs:documentation>
243
   for maxOccurs</xs:documentation></xs:annotation>
244
  <xs:union memberTypes="xs:nonNegativeInteger">
245
   <xs:simpleType>
246
    <xs:restriction base="xs:NMTOKEN">
247
     <xs:enumeration value="unbounded"/>
248
    </xs:restriction>
249
   </xs:simpleType>
250
  </xs:union>
251
 </xs:simpleType>
252
253
 <xs:attributeGroup name="occurs">
254
  <xs:annotation><xs:documentation>
255
   for all particles</xs:documentation></xs:annotation>
256
  <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
257
  <xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>
258
 </xs:attributeGroup>
259
260
 <xs:attributeGroup name="defRef">
261
  <xs:annotation><xs:documentation>
262
   for element, group and attributeGroup,
263
   which both define and reference</xs:documentation></xs:annotation>
264
  <xs:attribute name="name" type="xs:NCName"/>
265
  <xs:attribute name="ref" type="xs:QName"/>
266
 </xs:attributeGroup>
267
268
 <xs:group name="typeDefParticle">
269
  <xs:annotation>
270
    <xs:documentation>
271
   'complexType' uses this</xs:documentation></xs:annotation>
272
  <xs:choice>
273
   <xs:element name="group" type="xs:groupRef"/>
274
   <xs:element ref="xs:all"/>
275
   <xs:element ref="xs:choice"/>
276
   <xs:element ref="xs:sequence"/>
277
  </xs:choice>
278
 </xs:group>
279
 
280
 
281
282
 <xs:group name="nestedParticle">
283
  <xs:choice>
284
   <xs:element name="element" type="xs:localElement"/>
285
   <xs:element name="group" type="xs:groupRef"/>
286
   <xs:element ref="xs:choice"/>
287
   <xs:element ref="xs:sequence"/>
288
   <xs:element ref="xs:any"/>
289
  </xs:choice>
290
 </xs:group>
291
 
292
 <xs:group name="particle">
293
  <xs:choice>
294
   <xs:element name="element" type="xs:localElement"/>
295
   <xs:element name="group" type="xs:groupRef"/>
296
   <xs:element ref="xs:all"/>
297
   <xs:element ref="xs:choice"/>
298
   <xs:element ref="xs:sequence"/>
299
   <xs:element ref="xs:any"/>
300
  </xs:choice>
301
 </xs:group>
302
 
303
 <xs:complexType name="attribute">
304
  <xs:complexContent>
305
   <xs:extension base="xs:annotated">
306
    <xs:sequence>
307
     <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
308
    </xs:sequence>
309
    <xs:attributeGroup ref="xs:defRef"/>
310
    <xs:attribute name="type" type="xs:QName"/>
311
    <xs:attribute name="use" use="optional" default="optional">
312
     <xs:simpleType>
313
      <xs:restriction base="xs:NMTOKEN">
314
       <xs:enumeration value="prohibited"/>
315
       <xs:enumeration value="optional"/>
316
       <xs:enumeration value="required"/>
317
      </xs:restriction>
318
     </xs:simpleType>
319
    </xs:attribute>
320
    <xs:attribute name="default" type="xs:string"/>
321
    <xs:attribute name="fixed" type="xs:string"/>
322
    <xs:attribute name="form" type="xs:formChoice"/>
323
   </xs:extension>
324
  </xs:complexContent>
325
 </xs:complexType>
326
 
327
 <xs:complexType name="topLevelAttribute">
328
  <xs:complexContent>
329
   <xs:restriction base="xs:attribute">
330
    <xs:sequence>
331
     <xs:element ref="xs:annotation" minOccurs="0"/>
332
     <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
333
    </xs:sequence>
334
    <xs:attribute name="ref" use="prohibited"/>
335
    <xs:attribute name="form" use="prohibited"/>
336
    <xs:attribute name="use" use="prohibited"/>
337
    <xs:attribute name="name" use="required" type="xs:NCName"/>
338
    <xs:anyAttribute namespace="##other" processContents="lax"/>
339
   </xs:restriction>
340
  </xs:complexContent>
341
 </xs:complexType>
342
343
 <xs:group name="attrDecls">
344
  <xs:sequence>
345
   <xs:choice minOccurs="0" maxOccurs="unbounded">
346
    <xs:element name="attribute" type="xs:attribute"/>
347
    <xs:element name="attributeGroup" type="xs:attributeGroupRef"/>
348
   </xs:choice>
349
   <xs:element ref="xs:anyAttribute" minOccurs="0"/>
350
  </xs:sequence>
351
 </xs:group>
352
353
 <xs:element name="anyAttribute" type="xs:wildcard" id="anyAttribute">
354
  <xs:annotation>
355
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"/>
356
  </xs:annotation>
357
 </xs:element>
358
359
 <xs:group name="complexTypeModel">
360
  <xs:choice>
361
      <xs:element ref="xs:simpleContent"/>
362
      <xs:element ref="xs:complexContent"/>
363
      <xs:sequence>
364
       <xs:annotation>
365
        <xs:documentation>
366
   This branch is short for
367
   &lt;complexContent>
368
   &lt;restriction base="xs:anyType">
369
   ...
370
   &lt;/restriction>
371
   &lt;/complexContent></xs:documentation>
372
       </xs:annotation>
373
       <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
374
       <xs:group ref="xs:attrDecls"/>
375
      </xs:sequence>
376
  </xs:choice>
377
 </xs:group>
378
379
 <xs:complexType name="complexType" abstract="true">
380
  <xs:complexContent>
381
   <xs:extension base="xs:annotated">
382
    <xs:group ref="xs:complexTypeModel"/>
383
    <xs:attribute name="name" type="xs:NCName">
384
     <xs:annotation>
385
      <xs:documentation>
386
      Will be restricted to required or forbidden</xs:documentation>
387
     </xs:annotation>
388
    </xs:attribute>
389
    <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false">
390
     <xs:annotation>
391
      <xs:documentation>
392
      Not allowed if simpleContent child is chosen.
393
      May be overriden by setting on complexContent child.</xs:documentation>
394
    </xs:annotation>
395
    </xs:attribute>
396
    <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
397
    <xs:attribute name="final" type="xs:derivationSet"/>
398
    <xs:attribute name="block" type="xs:derivationSet"/>
399
   </xs:extension>
400
  </xs:complexContent>
401
 </xs:complexType>
402
 
403
 <xs:complexType name="topLevelComplexType">
404
  <xs:complexContent>
405
   <xs:restriction base="xs:complexType">
406
    <xs:sequence>
407
     <xs:element ref="xs:annotation" minOccurs="0"/>
408
     <xs:group ref="xs:complexTypeModel"/>
409
    </xs:sequence>
410
    <xs:attribute name="name" type="xs:NCName" use="required"/>
411
    <xs:anyAttribute namespace="##other" processContents="lax"/>
412
   </xs:restriction>
413
  </xs:complexContent>
414
 </xs:complexType>
415
 
416
 <xs:complexType name="localComplexType">
417
  <xs:complexContent>
418
   <xs:restriction base="xs:complexType">
419
    <xs:sequence>
420
     <xs:element ref="xs:annotation" minOccurs="0"/>
421
     <xs:group ref="xs:complexTypeModel"/>
422
    </xs:sequence>
423
    <xs:attribute name="name" use="prohibited"/>
424
    <xs:attribute name="abstract" use="prohibited"/>
425
    <xs:attribute name="final" use="prohibited"/>
426
    <xs:attribute name="block" use="prohibited"/>
427
    <xs:anyAttribute namespace="##other" processContents="lax"/>
428
   </xs:restriction>
429
  </xs:complexContent>
430
 </xs:complexType>
431
 
432
 <xs:complexType name="restrictionType">
433
  <xs:complexContent>
434
   <xs:extension base="xs:annotated">
435
    <xs:sequence>
436
     <xs:choice minOccurs="0">
437
      <xs:group ref="xs:typeDefParticle"/>
438
      <xs:group ref="xs:simpleRestrictionModel"/>
439
     </xs:choice>
440
     <xs:group ref="xs:attrDecls"/>
441
    </xs:sequence>
442
    <xs:attribute name="base" type="xs:QName" use="required"/>
443
   </xs:extension>
444
  </xs:complexContent>       
445
 </xs:complexType>
446
447
 <xs:complexType name="complexRestrictionType">
448
  <xs:complexContent>
449
   <xs:restriction base="xs:restrictionType">
450
    <xs:sequence>
451
     <xs:element ref="xs:annotation" minOccurs="0"/>
452
     <xs:choice minOccurs="0">
453
      <xs:annotation>
454
       <xs:documentation>This choice is added simply to
455
                   make this a valid restriction per the REC</xs:documentation>
456
      </xs:annotation>
457
      <xs:group ref="xs:typeDefParticle"/>
458
     </xs:choice>
459
     <xs:group ref="xs:attrDecls"/>
460
    </xs:sequence>
461
    <xs:anyAttribute namespace="##other" processContents="lax"/>
462
   </xs:restriction>
463
  </xs:complexContent>       
464
 </xs:complexType>
465
466
 <xs:complexType name="extensionType">
467
  <xs:complexContent>
468
   <xs:extension base="xs:annotated">
469
    <xs:sequence>
470
     <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
471
     <xs:group ref="xs:attrDecls"/>
472
    </xs:sequence>
473
    <xs:attribute name="base" type="xs:QName" use="required"/>
474
   </xs:extension>
475
  </xs:complexContent>       
476
 </xs:complexType>
477
478
 <xs:element name="complexContent" id="complexContent">
479
  <xs:annotation>
480
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"/>
481
  </xs:annotation>
482
  <xs:complexType>
483
   <xs:complexContent>
484
    <xs:extension base="xs:annotated">
485
     <xs:choice>
486
      <xs:element name="restriction" type="xs:complexRestrictionType"/>
487
      <xs:element name="extension" type="xs:extensionType"/>
488
     </xs:choice>     
489
     <xs:attribute name="mixed" type="xs:boolean">
490
      <xs:annotation>
491
       <xs:documentation>
492
       Overrides any setting on complexType parent.</xs:documentation>
493
      </xs:annotation>
494
    </xs:attribute>
495
    </xs:extension>
496
   </xs:complexContent>
497
  </xs:complexType>
498
 </xs:element>
499
500
 <xs:complexType name="simpleRestrictionType">
501
  <xs:complexContent>
502
   <xs:restriction base="xs:restrictionType">
503
    <xs:sequence>
504
     <xs:element ref="xs:annotation" minOccurs="0"/>
505
     <xs:choice minOccurs="0">
506
      <xs:annotation>
507
       <xs:documentation>This choice is added simply to
508
                   make this a valid restriction per the REC</xs:documentation>
509
      </xs:annotation>
510
      <xs:group ref="xs:simpleRestrictionModel"/>
511
     </xs:choice>
512
     <xs:group ref="xs:attrDecls"/>
513
    </xs:sequence>
514
    <xs:anyAttribute namespace="##other" processContents="lax"/>
515
   </xs:restriction>
516
  </xs:complexContent>
517
 </xs:complexType>
518
519
 <xs:complexType name="simpleExtensionType">
520
  <xs:complexContent>
521
   <xs:restriction base="xs:extensionType">
522
    <xs:sequence>
523
     <xs:annotation>
524
      <xs:documentation>
525
      No typeDefParticle group reference</xs:documentation>
526
     </xs:annotation>
527
     <xs:element ref="xs:annotation" minOccurs="0"/>
528
     <xs:group ref="xs:attrDecls"/>
529
    </xs:sequence>
530
    <xs:anyAttribute namespace="##other" processContents="lax"/>
531
   </xs:restriction>
532
  </xs:complexContent>
533
 </xs:complexType>
534
535
 <xs:element name="simpleContent" id="simpleContent">
536
  <xs:annotation>
537
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"/>
538
  </xs:annotation>
539
  <xs:complexType>
540
   <xs:complexContent>
541
    <xs:extension base="xs:annotated">
542
     <xs:choice>
543
      <xs:element name="restriction" type="xs:simpleRestrictionType"/>
544
      <xs:element name="extension" type="xs:simpleExtensionType"/>
545
     </xs:choice>
546
    </xs:extension>
547
   </xs:complexContent>
548
  </xs:complexType>
549
 </xs:element>
550
 
551
 <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType">
552
  <xs:annotation>
553
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"/>
554
  </xs:annotation>
555
 </xs:element>
556
557
558
  <xs:simpleType name="blockSet">
559
   <xs:annotation>
560
    <xs:documentation>
561
    A utility type, not for public use</xs:documentation>
562
    <xs:documentation>
563
    #all or (possibly empty) subset of {substitution, extension,
564
    restriction}</xs:documentation>
565
   </xs:annotation>
566
   <xs:union>
567
    <xs:simpleType>    
568
     <xs:restriction base="xs:token">
569
      <xs:enumeration value="#all"/>
570
     </xs:restriction>
571
    </xs:simpleType>
572
    <xs:simpleType>
573
     <xs:list>
574
      <xs:simpleType>
575
       <xs:restriction base="xs:derivationControl">
576
        <xs:enumeration value="extension"/>
577
        <xs:enumeration value="restriction"/>
578
        <xs:enumeration value="substitution"/>
579
       </xs:restriction>
580
      </xs:simpleType>
581
     </xs:list>
582
    </xs:simpleType>
583
   </xs:union>  
584
  </xs:simpleType>
585
586
 <xs:complexType name="element" abstract="true">
587
  <xs:annotation>
588
   <xs:documentation>
589
   The element element can be used either
590
   at the top level to define an element-type binding globally,
591
   or within a content model to either reference a globally-defined
592
   element or type or declare an element-type binding locally.
593
   The ref form is not allowed at the top level.</xs:documentation>
594
  </xs:annotation>
595
596
  <xs:complexContent>
597
   <xs:extension base="xs:annotated">
598
    <xs:sequence>
599
     <xs:choice minOccurs="0">
600
      <xs:element name="simpleType" type="xs:localSimpleType"/>
601
      <xs:element name="complexType" type="xs:localComplexType"/>
602
     </xs:choice>
603
     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
604
    </xs:sequence>
605
    <xs:attributeGroup ref="xs:defRef"/>
606
    <xs:attribute name="type" type="xs:QName"/>
607
    <xs:attribute name="substitutionGroup" type="xs:QName"/>
608
    <xs:attributeGroup ref="xs:occurs"/>
609
    <xs:attribute name="default" type="xs:string"/>
610
    <xs:attribute name="fixed" type="xs:string"/>
611
    <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
612
    <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
613
    <xs:attribute name="final" type="xs:derivationSet"/>
614
    <xs:attribute name="block" type="xs:blockSet"/>
615
    <xs:attribute name="form" type="xs:formChoice"/>
616
   </xs:extension>
617
  </xs:complexContent>
618
 </xs:complexType>
619
 
620
 <xs:complexType name="topLevelElement">
621
  <xs:complexContent>
622
   <xs:restriction base="xs:element">
623
    <xs:sequence>
624
     <xs:element ref="xs:annotation" minOccurs="0"/>
625
     <xs:choice minOccurs="0">
626
      <xs:element name="simpleType" type="xs:localSimpleType"/>
627
      <xs:element name="complexType" type="xs:localComplexType"/>
628
     </xs:choice>
629
     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
630
    </xs:sequence>
631
    <xs:attribute name="ref" use="prohibited"/>
632
    <xs:attribute name="form" use="prohibited"/>
633
    <xs:attribute name="minOccurs" use="prohibited"/>
634
    <xs:attribute name="maxOccurs" use="prohibited"/>
635
    <xs:attribute name="name" use="required" type="xs:NCName"/>
636
    <xs:anyAttribute namespace="##other" processContents="lax"/>
637
   </xs:restriction>
638
  </xs:complexContent>
639
 </xs:complexType>
640
 
641
 <xs:complexType name="localElement">
642
  <xs:complexContent>
643
   <xs:restriction base="xs:element">
644
    <xs:sequence>
645
     <xs:element ref="xs:annotation" minOccurs="0"/>
646
     <xs:choice minOccurs="0">
647
      <xs:element name="simpleType" type="xs:localSimpleType"/>
648
      <xs:element name="complexType" type="xs:localComplexType"/>
649
     </xs:choice>
650
     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
651
    </xs:sequence>
652
    <xs:attribute name="substitutionGroup" use="prohibited"/>
653
    <xs:attribute name="final" use="prohibited"/>
654
    <xs:attribute name="abstract" use="prohibited"/>
655
    <xs:anyAttribute namespace="##other" processContents="lax"/>
656
   </xs:restriction>
657
  </xs:complexContent>
658
 </xs:complexType>
659
660
 <xs:element name="element" type="xs:topLevelElement" id="element">
661
  <xs:annotation>
662
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"/>
663
  </xs:annotation>
664
 </xs:element>
665
666
 <xs:complexType name="group" abstract="true">
667
  <xs:annotation>
668
   <xs:documentation>
669
   group type for explicit groups, named top-level groups and
670
   group references</xs:documentation>
671
  </xs:annotation>
672
  <xs:complexContent>
673
   <xs:extension base="xs:annotated">
674
    <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/>
675
    <xs:attributeGroup ref="xs:defRef"/>
676
    <xs:attributeGroup ref="xs:occurs"/>
677
   </xs:extension>
678
  </xs:complexContent>
679
 </xs:complexType>
680
 
681
 <xs:complexType name="realGroup">
682
  <xs:complexContent>
683
   <xs:restriction base="xs:group">
684
    <xs:sequence>
685
     <xs:element ref="xs:annotation" minOccurs="0"/>
686
     <xs:choice minOccurs="0" maxOccurs="1">
687
      <xs:element ref="xs:all"/>
688
      <xs:element ref="xs:choice"/>
689
      <xs:element ref="xs:sequence"/>
690
     </xs:choice>
691
    </xs:sequence>
692
    <xs:anyAttribute namespace="##other" processContents="lax"/>
693
   </xs:restriction>
694
  </xs:complexContent>
695
 </xs:complexType>
696
697
 <xs:complexType name="namedGroup">
698
  <xs:complexContent>
699
   <xs:restriction base="xs:realGroup">
700
    <xs:sequence>
701
     <xs:element ref="xs:annotation" minOccurs="0"/>
702
     <xs:choice minOccurs="1" maxOccurs="1">
703
      <xs:element name="all">
704
       <xs:complexType>
705
        <xs:complexContent>
706
         <xs:restriction base="xs:all">
707
          <xs:group ref="xs:allModel"/>
708
          <xs:attribute name="minOccurs" use="prohibited"/>
709
          <xs:attribute name="maxOccurs" use="prohibited"/>
710
          <xs:anyAttribute namespace="##other" processContents="lax"/>
711
         </xs:restriction>
712
        </xs:complexContent>
713
       </xs:complexType>
714
      </xs:element>
715
      <xs:element name="choice" type="xs:simpleExplicitGroup"/>
716
      <xs:element name="sequence" type="xs:simpleExplicitGroup"/>
717
     </xs:choice>
718
    </xs:sequence>
719
    <xs:attribute name="name" use="required" type="xs:NCName"/>
720
    <xs:attribute name="ref" use="prohibited"/>
721
    <xs:attribute name="minOccurs" use="prohibited"/>
722
    <xs:attribute name="maxOccurs" use="prohibited"/>
723
    <xs:anyAttribute namespace="##other" processContents="lax"/>
724
   </xs:restriction>
725
  </xs:complexContent>
726
 </xs:complexType>
727
728
 <xs:complexType name="groupRef">
729
  <xs:complexContent>
730
   <xs:restriction base="xs:realGroup">
731
    <xs:sequence>
732
     <xs:element ref="xs:annotation" minOccurs="0"/>
733
    </xs:sequence>
734
    <xs:attribute name="ref" use="required" type="xs:QName"/>
735
    <xs:attribute name="name" use="prohibited"/>
736
    <xs:anyAttribute namespace="##other" processContents="lax"/>
737
   </xs:restriction>
738
  </xs:complexContent>
739
 </xs:complexType>
740
741
 <xs:complexType name="explicitGroup">
742
  <xs:annotation>
743
   <xs:documentation>
744
   group type for the three kinds of group</xs:documentation>
745
  </xs:annotation>
746
  <xs:complexContent>
747
   <xs:restriction base="xs:group">
748
    <xs:sequence>
749
     <xs:element ref="xs:annotation" minOccurs="0"/>
750
     <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
751
    </xs:sequence>
752
    <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
753
    <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
754
    <xs:anyAttribute namespace="##other" processContents="lax"/>
755
   </xs:restriction>
756
  </xs:complexContent>
757
 </xs:complexType>
758
 
759
 <xs:complexType name="simpleExplicitGroup">
760
  <xs:complexContent>
761
   <xs:restriction base="xs:explicitGroup">
762
    <xs:sequence>
763
     <xs:element ref="xs:annotation" minOccurs="0"/>
764
     <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
765
    </xs:sequence>
766
    <xs:attribute name="minOccurs" use="prohibited"/>
767
    <xs:attribute name="maxOccurs" use="prohibited"/>
768
    <xs:anyAttribute namespace="##other" processContents="lax"/>
769
   </xs:restriction>
770
  </xs:complexContent>
771
 </xs:complexType>
772
 
773
 <xs:group name="allModel">
774
  <xs:sequence>
775
      <xs:element ref="xs:annotation" minOccurs="0"/>
776
      <xs:choice minOccurs="0" maxOccurs="unbounded">
777
       <xs:annotation>
778
        <xs:documentation>This choice with min/max is here to
779
                          avoid a pblm with the Elt:All/Choice/Seq
780
                          Particle derivation constraint</xs:documentation>
781
       </xs:annotation>
782
       <xs:element name="element" type="xs:narrowMaxMin"/>
783
      </xs:choice>
784
     </xs:sequence>
785
 </xs:group>
786
 
787
 
788
 <xs:complexType name="narrowMaxMin">
789
  <xs:annotation>
790
   <xs:documentation>restricted max/min</xs:documentation>
791
  </xs:annotation>
792
  <xs:complexContent>
793
   <xs:restriction base="xs:localElement">
794
    <xs:sequence>
795
     <xs:element ref="xs:annotation" minOccurs="0"/>
796
     <xs:choice minOccurs="0">
797
      <xs:element name="simpleType" type="xs:localSimpleType"/>
798
      <xs:element name="complexType" type="xs:localComplexType"/>
799
     </xs:choice>
800
     <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
801
    </xs:sequence>
802
    <xs:attribute name="minOccurs" use="optional" default="1">
803
     <xs:simpleType>
804
      <xs:restriction base="xs:nonNegativeInteger">
805
       <xs:enumeration value="0"/>
806
       <xs:enumeration value="1"/>
807
      </xs:restriction>
808
     </xs:simpleType>
809
    </xs:attribute>
810
    <xs:attribute name="maxOccurs" use="optional" default="1">
811
     <xs:simpleType>
812
      <xs:restriction base="xs:allNNI">
813
       <xs:enumeration value="0"/>
814
       <xs:enumeration value="1"/>
815
      </xs:restriction>
816
     </xs:simpleType>
817
    </xs:attribute>
818
    <xs:anyAttribute namespace="##other" processContents="lax"/>
819
   </xs:restriction>
820
  </xs:complexContent>
821
 </xs:complexType>
822
823
  <xs:complexType name="all">
824
   <xs:annotation>
825
    <xs:documentation>
826
   Only elements allowed inside</xs:documentation>
827
   </xs:annotation>
828
   <xs:complexContent>
829
    <xs:restriction base="xs:explicitGroup">
830
     <xs:group ref="xs:allModel"/>
831
     <xs:attribute name="minOccurs" use="optional" default="1">
832
      <xs:simpleType>
833
       <xs:restriction base="xs:nonNegativeInteger">
834
        <xs:enumeration value="0"/>
835
        <xs:enumeration value="1"/>
836
       </xs:restriction>
837
      </xs:simpleType>
838
     </xs:attribute>
839
     <xs:attribute name="maxOccurs" use="optional" default="1">
840
      <xs:simpleType>
841
       <xs:restriction base="xs:allNNI">
842
        <xs:enumeration value="1"/>
843
       </xs:restriction>
844
      </xs:simpleType>
845
     </xs:attribute>
846
     <xs:anyAttribute namespace="##other" processContents="lax"/>
847
    </xs:restriction>
848
   </xs:complexContent>
849
  </xs:complexType>
850
851
 <xs:element name="all" id="all" type="xs:all">
852
  <xs:annotation>
853
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"/>
854
  </xs:annotation>
855
 </xs:element>
856
857
 <xs:element name="choice" type="xs:explicitGroup" id="choice">
858
  <xs:annotation>
859
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"/>
860
  </xs:annotation>
861
 </xs:element>
862
863
 <xs:element name="sequence" type="xs:explicitGroup" id="sequence">
864
  <xs:annotation>
865
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"/>
866
  </xs:annotation>
867
 </xs:element>
868
869
 <xs:element name="group" type="xs:namedGroup" id="group">
870
  <xs:annotation>
871
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"/>
872
  </xs:annotation>
873
 </xs:element>
874
875
 <xs:complexType name="wildcard">
876
  <xs:complexContent>
877
   <xs:extension base="xs:annotated">
878
    <xs:attribute name="namespace" type="xs:namespaceList" use="optional" default="##any"/>
879
    <xs:attribute name="processContents" use="optional" default="strict">
880
     <xs:simpleType>
881
      <xs:restriction base="xs:NMTOKEN">
882
       <xs:enumeration value="skip"/>
883
       <xs:enumeration value="lax"/>
884
       <xs:enumeration value="strict"/>
885
      </xs:restriction>
886
     </xs:simpleType>
887
    </xs:attribute>
888
   </xs:extension>
889
  </xs:complexContent>
890
 </xs:complexType>
891
892
 <xs:element name="any" id="any">
893
  <xs:annotation>
894
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"/>
895
  </xs:annotation>
896
  <xs:complexType>
897
   <xs:complexContent>
898
    <xs:extension base="xs:wildcard">
899
     <xs:attributeGroup ref="xs:occurs"/>
900
    </xs:extension>
901
   </xs:complexContent>
902
  </xs:complexType>
903
 </xs:element>
904
905
  <xs:annotation>
906
   <xs:documentation>
907
   simple type for the value of the 'namespace' attr of
908
   'any' and 'anyAttribute'</xs:documentation>
909
  </xs:annotation>
910
  <xs:annotation>
911
   <xs:documentation>
912
   Value is
913
              ##any      - - any non-conflicting WFXML/attribute at all
914
915
              ##other    - - any non-conflicting WFXML/attribute from
916
                              namespace other than targetNS
917
918
              ##local    - - any unqualified non-conflicting WFXML/attribute 
919
920
              one or     - - any non-conflicting WFXML/attribute from
921
              more URI        the listed namespaces
922
              references
923
              (space separated)
924
925
    ##targetNamespace or ##local may appear in the above list, to
926
        refer to the targetNamespace of the enclosing
927
        schema or an absent targetNamespace respectively</xs:documentation>
928
  </xs:annotation>
929
930
 <xs:simpleType name="namespaceList">
931
  <xs:annotation>
932
   <xs:documentation>
933
   A utility type, not for public use</xs:documentation>
934
  </xs:annotation>
935
  <xs:union>
936
   <xs:simpleType>
937
    <xs:restriction base="xs:token">
938
     <xs:enumeration value="##any"/>
939
     <xs:enumeration value="##other"/>
940
    </xs:restriction>
941
   </xs:simpleType>
942
   <xs:simpleType>
943
    <xs:list>
944
     <xs:simpleType>
945
      <xs:union memberTypes="xs:anyURI">
946
       <xs:simpleType>
947
        <xs:restriction base="xs:token">
948
         <xs:enumeration value="##targetNamespace"/>
949
         <xs:enumeration value="##local"/>
950
        </xs:restriction>
951
       </xs:simpleType>
952
      </xs:union>
953
     </xs:simpleType>
954
    </xs:list>
955
   </xs:simpleType>
956
  </xs:union>
957
 </xs:simpleType>
958
959
 <xs:element name="attribute" type="xs:topLevelAttribute" id="attribute">
960
  <xs:annotation>
961
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"/>
962
  </xs:annotation>
963
 </xs:element>
964
965
 <xs:complexType name="attributeGroup" abstract="true">
966
  <xs:complexContent>
967
   <xs:extension base="xs:annotated">
968
    <xs:group ref="xs:attrDecls"/>
969
    <xs:attributeGroup ref="xs:defRef"/>
970
   </xs:extension>
971
  </xs:complexContent>
972
 </xs:complexType>
973
 
974
 <xs:complexType name="namedAttributeGroup">
975
  <xs:complexContent>
976
   <xs:restriction base="xs:attributeGroup">
977
    <xs:sequence>
978
     <xs:element ref="xs:annotation" minOccurs="0"/>
979
     <xs:group ref="xs:attrDecls"/>
980
    </xs:sequence>
981
    <xs:attribute name="name" use="required" type="xs:NCName"/>
982
    <xs:attribute name="ref" use="prohibited"/>
983
    <xs:anyAttribute namespace="##other" processContents="lax"/>
984
   </xs:restriction>
985
  </xs:complexContent>
986
 </xs:complexType>
987
988
 <xs:complexType name="attributeGroupRef">
989
  <xs:complexContent>
990
   <xs:restriction base="xs:attributeGroup">
991
    <xs:sequence>
992
     <xs:element ref="xs:annotation" minOccurs="0"/>
993
    </xs:sequence>
994
    <xs:attribute name="ref" use="required" type="xs:QName"/>
995
    <xs:attribute name="name" use="prohibited"/>
996
    <xs:anyAttribute namespace="##other" processContents="lax"/>
997
   </xs:restriction>
998
  </xs:complexContent>
999
 </xs:complexType>
1000
1001
 <xs:element name="attributeGroup" type="xs:namedAttributeGroup" id="attributeGroup">
1002
  <xs:annotation>
1003
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup"/>
1004
  </xs:annotation>
1005
 </xs:element>
1006
1007
 <xs:element name="include" id="include">
1008
  <xs:annotation>
1009
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"/>
1010
  </xs:annotation>
1011
  <xs:complexType>
1012
   <xs:complexContent>
1013
    <xs:extension base="xs:annotated">
1014
     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
1015
    </xs:extension>
1016
   </xs:complexContent>
1017
  </xs:complexType>
1018
 </xs:element>
1019
1020
 <xs:element name="redefine" id="redefine">
1021
  <xs:annotation>
1022
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"/>
1023
  </xs:annotation>
1024
  <xs:complexType>
1025
   <xs:complexContent>
1026
    <xs:extension base="xs:openAttrs">
1027
     <xs:choice minOccurs="0" maxOccurs="unbounded">
1028
      <xs:element ref="xs:annotation"/>
1029
      <xs:group ref="xs:redefinable"/>
1030
     </xs:choice>
1031
     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
1032
     <xs:attribute name="id" type="xs:ID"/>
1033
    </xs:extension>
1034
   </xs:complexContent>
1035
  </xs:complexType>
1036
 </xs:element>
1037
1038
 <xs:element name="import" id="import">
1039
  <xs:annotation>
1040
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"/>
1041
  </xs:annotation>
1042
  <xs:complexType>
1043
   <xs:complexContent>
1044
    <xs:extension base="xs:annotated">
1045
     <xs:attribute name="namespace" type="xs:anyURI"/>
1046
     <xs:attribute name="schemaLocation" type="xs:anyURI"/>
1047
    </xs:extension>
1048
   </xs:complexContent>
1049
  </xs:complexType>
1050
 </xs:element>
1051
1052
 <xs:element name="selector" id="selector">
1053
  <xs:annotation>
1054
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/>
1055
  </xs:annotation>
1056
  <xs:complexType>
1057
  <xs:complexContent>
1058
   <xs:extension base="xs:annotated">
1059
     <xs:attribute name="xpath" use="required">
1060
      <xs:simpleType>
1061
       <xs:annotation>
1062
        <xs:documentation>A subset of XPath expressions for use
1063
in selectors</xs:documentation>
1064
        <xs:documentation>A utility type, not for public
1065
use</xs:documentation>
1066
       </xs:annotation>
1067
       <xs:restriction base="xs:token">
1068
        <xs:annotation>
1069
         <xs:documentation>The following pattern is intended to allow XPath
1070
                           expressions per the following EBNF:
1071
          Selector    ::=    Path ( '|' Path )*  
1072
          Path    ::=    ('.//')? Step ( '/' Step )*  
1073
          Step    ::=    '.' | NameTest  
1074
          NameTest    ::=    QName | '*' | NCName ':' '*'  
1075
                           child:: is also allowed
1076
         </xs:documentation>
1077
        </xs:annotation>
1078
        <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*">
1079
        </xs:pattern>
1080
       </xs:restriction>
1081
      </xs:simpleType>
1082
     </xs:attribute>
1083
   </xs:extension>
1084
  </xs:complexContent>
1085
 </xs:complexType>
1086
 </xs:element>
1087
1088
 <xs:element name="field" id="field">
1089
  <xs:annotation>
1090
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"/>
1091
  </xs:annotation>
1092
  <xs:complexType>
1093
  <xs:complexContent>
1094
   <xs:extension base="xs:annotated">
1095
     <xs:attribute name="xpath" use="required">
1096
      <xs:simpleType>
1097
       <xs:annotation>
1098
        <xs:documentation>A subset of XPath expressions for use
1099
in fields</xs:documentation>
1100
        <xs:documentation>A utility type, not for public
1101
use</xs:documentation>
1102
       </xs:annotation>
1103
       <xs:restriction base="xs:token">
1104
        <xs:annotation>
1105
         <xs:documentation>The following pattern is intended to allow XPath
1106
                           expressions per the same EBNF as for selector,
1107
                           with the following change:
1108
          Path    ::=    ('.//')? ( Step '/' )* ( Step | '@' NameTest ) 
1109
         </xs:documentation>
1110
        </xs:annotation>
1111
        <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*">
1112
        </xs:pattern>
1113
       </xs:restriction>
1114
      </xs:simpleType>
1115
     </xs:attribute>
1116
   </xs:extension>
1117
  </xs:complexContent>
1118
 </xs:complexType>
1119
 </xs:element>
1120
1121
 <xs:complexType name="keybase">
1122
  <xs:complexContent>
1123
   <xs:extension base="xs:annotated">
1124
    <xs:sequence>
1125
     <xs:element ref="xs:selector"/>
1126
     <xs:element ref="xs:field" minOccurs="1" maxOccurs="unbounded"/>
1127
    </xs:sequence>
1128
    <xs:attribute name="name" type="xs:NCName" use="required"/>
1129
   </xs:extension>
1130
  </xs:complexContent>
1131
 </xs:complexType>
1132
1133
 <xs:group name="identityConstraint">
1134
  <xs:annotation>
1135
   <xs:documentation>The three kinds of identity constraints, all with
1136
                     type of or derived from 'keybase'.
1137
   </xs:documentation>
1138
  </xs:annotation>
1139
  <xs:choice>
1140
   <xs:element ref="xs:unique"/>
1141
   <xs:element ref="xs:key"/>
1142
   <xs:element ref="xs:keyref"/>
1143
  </xs:choice>
1144
 </xs:group>
1145
1146
 <xs:element name="unique" type="xs:keybase" id="unique">
1147
  <xs:annotation>
1148
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"/>
1149
  </xs:annotation>
1150
 </xs:element>
1151
 <xs:element name="key" type="xs:keybase" id="key">
1152
  <xs:annotation>
1153
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"/>
1154
  </xs:annotation>
1155
 </xs:element>
1156
 <xs:element name="keyref" id="keyref">
1157
  <xs:annotation>
1158
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"/>
1159
  </xs:annotation>
1160
  <xs:complexType>
1161
   <xs:complexContent>
1162
    <xs:extension base="xs:keybase">
1163
     <xs:attribute name="refer" type="xs:QName" use="required"/>
1164
    </xs:extension>
1165
   </xs:complexContent>
1166
  </xs:complexType>
1167
 </xs:element>
1168
1169
 <xs:element name="notation" id="notation">
1170
  <xs:annotation>
1171
   <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"/>
1172
  </xs:annotation>
1173
  <xs:complexType>
1174
   <xs:complexContent>
1175
    <xs:extension base="xs:annotated">
1176
     <xs:attribute name="name" type="xs:NCName" use="required"/>
1177
     <xs:attribute name="public" type="xs:public"/>
1178
     <xs:attribute name="system" type="xs:anyURI"/>
1179
    </xs:extension>
1180
   </xs:complexContent>
1181
  </xs:complexType>
1182
 </xs:element>
1183
1184
 <xs:simpleType name="public">
1185
  <xs:annotation>
1186
   <xs:documentation>
1187
   A utility type, not for public use</xs:documentation>
1188
   <xs:documentation>
1189
   A public identifier, per ISO 8879</xs:documentation>
1190
  </xs:annotation>
1191
  <xs:restriction base="xs:token"/>
1192
 </xs:simpleType>
1193
1194
 <xs:element name="appinfo" id="appinfo">
1195
   <xs:annotation>
1196
     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"/>
1197
   </xs:annotation>
1198
   <xs:complexType mixed="true">
1199
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
1200
     <xs:any processContents="lax"/>
1201
    </xs:sequence>
1202
    <xs:attribute name="source" type="xs:anyURI"/>
1203
    <xs:anyAttribute namespace="##other" processContents="lax"/>
1204
   </xs:complexType>
1205
 </xs:element>
1206
1207
 <xs:element name="documentation" id="documentation">
1208
   <xs:annotation>
1209
     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"/>
1210
   </xs:annotation>
1211
   <xs:complexType mixed="true">
1212
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
1213
     <xs:any processContents="lax"/>
1214
    </xs:sequence>
1215
    <xs:attribute name="source" type="xs:anyURI"/>
1216
    <xs:attribute ref="xml:lang"/>
1217
    <xs:anyAttribute namespace="##other" processContents="lax"/>
1218
   </xs:complexType>
1219
 </xs:element>
1220
1221
 <xs:element name="annotation" id="annotation">
1222
   <xs:annotation>
1223
     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation"/>
1224
   </xs:annotation>
1225
   <xs:complexType>
1226
    <xs:complexContent>
1227
     <xs:extension base="xs:openAttrs">
1228
      <xs:choice minOccurs="0" maxOccurs="unbounded">
1229
       <xs:element ref="xs:appinfo"/>
1230
       <xs:element ref="xs:documentation"/>
1231
      </xs:choice>
1232
      <xs:attribute name="id" type="xs:ID"/>
1233
     </xs:extension>
1234
    </xs:complexContent>
1235
   </xs:complexType>
1236
 </xs:element>
1237
1238
 <xs:annotation>
1239
  <xs:documentation>
1240
   notations for use within XML Schema schemas</xs:documentation>
1241
 </xs:annotation>
1242
1243
 <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
1244
 <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
1245
  
1246
 <xs:complexType name="anyType" mixed="true">
1247
  <xs:annotation>
1248
   <xs:documentation>
1249
   Not the real urType, but as close an approximation as we can
1250
   get in the XML representation</xs:documentation>
1251
  </xs:annotation>
1252
  <xs:sequence>
1253
   <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
1254
  </xs:sequence>
1255
  <xs:anyAttribute processContents="lax"/>
1256
 </xs:complexType>
1257
1258
  <xs:annotation>
1259
    <xs:documentation>
1260
      First the built-in primitive datatypes.  These definitions are for
1261
      information only, the real built-in definitions are magic.
1262
    </xs:documentation>
1263
1264
    <xs:documentation>
1265
      For each built-in datatype in this schema (both primitive and
1266
      derived) can be uniquely addressed via a URI constructed
1267
      as follows:
1268
        1) the base URI is the URI of the XML Schema namespace
1269
        2) the fragment identifier is the name of the datatype
1270
1271
      For example, to address the int datatype, the URI is:
1272
1273
        http://www.w3.org/2001/XMLSchema#int
1274
1275
      Additionally, each facet definition element can be uniquely
1276
      addressed via a URI constructed as follows:
1277
        1) the base URI is the URI of the XML Schema namespace
1278
        2) the fragment identifier is the name of the facet
1279
1280
      For example, to address the maxInclusive facet, the URI is:
1281
1282
        http://www.w3.org/2001/XMLSchema#maxInclusive
1283
1284
      Additionally, each facet usage in a built-in datatype definition
1285
      can be uniquely addressed via a URI constructed as follows:
1286
        1) the base URI is the URI of the XML Schema namespace
1287
        2) the fragment identifier is the name of the datatype, followed
1288
           by a period (".") followed by the name of the facet
1289
1290
      For example, to address the usage of the maxInclusive facet in
1291
      the definition of int, the URI is:
1292
1293
        http://www.w3.org/2001/XMLSchema#int.maxInclusive
1294
1295
    </xs:documentation>
1296
  </xs:annotation>
1297
1298
  <xs:simpleType name="string" id="string">
1299
    <xs:annotation>
1300
      <xs:appinfo>
1301
        <hfp:hasFacet name="length"/>
1302
        <hfp:hasFacet name="minLength"/>
1303
        <hfp:hasFacet name="maxLength"/>
1304
        <hfp:hasFacet name="pattern"/>
1305
        <hfp:hasFacet name="enumeration"/>
1306
        <hfp:hasFacet name="whiteSpace"/>
1307
        <hfp:hasProperty name="ordered" value="false"/>
1308
        <hfp:hasProperty name="bounded" value="false"/>
1309
        <hfp:hasProperty name="cardinality" value="countably infinite"/>
1310
        <hfp:hasProperty name="numeric" value="false"/>
1311
      </xs:appinfo>
1312
      <xs:documentation
1313
                source="http://www.w3.org/TR/xmlschema-2/#string"/>
1314
    </xs:annotation>
1315
    <xs:restriction base="xs:anySimpleType">
1316
      <xs:whiteSpace value="preserve" id="string.preserve"/>
1317
    </xs:restriction>
1318
  </xs:simpleType>
1319
1320
  <xs:simpleType name="boolean" id="boolean">
1321
    <xs:annotation>
1322
      <xs:appinfo>
1323
        <hfp:hasFacet name="pattern"/>
1324
        <hfp:hasFacet name="whiteSpace"/>
1325
        <hfp:hasProperty name="ordered" value="false"/>
1326
        <hfp:hasProperty name="bounded" value="false"/>
1327
        <hfp:hasProperty name="cardinality" value="finite"/>
1328
        <hfp:hasProperty name="numeric" value="false"/>
1329
      </xs:appinfo>
1330
      <xs:documentation
1331
        source="http://www.w3.org/TR/xmlschema-2/#boolean"/>
1332
    </xs:annotation>
1333
    <xs:restriction base="xs:anySimpleType">
1334
      <xs:whiteSpace value="collapse" fixed="true"
1335
        id="boolean.whiteSpace"/>
1336
    </xs:restriction>
1337
  </xs:simpleType>
1338
1339
  <xs:simpleType name="float" id="float">
1340
    <xs:annotation>
1341
      <xs:appinfo>
1342
        <hfp:hasFacet name="pattern"/>
1343
        <hfp:hasFacet name="enumeration"/>
1344
        <hfp:hasFacet name="whiteSpace"/>
1345
        <hfp:hasFacet name="maxInclusive"/>
1346
        <hfp:hasFacet name="maxExclusive"/>
1347
        <hfp:hasFacet name="minInclusive"/>
1348
        <hfp:hasFacet name="minExclusive"/>
1349
        <hfp:hasProperty name="ordered" value="total"/>
1350
        <hfp:hasProperty name="bounded" value="true"/>
1351
        <hfp:hasProperty name="cardinality" value="finite"/>
1352
        <hfp:hasProperty name="numeric" value="true"/>
1353
      </xs:appinfo>
1354
      <xs:documentation
1355
        source="http://www.w3.org/TR/xmlschema-2/#float"/>
1356
    </xs:annotation>
1357
    <xs:restriction base="xs:anySimpleType">
1358
      <xs:whiteSpace value="collapse" fixed="true"
1359
        id="float.whiteSpace"/>
1360
    </xs:restriction>
1361
  </xs:simpleType>
1362
1363
  <xs:simpleType name="double" id="double">
1364
    <xs:annotation>
1365
      <xs:appinfo>
1366
        <hfp:hasFacet name="pattern"/>
1367
        <hfp:hasFacet name="enumeration"/>
1368
        <hfp:hasFacet name="whiteSpace"/>
1369
        <hfp:hasFacet name="maxInclusive"/>
1370
        <hfp:hasFacet name="maxExclusive"/>
1371
        <hfp:hasFacet name="minInclusive"/>
1372
        <hfp:hasFacet name="minExclusive"/>
1373
        <hfp:hasProperty name="ordered" value="total"/>
1374
        <hfp:hasProperty name="bounded" value="true"/>
1375
        <hfp:hasProperty name="cardinality" value="finite"/>
1376
        <hfp:hasProperty name="numeric" value="true"/>
1377
      </xs:appinfo>
1378
      <xs:documentation
1379
        source="http://www.w3.org/TR/xmlschema-2/#double"/>
1380
    </xs:annotation>
1381
    <xs:restriction base="xs:anySimpleType">
1382
      <xs:whiteSpace value="collapse"  fixed="true"
1383
        id="double.whiteSpace"/>
1384
    </xs:restriction>
1385
  </xs:simpleType>
1386
1387
  <xs:simpleType name="decimal" id="decimal">
1388
    <xs:annotation>
1389
      <xs:appinfo>
1390
        <hfp:hasFacet name="totalDigits"/>
1391
        <hfp:hasFacet name="fractionDigits"/>
1392
        <hfp:hasFacet name="pattern"/>
1393
        <hfp:hasFacet name="whiteSpace"/>
1394
        <hfp:hasFacet name="enumeration"/>
1395
        <hfp:hasFacet name="maxInclusive"/>
1396
        <hfp:hasFacet name="maxExclusive"/>
1397
        <hfp:hasFacet name="minInclusive"/>
1398
        <hfp:hasFacet name="minExclusive"/>
1399
        <hfp:hasProperty name="ordered" value="total"/>
1400
        <hfp:hasProperty name="bounded" value="false"/>
1401
        <hfp:hasProperty name="cardinality"
1402
                value="countably infinite"/>
1403
        <hfp:hasProperty name="numeric" value="true"/>
1404
      </xs:appinfo>
1405
      <xs:documentation
1406
        source="http://www.w3.org/TR/xmlschema-2/#decimal"/>
1407
    </xs:annotation>
1408
    <xs:restriction base="xs:anySimpleType">
1409
      <xs:whiteSpace value="collapse"  fixed="true"
1410
        id="decimal.whiteSpace"/>
1411
    </xs:restriction>
1412
   </xs:simpleType>
1413
1414
   <xs:simpleType name="duration" id="duration">
1415
    <xs:annotation>
1416
      <xs:appinfo>
1417
        <hfp:hasFacet name="pattern"/>
1418
        <hfp:hasFacet name="enumeration"/>
1419
        <hfp:hasFacet name="whiteSpace"/>
1420
        <hfp:hasFacet name="maxInclusive"/>
1421
        <hfp:hasFacet name="maxExclusive"/>
1422
        <hfp:hasFacet name="minInclusive"/>
1423
        <hfp:hasFacet name="minExclusive"/>
1424
        <hfp:hasProperty name="ordered" value="partial"/>
1425
        <hfp:hasProperty name="bounded" value="false"/>
1426
        <hfp:hasProperty name="cardinality"
1427
                value="countably infinite"/>
1428
        <hfp:hasProperty name="numeric" value="false"/>
1429
      </xs:appinfo>
1430
      <xs:documentation
1431
        source="http://www.w3.org/TR/xmlschema-2/#duration"/>
1432
    </xs:annotation>
1433
    <xs:restriction base="xs:anySimpleType">
1434
      <xs:whiteSpace value="collapse"  fixed="true"
1435
        id="duration.whiteSpace"/>
1436
    </xs:restriction>
1437
   </xs:simpleType>
1438
1439
 <xs:simpleType name="dateTime" id="dateTime">
1440
    <xs:annotation>
1441
    <xs:appinfo>
1442
        <hfp:hasFacet name="pattern"/>
1443
        <hfp:hasFacet name="enumeration"/>
1444
        <hfp:hasFacet name="whiteSpace"/>
1445
        <hfp:hasFacet name="maxInclusive"/>
1446
        <hfp:hasFacet name="maxExclusive"/>
1447
        <hfp:hasFacet name="minInclusive"/>
1448
        <hfp:hasFacet name="minExclusive"/>
1449
        <hfp:hasProperty name="ordered" value="partial"/>
1450
        <hfp:hasProperty name="bounded" value="false"/>
1451
        <hfp:hasProperty name="cardinality"
1452
                value="countably infinite"/>
1453
        <hfp:hasProperty name="numeric" value="false"/>
1454
      </xs:appinfo>
1455
      <xs:documentation
1456
        source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
1457
    </xs:annotation>
1458
    <xs:restriction base="xs:anySimpleType">
1459
      <xs:whiteSpace value="collapse"  fixed="true"
1460
        id="dateTime.whiteSpace"/>
1461
    </xs:restriction>
1462
  </xs:simpleType>
1463
1464
  <xs:simpleType name="time" id="time">
1465
    <xs:annotation>
1466
    <xs:appinfo>
1467
        <hfp:hasFacet name="pattern"/>
1468
        <hfp:hasFacet name="enumeration"/>
1469
        <hfp:hasFacet name="whiteSpace"/>
1470
        <hfp:hasFacet name="maxInclusive"/>
1471
        <hfp:hasFacet name="maxExclusive"/>
1472
        <hfp:hasFacet name="minInclusive"/>
1473
        <hfp:hasFacet name="minExclusive"/>
1474
        <hfp:hasProperty name="ordered" value="partial"/>
1475
        <hfp:hasProperty name="bounded" value="false"/>
1476
        <hfp:hasProperty name="cardinality"
1477
                value="countably infinite"/>
1478
        <hfp:hasProperty name="numeric" value="false"/>
1479
      </xs:appinfo>
1480
      <xs:documentation
1481
        source="http://www.w3.org/TR/xmlschema-2/#time"/>
1482
    </xs:annotation>
1483
    <xs:restriction base="xs:anySimpleType">
1484
      <xs:whiteSpace value="collapse"  fixed="true"
1485
        id="time.whiteSpace"/>
1486
    </xs:restriction>
1487
  </xs:simpleType>
1488
1489
  <xs:simpleType name="date" id="date">
1490
   <xs:annotation>
1491
    <xs:appinfo>
1492
        <hfp:hasFacet name="pattern"/>
1493
        <hfp:hasFacet name="enumeration"/>
1494
        <hfp:hasFacet name="whiteSpace"/>
1495
        <hfp:hasFacet name="maxInclusive"/>
1496
        <hfp:hasFacet name="maxExclusive"/>
1497
        <hfp:hasFacet name="minInclusive"/>
1498
        <hfp:hasFacet name="minExclusive"/>
1499
        <hfp:hasProperty name="ordered" value="partial"/>
1500
        <hfp:hasProperty name="bounded" value="false"/>
1501
        <hfp:hasProperty name="cardinality"
1502
                value="countably infinite"/>
1503
        <hfp:hasProperty name="numeric" value="false"/>
1504
      </xs:appinfo>
1505
      <xs:documentation
1506
        source="http://www.w3.org/TR/xmlschema-2/#date"/>
1507
    </xs:annotation>
1508
    <xs:restriction base="xs:anySimpleType">
1509
      <xs:whiteSpace value="collapse"  fixed="true"
1510
        id="date.whiteSpace"/>
1511
    </xs:restriction>
1512
  </xs:simpleType>
1513
1514
  <xs:simpleType name="gYearMonth" id="gYearMonth">
1515
   <xs:annotation>
1516
    <xs:appinfo>
1517
        <hfp:hasFacet name="pattern"/>
1518
        <hfp:hasFacet name="enumeration"/>
1519
        <hfp:hasFacet name="whiteSpace"/>
1520
        <hfp:hasFacet name="maxInclusive"/>
1521
        <hfp:hasFacet name="maxExclusive"/>
1522
        <hfp:hasFacet name="minInclusive"/>
1523
        <hfp:hasFacet name="minExclusive"/>
1524
        <hfp:hasProperty name="ordered" value="partial"/>
1525
        <hfp:hasProperty name="bounded" value="false"/>
1526
        <hfp:hasProperty name="cardinality"
1527
                value="countably infinite"/>
1528
        <hfp:hasProperty name="numeric" value="false"/>
1529
      </xs:appinfo>
1530
      <xs:documentation
1531
        source="http://www.w3.org/TR/xmlschema-2/#gYearMonth"/>
1532
    </xs:annotation>
1533
    <xs:restriction base="xs:anySimpleType">
1534
      <xs:whiteSpace value="collapse"  fixed="true"
1535
        id="gYearMonth.whiteSpace"/>
1536
    </xs:restriction>
1537
  </xs:simpleType>
1538
1539
  <xs:simpleType name="gYear" id="gYear">
1540
    <xs:annotation>
1541
    <xs:appinfo>
1542
        <hfp:hasFacet name="pattern"/>
1543
        <hfp:hasFacet name="enumeration"/>
1544
        <hfp:hasFacet name="whiteSpace"/>
1545
        <hfp:hasFacet name="maxInclusive"/>
1546
        <hfp:hasFacet name="maxExclusive"/>
1547
        <hfp:hasFacet name="minInclusive"/>
1548
        <hfp:hasFacet name="minExclusive"/>
1549
        <hfp:hasProperty name="ordered" value="partial"/>
1550
        <hfp:hasProperty name="bounded" value="false"/>
1551
        <hfp:hasProperty name="cardinality"
1552
                value="countably infinite"/>
1553
        <hfp:hasProperty name="numeric" value="false"/>
1554
      </xs:appinfo>
1555
      <xs:documentation
1556
        source="http://www.w3.org/TR/xmlschema-2/#gYear"/>
1557
    </xs:annotation>
1558
    <xs:restriction base="xs:anySimpleType">
1559
      <xs:whiteSpace value="collapse"  fixed="true"
1560
        id="gYear.whiteSpace"/>
1561
    </xs:restriction>
1562
  </xs:simpleType>
1563
1564
 <xs:simpleType name="gMonthDay" id="gMonthDay">
1565
    <xs:annotation>
1566
      <xs:appinfo>
1567
        <hfp:hasFacet name="pattern"/>
1568
        <hfp:hasFacet name="enumeration"/>
1569
        <hfp:hasFacet name="whiteSpace"/>
1570
        <hfp:hasFacet name="maxInclusive"/>
1571
        <hfp:hasFacet name="maxExclusive"/>
1572
        <hfp:hasFacet name="minInclusive"/>
1573
        <hfp:hasFacet name="minExclusive"/>
1574
        <hfp:hasProperty name="ordered" value="partial"/>
1575
        <hfp:hasProperty name="bounded" value="false"/>
1576
        <hfp:hasProperty name="cardinality"
1577
                value="countably infinite"/>
1578
        <hfp:hasProperty name="numeric" value="false"/>
1579
      </xs:appinfo>
1580
       <xs:documentation
1581
        source="http://www.w3.org/TR/xmlschema-2/#gMonthDay"/>
1582
    </xs:annotation>
1583
    <xs:restriction base="xs:anySimpleType">
1584
         <xs:whiteSpace value="collapse" fixed="true"
1585
                id="gMonthDay.whiteSpace"/>
1586
    </xs:restriction>
1587
  </xs:simpleType>
1588
1589
  <xs:simpleType name="gDay" id="gDay">
1590
    <xs:annotation>
1591
  <xs:appinfo>
1592
        <hfp:hasFacet name="pattern"/>
1593
        <hfp:hasFacet name="enumeration"/>
1594
        <hfp:hasFacet name="whiteSpace"/>
1595
        <hfp:hasFacet name="maxInclusive"/>
1596
        <hfp:hasFacet name="maxExclusive"/>
1597
        <hfp:hasFacet name="minInclusive"/>
1598
        <hfp:hasFacet name="minExclusive"/>
1599
        <hfp:hasProperty name="ordered" value="partial"/>
1600
        <hfp:hasProperty name="bounded" value="false"/>
1601
        <hfp:hasProperty name="cardinality"
1602
                value="countably infinite"/>
1603
        <hfp:hasProperty name="numeric" value="false"/>
1604
      </xs:appinfo>
1605
      <xs:documentation
1606
        source="http://www.w3.org/TR/xmlschema-2/#gDay"/>
1607
    </xs:annotation>
1608
    <xs:restriction base="xs:anySimpleType">
1609
         <xs:whiteSpace value="collapse"  fixed="true"
1610
                id="gDay.whiteSpace"/>
1611
    </xs:restriction>
1612
  </xs:simpleType>
1613
1614
 <xs:simpleType name="gMonth" id="gMonth">
1615
    <xs:annotation>
1616
  <xs:appinfo>
1617
        <hfp:hasFacet name="pattern"/>
1618
        <hfp:hasFacet name="enumeration"/>
1619
        <hfp:hasFacet name="whiteSpace"/>
1620
        <hfp:hasFacet name="maxInclusive"/>
1621
        <hfp:hasFacet name="maxExclusive"/>
1622
        <hfp:hasFacet name="minInclusive"/>
1623
        <hfp:hasFacet name="minExclusive"/>
1624
        <hfp:hasProperty name="ordered" value="partial"/>
1625
        <hfp:hasProperty name="bounded" value="false"/>
1626
        <hfp:hasProperty name="cardinality"
1627
                value="countably infinite"/>
1628
        <hfp:hasProperty name="numeric" value="false"/>
1629
      </xs:appinfo>
1630
      <xs:documentation
1631
        source="http://www.w3.org/TR/xmlschema-2/#gMonth"/>
1632
    </xs:annotation>
1633
    <xs:restriction base="xs:anySimpleType">
1634
         <xs:whiteSpace value="collapse"  fixed="true"
1635
                id="gMonth.whiteSpace"/>
1636
    </xs:restriction>
1637
  </xs:simpleType>
1638
1639
   <xs:simpleType name="hexBinary" id="hexBinary">
1640
    <xs:annotation>
1641
      <xs:appinfo>
1642
        <hfp:hasFacet name="length"/>
1643
        <hfp:hasFacet name="minLength"/>
1644
        <hfp:hasFacet name="maxLength"/>
1645
        <hfp:hasFacet name="pattern"/>
1646
        <hfp:hasFacet name="enumeration"/>
1647
        <hfp:hasFacet name="whiteSpace"/>
1648
        <hfp:hasProperty name="ordered" value="false"/>
1649
        <hfp:hasProperty name="bounded" value="false"/>
1650
        <hfp:hasProperty name="cardinality"
1651
                value="countably infinite"/>
1652
        <hfp:hasProperty name="numeric" value="false"/>
1653
      </xs:appinfo>
1654
      <xs:documentation
1655
        source="http://www.w3.org/TR/xmlschema-2/#binary"/>
1656
    </xs:annotation>
1657
    <xs:restriction base="xs:anySimpleType">
1658
      <xs:whiteSpace value="collapse" fixed="true"
1659
        id="hexBinary.whiteSpace"/>
1660
    </xs:restriction>
1661
   </xs:simpleType>
1662
1663
 <xs:simpleType name="base64Binary" id="base64Binary">
1664
    <xs:annotation>
1665
      <xs:appinfo>
1666
        <hfp:hasFacet name="length"/>
1667
        <hfp:hasFacet name="minLength"/>
1668
        <hfp:hasFacet name="maxLength"/>
1669
        <hfp:hasFacet name="pattern"/>
1670
        <hfp:hasFacet name="enumeration"/>
1671
        <hfp:hasFacet name="whiteSpace"/>
1672
        <hfp:hasProperty name="ordered" value="false"/>
1673
        <hfp:hasProperty name="bounded" value="false"/>
1674
        <hfp:hasProperty name="cardinality"
1675
                value="countably infinite"/>
1676
        <hfp:hasProperty name="numeric" value="false"/>
1677
      </xs:appinfo>
1678
      <xs:documentation
1679
                source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
1680
    </xs:annotation>
1681
    <xs:restriction base="xs:anySimpleType">
1682
      <xs:whiteSpace value="collapse" fixed="true"
1683
        id="base64Binary.whiteSpace"/>
1684
    </xs:restriction>
1685
   </xs:simpleType>
1686
1687
   <xs:simpleType name="anyURI" id="anyURI">
1688
    <xs:annotation>
1689
      <xs:appinfo>
1690
        <hfp:hasFacet name="length"/>
1691
        <hfp:hasFacet name="minLength"/>
1692
        <hfp:hasFacet name="maxLength"/>
1693
        <hfp:hasFacet name="pattern"/>
1694
        <hfp:hasFacet name="enumeration"/>
1695
        <hfp:hasFacet name="whiteSpace"/>
1696
        <hfp:hasProperty name="ordered" value="false"/>
1697
        <hfp:hasProperty name="bounded" value="false"/>
1698
        <hfp:hasProperty name="cardinality"
1699
                value="countably infinite"/>
1700
        <hfp:hasProperty name="numeric" value="false"/>
1701
      </xs:appinfo>
1702
      <xs:documentation
1703
        source="http://www.w3.org/TR/xmlschema-2/#anyURI"/>
1704
    </xs:annotation>
1705
    <xs:restriction base="xs:anySimpleType">
1706
      <xs:whiteSpace value="collapse"  fixed="true"
1707
        id="anyURI.whiteSpace"/>
1708
    </xs:restriction>
1709
   </xs:simpleType>
1710
1711
  <xs:simpleType name="QName" id="QName">
1712
    <xs:annotation>
1713
        <xs:appinfo>
1714
        <hfp:hasFacet name="length"/>
1715
        <hfp:hasFacet name="minLength"/>
1716
        <hfp:hasFacet name="maxLength"/>
1717
        <hfp:hasFacet name="pattern"/>
1718
        <hfp:hasFacet name="enumeration"/>
1719
        <hfp:hasFacet name="whiteSpace"/>
1720
        <hfp:hasProperty name="ordered" value="false"/>
1721
        <hfp:hasProperty name="bounded" value="false"/>
1722
        <hfp:hasProperty name="cardinality"
1723
                value="countably infinite"/>
1724
        <hfp:hasProperty name="numeric" value="false"/>
1725
      </xs:appinfo>
1726
      <xs:documentation
1727
        source="http://www.w3.org/TR/xmlschema-2/#QName"/>
1728
    </xs:annotation>
1729
    <xs:restriction base="xs:anySimpleType">
1730
      <xs:whiteSpace value="collapse"  fixed="true"
1731
        id="QName.whiteSpace"/>
1732
    </xs:restriction>
1733
  </xs:simpleType>
1734
1735
   <xs:simpleType name="NOTATION" id="NOTATION">
1736
    <xs:annotation>
1737
        <xs:appinfo>
1738
        <hfp:hasFacet name="length"/>
1739
        <hfp:hasFacet name="minLength"/>
1740
        <hfp:hasFacet name="maxLength"/>
1741
        <hfp:hasFacet name="pattern"/>
1742
        <hfp:hasFacet name="enumeration"/>
1743
        <hfp:hasFacet name="whiteSpace"/>
1744
        <hfp:hasProperty name="ordered" value="false"/>
1745
        <hfp:hasProperty name="bounded" value="false"/>
1746
        <hfp:hasProperty name="cardinality"
1747
                value="countably infinite"/>
1748
        <hfp:hasProperty name="numeric" value="false"/>
1749
      </xs:appinfo>
1750
      <xs:documentation
1751
        source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
1752
      <xs:documentation>
1753
        NOTATION cannot be used directly in a schema; rather a type
1754
        must be derived from it by specifying at least one enumeration
1755
        facet whose value is the name of a NOTATION declared in the
1756
        schema.
1757
      </xs:documentation>
1758
    </xs:annotation>
1759
    <xs:restriction base="xs:anySimpleType">
1760
      <xs:whiteSpace value="collapse"  fixed="true"
1761
        id="NOTATION.whiteSpace"/>
1762
    </xs:restriction>
1763
  </xs:simpleType>
1764
1765
  <xs:annotation>
1766
    <xs:documentation>
1767
      Now the derived primitive types
1768
    </xs:documentation>
1769
  </xs:annotation>
1770
1771
  <xs:simpleType name="normalizedString" id="normalizedString">
1772
    <xs:annotation>
1773
      <xs:documentation
1774
        source="http://www.w3.org/TR/xmlschema-2/#normalizedString"/>
1775
    </xs:annotation>
1776
    <xs:restriction base="xs:string">
1777
      <xs:whiteSpace value="replace"
1778
        id="normalizedString.whiteSpace"/>
1779
    </xs:restriction>
1780
  </xs:simpleType>
1781
1782
  <xs:simpleType name="token" id="token">
1783
    <xs:annotation>
1784
      <xs:documentation
1785
        source="http://www.w3.org/TR/xmlschema-2/#token"/>
1786
    </xs:annotation>
1787
    <xs:restriction base="xs:normalizedString">
1788
      <xs:whiteSpace value="collapse" id="token.whiteSpace"/>
1789
    </xs:restriction>
1790
  </xs:simpleType>
1791
1792
  <xs:simpleType name="language" id="language">
1793
    <xs:annotation>
1794
      <xs:documentation
1795
        source="http://www.w3.org/TR/xmlschema-2/#language"/>
1796
    </xs:annotation>
1797
    <xs:restriction base="xs:token">
1798
      <xs:pattern
1799
        value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
1800
                id="language.pattern">
1801
        <xs:annotation>
1802
          <xs:documentation
1803
                source="http://www.ietf.org/rfc/rfc3066.txt">
1804
            pattern specifies the content of section 2.12 of XML 1.0e2
1805
            and RFC 3066 (Revised version of RFC 1766).
1806
          </xs:documentation>
1807
        </xs:annotation>
1808
      </xs:pattern>
1809
    </xs:restriction>
1810
  </xs:simpleType>
1811
1812
  <xs:simpleType name="IDREFS" id="IDREFS">
1813
    <xs:annotation>
1814
      <xs:appinfo>
1815
        <hfp:hasFacet name="length"/>
1816
        <hfp:hasFacet name="minLength"/>
1817
        <hfp:hasFacet name="maxLength"/>
1818
        <hfp:hasFacet name="enumeration"/>
1819
        <hfp:hasFacet name="whiteSpace"/>
1820
        <hfp:hasFacet name="pattern"/>
1821
        <hfp:hasProperty name="ordered" value="false"/>
1822
        <hfp:hasProperty name="bounded" value="false"/>
1823
        <hfp:hasProperty name="cardinality"
1824
                value="countably infinite"/>
1825
        <hfp:hasProperty name="numeric" value="false"/>
1826
      </xs:appinfo>
1827
      <xs:documentation
1828
        source="http://www.w3.org/TR/xmlschema-2/#IDREFS"/>
1829
    </xs:annotation>
1830
    <xs:restriction>
1831
      <xs:simpleType>
1832
        <xs:list itemType="xs:IDREF"/>
1833
      </xs:simpleType>
1834
        <xs:minLength value="1" id="IDREFS.minLength"/>
1835
    </xs:restriction>
1836
  </xs:simpleType>
1837
1838
  <xs:simpleType name="ENTITIES" id="ENTITIES">
1839
    <xs:annotation>
1840
      <xs:appinfo>
1841
        <hfp:hasFacet name="length"/>
1842
        <hfp:hasFacet name="minLength"/>
1843
        <hfp:hasFacet name="maxLength"/>
1844
        <hfp:hasFacet name="enumeration"/>
1845
        <hfp:hasFacet name="whiteSpace"/>
1846
        <hfp:hasFacet name="pattern"/>
1847
        <hfp:hasProperty name="ordered" value="false"/>
1848
        <hfp:hasProperty name="bounded" value="false"/>
1849
        <hfp:hasProperty name="cardinality"
1850
                value="countably infinite"/>
1851
        <hfp:hasProperty name="numeric" value="false"/>
1852
      </xs:appinfo>
1853
      <xs:documentation
1854
        source="http://www.w3.org/TR/xmlschema-2/#ENTITIES"/>
1855
    </xs:annotation>
1856
    <xs:restriction>
1857
      <xs:simpleType>
1858
        <xs:list itemType="xs:ENTITY"/>
1859
      </xs:simpleType>
1860
        <xs:minLength value="1" id="ENTITIES.minLength"/>
1861
    </xs:restriction>
1862
  </xs:simpleType>
1863
1864
  <xs:simpleType name="NMTOKEN" id="NMTOKEN">
1865
    <xs:annotation>
1866
      <xs:documentation
1867
        source="http://www.w3.org/TR/xmlschema-2/#NMTOKEN"/>
1868
    </xs:annotation>
1869
    <xs:restriction base="xs:token">
1870
      <xs:pattern value="\c+" id="NMTOKEN.pattern">
1871
        <xs:annotation>
1872
          <xs:documentation
1873
                source="http://www.w3.org/TR/REC-xml#NT-Nmtoken">
1874
            pattern matches production 7 from the XML spec
1875
          </xs:documentation>
1876
        </xs:annotation>
1877
      </xs:pattern>
1878
    </xs:restriction>
1879
  </xs:simpleType>
1880
1881
  <xs:simpleType name="NMTOKENS" id="NMTOKENS">
1882
    <xs:annotation>
1883
      <xs:appinfo>
1884
        <hfp:hasFacet name="length"/>
1885
        <hfp:hasFacet name="minLength"/>
1886
        <hfp:hasFacet name="maxLength"/>
1887
        <hfp:hasFacet name="enumeration"/>
1888
        <hfp:hasFacet name="whiteSpace"/>
1889
        <hfp:hasFacet name="pattern"/>
1890
        <hfp:hasProperty name="ordered" value="false"/>
1891
        <hfp:hasProperty name="bounded" value="false"/>
1892
        <hfp:hasProperty name="cardinality"
1893
                value="countably infinite"/>
1894
        <hfp:hasProperty name="numeric" value="false"/>
1895
      </xs:appinfo>
1896
      <xs:documentation
1897
        source="http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/>
1898
    </xs:annotation>
1899
    <xs:restriction>
1900
      <xs:simpleType>
1901
        <xs:list itemType="xs:NMTOKEN"/>
1902
      </xs:simpleType>
1903
        <xs:minLength value="1" id="NMTOKENS.minLength"/>
1904
    </xs:restriction>
1905
  </xs:simpleType>
1906
1907
  <xs:simpleType name="Name" id="Name">
1908
    <xs:annotation>
1909
      <xs:documentation
1910
        source="http://www.w3.org/TR/xmlschema-2/#Name"/>
1911
    </xs:annotation>
1912
    <xs:restriction base="xs:token">
1913
      <xs:pattern value="\i\c*" id="Name.pattern">
1914
        <xs:annotation>
1915
          <xs:documentation
1916
                        source="http://www.w3.org/TR/REC-xml#NT-Name">
1917
            pattern matches production 5 from the XML spec
1918
          </xs:documentation>
1919
        </xs:annotation>
1920
      </xs:pattern>
1921
    </xs:restriction>
1922
  </xs:simpleType>
1923
1924
  <xs:simpleType name="NCName" id="NCName">
1925
    <xs:annotation>
1926
      <xs:documentation
1927
        source="http://www.w3.org/TR/xmlschema-2/#NCName"/>
1928
    </xs:annotation>
1929
    <xs:restriction base="xs:Name">
1930
      <xs:pattern value="[\i-[:]][\c-[:]]*" id="NCName.pattern">
1931
        <xs:annotation>
1932
          <xs:documentation
1933
                source="http://www.w3.org/TR/REC-xml-names/#NT-NCName">
1934
            pattern matches production 4 from the Namespaces in XML spec
1935
          </xs:documentation>
1936
        </xs:annotation>
1937
      </xs:pattern>
1938
    </xs:restriction>
1939
  </xs:simpleType>
1940
1941
   <xs:simpleType name="ID" id="ID">
1942
    <xs:annotation>
1943
      <xs:documentation
1944
        source="http://www.w3.org/TR/xmlschema-2/#ID"/>
1945
    </xs:annotation>
1946
    <xs:restriction base="xs:NCName"/>
1947
   </xs:simpleType>
1948
1949
   <xs:simpleType name="IDREF" id="IDREF">
1950
    <xs:annotation>
1951
      <xs:documentation
1952
        source="http://www.w3.org/TR/xmlschema-2/#IDREF"/>
1953
    </xs:annotation>
1954
    <xs:restriction base="xs:NCName"/>
1955
   </xs:simpleType>
1956
1957
   <xs:simpleType name="ENTITY" id="ENTITY">
1958
    <xs:annotation>
1959
      <xs:documentation
1960
        source="http://www.w3.org/TR/xmlschema-2/#ENTITY"/>
1961
    </xs:annotation>
1962
    <xs:restriction base="xs:NCName"/>
1963
   </xs:simpleType>
1964
1965
  <xs:simpleType name="integer" id="integer">
1966
    <xs:annotation>
1967
      <xs:documentation
1968
        source="http://www.w3.org/TR/xmlschema-2/#integer"/>
1969
    </xs:annotation>
1970
    <xs:restriction base="xs:decimal">
1971
      <xs:fractionDigits value="0" fixed="true" id="integer.fractionDigits"/>
1972
      <xs:pattern value="[\-+]?[0-9]+"/>
1973
    </xs:restriction>
1974
  </xs:simpleType>
1975
1976
  <xs:simpleType name="nonPositiveInteger" id="nonPositiveInteger">
1977
    <xs:annotation>
1978
      <xs:documentation
1979
        source="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger"/>
1980
    </xs:annotation>
1981
    <xs:restriction base="xs:integer">
1982
      <xs:maxInclusive value="0" id="nonPositiveInteger.maxInclusive"/>
1983
    </xs:restriction>
1984
  </xs:simpleType>
1985
1986
  <xs:simpleType name="negativeInteger" id="negativeInteger">
1987
    <xs:annotation>
1988
      <xs:documentation
1989
        source="http://www.w3.org/TR/xmlschema-2/#negativeInteger"/>
1990
    </xs:annotation>
1991
    <xs:restriction base="xs:nonPositiveInteger">
1992
      <xs:maxInclusive value="-1" id="negativeInteger.maxInclusive"/>
1993
    </xs:restriction>
1994
  </xs:simpleType>
1995
1996
  <xs:simpleType name="long" id="long">
1997
    <xs:annotation>
1998
      <xs:appinfo>
1999
        <hfp:hasProperty name="bounded" value="true"/>
2000
        <hfp:hasProperty name="cardinality" value="finite"/>
2001
      </xs:appinfo>
2002
      <xs:documentation
2003
        source="http://www.w3.org/TR/xmlschema-2/#long"/>
2004
    </xs:annotation>
2005
    <xs:restriction base="xs:integer">
2006
      <xs:minInclusive value="-9223372036854775808" id="long.minInclusive"/>
2007
      <xs:maxInclusive value="9223372036854775807" id="long.maxInclusive"/>
2008
    </xs:restriction>
2009
  </xs:simpleType>
2010
2011
  <xs:simpleType name="int" id="int">
2012
    <xs:annotation>
2013
      <xs:documentation
2014
        source="http://www.w3.org/TR/xmlschema-2/#int"/>
2015
    </xs:annotation>
2016
    <xs:restriction base="xs:long">
2017
      <xs:minInclusive value="-2147483648" id="int.minInclusive"/>
2018
      <xs:maxInclusive value="2147483647" id="int.maxInclusive"/>
2019
    </xs:restriction>
2020
  </xs:simpleType>
2021
2022
  <xs:simpleType name="short" id="short">
2023
    <xs:annotation>
2024
      <xs:documentation
2025
        source="http://www.w3.org/TR/xmlschema-2/#short"/>
2026
    </xs:annotation>
2027
    <xs:restriction base="xs:int">
2028
      <xs:minInclusive value="-32768" id="short.minInclusive"/>
2029
      <xs:maxInclusive value="32767" id="short.maxInclusive"/>
2030
    </xs:restriction>
2031
  </xs:simpleType>
2032
2033
  <xs:simpleType name="byte" id="byte">
2034
    <xs:annotation>
2035
      <xs:documentation
2036
        source="http://www.w3.org/TR/xmlschema-2/#byte"/>
2037
    </xs:annotation>
2038
    <xs:restriction base="xs:short">
2039
      <xs:minInclusive value="-128" id="byte.minInclusive"/>
2040
      <xs:maxInclusive value="127" id="byte.maxInclusive"/>
2041
    </xs:restriction>
2042
  </xs:simpleType>
2043
2044
  <xs:simpleType name="nonNegativeInteger" id="nonNegativeInteger">
2045
    <xs:annotation>
2046
      <xs:documentation
2047
        source="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/>
2048
    </xs:annotation>
2049
    <xs:restriction base="xs:integer">
2050
      <xs:minInclusive value="0" id="nonNegativeInteger.minInclusive"/>
2051
    </xs:restriction>
2052
  </xs:simpleType>
2053
2054
  <xs:simpleType name="unsignedLong" id="unsignedLong">
2055
    <xs:annotation>
2056
      <xs:appinfo>
2057
        <hfp:hasProperty name="bounded" value="true"/>
2058
        <hfp:hasProperty name="cardinality" value="finite"/>
2059
      </xs:appinfo>
2060
      <xs:documentation
2061
        source="http://www.w3.org/TR/xmlschema-2/#unsignedLong"/>
2062
    </xs:annotation>
2063
    <xs:restriction base="xs:nonNegativeInteger">
2064
      <xs:maxInclusive value="18446744073709551615"
2065
        id="unsignedLong.maxInclusive"/>
2066
    </xs:restriction>
2067
  </xs:simpleType>
2068
2069
  <xs:simpleType name="unsignedInt" id="unsignedInt">
2070
    <xs:annotation>
2071
      <xs:documentation
2072
        source="http://www.w3.org/TR/xmlschema-2/#unsignedInt"/>
2073
    </xs:annotation>
2074
    <xs:restriction base="xs:unsignedLong">
2075
      <xs:maxInclusive value="4294967295"
2076
        id="unsignedInt.maxInclusive"/>
2077
    </xs:restriction>
2078
  </xs:simpleType>
2079
2080
  <xs:simpleType name="unsignedShort" id="unsignedShort">
2081
    <xs:annotation>
2082
      <xs:documentation
2083
        source="http://www.w3.org/TR/xmlschema-2/#unsignedShort"/>
2084
    </xs:annotation>
2085
    <xs:restriction base="xs:unsignedInt">
2086
      <xs:maxInclusive value="65535"
2087
        id="unsignedShort.maxInclusive"/>
2088
    </xs:restriction>
2089
  </xs:simpleType>
2090
2091
  <xs:simpleType name="unsignedByte" id="unsignedByte">
2092
    <xs:annotation>
2093
      <xs:documentation
2094
        source="http://www.w3.org/TR/xmlschema-2/#unsignedByte"/>
2095
    </xs:annotation>
2096
    <xs:restriction base="xs:unsignedShort">
2097
      <xs:maxInclusive value="255" id="unsignedByte.maxInclusive"/>
2098
    </xs:restriction>
2099
  </xs:simpleType>
2100
2101
  <xs:simpleType name="positiveInteger" id="positiveInteger">
2102
    <xs:annotation>
2103
      <xs:documentation
2104
        source="http://www.w3.org/TR/xmlschema-2/#positiveInteger"/>
2105
    </xs:annotation>
2106
    <xs:restriction base="xs:nonNegativeInteger">
2107
      <xs:minInclusive value="1" id="positiveInteger.minInclusive"/>
2108
    </xs:restriction>
2109
  </xs:simpleType>
2110
2111
 <xs:simpleType name="derivationControl">
2112
  <xs:annotation>
2113
   <xs:documentation>
2114
   A utility type, not for public use</xs:documentation>
2115
  </xs:annotation>
2116
  <xs:restriction base="xs:NMTOKEN">
2117
   <xs:enumeration value="substitution"/>
2118
   <xs:enumeration value="extension"/>
2119
   <xs:enumeration value="restriction"/>
2120
   <xs:enumeration value="list"/>
2121
   <xs:enumeration value="union"/>
2122
  </xs:restriction>
2123
 </xs:simpleType>
2124
2125
 <xs:group name="simpleDerivation">
2126
  <xs:choice>
2127
    <xs:element ref="xs:restriction"/>
2128
    <xs:element ref="xs:list"/>
2129
    <xs:element ref="xs:union"/>
2130
  </xs:choice>
2131
 </xs:group>
2132
2133
 <xs:simpleType name="simpleDerivationSet">
2134
  <xs:annotation>
2135
   <xs:documentation>
2136
   #all or (possibly empty) subset of {restriction, union, list}
2137
   </xs:documentation>
2138
   <xs:documentation>
2139
   A utility type, not for public use</xs:documentation>
2140
  </xs:annotation>
2141
  <xs:union>
2142
   <xs:simpleType>
2143
    <xs:restriction base="xs:token">
2144
     <xs:enumeration value="#all"/>
2145
    </xs:restriction>
2146
   </xs:simpleType>
2147
   <xs:simpleType>
2148
    <xs:list>
2149
     <xs:simpleType>
2150
      <xs:restriction base="xs:derivationControl">
2151
       <xs:enumeration value="list"/>
2152
       <xs:enumeration value="union"/>
2153
       <xs:enumeration value="restriction"/>
2154
      </xs:restriction>
2155
     </xs:simpleType>
2156
    </xs:list>
2157
   </xs:simpleType>
2158
  </xs:union>
2159
 </xs:simpleType>
2160
2161
  <xs:complexType name="simpleType" abstract="true">
2162
    <xs:complexContent>
2163
      <xs:extension base="xs:annotated">
2164
        <xs:group ref="xs:simpleDerivation"/>
2165
        <xs:attribute name="final" type="xs:simpleDerivationSet"/>
2166
        <xs:attribute name="name" type="xs:NCName">
2167
          <xs:annotation>
2168
            <xs:documentation>
2169
              Can be restricted to required or forbidden
2170
            </xs:documentation>
2171
          </xs:annotation>
2172
        </xs:attribute>
2173
      </xs:extension>
2174
    </xs:complexContent>
2175
  </xs:complexType>
2176
2177
  <xs:complexType name="topLevelSimpleType">
2178
    <xs:complexContent>
2179
      <xs:restriction base="xs:simpleType">
2180
        <xs:sequence>
2181
          <xs:element ref="xs:annotation" minOccurs="0"/>
2182
          <xs:group ref="xs:simpleDerivation"/>
2183
        </xs:sequence>
2184
        <xs:attribute name="name" use="required"
2185
             type="xs:NCName">
2186
          <xs:annotation>
2187
            <xs:documentation>
2188
              Required at the top level
2189
            </xs:documentation>
2190
          </xs:annotation>
2191
        </xs:attribute>
2192
       <xs:anyAttribute namespace="##other" processContents="lax"/>
2193
      </xs:restriction>
2194
    </xs:complexContent>
2195
  </xs:complexType>
2196
2197
  <xs:complexType name="localSimpleType">
2198
    <xs:complexContent>
2199
      <xs:restriction base="xs:simpleType">
2200
        <xs:sequence>
2201
          <xs:element ref="xs:annotation" minOccurs="0"/>
2202
          <xs:group ref="xs:simpleDerivation"/>
2203
        </xs:sequence>
2204
        <xs:attribute name="name" use="prohibited">
2205
          <xs:annotation>
2206
            <xs:documentation>
2207
              Forbidden when nested
2208
            </xs:documentation>
2209
          </xs:annotation>
2210
        </xs:attribute>
2211
        <xs:attribute name="final" use="prohibited"/>
2212
       <xs:anyAttribute namespace="##other" processContents="lax"/>
2213
      </xs:restriction>
2214
    </xs:complexContent>
2215
  </xs:complexType>
2216
2217
  <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
2218
    <xs:annotation>
2219
      <xs:documentation
2220
        source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
2221
    </xs:annotation>
2222
  </xs:element>
2223
2224
  <xs:group name="facets">
2225
   <xs:annotation>
2226
    <xs:documentation>
2227
       We should use a substitution group for facets, but
2228
       that's ruled out because it would allow users to
2229
       add their own, which we're not ready for yet.
2230
    </xs:documentation>
2231
   </xs:annotation>
2232
   <xs:choice>
2233
    <xs:element ref="xs:minExclusive"/>
2234
    <xs:element ref="xs:minInclusive"/>
2235
    <xs:element ref="xs:maxExclusive"/>
2236
    <xs:element ref="xs:maxInclusive"/>
2237
    <xs:element ref="xs:totalDigits"/>
2238
    <xs:element ref="xs:fractionDigits"/>
2239
    <xs:element ref="xs:length"/>
2240
    <xs:element ref="xs:minLength"/>
2241
    <xs:element ref="xs:maxLength"/>
2242
    <xs:element ref="xs:enumeration"/>
2243
    <xs:element ref="xs:whiteSpace"/>
2244
    <xs:element ref="xs:pattern"/>
2245
   </xs:choice>
2246
  </xs:group>
2247
2248
  <xs:group name="simpleRestrictionModel">
2249
   <xs:sequence>
2250
    <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
2251
    <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
2252
   </xs:sequence>
2253
  </xs:group>
2254
2255
  <xs:element name="restriction" id="restriction">
2256
   <xs:complexType>
2257
    <xs:annotation>
2258
      <xs:documentation
2259
                source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
2260
          base attribute and simpleType child are mutually
2261
          exclusive, but one or other is required
2262
        </xs:documentation>
2263
      </xs:annotation>
2264
      <xs:complexContent>
2265
        <xs:extension base="xs:annotated">
2266
         <xs:group ref="xs:simpleRestrictionModel"/>
2267
         <xs:attribute name="base" type="xs:QName" use="optional"/>
2268
        </xs:extension>
2269
      </xs:complexContent>
2270
    </xs:complexType>
2271
  </xs:element>
2272
2273
  <xs:element name="list" id="list">
2274
   <xs:complexType>
2275
    <xs:annotation>
2276
      <xs:documentation
2277
                source="http://www.w3.org/TR/xmlschema-2/#element-list">
2278
          itemType attribute and simpleType child are mutually
2279
          exclusive, but one or other is required
2280
        </xs:documentation>
2281
      </xs:annotation>
2282
      <xs:complexContent>
2283
        <xs:extension base="xs:annotated">
2284
          <xs:sequence>
2285
            <xs:element name="simpleType" type="xs:localSimpleType"
2286
                minOccurs="0"/>
2287
          </xs:sequence>
2288
          <xs:attribute name="itemType" type="xs:QName" use="optional"/>
2289
        </xs:extension>
2290
      </xs:complexContent>
2291
    </xs:complexType>
2292
  </xs:element>
2293
2294
  <xs:element name="union" id="union">
2295
   <xs:complexType>
2296
    <xs:annotation>
2297
      <xs:documentation
2298
                source="http://www.w3.org/TR/xmlschema-2/#element-union">
2299
          memberTypes attribute must be non-empty or there must be
2300
          at least one simpleType child
2301
        </xs:documentation>
2302
      </xs:annotation>
2303
      <xs:complexContent>
2304
        <xs:extension base="xs:annotated">
2305
          <xs:sequence>
2306
            <xs:element name="simpleType" type="xs:localSimpleType"
2307
                minOccurs="0" maxOccurs="unbounded"/>
2308
          </xs:sequence>
2309
          <xs:attribute name="memberTypes" use="optional">
2310
            <xs:simpleType>
2311
              <xs:list itemType="xs:QName"/>
2312
            </xs:simpleType>
2313
          </xs:attribute>
2314
        </xs:extension>
2315
      </xs:complexContent>
2316
    </xs:complexType>
2317
  </xs:element>
2318
2319
  <xs:complexType name="facet">
2320
    <xs:complexContent>
2321
      <xs:extension base="xs:annotated">
2322
        <xs:attribute name="value" use="required"/>
2323
        <xs:attribute name="fixed" type="xs:boolean" use="optional"
2324
                      default="false"/>
2325
      </xs:extension>
2326
    </xs:complexContent>
2327
  </xs:complexType>
2328
2329
 <xs:complexType name="noFixedFacet">
2330
  <xs:complexContent>
2331
   <xs:restriction base="xs:facet">
2332
    <xs:sequence>
2333
     <xs:element ref="xs:annotation" minOccurs="0"/>
2334
    </xs:sequence>
2335
    <xs:attribute name="fixed" use="prohibited"/>
2336
    <xs:anyAttribute namespace="##other" processContents="lax"/>
2337
   </xs:restriction>
2338
  </xs:complexContent>
2339
 </xs:complexType>
2340
2341
  <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
2342
    <xs:annotation>
2343
      <xs:documentation
2344
        source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
2345
    </xs:annotation>
2346
  </xs:element>
2347
  <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
2348
    <xs:annotation>
2349
      <xs:documentation
2350
        source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
2351
    </xs:annotation>
2352
  </xs:element>
2353
2354
  <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
2355
    <xs:annotation>
2356
      <xs:documentation
2357
        source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
2358
    </xs:annotation>
2359
  </xs:element>
2360
  <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
2361
    <xs:annotation>
2362
      <xs:documentation
2363
        source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
2364
    </xs:annotation>
2365
  </xs:element>
2366
2367
  <xs:complexType name="numFacet">
2368
    <xs:complexContent>
2369
      <xs:restriction base="xs:facet">
2370
       <xs:sequence>
2371
         <xs:element ref="xs:annotation" minOccurs="0"/>
2372
       </xs:sequence>
2373
       <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
2374
       <xs:anyAttribute namespace="##other" processContents="lax"/>
2375
      </xs:restriction>
2376
    </xs:complexContent>
2377
  </xs:complexType>
2378
2379
  <xs:element name="totalDigits" id="totalDigits">
2380
    <xs:annotation>
2381
      <xs:documentation
2382
        source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
2383
    </xs:annotation>
2384
    <xs:complexType>
2385
      <xs:complexContent>
2386
        <xs:restriction base="xs:numFacet">
2387
          <xs:sequence>
2388
            <xs:element ref="xs:annotation" minOccurs="0"/>
2389
          </xs:sequence>
2390
          <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
2391
         <xs:anyAttribute namespace="##other" processContents="lax"/>
2392
        </xs:restriction>
2393
      </xs:complexContent>
2394
    </xs:complexType>
2395
  </xs:element>
2396
  <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
2397
    <xs:annotation>
2398
      <xs:documentation
2399
        source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
2400
    </xs:annotation>
2401
  </xs:element>
2402
2403
  <xs:element name="length" id="length" type="xs:numFacet">
2404
    <xs:annotation>
2405
      <xs:documentation
2406
        source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
2407
    </xs:annotation>
2408
  </xs:element>
2409
  <xs:element name="minLength" id="minLength" type="xs:numFacet">
2410
    <xs:annotation>
2411
      <xs:documentation
2412
        source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
2413
    </xs:annotation>
2414
  </xs:element>
2415
  <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
2416
    <xs:annotation>
2417
      <xs:documentation
2418
        source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
2419
    </xs:annotation>
2420
  </xs:element>
2421
2422
  <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
2423
    <xs:annotation>
2424
      <xs:documentation
2425
        source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
2426
    </xs:annotation>
2427
  </xs:element>
2428
2429
  <xs:element name="whiteSpace" id="whiteSpace">
2430
    <xs:annotation>
2431
      <xs:documentation
2432
        source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
2433
    </xs:annotation>
2434
    <xs:complexType>
2435
      <xs:complexContent>
2436
        <xs:restriction base="xs:facet">
2437
          <xs:sequence>
2438
            <xs:element ref="xs:annotation" minOccurs="0"/>
2439
          </xs:sequence>
2440
          <xs:attribute name="value" use="required">
2441
            <xs:simpleType>
2442
              <xs:restriction base="xs:NMTOKEN">
2443
                <xs:enumeration value="preserve"/>
2444
                <xs:enumeration value="replace"/>
2445
                <xs:enumeration value="collapse"/>
2446
              </xs:restriction>
2447
            </xs:simpleType>
2448
          </xs:attribute>
2449
         <xs:anyAttribute namespace="##other" processContents="lax"/>
2450
        </xs:restriction>
2451
      </xs:complexContent>
2452
    </xs:complexType>
2453
  </xs:element>
2454
2455
  <xs:element name="pattern" id="pattern">
2456
    <xs:annotation>
2457
      <xs:documentation
2458
        source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
2459
    </xs:annotation>
2460
    <xs:complexType>
2461
      <xs:complexContent>
2462
        <xs:restriction base="xs:noFixedFacet">
2463
          <xs:sequence>
2464
            <xs:element ref="xs:annotation" minOccurs="0"/>
2465
          </xs:sequence>
2466
          <xs:attribute name="value" type="xs:string" use="required"/>
2467
         <xs:anyAttribute namespace="##other" processContents="lax"/>
2468
        </xs:restriction>
2469
      </xs:complexContent>
2470
    </xs:complexType>
2471
  </xs:element>
2472
2473
</xs:schema>

Return to bug 203793