]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/schemas/XForms-11-Schema.xsd
Use runtime namespace context as default.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / schemas / XForms-11-Schema.xsd
1 <?xml version="1.0"?>
2 <xsd:schema targetNamespace="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" elementFormDefault="qualified">
3 <!--
4 Changes:
5 26-Aug MJD fixed typo where more than one child allowed on <instance>
6 04-Sep MJD fixed typo on <send> : attribute 'submission' is required
7 04-Sep MJD fixed typo on <rebuild><recalculate><revalidate><refresh>: '' attribute is required
8 06-Sep MJD clarified specific allowed values of @level on <message>
9 06-Sep MJD removed UI Common attributes from <help><hint><alert><label>
10 09-Sep MJD changed minOccurrs and maxOccurs to use XPath expressions, default values
11 09-Sep MJD fixed typo: added linking attributes to <message>
12 09-Sep MJD removed <extension> from content models of <mode> and UI common elements
13 09-Sep MJD fixed typo: removed 'format' attribute
14 17-Sep MJD fixed typo: <output> now uses the attribute group for binding attributes, instead of similarly named individual attrs
15 17-Sep MJD added XPathExpression simpleType for internal use. This doesn't actually change anything, but makes
16 the Schema a better documentation resource (instead of using xsd:string for everything)
17 17-Sep MJD removed 'mediatype' attribute from <submission>, as it was unused
18 17-Sep MJD fixed typo: only 'ref' and 'bind' attributes, not 'model' on <submission>
19 17-Sep MJD added XML Events attributes to <model>
20 17-Sep MJD in accordance with 3.2.1, removed all id attributes
21 19-Sep MJD fixed typo: clarified that nested <action>s are permitted.
22 19-Sep MJD factor UI.Inline into <group>. Renamed <group>s and <attributeGroup>s to match the prose names
23 19-Sep MJD changed to agreed-upon namespace for CR
24 25-Sep MJD fixed typo: added UI.Inlne to content model of <message>, enabled mixed content
25 29-Sep MJD fixed typo: 'model' required on <reset>
26 29-Sep MJD fixed typo: binding attributes allowed on <submit>
27 29-Sep MJD fixed typo: explicit enumerated values for 'show' on <load>
28 04-Oct MJD 'resource' attribute not required
29
30 12-Nov 2002 : Published as CR
31
32 13-Jan MJD added new attribute includenamespaceprefixes on <submission>
33 13-Jan MJD added UI Common elements to content model of <group>
34 03-Feb MJD synchoninzed duration types with 15 Nov Query Operators document
35 31-Mar MJD added mediatype attribute on <submission>
36 14-May MJD typo : "xsd:NCName"
37 26-Jun MJD removed 'accesskey' and 'navindex' (over to host language definition)
38
39 01-Aug 2003 : Published as PR
40
41 15-Sep MJD final namespace
42 15-Sep MJD corrected content model of <value>
43 15-Sep MJD changed the name of the import for XML Events to highlight that only the attributes are used
44
45 1.0 Second Edition errata
46
47 16-Apr 2005 RAM - erratum E4 - optional @model
48 16-Apr 2005 RAM - erratum E22 - default value for @show
49 16-Apr 2005 RAM - erratum E54 - remove xforms:minOccurs and xforms:maxOccurs
50 26-Jun 2005 RAM - erratum E71 - allow an empty case element
51
52 16-Jun 2006 JMB - erratum E69 - instance attribute in submission; id in common attributes
53
54 15-Aug-2006 CFW - erratum E18 on 2nd ed. Added Action to content model for Case
55
56 09-Sep 2006 JMB - non-substantive: explicitly declared some use="optional" settings,
57 substantive: erratum E18 on 2nd ed. Declared default false for selected attribute of case
58 substantive: erratum E21 on 2nd ed. Added multipart-post to enumeration of method attribute
59 23-Nov 2006 JMB - substantive: erratum E32 on 2nd ed. switch in repeat
60 17-Jul 2007 JMB - substantive: erratum E41 on 2nd ed. version attribute and associated simple types
61
62 XForms 1.1
63
64 25 Oct 2007 CFW, NvdB and JMB - Updated to XForms 1.1
65 21 Nov 2007 JMB: Fixed description of card-number datatype
66 08 Apr 2008 JMB: Fixed NCName (was NCNAME)
67 30 MAY 2008 JMB: Changed card-number to allow zero or more digits
68 22 JUN 2008 JMB: Renamed UI.Inline to UI.Content
69 07 SEP 2008 LLK: Added element header attribute combine. header now allows one name, multiple value.
70 09 MAR 2009 JMB: Changed @separator default to ampersand
71 19 MAY 2009 JMB: Added submission/@targetref, dispatch/@targetid and dispatch/targetid
72 10 JUN 2009 JMB: Moved switch/case from global space to being local to switch for clarity
73 13 JAN 2010 JMB: Put maxOccurs=1 on instance content to limit to one child element in an instance
74 16 SEP 2010 JBM: Added xforms:duration datatype (1.1 Erratum #1), added UICommon before ListUICommon on select/select1 (1.1 Erratum #2)
75 -->
76 <xsd:import namespace="http://www.w3.org/2001/xml-events" schemaLocation="xml-events-attribs-1.xsd"/>
77 <xsd:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="XMLSchema.xsd"/>
78
79 <!--
80 structural elements
81 -->
82 <xsd:attributeGroup name="Common.Attributes">
83 <xsd:annotation>
84 <xsd:documentation>Attributes for _every_ element in XForms</xsd:documentation>
85 </xsd:annotation>
86 <xsd:attribute name="id" type="xsd:ID" use="optional"/>
87 <xsd:anyAttribute namespace="##other"/>
88 </xsd:attributeGroup>
89
90 <xsd:attributeGroup name="Single.Node.Binding.Attributes">
91 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
92 <xsd:attribute name="ref" type="xforms:XPathExpression" use="optional"/>
93 <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
94 </xsd:attributeGroup>
95
96 <xsd:attributeGroup name="Nodeset.Binding.Attributes">
97 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
98 <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
99 <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
100 </xsd:attributeGroup>
101
102 <xsd:attributeGroup name="Linking.Attributes">
103 <xsd:attribute name="src" type="xsd:anyURI"/>
104 </xsd:attributeGroup>
105
106 <xsd:element name="model">
107 <xsd:complexType>
108 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
109 <xsd:choice>
110 <xsd:element ref="xforms:instance"/>
111 <xsd:element ref="xsd:schema"/>
112 <xsd:element ref="xforms:submission"/>
113 <xsd:element ref="xforms:bind"/>
114 <xsd:group ref="xforms:Action"/>
115 </xsd:choice>
116 </xsd:sequence>
117 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
118 <xsd:attributeGroup ref="xforms:XML.Events"/>
119 <xsd:attribute name="functions" type="xforms:QNameList" use="optional"/>
120 <xsd:attribute name="schema" type="xforms:anyURIList" use="optional"/>
121 <xsd:attribute name="version" type="xforms:versionList" use="optional"/>
122 </xsd:complexType>
123 </xsd:element>
124
125 <xsd:element name="instance">
126 <xsd:annotation>
127 <xsd:documentation>instance container.</xsd:documentation>
128 </xsd:annotation>
129 <xsd:complexType>
130 <xsd:sequence>
131 <xsd:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="1"/>
132 </xsd:sequence>
133 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
134 <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
135 <xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
136 </xsd:complexType>
137 </xsd:element>
138
139 <xsd:element name="bind">
140 <xsd:annotation>
141 <xsd:documentation>Definition of bind container.</xsd:documentation>
142 </xsd:annotation>
143 <xsd:complexType>
144 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
145 <xsd:element ref="xforms:bind"/>
146 </xsd:sequence>
147 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
148 <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
149 <xsd:attribute name="calculate" type="xforms:XPathExpression" use="optional"/>
150 <xsd:attribute name="type" type="xsd:QName" use="optional"/>
151 <xsd:attribute name="required" type="xforms:XPathExpression" use="optional"/>
152 <xsd:attribute name="constraint" type="xforms:XPathExpression" use="optional"/>
153 <xsd:attribute name="relevant" type="xforms:XPathExpression" use="optional"/>
154 <xsd:attribute name="readonly" type="xforms:XPathExpression" use="optional"/>
155 <xsd:attribute name="p3ptype" type="xsd:string" use="optional"/>
156 </xsd:complexType>
157 </xsd:element>
158
159 <xsd:element name="extension">
160 <xsd:complexType>
161 <xsd:sequence>
162 <xsd:any namespace="##other"/>
163 </xsd:sequence>
164 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
165 </xsd:complexType>
166 </xsd:element>
167
168 <!--
169 User Interface form controls
170 -->
171 <xsd:group name="Core.Form.Controls">
172 <xsd:choice>
173 <xsd:element ref="xforms:input"/>
174 <xsd:element ref="xforms:secret"/>
175 <xsd:element ref="xforms:textarea"/>
176 <xsd:element ref="xforms:output"/>
177 <xsd:element ref="xforms:upload"/>
178 <xsd:element ref="xforms:select1"/>
179 <xsd:element ref="xforms:select"/>
180 <xsd:element ref="xforms:range"/>
181 <xsd:element ref="xforms:submit"/>
182 <xsd:element ref="xforms:trigger"/>
183 </xsd:choice>
184 </xsd:group>
185
186 <xsd:group name="Container.Form.Controls">
187 <xsd:choice>
188 <xsd:element ref="xforms:group"/>
189 <xsd:element ref="xforms:switch"/>
190 <xsd:element ref="xforms:repeat"/>
191 </xsd:choice>
192 </xsd:group>
193
194 <xsd:attributeGroup name="UI.Common.Attrs">
195 <xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
196 </xsd:attributeGroup>
197
198 <xsd:group name="UI.Content">
199 <xsd:sequence>
200 <xsd:choice minOccurs="0">
201 <xsd:element ref="xforms:output"/>
202 <!-- containing document language to add additional allowed content here -->
203 </xsd:choice>
204 </xsd:sequence>
205 </xsd:group>
206
207 <xsd:group name="UI.Common">
208 <xsd:sequence>
209 <xsd:choice minOccurs="0" maxOccurs="unbounded">
210 <xsd:element ref="xforms:help"/>
211 <xsd:element ref="xforms:hint"/>
212 <xsd:element ref="xforms:alert"/>
213 <xsd:group ref="xforms:Action"/>
214 </xsd:choice>
215 </xsd:sequence>
216 </xsd:group>
217
218 <xsd:element name="label">
219 <xsd:complexType mixed="true">
220 <xsd:group ref="xforms:UI.Content"/>
221 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
222 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
223 </xsd:complexType>
224 </xsd:element>
225 <xsd:element name="hint">
226 <xsd:complexType mixed="true">
227 <xsd:group ref="xforms:UI.Content"/>
228 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
229 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
230 </xsd:complexType>
231 </xsd:element>
232 <xsd:element name="help">
233 <xsd:complexType mixed="true">
234 <xsd:group ref="xforms:UI.Content"/>
235 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
236 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
237 </xsd:complexType>
238 </xsd:element>
239 <xsd:element name="alert">
240 <xsd:complexType mixed="true">
241 <xsd:group ref="xforms:UI.Content"/>
242 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
243 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
244 </xsd:complexType>
245 </xsd:element>
246
247 <xsd:group name="List.UI.Common">
248 <xsd:sequence>
249 <xsd:choice>
250 <xsd:element ref="xforms:item"/>
251 <xsd:element ref="xforms:itemset"/>
252 <xsd:element ref="xforms:choices"/>
253 </xsd:choice>
254 </xsd:sequence>
255 </xsd:group>
256 <xsd:element name="item">
257 <xsd:complexType>
258 <xsd:sequence>
259 <xsd:element ref="xforms:label"/>
260 <xsd:element ref="xforms:value"/>
261 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
262 </xsd:sequence>
263 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
264 </xsd:complexType>
265 </xsd:element>
266 <xsd:element name="itemset">
267 <xsd:complexType>
268 <xsd:sequence>
269 <xsd:element ref="xforms:label"/>
270 <xsd:choice>
271 <xsd:element ref="xforms:value"/>
272 <xsd:element ref="xforms:copy"/>
273 </xsd:choice>
274 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
275 </xsd:sequence>
276 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
277 <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
278 </xsd:complexType>
279 </xsd:element>
280 <xsd:element name="choices">
281 <xsd:complexType>
282 <xsd:sequence>
283 <xsd:element ref="xforms:label" minOccurs="0"/>
284 <xsd:sequence maxOccurs="unbounded">
285 <xsd:choice>
286 <xsd:element ref="xforms:choices"/>
287 <xsd:element ref="xforms:item"/>
288 <xsd:element ref="xforms:itemset"/>
289 </xsd:choice>
290 </xsd:sequence>
291 </xsd:sequence>
292 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
293 </xsd:complexType>
294 </xsd:element>
295
296 <xsd:element name="value">
297 <xsd:complexType>
298 <xsd:simpleContent>
299 <xsd:extension base="xsd:string">
300 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
301 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
302 <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
303 </xsd:extension>
304 </xsd:simpleContent>
305 </xsd:complexType>
306 </xsd:element>
307 <xsd:element name="copy">
308 <xsd:complexType>
309 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
310 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
311 </xsd:complexType>
312 </xsd:element>
313 <!--
314 <xsd:element name="filename">
315 <xsd:complexType>
316 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
317 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
318 </xsd:complexType>
319 </xsd:element>
320 <xsd:element name="mediatype">
321 <xsd:complexType>
322 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
323 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
324 </xsd:complexType>
325 </xsd:element>
326 -->
327 <xsd:complexType name="filename">
328 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
329 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
330 </xsd:complexType>
331 <xsd:complexType name="mediatype">
332 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
333 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
334 </xsd:complexType>
335 <xsd:complexType name="mediatypeWithValue">
336 <xsd:complexContent>
337 <xsd:extension base="xforms:mediatype">
338 <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
339 </xsd:extension>
340 </xsd:complexContent>
341 </xsd:complexType>
342
343 <xsd:element name="input">
344 <xsd:complexType>
345 <xsd:sequence>
346 <xsd:element ref="xforms:label"/>
347 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
348 </xsd:sequence>
349 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
350 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
351 <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
352 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
353 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
354 </xsd:complexType>
355 </xsd:element>
356 <xsd:element name="secret">
357 <xsd:complexType>
358 <xsd:sequence>
359 <xsd:element ref="xforms:label"/>
360 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
361 </xsd:sequence>
362 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
363 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
364 <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
365 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
366 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
367 </xsd:complexType>
368 </xsd:element>
369 <xsd:element name="textarea">
370 <xsd:complexType>
371 <xsd:sequence>
372 <xsd:element ref="xforms:label"/>
373 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
374 </xsd:sequence>
375 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
376 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
377 <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
378 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
379 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
380 </xsd:complexType>
381 </xsd:element>
382 <xsd:element name="upload">
383 <xsd:complexType>
384 <xsd:sequence>
385 <xsd:element ref="xforms:label"/>
386 <!--
387 <xsd:element ref="xforms:filename" minOccurs="0"/>
388 <xsd:element ref="xforms:mediatype" minOccurs="0"/>
389 -->
390 <xsd:element name="filename" type="xforms:filename" minOccurs="0"/>
391 <xsd:element name="mediatype" type="xforms:mediatype" minOccurs="0"/>
392 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
393 </xsd:sequence>
394 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
395 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
396 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
397 <xsd:attribute name="mediatype" type="xsd:string" use="optional"/>
398 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
399 </xsd:complexType>
400 </xsd:element>
401 <xsd:element name="select1">
402 <xsd:complexType>
403 <xsd:sequence>
404 <xsd:element ref="xforms:label"/>
405 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
406 <xsd:group ref="xforms:List.UI.Common" maxOccurs="unbounded"/>
407 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
408 </xsd:sequence>
409 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
410 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
411 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
412 <xsd:attribute name="selection" use="optional" default="closed">
413 <xsd:simpleType>
414 <xsd:restriction base="xsd:string">
415 <xsd:enumeration value="open"/>
416 <xsd:enumeration value="closed"/>
417 </xsd:restriction>
418 </xsd:simpleType>
419 </xsd:attribute>
420 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="true"/>
421 </xsd:complexType>
422 </xsd:element>
423 <xsd:element name="select">
424 <xsd:complexType>
425 <xsd:sequence>
426 <xsd:element ref="xforms:label"/>
427 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
428 <xsd:group ref="xforms:List.UI.Common" maxOccurs="unbounded"/>
429 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
430 </xsd:sequence>
431 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
432 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
433 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
434 <xsd:attribute name="selection" use="optional" default="closed">
435 <xsd:simpleType>
436 <xsd:restriction base="xsd:string">
437 <xsd:enumeration value="open"/>
438 <xsd:enumeration value="closed"/>
439 </xsd:restriction>
440 </xsd:simpleType>
441 </xsd:attribute>
442 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="true"/>
443 </xsd:complexType>
444 </xsd:element>
445 <xsd:element name="range">
446 <xsd:complexType>
447 <xsd:sequence>
448 <xsd:element ref="xforms:label"/>
449 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
450 </xsd:sequence>
451 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
452 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
453 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
454 <xsd:attribute name="start" type="xsd:string" use="optional"/>
455 <xsd:attribute name="end" type="xsd:string" use="optional"/>
456 <xsd:attribute name="step" type="xsd:string" use="optional"/>
457 <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
458 </xsd:complexType>
459 </xsd:element>
460 <xsd:element name="trigger">
461 <xsd:complexType>
462 <xsd:sequence>
463 <xsd:element ref="xforms:label"/>
464 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
465 </xsd:sequence>
466 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
467 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
468 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
469 </xsd:complexType>
470 </xsd:element>
471 <xsd:element name="output">
472 <xsd:complexType>
473 <xsd:sequence minOccurs="0">
474 <xsd:element ref="xforms:label"/>
475 <!--
476 <xsd:element ref="xforms:mediatype" minOccurs="0"/>
477 -->
478 <xsd:element name="mediatype" type="xforms:mediatypeWithValue" minOccurs="0"/>
479 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
480 </xsd:sequence>
481 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
482 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
483 <xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
484 <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
485 <xsd:attribute name="mediatype" type="xsd:string" use="optional"/>
486 </xsd:complexType>
487 </xsd:element>
488 <xsd:element name="submit">
489 <xsd:complexType>
490 <xsd:sequence>
491 <xsd:element ref="xforms:label"/>
492 <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
493 </xsd:sequence>
494 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
495 <xsd:attribute name="submission" type="xsd:IDREF" use="optional"/>
496 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
497 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
498 </xsd:complexType>
499 </xsd:element>
500
501 <!--
502 Advanced User Interface
503 -->
504 <xsd:attribute name="repeat-nodeset" type="xforms:XPathExpression"/>
505 <xsd:attribute name="repeat-model" type="xsd:IDREF"/>
506 <xsd:attribute name="repeat-bind" type="xsd:IDREF"/>
507 <xsd:attribute name="repeat-startindex" type="xsd:positiveInteger"/>
508 <xsd:attribute name="repeat-number" type="xsd:nonNegativeInteger"/>
509
510 <xsd:element name="repeat">
511 <xsd:complexType>
512 <xsd:sequence>
513 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
514 <xsd:choice>
515 <xsd:group ref="xforms:Core.Form.Controls"/>
516 <xsd:group ref="xforms:Container.Form.Controls"/>
517 <xsd:group ref="xforms:Action"/>
518 <!-- containing document language to add additional allowed content here -->
519 </xsd:choice>
520 </xsd:sequence>
521 </xsd:sequence>
522 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
523 <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
524 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
525 <xsd:attribute name="startindex" type="xsd:positiveInteger"/>
526 <xsd:attribute name="number" type="xsd:nonNegativeInteger"/>
527 </xsd:complexType>
528 </xsd:element>
529 <xsd:element name="group">
530 <xsd:complexType>
531 <xsd:sequence>
532 <xsd:element ref="xforms:label" minOccurs="0"/>
533 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
534 <xsd:choice>
535 <xsd:group ref="xforms:Core.Form.Controls"/>
536 <xsd:group ref="xforms:Container.Form.Controls"/>
537 <xsd:group ref="xforms:UI.Common"/>
538 <!-- containing document language to add additional allowed content here -->
539 </xsd:choice>
540 </xsd:sequence>
541 </xsd:sequence>
542 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
543 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
544 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
545 </xsd:complexType>
546 </xsd:element>
547 <xsd:element name="switch">
548 <xsd:complexType>
549 <xsd:sequence maxOccurs="unbounded">
550 <xsd:element name="case">
551 <xsd:complexType>
552 <xsd:sequence>
553 <xsd:element ref="xforms:label" minOccurs="0"/>
554 <xsd:sequence minOccurs="0" maxOccurs="unbounded">
555 <xsd:choice>
556 <xsd:group ref="xforms:Core.Form.Controls"/>
557 <xsd:group ref="xforms:Container.Form.Controls"/>
558 <xsd:group ref="xforms:Action"/>
559 <!-- containing document language to add additional allowed content here -->
560 </xsd:choice>
561 </xsd:sequence>
562 </xsd:sequence>
563 <xsd:attribute name="selected" type="xsd:boolean" use="optional" default="false"/>
564 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
565 </xsd:complexType>
566 </xsd:element>
567 </xsd:sequence>
568 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
569 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
570 <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
571 </xsd:complexType>
572 </xsd:element>
573
574 <!--
575 XForms Actions
576 -->
577
578 <xsd:attributeGroup name="XML.Events">
579 <xsd:attribute ref="ev:event"/>
580 <xsd:attribute ref="ev:observer"/>
581 <xsd:attribute ref="ev:target"/>
582 <xsd:attribute ref="ev:handler"/>
583 <xsd:attribute ref="ev:phase"/>
584 <xsd:attribute ref="ev:propagate"/>
585 <xsd:attribute ref="ev:defaultAction"/>
586 </xsd:attributeGroup>
587
588 <xsd:attributeGroup name="Common.Action.Attributes">
589 <xsd:annotation>
590 <xsd:documentation>Attributes for _every_ action in XForms</xsd:documentation>
591 </xsd:annotation>
592 <xsd:attribute name="if" type="xforms:XPathExpression" use="optional"/>
593 <xsd:attribute name="while" type="xforms:XPathExpression" use="optional"/>
594 </xsd:attributeGroup>
595
596 <xsd:group name="Action">
597 <xsd:sequence>
598 <xsd:choice minOccurs="0" maxOccurs="unbounded">
599 <xsd:element ref="xforms:action"/>
600 <xsd:element ref="xforms:setvalue"/>
601 <xsd:element ref="xforms:insert"/>
602 <xsd:element ref="xforms:delete"/>
603 <xsd:element ref="xforms:setindex"/>
604 <xsd:element ref="xforms:toggle"/>
605 <xsd:element ref="xforms:setfocus"/>
606 <xsd:element ref="xforms:dispatch"/>
607 <xsd:element ref="xforms:rebuild"/>
608 <xsd:element ref="xforms:recalculate"/>
609 <xsd:element ref="xforms:revalidate"/>
610 <xsd:element ref="xforms:refresh"/>
611 <xsd:element ref="xforms:reset"/>
612 <xsd:element ref="xforms:load"/>
613 <xsd:element ref="xforms:send"/>
614 <xsd:element ref="xforms:message"/>
615 </xsd:choice>
616 </xsd:sequence>
617 </xsd:group>
618
619 <xsd:element name="action">
620 <xsd:complexType>
621 <xsd:sequence maxOccurs="unbounded">
622 <xsd:group ref="xforms:Action"/>
623 </xsd:sequence>
624 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
625 <xsd:attributeGroup ref="xforms:XML.Events"/>
626 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
627 </xsd:complexType>
628 </xsd:element>
629 <xsd:element name="setvalue">
630 <xsd:complexType>
631 <xsd:simpleContent>
632 <xsd:extension base="xsd:string">
633 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
634 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
635 <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
636 <xsd:attributeGroup ref="xforms:XML.Events"/>
637 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
638 </xsd:extension>
639 </xsd:simpleContent>
640 </xsd:complexType>
641 </xsd:element>
642 <xsd:element name="insert">
643 <xsd:complexType>
644 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
645 <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
646 <xsd:attribute name="at" type="xforms:XPathExpression" use="optional"/>
647 <xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
648 <xsd:attribute name="origin" type="xforms:XPathExpression" use="optional"/>
649 <xsd:attribute name="position" use="optional">
650 <xsd:simpleType>
651 <xsd:restriction base="xsd:string">
652 <xsd:enumeration value="before"/>
653 <xsd:enumeration value="after"/>
654 </xsd:restriction>
655 </xsd:simpleType>
656 </xsd:attribute>
657 <xsd:attributeGroup ref="xforms:XML.Events"/>
658 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
659 </xsd:complexType>
660 </xsd:element>
661 <xsd:element name="delete">
662 <xsd:complexType>
663 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
664 <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
665 <xsd:attribute name="at" type="xforms:XPathExpression" use="optional"/>
666 <xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
667 <xsd:attributeGroup ref="xforms:XML.Events"/>
668 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
669 </xsd:complexType>
670 </xsd:element>
671 <xsd:element name="setindex">
672 <xsd:complexType>
673 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
674 <xsd:attribute name="repeat" type="xsd:IDREF" use="required"/>
675 <xsd:attribute name="index" type="xforms:XPathExpression" use="required"/>
676 <xsd:attributeGroup ref="xforms:XML.Events"/>
677 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
678 </xsd:complexType>
679 </xsd:element>
680 <xsd:element name="toggle">
681 <xsd:complexType>
682 <xsd:sequence minOccurs="0" maxOccurs="1">
683 <xsd:element name="case" type="xforms:ValueTemplate"/>
684 </xsd:sequence>
685 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
686 <xsd:attribute name="case" type="xsd:IDREF" use="optional"/>
687 <xsd:attributeGroup ref="xforms:XML.Events"/>
688 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
689 </xsd:complexType>
690 </xsd:element>
691 <xsd:element name="setfocus">
692 <xsd:complexType>
693 <xsd:sequence minOccurs="0" maxOccurs="1">
694 <xsd:element name="control" type="xforms:ValueTemplate"/>
695 </xsd:sequence>
696 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
697 <xsd:attribute name="control" type="xsd:IDREF" use="optional"/>
698 <xsd:attributeGroup ref="xforms:XML.Events"/>
699 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
700 </xsd:complexType>
701 </xsd:element>
702 <xsd:element name="dispatch">
703 <xsd:complexType>
704 <!-- Need to be able to say only zero or one of each child, but order independent.
705 This gets as close as possible with schema. -->
706 <xsd:sequence minOccurs="0" maxOccurs="3">
707 <xsd:choice>
708 <xsd:element name="name" type="xforms:ValueTemplate"/>
709 <xsd:element name="targetid" type="xforms:ValueTemplate"/>
710 <xsd:element name="target" type="xforms:ValueTemplate"/>
711 <xsd:element name="delay" type="xforms:ValueTemplate"/>
712 </xsd:choice>
713 </xsd:sequence>
714 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
715 <xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
716 <xsd:attribute name="targetid" type="xsd:IDREF" use="optional"/>
717 <xsd:attribute name="target" type="xsd:IDREF" use="optional"/>
718 <xsd:attribute name="delay" type="xsd:string" use="optional" default=""/>
719 <xsd:attribute name="bubbles" type="xsd:boolean" use="optional" default="true"/>
720 <xsd:attribute name="cancelable" type="xsd:boolean" use="optional" default="true"/>
721 <xsd:attributeGroup ref="xforms:XML.Events"/>
722 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
723 </xsd:complexType>
724 </xsd:element>
725 <xsd:element name="rebuild">
726 <xsd:complexType>
727 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
728 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
729 <xsd:attributeGroup ref="xforms:XML.Events"/>
730 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
731 </xsd:complexType>
732 </xsd:element>
733 <xsd:element name="recalculate">
734 <xsd:complexType>
735 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
736 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
737 <xsd:attributeGroup ref="xforms:XML.Events"/>
738 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
739 </xsd:complexType>
740 </xsd:element>
741 <xsd:element name="revalidate">
742 <xsd:complexType>
743 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
744 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
745 <xsd:attributeGroup ref="xforms:XML.Events"/>
746 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
747 </xsd:complexType>
748 </xsd:element>
749 <xsd:element name="refresh">
750 <xsd:complexType>
751 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
752 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
753 <xsd:attributeGroup ref="xforms:XML.Events"/>
754 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
755 </xsd:complexType>
756 </xsd:element>
757 <xsd:element name="reset">
758 <xsd:complexType>
759 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
760 <xsd:attributeGroup ref="xforms:XML.Events"/>
761 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
762 <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
763 </xsd:complexType>
764 </xsd:element>
765 <xsd:element name="load">
766 <xsd:complexType>
767 <xsd:sequence minOccurs="0" maxOccurs="1">
768 <xsd:element name="resource" type="xforms:ValueTemplate"/>
769 </xsd:sequence>
770 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
771 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
772 <xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
773 <xsd:attribute name="show" use="optional" default="replace">
774 <xsd:simpleType>
775 <xsd:restriction base="xsd:string">
776 <xsd:enumeration value="new"/>
777 <xsd:enumeration value="replace"/>
778 </xsd:restriction>
779 </xsd:simpleType>
780 </xsd:attribute>
781 <xsd:attributeGroup ref="xforms:XML.Events"/>
782 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
783 </xsd:complexType>
784 </xsd:element>
785 <xsd:element name="send">
786 <xsd:complexType>
787 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
788 <xsd:attribute name="submission" type="xsd:IDREF" use="optional"/>
789 <xsd:attributeGroup ref="xforms:XML.Events"/>
790 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
791 </xsd:complexType>
792 </xsd:element>
793 <xsd:element name="message">
794 <xsd:complexType mixed="true">
795 <xsd:group ref="xforms:UI.Content"/>
796 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
797 <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
798 <xsd:attribute name="level" use="optional" default="modal">
799 <xsd:simpleType>
800 <xsd:union memberTypes="xforms:QNameButNotNCNAME">
801 <xsd:simpleType>
802 <xsd:restriction base="xsd:string">
803 <xsd:enumeration value="ephemeral"/>
804 <xsd:enumeration value="modeless"/>
805 <xsd:enumeration value="modal"/>
806 </xsd:restriction>
807 </xsd:simpleType>
808 </xsd:union>
809 </xsd:simpleType>
810 </xsd:attribute>
811 <xsd:attributeGroup ref="xforms:XML.Events"/>
812 <xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
813 </xsd:complexType>
814 </xsd:element>
815
816 <xsd:element name="submission">
817 <xsd:annotation>
818 <xsd:documentation>submit info container.</xsd:documentation>
819 </xsd:annotation>
820 <xsd:complexType>
821 <xsd:sequence>
822 <!-- There should only be zero or one resource, zero or one method, and zero or more header
823 We can't say exactly this, but we get as close as possible -->
824 <xsd:choice minOccurs="0" maxOccurs="unbounded">
825 <xsd:element name="resource" type="xforms:ValueTemplate"/>
826 <xsd:element name="method" type="xforms:ValueTemplate"/>
827 <xsd:element name="header">
828 <xsd:complexType>
829 <!-- Both name and value+ are required, but order independent -->
830 <xsd:choice>
831 <xsd:sequence>
832 <xsd:element name="name" type="xforms:ValueTemplate" />
833 <xsd:element name="value" type="xforms:ValueTemplate"
834 minOccurs="1" maxOccurs="unbounded" />
835 </xsd:sequence>
836 <xsd:sequence>
837 <xsd:element name="value" type="xforms:ValueTemplate"
838 minOccurs="1" maxOccurs="unbounded" />
839 <xsd:element name="name" type="xforms:ValueTemplate" />
840 </xsd:sequence>
841 </xsd:choice>
842 <xsd:attribute name="combine" use="optional" default="append">
843 <xsd:simpleType>
844 <xsd:restriction base="xsd:string">
845 <xsd:enumeration value="append"/>
846 <xsd:enumeration value="prepend"/>
847 <xsd:enumeration value="replace"/>
848 </xsd:restriction>
849 </xsd:simpleType>
850 </xsd:attribute>
851 </xsd:complexType>
852 </xsd:element>
853 </xsd:choice>
854 <!-- As is the case everywhere else, action handlers are last -->
855 <xsd:group ref="xforms:Action"/>
856 </xsd:sequence>
857 <xsd:attributeGroup ref="xforms:Common.Attributes"/>
858
859 <xsd:attribute name="ref" type="xforms:XPathExpression" use="optional"/>
860 <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
861
862 <!-- Either the resource attribute, action attribute, or resource child element is required -->
863 <xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
864 <xsd:attribute name="action" type="xsd:anyURI" use="optional"/>
865
866 <xsd:attribute name="mode" use="optional" default="asynchronous">
867 <xsd:simpleType>
868 <xsd:restriction base="xsd:string">
869 <xsd:enumeration value="asynchronous"/>
870 <xsd:enumeration value="synchronous"/>
871 </xsd:restriction>
872 </xsd:simpleType>
873 </xsd:attribute>
874
875 <!-- Either the method attribute or the method child element is required -->
876 <xsd:attribute name="method" use="optional">
877 <xsd:simpleType>
878 <xsd:union memberTypes="xforms:QNameButNotNCNAME xsd:NCName">
879 <xsd:simpleType>
880 <xsd:restriction base="xsd:string">
881 <xsd:enumeration value="post"/>
882 <xsd:enumeration value="put"/>
883 <xsd:enumeration value="get"/>
884 <xsd:enumeration value="delete"/>
885 <xsd:enumeration value="multipart-post"/>
886 <xsd:enumeration value="form-data-post"/>
887 <xsd:enumeration value="urlencoded-post"/>
888 </xsd:restriction>
889 </xsd:simpleType>
890 </xsd:union>
891 </xsd:simpleType>
892 </xsd:attribute>
893
894 <!-- The defaults for these are false if serialization is 'none' and true otherwise -->
895 <xsd:attribute name="validate" type="xsd:boolean" use="optional"/>
896 <xsd:attribute name="relevant" type="xsd:boolean" use="optional"/>
897
898 <!-- The default is based on the selected method, e.g. application/xml for the post method -->
899 <xsd:attribute name="serialization" type="xsd:string" use="optional"/>
900
901 <xsd:attribute name="version" type="xsd:NMTOKEN" use="optional" default="1.0"/>
902 <xsd:attribute name="indent" type="xsd:boolean" use="optional" default="false"/>
903 <xsd:attribute name="mediatype" type="xsd:string" use="optional" default="application/xml"/>
904 <xsd:attribute name="encoding" type="xsd:string" use="optional" default="UTF-8"/>
905
906 <xsd:attribute name="omit-xml-declaration" type="xsd:boolean" use="optional" default="false"/>
907 <!-- This is optional with no default because omitting the attribute behaves differently
908 than including it with any value -->
909 <xsd:attribute name="standalone" type="xsd:boolean" use="optional"/>
910
911 <xsd:attribute name="cdata-section-elements" type="xforms:QNameList" use="optional" default=""/>
912
913 <xsd:attribute name="replace" use="optional" default="all">
914 <xsd:simpleType>
915 <xsd:union memberTypes="xforms:QNameButNotNCNAME">
916 <xsd:simpleType>
917 <xsd:restriction base="xsd:string">
918 <xsd:enumeration value="all"/>
919 <xsd:enumeration value="instance"/>
920 <xsd:enumeration value="text"/>
921 <xsd:enumeration value="none"/>
922 </xsd:restriction>
923 </xsd:simpleType>
924 </xsd:union>
925 </xsd:simpleType>
926 </xsd:attribute>
927
928 <!-- Default is not specified because the default is to replace the instance being submitted -->
929 <xsd:attribute name="instance" type="xsd:IDREF" use="optional"/>
930
931 <xsd:attribute name="separator" use="optional" default="&amp;">
932 <xsd:simpleType>
933 <xsd:restriction base="xsd:string">
934 <xsd:enumeration value="&amp;"/>
935 <xsd:enumeration value=";"/>
936 </xsd:restriction>
937 </xsd:simpleType>
938 </xsd:attribute>
939
940 <!-- Default is not specified because the defalut is to replace the whole instance indicated
941 by the instance attribute -->
942 <xsd:attribute name="targetref" type="xforms:XPathExpression" use="optional"/>
943 <xsd:attribute name="target" type="xforms:XPathExpression" use="optional"/>
944
945 <!-- Default not specified because omitting the attribute behaves differently than
946 including it with any value -->
947 <xsd:attribute name="includenamespaceprefixes" use="optional">
948 <xsd:simpleType>
949 <xsd:list>
950 <xsd:simpleType>
951 <xsd:union memberTypes="xsd:NCName">
952 <xsd:simpleType>
953 <xsd:restriction base="xsd:string">
954 <xsd:enumeration value="#default"/>
955 </xsd:restriction>
956 </xsd:simpleType>
957 </xsd:union>
958 </xsd:simpleType>
959 </xsd:list>
960 </xsd:simpleType>
961 </xsd:attribute>
962 </xsd:complexType>
963 </xsd:element>
964
965 <!--
966 Internal helper types
967 -->
968
969 <xsd:simpleType name="versionList">
970 <xsd:list itemType="xforms:versionNumber"/>
971 </xsd:simpleType>
972 <xsd:simpleType name="versionNumber">
973 <xsd:restriction base="xsd:string">
974 <xsd:pattern value="[1-9]\d*\.\d+"/>
975 </xsd:restriction>
976 </xsd:simpleType>
977 <xsd:simpleType name="XPathExpression">
978 <xsd:restriction base="xsd:string"/>
979 </xsd:simpleType>
980 <xsd:simpleType name="QNameList">
981 <xsd:list itemType="xsd:QName"/>
982 </xsd:simpleType>
983 <xsd:simpleType name="anyURIList">
984 <xsd:list itemType="xsd:anyURI"/>
985 </xsd:simpleType>
986 <xsd:simpleType name="QNameButNotNCNAME">
987 <xsd:restriction base="xsd:QName">
988 <xsd:pattern value="[^:]+:[^:]+"/>
989 </xsd:restriction>
990 </xsd:simpleType>
991 <xsd:simpleType name="appearanceType">
992 <xsd:union memberTypes="xforms:QNameButNotNCNAME">
993 <xsd:simpleType>
994 <xsd:restriction base="xsd:string">
995 <xsd:enumeration value="full"/>
996 <xsd:enumeration value="compact"/>
997 <xsd:enumeration value="minimal"/>
998 </xsd:restriction>
999 </xsd:simpleType>
1000 </xsd:union>
1001 </xsd:simpleType>
1002
1003 <xsd:complexType name="ValueTemplate">
1004 <xsd:simpleContent>
1005 <xsd:extension base="xsd:string">
1006 <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
1007 </xsd:extension>
1008 </xsd:simpleContent>
1009 </xsd:complexType>
1010
1011 <!--
1012 New simpleTypes provided to form authors
1013 -->
1014
1015 <xsd:simpleType name="listItem">
1016 <xsd:restriction base="xsd:string">
1017 <xsd:pattern value="\S+"/>
1018 </xsd:restriction>
1019 </xsd:simpleType>
1020 <xsd:simpleType name="listItems">
1021 <xsd:list itemType="xforms:listItem"/>
1022 </xsd:simpleType>
1023
1024 <xsd:simpleType name="dateTime">
1025 <xsd:union>
1026 <xsd:simpleType>
1027 <xsd:restriction base="xsd:dateTime"/>
1028 </xsd:simpleType>
1029 <xsd:simpleType>
1030 <xsd:restriction base="xsd:string">
1031 <xsd:length value="0"/>
1032 </xsd:restriction>
1033 </xsd:simpleType>
1034 </xsd:union>
1035 </xsd:simpleType>
1036
1037 <xsd:simpleType name="time">
1038 <xsd:union>
1039 <xsd:simpleType>
1040 <xsd:restriction base="xsd:time"/>
1041 </xsd:simpleType>
1042 <xsd:simpleType>
1043 <xsd:restriction base="xsd:string">
1044 <xsd:length value="0"/>
1045 </xsd:restriction>
1046 </xsd:simpleType>
1047 </xsd:union>
1048 </xsd:simpleType>
1049
1050 <xsd:simpleType name="date">
1051 <xsd:union>
1052 <xsd:simpleType>
1053 <xsd:restriction base="xsd:date"/>
1054 </xsd:simpleType>
1055 <xsd:simpleType>
1056 <xsd:restriction base="xsd:string">
1057 <xsd:length value="0"/>
1058 </xsd:restriction>
1059 </xsd:simpleType>
1060 </xsd:union>
1061 </xsd:simpleType>
1062
1063 <xsd:simpleType name="duration">
1064 <xsd:union>
1065 <xsd:simpleType>
1066 <xsd:restriction base="xsd:duration"/>
1067 </xsd:simpleType>
1068 <xsd:simpleType>
1069 <xsd:restriction base="xsd:string">
1070 <xsd:length value="0"/>
1071 </xsd:restriction>
1072 </xsd:simpleType>
1073 </xsd:union>
1074 </xsd:simpleType>
1075
1076 <xsd:simpleType name="gYearMonth">
1077 <xsd:union>
1078 <xsd:simpleType>
1079 <xsd:restriction base="xsd:gYearMonth"/>
1080 </xsd:simpleType>
1081 <xsd:simpleType>
1082 <xsd:restriction base="xsd:string">
1083 <xsd:length value="0"/>
1084 </xsd:restriction>
1085 </xsd:simpleType>
1086 </xsd:union>
1087 </xsd:simpleType>
1088
1089 <xsd:simpleType name="gYear">
1090 <xsd:union>
1091 <xsd:simpleType>
1092 <xsd:restriction base="xsd:gYear"/>
1093 </xsd:simpleType>
1094 <xsd:simpleType>
1095 <xsd:restriction base="xsd:string">
1096 <xsd:length value="0"/>
1097 </xsd:restriction>
1098 </xsd:simpleType>
1099 </xsd:union>
1100 </xsd:simpleType>
1101
1102 <xsd:simpleType name="gMonthDay">
1103 <xsd:union>
1104 <xsd:simpleType>
1105 <xsd:restriction base="xsd:gMonthDay"/>
1106 </xsd:simpleType>
1107 <xsd:simpleType>
1108 <xsd:restriction base="xsd:string">
1109 <xsd:length value="0"/>
1110 </xsd:restriction>
1111 </xsd:simpleType>
1112 </xsd:union>
1113 </xsd:simpleType>
1114
1115 <xsd:simpleType name="gDay">
1116 <xsd:union>
1117 <xsd:simpleType>
1118 <xsd:restriction base="xsd:gDay"/>
1119 </xsd:simpleType>
1120 <xsd:simpleType>
1121 <xsd:restriction base="xsd:string">
1122 <xsd:length value="0"/>
1123 </xsd:restriction>
1124 </xsd:simpleType>
1125 </xsd:union>
1126 </xsd:simpleType>
1127
1128 <xsd:simpleType name="gMonth">
1129 <xsd:union>
1130 <xsd:simpleType>
1131 <xsd:restriction base="xsd:gMonth"/>
1132 </xsd:simpleType>
1133 <xsd:simpleType>
1134 <xsd:restriction base="xsd:string">
1135 <xsd:length value="0"/>
1136 </xsd:restriction>
1137 </xsd:simpleType>
1138 </xsd:union>
1139 </xsd:simpleType>
1140
1141 <xsd:simpleType name="string">
1142 <xsd:restriction base="xsd:string"/>
1143 </xsd:simpleType>
1144
1145 <xsd:simpleType name="boolean">
1146 <xsd:union>
1147 <xsd:simpleType>
1148 <xsd:restriction base="xsd:boolean"/>
1149 </xsd:simpleType>
1150 <xsd:simpleType>
1151 <xsd:restriction base="xsd:string">
1152 <xsd:length value="0"/>
1153 </xsd:restriction>
1154 </xsd:simpleType>
1155 </xsd:union>
1156 </xsd:simpleType>
1157
1158 <xsd:simpleType name="base64Binary">
1159 <xsd:union>
1160 <xsd:simpleType>
1161 <xsd:restriction base="xsd:base64Binary"/>
1162 </xsd:simpleType>
1163 <xsd:simpleType>
1164 <xsd:restriction base="xsd:string">
1165 <xsd:length value="0"/>
1166 </xsd:restriction>
1167 </xsd:simpleType>
1168 </xsd:union>
1169 </xsd:simpleType>
1170
1171 <xsd:simpleType name="hexBinary">
1172 <xsd:union>
1173 <xsd:simpleType>
1174 <xsd:restriction base="xsd:hexBinary"/>
1175 </xsd:simpleType>
1176 <xsd:simpleType>
1177 <xsd:restriction base="xsd:string">
1178 <xsd:length value="0"/>
1179 </xsd:restriction>
1180 </xsd:simpleType>
1181 </xsd:union>
1182 </xsd:simpleType>
1183
1184 <xsd:simpleType name="float">
1185 <xsd:union>
1186 <xsd:simpleType>
1187 <xsd:restriction base="xsd:float"/>
1188 </xsd:simpleType>
1189 <xsd:simpleType>
1190 <xsd:restriction base="xsd:string">
1191 <xsd:length value="0"/>
1192 </xsd:restriction>
1193 </xsd:simpleType>
1194 </xsd:union>
1195 </xsd:simpleType>
1196
1197 <xsd:simpleType name="decimal">
1198 <xsd:union>
1199 <xsd:simpleType>
1200 <xsd:restriction base="xsd:decimal"/>
1201 </xsd:simpleType>
1202 <xsd:simpleType>
1203 <xsd:restriction base="xsd:string">
1204 <xsd:length value="0"/>
1205 </xsd:restriction>
1206 </xsd:simpleType>
1207 </xsd:union>
1208 </xsd:simpleType>
1209
1210 <xsd:simpleType name="double">
1211 <xsd:union>
1212 <xsd:simpleType>
1213 <xsd:restriction base="xsd:double"/>
1214 </xsd:simpleType>
1215 <xsd:simpleType>
1216 <xsd:restriction base="xsd:string">
1217 <xsd:length value="0"/>
1218 </xsd:restriction>
1219 </xsd:simpleType>
1220 </xsd:union>
1221 </xsd:simpleType>
1222
1223 <xsd:simpleType name="anyURI">
1224 <xsd:union>
1225 <xsd:simpleType>
1226 <xsd:restriction base="xsd:anyURI"/>
1227 </xsd:simpleType>
1228 <xsd:simpleType>
1229 <xsd:restriction base="xsd:string">
1230 <xsd:length value="0"/>
1231 </xsd:restriction>
1232 </xsd:simpleType>
1233 </xsd:union>
1234 </xsd:simpleType>
1235
1236 <xsd:simpleType name="QName">
1237 <xsd:union>
1238 <xsd:simpleType>
1239 <xsd:restriction base="xsd:QName"/>
1240 </xsd:simpleType>
1241 <xsd:simpleType>
1242 <xsd:restriction base="xsd:string">
1243 <xsd:length value="0"/>
1244 </xsd:restriction>
1245 </xsd:simpleType>
1246 </xsd:union>
1247 </xsd:simpleType>
1248
1249 <xsd:simpleType name="normalizedString">
1250 <xsd:union>
1251 <xsd:simpleType>
1252 <xsd:restriction base="xsd:normalizedString"/>
1253 </xsd:simpleType>
1254 <xsd:simpleType>
1255 <xsd:restriction base="xsd:string">
1256 <xsd:length value="0"/>
1257 </xsd:restriction>
1258 </xsd:simpleType>
1259 </xsd:union>
1260 </xsd:simpleType>
1261
1262 <xsd:simpleType name="token">
1263 <xsd:union>
1264 <xsd:simpleType>
1265 <xsd:restriction base="xsd:token"/>
1266 </xsd:simpleType>
1267 <xsd:simpleType>
1268 <xsd:restriction base="xsd:string">
1269 <xsd:length value="0"/>
1270 </xsd:restriction>
1271 </xsd:simpleType>
1272 </xsd:union>
1273 </xsd:simpleType>
1274
1275 <xsd:simpleType name="language">
1276 <xsd:union>
1277 <xsd:simpleType>
1278 <xsd:restriction base="xsd:language"/>
1279 </xsd:simpleType>
1280 <xsd:simpleType>
1281 <xsd:restriction base="xsd:string">
1282 <xsd:length value="0"/>
1283 </xsd:restriction>
1284 </xsd:simpleType>
1285 </xsd:union>
1286 </xsd:simpleType>
1287
1288 <xsd:simpleType name="Name">
1289 <xsd:union>
1290 <xsd:simpleType>
1291 <xsd:restriction base="xsd:Name"/>
1292 </xsd:simpleType>
1293 <xsd:simpleType>
1294 <xsd:restriction base="xsd:string">
1295 <xsd:length value="0"/>
1296 </xsd:restriction>
1297 </xsd:simpleType>
1298 </xsd:union>
1299 </xsd:simpleType>
1300
1301 <xsd:simpleType name="NCName">
1302 <xsd:union>
1303 <xsd:simpleType>
1304 <xsd:restriction base="xsd:NCName"/>
1305 </xsd:simpleType>
1306 <xsd:simpleType>
1307 <xsd:restriction base="xsd:string">
1308 <xsd:length value="0"/>
1309 </xsd:restriction>
1310 </xsd:simpleType>
1311 </xsd:union>
1312 </xsd:simpleType>
1313
1314 <xsd:simpleType name="ID">
1315 <xsd:union>
1316 <xsd:simpleType>
1317 <xsd:restriction base="xsd:ID"/>
1318 </xsd:simpleType>
1319 <xsd:simpleType>
1320 <xsd:restriction base="xsd:string">
1321 <xsd:length value="0"/>
1322 </xsd:restriction>
1323 </xsd:simpleType>
1324 </xsd:union>
1325 </xsd:simpleType>
1326
1327 <xsd:simpleType name="IDREF">
1328 <xsd:union>
1329 <xsd:simpleType>
1330 <xsd:restriction base="xsd:IDREF"/>
1331 </xsd:simpleType>
1332 <xsd:simpleType>
1333 <xsd:restriction base="xsd:string">
1334 <xsd:length value="0"/>
1335 </xsd:restriction>
1336 </xsd:simpleType>
1337 </xsd:union>
1338 </xsd:simpleType>
1339
1340 <xsd:simpleType name="IDREFS">
1341 <xsd:union>
1342 <xsd:simpleType>
1343 <xsd:restriction base="xsd:IDREFS"/>
1344 </xsd:simpleType>
1345 <xsd:simpleType>
1346 <xsd:restriction base="xsd:string">
1347 <xsd:length value="0"/>
1348 </xsd:restriction>
1349 </xsd:simpleType>
1350 </xsd:union>
1351 </xsd:simpleType>
1352
1353 <xsd:simpleType name="NMTOKEN">
1354 <xsd:union>
1355 <xsd:simpleType>
1356 <xsd:restriction base="xsd:NMTOKEN"/>
1357 </xsd:simpleType>
1358 <xsd:simpleType>
1359 <xsd:restriction base="xsd:string">
1360 <xsd:length value="0"/>
1361 </xsd:restriction>
1362 </xsd:simpleType>
1363 </xsd:union>
1364 </xsd:simpleType>
1365
1366 <xsd:simpleType name="NMTOKENS">
1367 <xsd:union>
1368 <xsd:simpleType>
1369 <xsd:restriction base="xsd:NMTOKENS"/>
1370 </xsd:simpleType>
1371 <xsd:simpleType>
1372 <xsd:restriction base="xsd:string">
1373 <xsd:length value="0"/>
1374 </xsd:restriction>
1375 </xsd:simpleType>
1376 </xsd:union>
1377 </xsd:simpleType>
1378
1379 <xsd:simpleType name="integer">
1380 <xsd:union>
1381 <xsd:simpleType>
1382 <xsd:restriction base="xsd:integer"/>
1383 </xsd:simpleType>
1384 <xsd:simpleType>
1385 <xsd:restriction base="xsd:string">
1386 <xsd:length value="0"/>
1387 </xsd:restriction>
1388 </xsd:simpleType>
1389 </xsd:union>
1390 </xsd:simpleType>
1391
1392 <xsd:simpleType name="negativeInteger">
1393 <xsd:union>
1394 <xsd:simpleType>
1395 <xsd:restriction base="xsd:negativeInteger"/>
1396 </xsd:simpleType>
1397 <xsd:simpleType>
1398 <xsd:restriction base="xsd:string">
1399 <xsd:length value="0"/>
1400 </xsd:restriction>
1401 </xsd:simpleType>
1402 </xsd:union>
1403 </xsd:simpleType>
1404
1405 <xsd:simpleType name="long">
1406 <xsd:union>
1407 <xsd:simpleType>
1408 <xsd:restriction base="xsd:long"/>
1409 </xsd:simpleType>
1410 <xsd:simpleType>
1411 <xsd:restriction base="xsd:string">
1412 <xsd:length value="0"/>
1413 </xsd:restriction>
1414 </xsd:simpleType>
1415 </xsd:union>
1416 </xsd:simpleType>
1417
1418 <xsd:simpleType name="int">
1419 <xsd:union>
1420 <xsd:simpleType>
1421 <xsd:restriction base="xsd:int"/>
1422 </xsd:simpleType>
1423 <xsd:simpleType>
1424 <xsd:restriction base="xsd:string">
1425 <xsd:length value="0"/>
1426 </xsd:restriction>
1427 </xsd:simpleType>
1428 </xsd:union>
1429 </xsd:simpleType>
1430
1431 <xsd:simpleType name="short">
1432 <xsd:union>
1433 <xsd:simpleType>
1434 <xsd:restriction base="xsd:short"/>
1435 </xsd:simpleType>
1436 <xsd:simpleType>
1437 <xsd:restriction base="xsd:string">
1438 <xsd:length value="0"/>
1439 </xsd:restriction>
1440 </xsd:simpleType>
1441 </xsd:union>
1442 </xsd:simpleType>
1443
1444 <xsd:simpleType name="byte">
1445 <xsd:union>
1446 <xsd:simpleType>
1447 <xsd:restriction base="xsd:byte"/>
1448 </xsd:simpleType>
1449 <xsd:simpleType>
1450 <xsd:restriction base="xsd:string">
1451 <xsd:length value="0"/>
1452 </xsd:restriction>
1453 </xsd:simpleType>
1454 </xsd:union>
1455 </xsd:simpleType>
1456
1457 <xsd:simpleType name="nonNegativeInteger">
1458 <xsd:union>
1459 <xsd:simpleType>
1460 <xsd:restriction base="xsd:nonNegativeInteger"/>
1461 </xsd:simpleType>
1462 <xsd:simpleType>
1463 <xsd:restriction base="xsd:string">
1464 <xsd:length value="0"/>
1465 </xsd:restriction>
1466 </xsd:simpleType>
1467 </xsd:union>
1468 </xsd:simpleType>
1469
1470 <xsd:simpleType name="unsignedLong">
1471 <xsd:union>
1472 <xsd:simpleType>
1473 <xsd:restriction base="xsd:unsignedLong"/>
1474 </xsd:simpleType>
1475 <xsd:simpleType>
1476 <xsd:restriction base="xsd:string">
1477 <xsd:length value="0"/>
1478 </xsd:restriction>
1479 </xsd:simpleType>
1480 </xsd:union>
1481 </xsd:simpleType>
1482
1483 <xsd:simpleType name="unsignedInt">
1484 <xsd:union>
1485 <xsd:simpleType>
1486 <xsd:restriction base="xsd:unsignedInt"/>
1487 </xsd:simpleType>
1488 <xsd:simpleType>
1489 <xsd:restriction base="xsd:string">
1490 <xsd:length value="0"/>
1491 </xsd:restriction>
1492 </xsd:simpleType>
1493 </xsd:union>
1494 </xsd:simpleType>
1495
1496 <xsd:simpleType name="unsignedShort">
1497 <xsd:union>
1498 <xsd:simpleType>
1499 <xsd:restriction base="xsd:unsignedShort"/>
1500 </xsd:simpleType>
1501 <xsd:simpleType>
1502 <xsd:restriction base="xsd:string">
1503 <xsd:length value="0"/>
1504 </xsd:restriction>
1505 </xsd:simpleType>
1506 </xsd:union>
1507 </xsd:simpleType>
1508
1509 <xsd:simpleType name="unsignedByte">
1510 <xsd:union>
1511 <xsd:simpleType>
1512 <xsd:restriction base="xsd:unsignedByte"/>
1513 </xsd:simpleType>
1514 <xsd:simpleType>
1515 <xsd:restriction base="xsd:string">
1516 <xsd:length value="0"/>
1517 </xsd:restriction>
1518 </xsd:simpleType>
1519 </xsd:union>
1520 </xsd:simpleType>
1521
1522 <xsd:simpleType name="positiveInteger">
1523 <xsd:union>
1524 <xsd:simpleType>
1525 <xsd:restriction base="xsd:positiveInteger"/>
1526 </xsd:simpleType>
1527 <xsd:simpleType>
1528 <xsd:restriction base="xsd:string">
1529 <xsd:length value="0"/>
1530 </xsd:restriction>
1531 </xsd:simpleType>
1532 </xsd:union>
1533 </xsd:simpleType>
1534
1535 <xsd:simpleType name="dayTimeDuration">
1536 <xsd:restriction base="xsd:duration">
1537 <xsd:pattern value="([\-]?P([0-9]+D(T([0-9]+(H([0-9]+(M([0-9]+(\.[0-9]*)?S
1538 |\.[0-9]+S)?|(\.[0-9]*)?S)|(\.[0-9]*)?S)?|M([0-9]+
1539 (\.[0-9]*)?S|\.[0-9]+S)?|(\.[0-9]*)?S)|\.[0-9]+S))?
1540 |T([0-9]+(H([0-9]+(M([0-9]+(\.[0-9]*)?S|\.[0-9]+S)?
1541 |(\.[0-9]*)?S)|(\.[0-9]*)?S)?|M([0-9]+(\.[0-9]*)?S|\.[0-9]+S)?
1542 |(\.[0-9]*)?S)|\.[0-9]+S)))?"/>
1543 </xsd:restriction>
1544 </xsd:simpleType>
1545
1546 <xsd:simpleType name="yearMonthDuration">
1547 <xsd:restriction base="xsd:duration">
1548 <xsd:pattern value="([\-]?P[0-9]+(Y([0-9]+M)?|M))?"/>
1549 </xsd:restriction>
1550 </xsd:simpleType>
1551 <xsd:simpleType name="email">
1552 <xsd:restriction base="xsd:string">
1553 <xsd:pattern value="([A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*)?"/>
1554 </xsd:restriction>
1555 </xsd:simpleType>
1556
1557 <xsd:simpleType name="card-number">
1558 <xsd:annotation>
1559 <xsd:documentation>
1560 This type defines the basic lexical properties for a dataypte that can be used to represent
1561 various ID numbers such as for debit and credit cards.
1562 This type does not apply the Luhn checksum algorithm.
1563 </xsd:documentation>
1564 </xsd:annotation>
1565 <xsd:restriction base="xsd:string">
1566 <xsd:pattern value="[0-9]*"/>
1567 </xsd:restriction>
1568 </xsd:simpleType>
1569
1570
1571 </xsd:schema>