Merge lp:~zorba-coders/zorba/pul-and-xdm-schemas into lp:zorba

Proposed by Ghislain Fourny
Status: Merged
Approved by: Ghislain Fourny
Approved revision: 10673
Merged at revision: 10760
Proposed branch: lp:~zorba-coders/zorba/pul-and-xdm-schemas
Merge into: lp:zorba
Diff against target: 2826 lines (+2730/-0)
17 files modified
schemas/CMakeLists.txt (+12/-0)
schemas/XQueryX.xsd (+1962/-0)
schemas/complete-pul.xsd (+136/-0)
schemas/pul.xsd (+237/-0)
schemas/xdm.xsd (+283/-0)
test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res (+14/-0)
test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res (+1/-0)
test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res (+8/-0)
test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res (+7/-0)
test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res (+1/-0)
test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res (+7/-0)
test/rbkt/Queries/zorba/pul-schema/create-collection.xq (+18/-0)
test/rbkt/Queries/zorba/pul-schema/empty-pul.xq (+5/-0)
test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq (+12/-0)
test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq (+11/-0)
test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq (+5/-0)
test/rbkt/Queries/zorba/xdm-schema/nodes.xq (+11/-0)
To merge this branch: bzr merge lp:~zorba-coders/zorba/pul-and-xdm-schemas
Reviewer Review Type Date Requested Status
Ghislain Fourny Approve
Matthias Brantner Approve
Alexander Kreutz (community) Approve
David Graf (community) Approve
Review via email: mp+94209@code.launchpad.net

Commit message

Introducing XDM and PUL schemas.

Description of the change

Introducing XDM and PUL schemas.

To post a comment you must log in.
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job pul-and-xdm-schemas-2012-02-22T16-11-01.11Z is finished. The final status was:

All tests succeeded!

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1. Got: 1 Pending.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

The attempt to merge lp:~zorba-coders/zorba/pul-and-xdm-schemas into lp:zorba failed. Below is the output from the failed tests.

CMake Error at /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake:274 (message):
  Validation queue job pul-and-xdm-schemas-2012-02-23T11-21-14.013Z is
  finished. The final status was:

  3 tests did not succeed - changes not commited.

Error in read script: /home/ceej/zo/testing/zorbatest/tester/TarmacLander.cmake

Revision history for this message
David Graf (davidagraf) :
review: Approve
Revision history for this message
Matthias Brantner (matthias-brantner) wrote :

- the deep hierarchy in schemas/ is not needed
- should the schema really be in the 28msec namespace?
- the schema should support all the Zorba update primitives (e.g. the ones for documents)

review: Needs Fixing
Revision history for this message
Ghislain Fourny (gislenius) wrote :

Thanks Matthias! This was all fixed.

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job pul-and-xdm-schemas-2012-04-04T17-15-57.702Z is finished. The final status was:

All tests succeeded!

Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Voting does not meet specified criteria. Required: Approve > 1, Disapprove < 1, Needs Fixing < 1, Pending < 1. Got: 1 Approve, 1 Needs Fixing, 1 Pending.

Revision history for this message
Alexander Kreutz (kreutz) wrote :

If the schema is to be used by the collection browser without changes
the attribute "type-name" on elements and attributes in the XDM schema must be optional and not required. Of course it is always known for existing nodes but not for new nodes.

The type information for new elements is not known by the client (and therefore cannot be sent), it is determined by validating the element before inserting it (on the server).

review: Needs Fixing
Revision history for this message
Ghislain Fourny (gislenius) wrote :

If I am correct, the type-name before the insertion, for new nodes (generated by the collection browser), would be xs:untyped and xs:untypedAtomic. The schema types only make sense when the nodes are being, or have been, inserted. What do you think?

Revision history for this message
Alexander Kreutz (kreutz) wrote :

Using xs:untyped and xs:untypedAtomic is okay for me.

review: Approve
Revision history for this message
Matthias Brantner (matthias-brantner) :
review: Approve
Revision history for this message
Ghislain Fourny (gislenius) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job pul-and-xdm-schemas-2012-04-13T23-17-05.009Z is finished. The final status was:

All tests succeeded!

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'schemas/CMakeLists.txt'
--- schemas/CMakeLists.txt 2012-02-02 09:56:52 +0000
+++ schemas/CMakeLists.txt 2012-03-01 13:03:21 +0000
@@ -19,6 +19,18 @@
19DECLARE_ZORBA_SCHEMA(URI "http://www.w3.org/2010/xslt-xquery-serialization"19DECLARE_ZORBA_SCHEMA(URI "http://www.w3.org/2010/xslt-xquery-serialization"
20 FILE xslt-xquery-serialization.xsd)20 FILE xslt-xquery-serialization.xsd)
2121
22# XDM and PUL
23DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/pul"
24 FILE pul.xsd)
25DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/complete-pul"
26 FILE complete-pul.xsd)
27DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/xdm"
28 FILE xdm.xsd)
29
30# XQueryX
31DECLARE_ZORBA_SCHEMA(URI "http://www.w3.org/2005/XQueryX"
32FILE XQueryX.xsd)
33
22# The following are DTDs, not schemas, but (currently at least) we34# The following are DTDs, not schemas, but (currently at least) we
23# only ever load them when an imported schema file references them35# only ever load them when an imported schema file references them
24# (which, in turn, only happens in error cases - see bug 921624). So,36# (which, in turn, only happens in error cases - see bug 921624). So,
2537
=== added file 'schemas/XQueryX.xsd'
--- schemas/XQueryX.xsd 1970-01-01 00:00:00 +0000
+++ schemas/XQueryX.xsd 2012-03-01 13:03:21 +0000
@@ -0,0 +1,1962 @@
1<?xml version="1.0"?>
2<!-- ================================================================================ -->
3<!-- NOTES TO READERS OF THIS SCHEMA: -->
4<!-- The default value for both minOccurs and maxOccurs is "1". -->
5<!-- The XQueryX schema has been designed to provide the ability to extend definitions -->
6<!-- of top-level elements in extensions such as Full-Text and the Update Facility. -->
7<!-- The nature of the modification is to define named complex types and redefine -->
8<!-- those top-level elements in terms of the named complex types. -->
9<!-- ================================================================================ -->
10<!-- Changes from Recommendation (edition 1): -->
11<!-- * Element defs using anon complex types changed to use named types (bug #4924) -->
12<!-- * In Example 4, replaced xqx:parentheziedExpr with xqx:sequenceExpr (bug #4963) -->
13<!-- * In XSLT stylesheet, deleted template for xqx:parenthesizedExpr (bug #4963) -->
14<!-- * Replaced link to grammar applet with correct link (bug #5323) -->
15<!-- * In XSLT stylesheet, corrected template for xqx:namespaceDeclaration (bug #5343) -->
16<!-- Changes from Recommendation (edition 2): -->
17<!-- * Added support for new Windowing clause in FLWOR expression -->
18<!-- * Added support for new Group By Clause in FLWOR expression -->
19<!-- * Added support for new Count Clause in FLWOR expression -->
20<!-- * Added support for keyword "outer" on for expression -->
21<!-- * Modified structure of FLWOR clause per "simplified FLWOR expressions" -->
22<!-- * Modified validation syntax per Bugzilla Bug 5472 -->
23<!-- * Modified function declaration so that external functions can be nondeterminstic -->
24<!-- * Modified variable declaration so external variables can have an initial value -->
25<!-- * Added support for new try-catch expression -->
26<!-- * Added support for new decimal formatting declaration -->
27<!-- * Added support for encoding in the version declaration -->
28<!-- * Added support for new context item declaration -->
29<!-- * Added support for computed namespace constructor -->
30<!-- * Made changes triggered by Bugzilla Bugs 6309, 6310, and 6311 -->
31<!-- * Modified errlist syntax per Bugzilla Bug 7053 -->
32<!-- * Added support for public/private functions -->
33<!-- * Replaced "outer for" support with support for "allowing empty" -->
34<!-- * Added support for higher-order functions -->
35<!-- * Added support for value-based "switch" expression -->
36<!-- * Use pattern to prohibit "#)" in pragma contents per Bugzilla Bug 2711 -->
37<!-- * Changed functionItemExpr child element QName to be functionName for consistency -->
38<!-- * Replaced "public", "private", and "[non]deterministic" with %-annotations -->
39<!-- * Added EQName to permit "URI-literal":NCNAME as alternative to NCName:NCName -->
40<!-- * Changed type of atomicType to EQName, so it's really atomicOrUnionType -->
41<!-- ================================================================================ -->
42<!-- Errata applied: -->
43<!-- XQX.E1 - Editorial (Bugzilla Bug 4924) -->
44<!-- XQX.E7 - Substantive (Bugzilla Bug 2711) -->
45<!-- ================================================================================ -->
46<!-- Modifications: -->
47<!-- 2008-07-30 - Add XQuery 1.1 grouping and windowing support -->
48<!-- 2008-09-18 - Add XQuery 1.1 count and outer-for support, simplified FLWOR -->
49<!-- 2008-09-27 - Add validation type, nondeterministic function declarations, -->
50<!-- initial values for external variables, try-catch expression -->
51<!-- 2008-11-25 - Add support for number formatting, Snelson's version declaration -->
52<!-- proposal, context item declaration, computed namespace constructor,-->
53<!-- fixes for validate expression, and change to allow the count -->
54<!-- clause to only be an intermediate expression -->
55<!-- 2009-01-13 - Bugs 6309 and 6310 (fixes to details of certain windowing clauses -->
56<!-- 2009-03-03 - tumblingWindowClause syntax now matches slidingWindowClause syntax -->
57<!-- 2009-09-06 - Modified errlist syntax per Bugzilla Bug 7053 -->
58<!-- 2009-10-09 - Added support for private/public functions -->
59<!-- Replace "outer for" with "allowing empty" -->
60<!-- 2009-10-22 - Add support for higher-order functions & switch expression -->
61<!-- 2010-04-06 - Changed functionItemExpr child QName -> functionName (consistency) -->
62<!-- 2010-05-10 - Added %-annotation support for varDecl and functionDecl -->
63<!-- 2010-06-23 - Added support for partial function application -->
64<!-- 2011-02-02 - Added support for EQNames and atomicOrUnionType -->
65<!-- 2011-05-04 - Updated structure of catch component of try-catch expression -->
66<!-- 2011-05-04 - Updated validationexpr, mode/type alternatives, type is EQName -->
67<!-- ================================================================================ -->
68
69<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
70 xmlns="http://www.w3.org/2005/XQueryX"
71 targetNamespace="http://www.w3.org/2005/XQueryX"
72 elementFormDefault="qualified" attributeFormDefault="qualified">
73
74
75<!-- A few helper declarations -->
76 <xsd:complexType name="emptyContent"/>
77
78 <xsd:element name="NCName" type="xsd:NCName"/>
79
80 <xsd:complexType name="QName">
81 <xsd:simpleContent>
82 <xsd:extension base="xsd:NCName">
83 <xsd:attribute name="prefix" type="xsd:NCName" use="optional"/>
84 </xsd:extension>
85 </xsd:simpleContent>
86 </xsd:complexType>
87
88 <xsd:complexType name="EQName">
89 <xsd:simpleContent>
90 <xsd:extension base="xsd:NCName">
91 <xsd:attribute name="prefix" type="xsd:NCName" use="optional"/>
92 <xsd:attribute name="URI" type="xsd:string" use="optional"/>
93 </xsd:extension>
94 </xsd:simpleContent>
95 </xsd:complexType>
96
97<!-- The base expression class -->
98 <xsd:complexType name="expr"/>
99
100 <xsd:element name="expr" type="expr" abstract="true"/>
101
102
103<!-- A list of expressions -->
104 <xsd:complexType name="exprList">
105 <xsd:sequence>
106 <xsd:element ref="expr" minOccurs="0" maxOccurs="unbounded"/>
107 </xsd:sequence>
108 </xsd:complexType>
109
110<!-- A list of expressions or placeholders -->
111<!-- 2010-06-23 - Added support for partial function application -->
112 <xsd:complexType name="exprOrPlaceholderList">
113 <xsd:sequence>
114 <xsd:choice minOccurs="0" maxOccurs="unbounded">
115 <xsd:element ref="expr"/>
116 <xsd:element name="argumentPlaceholder" type="emptyContent"/>
117 </xsd:choice>
118 </xsd:sequence>
119 </xsd:complexType>
120
121<!-- A type to be used by elements that comprise an optional expr -->
122 <xsd:complexType name="exprWrapperOptional">
123 <xsd:sequence>
124 <xsd:element ref="expr" minOccurs="0"/>
125 </xsd:sequence>
126 </xsd:complexType>
127
128<!-- Simple wrapper class -->
129 <xsd:complexType name="exprWrapper">
130 <xsd:sequence>
131 <xsd:element ref="expr"/>
132 </xsd:sequence>
133 </xsd:complexType>
134
135<!-- constant expressions. We have 4 different subclasses for this -->
136 <xsd:complexType name="constantExpr">
137 <xsd:complexContent>
138 <xsd:extension base="expr">
139 <xsd:sequence>
140 <xsd:element name="value" type="xsd:anyType"/>
141 </xsd:sequence>
142 </xsd:extension>
143 </xsd:complexContent>
144 </xsd:complexType>
145
146 <xsd:element name="constantExpr" type="constantExpr" abstract="true"
147 substitutionGroup="expr"/>
148
149
150 <xsd:complexType name="integerConstantExpr">
151 <xsd:complexContent>
152 <xsd:restriction base="constantExpr">
153 <xsd:sequence>
154 <xsd:element name="value" type="xsd:integer"/>
155 </xsd:sequence>
156 </xsd:restriction>
157 </xsd:complexContent>
158 </xsd:complexType>
159
160 <xsd:element name="integerConstantExpr" type="integerConstantExpr"
161 substitutionGroup="constantExpr"/>
162
163
164 <xsd:complexType name="decimalConstantExpr">
165 <xsd:complexContent>
166 <xsd:restriction base="constantExpr">
167 <xsd:sequence>
168 <xsd:element name="value" type="xsd:decimal"/>
169 </xsd:sequence>
170 </xsd:restriction>
171 </xsd:complexContent>
172 </xsd:complexType>
173
174 <xsd:element name="decimalConstantExpr" type="decimalConstantExpr"
175 substitutionGroup="constantExpr"/>
176
177
178 <xsd:complexType name="doubleConstantExpr">
179 <xsd:complexContent>
180 <xsd:restriction base="constantExpr">
181 <xsd:sequence>
182 <xsd:element name="value" type="xsd:double"/>
183 </xsd:sequence>
184 </xsd:restriction>
185 </xsd:complexContent>
186 </xsd:complexType>
187
188 <xsd:element name="doubleConstantExpr" type="doubleConstantExpr"
189 substitutionGroup="constantExpr"/>
190
191
192 <xsd:complexType name="stringConstantExpr">
193 <xsd:complexContent>
194 <xsd:restriction base="constantExpr">
195 <xsd:sequence>
196 <xsd:element name="value" type="xsd:string"/>
197 </xsd:sequence>
198 </xsd:restriction>
199 </xsd:complexContent>
200 </xsd:complexType>
201
202 <xsd:element name="stringConstantExpr" type="stringConstantExpr"
203 substitutionGroup="constantExpr"/>
204
205
206<!-- Variables -->
207 <xsd:complexType name="varRef">
208 <xsd:complexContent>
209 <xsd:extension base="expr">
210 <xsd:sequence>
211 <xsd:element name="name" type="EQName"/>
212 </xsd:sequence>
213 </xsd:extension>
214 </xsd:complexContent>
215 </xsd:complexType>
216
217 <xsd:element name="varRef" type="varRef" substitutionGroup="expr"/>
218
219
220<!-- root and context-item expressions -->
221<!-- rootExpr deleted per Bugzilla Bug #2523 -->
222 <xsd:complexType name="contextItemExpr">
223 <xsd:complexContent>
224 <xsd:extension base="expr"/>
225 </xsd:complexContent>
226 </xsd:complexType>
227
228 <xsd:element name="contextItemExpr" type="contextItemExpr"
229 substitutionGroup="expr"/>
230
231
232<!-- Pragmas and extension expressions -->
233<!-- 2010-01-01, JM replaced pragmaContents elem def'n with one that has a pattern -->
234 <xsd:complexType name="pragma">
235 <xsd:sequence>
236 <xsd:element name="pragmaName" type="EQName"/>
237 <xsd:element name="pragmaContents">
238 <xsd:simpleType>
239 <xsd:restriction base="xsd:string">
240 <xsd:pattern value="(([^#]|#+[^\)#])*#*)"/>
241 </xsd:restriction>
242 </xsd:simpleType>
243 </xsd:element>
244 </xsd:sequence>
245 </xsd:complexType>
246
247 <xsd:element name="pragma" type="pragma"/>
248
249
250 <xsd:complexType name="extensionExpr">
251 <xsd:complexContent>
252 <xsd:extension base="expr">
253 <xsd:sequence>
254 <xsd:element ref="pragma" maxOccurs="unbounded"/>
255 <xsd:element name="argExpr" type="exprWrapper" minOccurs="0"/>
256 </xsd:sequence>
257 </xsd:extension>
258 </xsd:complexContent>
259 </xsd:complexType>
260
261 <xsd:element name="extensionExpr" type="extensionExpr"
262 substitutionGroup="expr"/>
263
264
265<!-- Function call expressions -->
266<!-- 2010-06-23 - Added support for partial function application -->
267 <xsd:complexType name="functionCallExpr">
268 <xsd:complexContent>
269 <xsd:extension base="expr">
270 <xsd:sequence>
271 <xsd:element name="functionName" type="EQName"/>
272 <xsd:element name="arguments" type="exprOrPlaceholderList" minOccurs="0"/>
273 </xsd:sequence>
274 </xsd:extension>
275 </xsd:complexContent>
276 </xsd:complexType>
277
278 <xsd:element name="functionCallExpr" type="functionCallExpr"
279 substitutionGroup="expr"/>
280
281
282<!-- Constructor functions -->
283 <xsd:complexType name="constructorFunctionExpr">
284 <xsd:complexContent>
285 <xsd:extension base="expr">
286 <xsd:sequence>
287 <xsd:element name="typeName" type="EQName"/>
288 <xsd:element name="argExpr" type="exprWrapper"/>
289 </xsd:sequence>
290 </xsd:extension>
291 </xsd:complexContent>
292 </xsd:complexType>
293
294 <xsd:element name="constructorFunctionExpr" type="constructorFunctionExpr"
295 substitutionGroup="expr"/>
296
297
298<!-- Sequence expressions -->
299 <xsd:complexType name="sequenceExpr">
300 <xsd:complexContent>
301 <xsd:extension base="expr">
302 <xsd:sequence>
303 <xsd:element ref="expr" minOccurs="0" maxOccurs="unbounded"/>
304 </xsd:sequence>
305 </xsd:extension>
306 </xsd:complexContent>
307 </xsd:complexType>
308
309 <xsd:element name="sequenceExpr" type="sequenceExpr" substitutionGroup="expr"/>
310
311
312 <xsd:complexType name="rangeSequenceExpr">
313 <xsd:complexContent>
314 <xsd:extension base="expr">
315 <xsd:sequence>
316 <xsd:element name="startExpr" type="exprWrapper"/>
317 <xsd:element name="endExpr" type="exprWrapper"/>
318 </xsd:sequence>
319 </xsd:extension>
320 </xsd:complexContent>
321 </xsd:complexType>
322
323 <xsd:element name="rangeSequenceExpr" type="rangeSequenceExpr"
324 substitutionGroup="expr"/>
325
326
327<!-- Builtin operator expressions -->
328 <xsd:complexType name="operatorExpr">
329 <xsd:complexContent>
330 <xsd:extension base="expr"/>
331 </xsd:complexContent>
332 </xsd:complexType>
333
334
335 <xsd:complexType name="unaryOperatorExpr">
336 <xsd:complexContent>
337 <xsd:extension base="operatorExpr">
338 <xsd:sequence>
339 <xsd:element name="operand" type="exprWrapper"/>
340 </xsd:sequence>
341 </xsd:extension>
342 </xsd:complexContent>
343 </xsd:complexType>
344
345
346 <xsd:complexType name="binaryOperatorExpr">
347 <xsd:complexContent>
348 <xsd:extension base="operatorExpr">
349 <xsd:sequence>
350 <xsd:element name="firstOperand" type="exprWrapper"/>
351 <xsd:element name="secondOperand" type="exprWrapper"/>
352 </xsd:sequence>
353 </xsd:extension>
354 </xsd:complexContent>
355 </xsd:complexType>
356
357
358 <xsd:element name="operatorExpr" type="operatorExpr"
359 abstract="true" substitutionGroup="expr"/>
360
361 <xsd:element name="arithmeticOp" type="operatorExpr"
362 abstract="true" substitutionGroup="operatorExpr"/>
363
364 <xsd:element name="addOp" type="binaryOperatorExpr"
365 substitutionGroup="arithmeticOp"/>
366
367 <xsd:element name="subtractOp" type="binaryOperatorExpr"
368 substitutionGroup="arithmeticOp"/>
369
370 <xsd:element name="multiplyOp" type="binaryOperatorExpr"
371 substitutionGroup="arithmeticOp"/>
372
373 <xsd:element name="divOp" type="binaryOperatorExpr"
374 substitutionGroup="arithmeticOp"/>
375
376 <xsd:element name="idivOp" type="binaryOperatorExpr"
377 substitutionGroup="arithmeticOp"/>
378
379 <xsd:element name="modOp" type="binaryOperatorExpr"
380 substitutionGroup="arithmeticOp"/>
381
382 <xsd:element name="unaryMinusOp" type="unaryOperatorExpr"
383 substitutionGroup="arithmeticOp"/>
384
385 <xsd:element name="unaryPlusOp" type="unaryOperatorExpr"
386 substitutionGroup="arithmeticOp"/>
387
388 <xsd:element name="comparisonOp" type="binaryOperatorExpr" abstract="true"
389 substitutionGroup="operatorExpr"/>
390
391 <xsd:element name="valueComparisonOp" type="binaryOperatorExpr" abstract="true"
392 substitutionGroup="operatorExpr"/>
393
394 <xsd:element name="eqOp" type="binaryOperatorExpr"
395 substitutionGroup="valueComparisonOp"/>
396
397 <xsd:element name="neOp" type="binaryOperatorExpr"
398 substitutionGroup="valueComparisonOp"/>
399
400 <xsd:element name="gtOp" type="binaryOperatorExpr"
401 substitutionGroup="valueComparisonOp"/>
402
403 <xsd:element name="geOp" type="binaryOperatorExpr"
404 substitutionGroup="valueComparisonOp"/>
405
406 <xsd:element name="ltOp" type="binaryOperatorExpr"
407 substitutionGroup="valueComparisonOp"/>
408
409 <xsd:element name="leOp" type="binaryOperatorExpr"
410 substitutionGroup="valueComparisonOp"/>
411
412 <xsd:element name="generalComparisonOp" type="binaryOperatorExpr" abstract="true"
413 substitutionGroup="operatorExpr"/>
414
415 <xsd:element name="equalOp" type="binaryOperatorExpr"
416 substitutionGroup="generalComparisonOp"/>
417
418 <xsd:element name="notEqualOp" type="binaryOperatorExpr"
419 substitutionGroup="generalComparisonOp"/>
420
421 <xsd:element name="lessThanOp" type="binaryOperatorExpr"
422 substitutionGroup="generalComparisonOp"/>
423
424 <xsd:element name="lessThanOrEqualOp" type="binaryOperatorExpr"
425 substitutionGroup="generalComparisonOp"/>
426
427 <xsd:element name="greaterThanOp" type="binaryOperatorExpr"
428 substitutionGroup="generalComparisonOp"/>
429
430 <xsd:element name="greaterThanOrEqualOp" type="binaryOperatorExpr"
431 substitutionGroup="generalComparisonOp"/>
432
433 <xsd:element name="nodeComparisonOp" type="binaryOperatorExpr" abstract="true"
434 substitutionGroup="operatorExpr"/>
435
436 <xsd:element name="isOp" type="binaryOperatorExpr"
437 substitutionGroup="nodeComparisonOp"/>
438
439 <xsd:element name="orderComparisonOp" type="binaryOperatorExpr" abstract="true"
440 substitutionGroup="operatorExpr"/>
441
442 <xsd:element name="nodeBeforeOp" type="binaryOperatorExpr"
443 substitutionGroup="orderComparisonOp"/>
444
445 <xsd:element name="nodeAfterOp" type="binaryOperatorExpr"
446 substitutionGroup="orderComparisonOp"/>
447
448 <xsd:element name="logicalOp" type="binaryOperatorExpr" abstract="true"
449 substitutionGroup="operatorExpr"/>
450
451 <xsd:element name="andOp" type="binaryOperatorExpr"
452 substitutionGroup="logicalOp"/>
453
454 <xsd:element name="orOp" type="binaryOperatorExpr"
455 substitutionGroup="logicalOp"/>
456
457 <xsd:element name="setOp" type="binaryOperatorExpr"
458 abstract="true" substitutionGroup="operatorExpr"/>
459
460 <xsd:element name="unionOp" type="binaryOperatorExpr"
461 substitutionGroup="setOp"/>
462
463 <xsd:element name="intersectOp" type="binaryOperatorExpr"
464 substitutionGroup="setOp"/>
465
466 <xsd:element name="exceptOp" type="binaryOperatorExpr"
467 substitutionGroup="setOp"/>
468
469
470<!-- Basic typenames -->
471<!-- By changing the type attribute from QName to EQName, this is now atomicOrUnionType -->
472<!-- However, for backwards compatibility w/XQueryX 1.0, the name had to stay the same-->
473 <xsd:element name="atomicType" type="EQName" substitutionGroup="itemType"/>
474
475
476<!-- Used in castable expression and cast expression -->
477 <xsd:complexType name="singleType">
478 <xsd:sequence>
479 <xsd:element ref="atomicType"/>
480 <xsd:element name="optional" type="emptyContent" minOccurs="0"/>
481 </xsd:sequence>
482 </xsd:complexType>
483
484 <xsd:element name="singleType" type="singleType"/>
485
486
487<!-- Item type schema types and elements -->
488 <xsd:element name="itemType" abstract="true"/>
489
490
491 <xsd:complexType name="emptyItemTypeContent"/>
492
493 <xsd:element name="anyItemType" type="emptyItemTypeContent"
494 substitutionGroup="itemType"/>
495
496
497 <xsd:simpleType name="occurrenceIndicator">
498 <xsd:restriction base="xsd:string">
499 <xsd:enumeration value="?"/>
500 <xsd:enumeration value="*"/>
501 <xsd:enumeration value="+"/>
502 </xsd:restriction>
503 </xsd:simpleType>
504
505
506<!-- Sequence type -->
507 <xsd:complexType name="sequenceType">
508 <xsd:choice>
509 <xsd:element name="voidSequenceType" type="emptyContent"/>
510 <xsd:sequence>
511 <xsd:element ref="itemType"/>
512 <xsd:element name="occurrenceIndicator" type="occurrenceIndicator"
513 minOccurs="0"/>
514 </xsd:sequence>
515 </xsd:choice>
516 </xsd:complexType>
517
518 <xsd:element name="sequenceType" type="sequenceType"/>
519
520 <xsd:element name="typeDeclaration" type="sequenceType"/>
521
522
523<!-- Represents a "typed" variable (for clause, let clause etc) -->
524 <xsd:complexType name="typedVariableBinding">
525 <xsd:sequence>
526 <xsd:element name="varName" type="EQName"/>
527 <xsd:element ref="typeDeclaration" minOccurs="0"/>
528 </xsd:sequence>
529 </xsd:complexType>
530
531 <xsd:element name="typedVariableBinding" type="typedVariableBinding"/>
532
533
534<!-- Represents an untyped variable for the "at" clause in a for clause -->
535 <xsd:element name="positionalVariableBinding" type="EQName"/>
536
537 <xsd:element name="variableBinding" type="EQName"/>
538
539
540<!-- Represents all variable bindings in a for or let clause except typed and -->
541<!-- positional variable bindings -->
542 <xsd:element name="forLetClauseItemExtensions" abstract="true"/>
543
544
545<!-- Major syntax productions: FLWOR clause components -->
546<!-- for clause -->
547 <xsd:complexType name="forClauseItem">
548 <xsd:sequence>
549 <xsd:element ref="typedVariableBinding"/>
550 <xsd:element name="allowingEmpty" type="emptyContent"
551 minOccurs="0"/>
552 <xsd:element ref="positionalVariableBinding" minOccurs="0" maxOccurs="1"/>
553 <xsd:element ref="forLetClauseItemExtensions" minOccurs="0"
554 maxOccurs="unbounded"/>
555 <xsd:element name="forExpr" type="exprWrapper"/>
556 </xsd:sequence>
557 </xsd:complexType>
558
559 <xsd:element name="forClauseItem" type="forClauseItem"/>
560
561
562 <xsd:complexType name="forClause">
563 <xsd:sequence>
564 <xsd:element ref="forClauseItem" minOccurs="1" maxOccurs="unbounded"/>
565 </xsd:sequence>
566 </xsd:complexType>
567
568 <xsd:element name="forClause" type="forClause"/>
569
570
571<!-- let clause -->
572 <xsd:complexType name="letClauseItem">
573 <xsd:sequence>
574 <xsd:choice>
575 <xsd:sequence>
576 <xsd:element ref="typedVariableBinding"/>
577 <xsd:element ref="forLetClauseItemExtensions"
578 minOccurs="0" maxOccurs="unbounded"/>
579 </xsd:sequence>
580 <xsd:element ref="forLetClauseItemExtensions"
581 minOccurs="0" maxOccurs="unbounded"/>
582 </xsd:choice>
583 <xsd:element name="letExpr" type="exprWrapper"/>
584 </xsd:sequence>
585 </xsd:complexType>
586
587 <xsd:element name="letClauseItem" type="letClauseItem"/>
588
589
590 <xsd:complexType name="letClause">
591 <xsd:sequence>
592 <xsd:element ref="letClauseItem" maxOccurs="unbounded"/>
593 </xsd:sequence>
594 </xsd:complexType>
595
596 <xsd:element name="letClause" type="letClause"/>
597
598
599<!-- This is the windowClause (part of FLWOR expression) -->
600<!-- It corresponds to the following XQuery grammar -->
601<!-- WindowClause ::= "for" (TumblingWindowClause | SlidingWindowClause) -->
602 <xsd:complexType name="windowClause">
603 <xsd:choice>
604 <xsd:element ref="tumblingWindowClause"/>
605 <xsd:element ref="slidingWindowClause"/>
606 </xsd:choice>
607 </xsd:complexType>
608
609 <xsd:element name="windowClause" type="windowClause"/>
610
611
612<!-- This is the tumblingWindowClause -->
613<!-- It corresponds to the following XQuery grammar -->
614<!-- TumblingWindowClause ::= "tumbling" "window" "$" VarName TypeDeclaration? -->
615<!-- "in" ExprSingle WindowStartCondition WindowEndCondition? -->
616 <xsd:complexType name="tumblingWindowClause">
617 <xsd:sequence>
618 <xsd:element ref="typedVariableBinding"/>
619 <xsd:element name="bindingSequence" type="exprWrapper"/>
620 <xsd:element ref="windowStartCondition"/>
621 <xsd:element ref="windowEndCondition" minOccurs="0"/>
622 </xsd:sequence>
623 </xsd:complexType>
624
625 <xsd:element name="tumblingWindowClause" type="tumblingWindowClause"/>
626
627
628<!-- This is the slidingWindowClause -->
629<!-- It corresponds to the following XQuery grammar -->
630<!-- SlidingWindowClause ::= "sliding" "window" "$" VarName TypeDeclaration? -->
631<!-- "in" ExprSingle WindowStartCondition WindowEndCondition -->
632 <xsd:complexType name="slidingWindowClause">
633 <xsd:sequence>
634 <xsd:element ref="typedVariableBinding"/>
635 <xsd:element name="bindingSequence" type="exprWrapper"/>
636 <xsd:element ref="windowStartCondition"/>
637 <xsd:element ref="windowEndCondition"/>
638 </xsd:sequence>
639 </xsd:complexType>
640
641 <xsd:element name="slidingWindowClause" type="slidingWindowClause"/>
642
643
644<!-- windowStartCondition -->
645<!-- Corresponds to the following XQuery grammar -->
646<!-- WindowStartCondition ::= "start" WindowVars "when" ExprSingle -->
647 <xsd:complexType name="windowStartCondition">
648 <xsd:sequence>
649 <xsd:element ref="windowVars" minOccurs="0"/>
650 <xsd:element name="winStartExpr" type="exprWrapper"/>
651 </xsd:sequence>
652 </xsd:complexType>
653
654 <xsd:element name="windowStartCondition" type="windowStartCondition"/>
655
656
657<!-- windowEndCondition -->
658<!-- Corresponds to the following XQuery grammar -->
659<!-- WindowEndCondition ::= "only"? "end" WindowVars "when" ExprSingle -->
660 <xsd:complexType name="windowEndCondition">
661 <xsd:sequence>
662 <xsd:element ref="windowVars" minOccurs="0"/>
663 <xsd:element name="winEndExpr" type="exprWrapper"/>
664 </xsd:sequence>
665 <xsd:attribute name="onlyEnd" type="xsd:boolean" default="false"/>
666 </xsd:complexType>
667
668 <xsd:element name="windowEndCondition" type="windowEndCondition"/>
669
670
671<!-- windowVars -->
672<!-- Corresponds to the following XQuery grammar -->
673<!-- WindowVars ::= ("$" \)? PositionalVar? ("previous" "$" PreviousItem)? -->
674<!-- ("next" "$" NextItem)? -->
675 <xsd:complexType name="windowVars">
676 <xsd:sequence>
677 <xsd:element name="currentItem" type="EQName" minOccurs="0"/>
678 <xsd:element ref="positionalVariableBinding" minOccurs="0"/>
679 <xsd:element name="previousItem" type="EQName" minOccurs="0"/>
680 <xsd:element name="nextItem" type="EQName" minOccurs="0"/>
681 </xsd:sequence>
682 </xsd:complexType>
683
684 <xsd:element name="windowVars" type="windowVars"/>
685
686
687<!-- countClause (part of FLWOR expression) -->
688 <xsd:complexType name="countClause">
689 <xsd:sequence>
690 <xsd:element ref="varRef"/>
691 </xsd:sequence>
692 </xsd:complexType>
693
694 <xsd:element name="countClause" type="countClause"/>
695
696
697<!-- whereClause (part of FLWOR expression) -->
698 <xsd:element name="whereClause" type="exprWrapper"/>
699
700
701<!-- groupByClause (part of FLWOR expression) -->
702<!-- Corresponds to the following XQuery syntax -->
703<!-- GroupByClause ::= "group" "by" GroupingSpecList -->
704<!-- GroupingSpecList ::= GroupingSpec ("," GroupingSpec)* -->
705 <xsd:complexType name="groupByClause">
706 <xsd:sequence maxOccurs="unbounded">
707 <xsd:element ref="groupingSpec"/>
708 </xsd:sequence>
709 </xsd:complexType>
710
711 <xsd:element name="groupByClause" type="groupByClause"/>
712
713
714<!-- Corresponds to the following XQuery syntax -->
715<!-- GroupingSpec ::= "$" VarName ("collation" URILiteral)? -->
716 <xsd:complexType name="groupingSpec">
717 <xsd:sequence>
718 <xsd:element name="varName" type="EQName"/>
719 <xsd:element name="collation" type="xsd:string" minOccurs="0"/>
720 </xsd:sequence>
721 </xsd:complexType>
722
723 <xsd:element name="groupingSpec" type="groupingSpec"/>
724
725
726<!-- order by clause -->
727 <xsd:simpleType name="emptyOrderingMode">
728 <xsd:restriction base="xsd:string">
729 <xsd:enumeration value="empty greatest"/>
730 <xsd:enumeration value="empty least"/>
731 </xsd:restriction>
732 </xsd:simpleType>
733
734 <xsd:simpleType name="orderingKind">
735 <xsd:restriction base="xsd:string">
736 <xsd:enumeration value="ascending"/>
737 <xsd:enumeration value="descending"/>
738 </xsd:restriction>
739 </xsd:simpleType>
740
741
742 <xsd:complexType name="orderModifier">
743 <xsd:sequence>
744 <xsd:element name="orderingKind" type="orderingKind" minOccurs="0"/>
745 <xsd:element name="emptyOrderingMode" type="emptyOrderingMode" minOccurs="0"/>
746 <xsd:element name="collation" type="xsd:string" minOccurs="0"/>
747 </xsd:sequence>
748 </xsd:complexType>
749
750 <xsd:element name="orderModifier" type="orderModifier"/>
751
752
753 <xsd:complexType name="orderBySpec">
754 <xsd:sequence>
755 <xsd:element name="orderByExpr" type="exprWrapper"/>
756 <xsd:element ref="orderModifier" minOccurs="0"/>
757 </xsd:sequence>
758 </xsd:complexType>
759
760 <xsd:element name="orderBySpec" type="orderBySpec"/>
761
762
763 <xsd:complexType name="orderByClause">
764 <xsd:sequence>
765 <xsd:element name="stable" type="emptyContent" minOccurs="0"/>
766 <xsd:element ref="orderBySpec" maxOccurs="unbounded"/>
767 </xsd:sequence>
768 </xsd:complexType>
769
770 <xsd:element name="orderByClause" type="orderByClause"/>
771
772
773<!-- return clause -->
774 <xsd:element name="returnClause" type="exprWrapper"/>
775
776
777<!-- This is the XQuery 1.1 flwor expression -->
778<!-- Corresponds to the following XQuery syntax: -->
779<!-- 1.1 FLWORExpr ::= (ForClause | LetClause | WindowClause) -->
780<!-- (ForClause | LetClause | WindowClause | CountClause | -->
781<!-- WhereClause | GroupByClause | OrderByClause)* -->
782<!-- ReturnClause -->
783 <xsd:complexType name="flworExpr">
784 <xsd:complexContent>
785 <xsd:extension base="expr">
786 <xsd:sequence>
787 <xsd:choice>
788 <xsd:element ref="forClause"/>
789 <xsd:element ref="letClause"/>
790 <xsd:element ref="windowClause"/>
791 </xsd:choice>
792 <xsd:sequence>
793 <xsd:choice minOccurs="0" maxOccurs="unbounded">
794 <xsd:element ref="forClause"/>
795 <xsd:element ref="letClause"/>
796 <xsd:element ref="windowClause"/>
797 <xsd:element ref="countClause"/>
798 <xsd:element ref="whereClause"/>
799 <xsd:element ref="groupByClause"/>
800 <xsd:element ref="orderByClause"/>
801 </xsd:choice>
802 <xsd:element ref="returnClause"/>
803 </xsd:sequence>
804 </xsd:sequence>
805 </xsd:extension>
806 </xsd:complexContent>
807 </xsd:complexType>
808
809 <xsd:element name="flworExpr" type="flworExpr" substitutionGroup="expr"/>
810
811
812<!-- conditional expressions -->
813 <xsd:complexType name="ifThenElseExpr">
814 <xsd:complexContent>
815 <xsd:extension base="expr">
816 <xsd:sequence>
817 <xsd:element name="ifClause" type="exprWrapper"/>
818 <xsd:element name="thenClause" type="exprWrapper"/>
819 <xsd:element name="elseClause" type="exprWrapper"/>
820 </xsd:sequence>
821 </xsd:extension>
822 </xsd:complexContent>
823 </xsd:complexType>
824
825 <xsd:element name="ifThenElseExpr" type="ifThenElseExpr"
826 substitutionGroup="expr"/>
827
828
829<!-- The following clauses describe quantified expressions -->
830 <xsd:simpleType name="quantifier">
831 <xsd:restriction base="xsd:NMTOKEN">
832 <xsd:enumeration value="some"/>
833 <xsd:enumeration value="every"/>
834 </xsd:restriction>
835 </xsd:simpleType>
836
837
838 <xsd:complexType name="quantifiedExprInClause">
839 <xsd:sequence>
840 <xsd:element ref="typedVariableBinding"/>
841 <xsd:element name="sourceExpr" type="exprWrapper"/>
842 </xsd:sequence>
843 </xsd:complexType>
844
845 <xsd:element name="quantifiedExprInClause" type="quantifiedExprInClause"/>
846
847
848 <xsd:complexType name="quantifiedExpr">
849 <xsd:complexContent>
850 <xsd:extension base="expr">
851 <xsd:sequence>
852 <xsd:element name="quantifier" type="quantifier"/>
853 <xsd:element ref="quantifiedExprInClause" maxOccurs="unbounded"/>
854 <xsd:element name="predicateExpr" type="exprWrapper"/>
855 </xsd:sequence>
856 </xsd:extension>
857 </xsd:complexContent>
858 </xsd:complexType>
859
860 <xsd:element name="quantifiedExpr" type="quantifiedExpr"
861 substitutionGroup="expr"/>
862
863
864<!-- handle the switch expression -->
865<!-- Note: no substitutionGroup as we cannot use this anywhere except within switch -->
866 <xsd:complexType name="switchExprCaseClause">
867 <xsd:complexContent>
868 <xsd:extension base="expr">
869 <xsd:sequence>
870 <xsd:element name="switchCaseExpr" type="exprWrapper" maxOccurs="unbounded"/>
871 <xsd:element name="resultExpr" type="exprWrapper"/>
872 </xsd:sequence>
873 </xsd:extension>
874 </xsd:complexContent>
875 </xsd:complexType>
876
877 <xsd:element name="switchExprCaseClause"
878 type="switchExprCaseClause"/>
879
880
881<!-- Note: no substitutionGroup as we cannot use this anywhere except within switch -->
882 <xsd:complexType name="switchExprDefaultClause">
883 <xsd:complexContent>
884 <xsd:extension base="expr">
885 <xsd:sequence>
886 <xsd:element name="resultExpr" type="exprWrapper"/>
887 </xsd:sequence>
888 </xsd:extension>
889 </xsd:complexContent>
890 </xsd:complexType>
891
892 <xsd:element name="switchExprDefaultClause"
893 type="switchExprDefaultClause"/>
894
895
896 <xsd:complexType name="switchExpr">
897 <xsd:complexContent>
898 <xsd:extension base="expr">
899 <xsd:sequence>
900 <xsd:element name="argExpr" type="exprWrapper"/>
901 <xsd:element ref="switchExprCaseClause" maxOccurs="unbounded"/>
902 <xsd:element ref="switchExprDefaultClause"/>
903 </xsd:sequence>
904 </xsd:extension>
905 </xsd:complexContent>
906 </xsd:complexType>
907
908 <xsd:element name="switchExpr" type="switchExpr"
909 substitutionGroup="expr"/>
910
911
912<!-- handle the typeswitch expression -->
913<!-- Note: no substitutionGroup as we cannot use this anywhere except within typeswitch -->
914 <xsd:complexType name="typeswitchExprCaseClause">
915 <xsd:complexContent>
916 <xsd:extension base="expr">
917 <xsd:sequence>
918 <xsd:element ref="variableBinding" minOccurs="0"/>
919 <xsd:element ref="sequenceType"/>
920 <xsd:element name="resultExpr" type="exprWrapper"/>
921 </xsd:sequence>
922 </xsd:extension>
923 </xsd:complexContent>
924 </xsd:complexType>
925
926 <xsd:element name="typeswitchExprCaseClause"
927 type="typeswitchExprCaseClause"/>
928
929
930<!-- Note: no substitutionGroup as we cannot use this anywhere except within typeswitch -->
931 <xsd:complexType name="typeswitchExprDefaultClause">
932 <xsd:complexContent>
933 <xsd:extension base="expr">
934 <xsd:sequence>
935 <xsd:element ref="variableBinding" minOccurs="0"/>
936 <xsd:element name="resultExpr" type="exprWrapper"/>
937 </xsd:sequence>
938 </xsd:extension>
939 </xsd:complexContent>
940 </xsd:complexType>
941
942 <xsd:element name="typeswitchExprDefaultClause"
943 type="typeswitchExprDefaultClause"/>
944
945
946 <xsd:complexType name="typeswitchExpr">
947 <xsd:complexContent>
948 <xsd:extension base="expr">
949 <xsd:sequence>
950 <xsd:element name="argExpr" type="exprWrapper"/>
951 <xsd:element ref="typeswitchExprCaseClause" maxOccurs="unbounded"/>
952 <xsd:element ref="typeswitchExprDefaultClause"/>
953 </xsd:sequence>
954 </xsd:extension>
955 </xsd:complexContent>
956 </xsd:complexType>
957
958 <xsd:element name="typeswitchExpr" type="typeswitchExpr"
959 substitutionGroup="expr"/>
960
961
962<!-- TryCatchExpression -->
963<!-- Corresponds to the following XQuery syntax -->
964<!-- TryCatchExpression ::= TryClause CatchClause+ -->
965<!-- TryClause ::= "{" TryTargetExpr "}" -->
966<!-- TryTargetExpr ::= Expr -->
967 <xsd:complexType name="tryCatchExpr">
968 <xsd:complexContent>
969 <xsd:extension base="expr">
970 <xsd:sequence>
971 <xsd:element name="tryClause" type="exprWrapper"/>
972 <xsd:element ref="catchClause" maxOccurs="unbounded"/>
973 </xsd:sequence>
974 </xsd:extension>
975 </xsd:complexContent>
976 </xsd:complexType>
977
978 <xsd:element name="tryCatchExpr" type="tryCatchExpr"
979 substitutionGroup="expr"/>
980
981
982<!-- CatchClause (part of the TryCatchExpression) -->
983<!-- Corresponds to the following XQuery syntax -->
984<!-- CatchClause ::= "catch" CatchErrorList "{" Expr "}" -->
985 <xsd:complexType name="catchClause">
986 <xsd:sequence>
987 <xsd:element ref="catchErrorList"/>
988 <xsd:element name="catchExpr" type="exprWrapper"/>
989 </xsd:sequence>
990 </xsd:complexType>
991
992 <xsd:element name="catchClause" type="catchClause"/>
993
994
995<!-- CatchErrorList (part of the TryCatchExpression) -->
996<!-- Corresponds to the following XQuery syntax -->
997<!-- CatchErrorList ::= NameTest ( "|" NameTest )* -->
998<!-- (remembering that NameTest is either QName or Wildcard) -->
999 <xsd:complexType name="catchErrorList">
1000 <xsd:sequence maxOccurs="unbounded">
1001 <xsd:choice>
1002 <xsd:element ref="nameTest"/>
1003 <xsd:element ref="Wildcard"/>
1004 </xsd:choice>
1005 </xsd:sequence>
1006 </xsd:complexType>
1007
1008 <xsd:element name="catchErrorList" type="catchErrorList"/>
1009
1010
1011<!-- instance-of expressions -->
1012 <xsd:complexType name="instanceOfExpr">
1013 <xsd:complexContent>
1014 <xsd:extension base="expr">
1015 <xsd:sequence>
1016 <xsd:element name="argExpr" type="exprWrapper"/>
1017 <xsd:element ref="sequenceType"/>
1018 </xsd:sequence>
1019 </xsd:extension>
1020 </xsd:complexContent>
1021 </xsd:complexType>
1022
1023 <xsd:element name="instanceOfExpr" type="instanceOfExpr"
1024 substitutionGroup="expr"/>
1025
1026
1027<!-- treat-as expressions -->
1028 <xsd:complexType name="treatExpr">
1029 <xsd:complexContent>
1030 <xsd:extension base="expr">
1031 <xsd:sequence>
1032 <xsd:element name="argExpr" type="exprWrapper"/>
1033 <xsd:element ref="sequenceType"/>
1034 </xsd:sequence>
1035 </xsd:extension>
1036 </xsd:complexContent>
1037 </xsd:complexType>
1038
1039 <xsd:element name="treatExpr" type="treatExpr"
1040 substitutionGroup="expr"/>
1041
1042
1043<!-- castable and cast expressions -->
1044 <xsd:complexType name="castableExpr">
1045 <xsd:complexContent>
1046 <xsd:extension base="expr">
1047 <xsd:sequence>
1048 <xsd:element name="argExpr" type="exprWrapper"/>
1049 <xsd:element ref="singleType"/>
1050 </xsd:sequence>
1051 </xsd:extension>
1052 </xsd:complexContent>
1053 </xsd:complexType>
1054
1055 <xsd:element name="castableExpr" type="castableExpr"
1056 substitutionGroup="expr"/>
1057
1058
1059 <xsd:complexType name="castExpr">
1060 <xsd:complexContent>
1061 <xsd:extension base="expr">
1062 <xsd:sequence>
1063 <xsd:element name="argExpr" type="exprWrapper"/>
1064 <xsd:element ref="singleType"/>
1065 </xsd:sequence>
1066 </xsd:extension>
1067 </xsd:complexContent>
1068 </xsd:complexType>
1069
1070 <xsd:element name="castExpr" type="castExpr"
1071 substitutionGroup="expr"/>
1072
1073
1074<!-- Validate expressions -->
1075 <xsd:simpleType name="validationMode">
1076 <xsd:restriction base="xsd:NMTOKEN">
1077 <xsd:enumeration value="lax"/>
1078 <xsd:enumeration value="strict"/>
1079 </xsd:restriction>
1080 </xsd:simpleType>
1081
1082 <xsd:complexType name="validateExpr">
1083 <xsd:complexContent>
1084 <xsd:extension base="expr">
1085 <xsd:sequence>
1086 <xsd:choice>
1087 <xsd:element name="validationMode" type="validationMode" minOccurs="0"/>
1088 <xsd:element name="typeName" type="EQName" minOccurs="0"/>
1089 </xsd:choice>
1090 <xsd:element name="argExpr" type="exprWrapper"/>
1091 </xsd:sequence>
1092 </xsd:extension>
1093 </xsd:complexContent>
1094 </xsd:complexType>
1095
1096 <xsd:element name="validateExpr" type="validateExpr"
1097 substitutionGroup="expr"/>
1098
1099
1100<!-- Direct constructors. Only elementConstructor for now -->
1101<!-- Note the absence of constructors corresponding to -->
1102<!-- the directCommentConstructor and the directPIConstructor -->
1103<!-- productions in the XQuery grammar. This is because they are -->
1104<!-- trivially identical to the computed variants -->
1105
1106<!-- attributeConstructor is no longer a subclass of expr -->
1107 <xsd:complexType name="attributeConstructor">
1108 <xsd:sequence>
1109 <xsd:element name="attributeName" type="QName"/>
1110 <xsd:choice>
1111 <xsd:element name="attributeValueExpr" type="exprList"/>
1112 <xsd:element name="attributeValue" type="xsd:string"/>
1113 </xsd:choice>
1114 </xsd:sequence>
1115 </xsd:complexType>
1116
1117 <xsd:complexType name="namespaceDeclaration">
1118 <xsd:sequence>
1119 <xsd:element name="prefix" type="xsd:NCName" minOccurs="0"/>
1120 <xsd:element name="uri" type="xsd:string"/>
1121 </xsd:sequence>
1122 </xsd:complexType>
1123
1124
1125<!-- element constructors -->
1126 <xsd:complexType name="attributeList">
1127 <xsd:sequence>
1128 <xsd:choice maxOccurs="unbounded">
1129 <xsd:element name="attributeConstructor" type="attributeConstructor"/>
1130 <xsd:element name="namespaceDeclaration" type="namespaceDeclaration"/>
1131 </xsd:choice>
1132 </xsd:sequence>
1133 </xsd:complexType>
1134
1135 <xsd:element name="attributeList" type="attributeList"/>
1136
1137
1138 <xsd:element name="elementContent" type="exprList"/>
1139
1140
1141 <xsd:complexType name="elementConstructor">
1142 <xsd:complexContent>
1143 <xsd:extension base="expr">
1144 <xsd:sequence>
1145 <xsd:element name="tagName" type="QName"/>
1146 <xsd:element ref="attributeList" minOccurs="0"/>
1147 <xsd:element ref="elementContent" minOccurs="0"/>
1148 </xsd:sequence>
1149 </xsd:extension>
1150 </xsd:complexContent>
1151 </xsd:complexType>
1152
1153 <xsd:element name="elementConstructor" type="elementConstructor"
1154 substitutionGroup="expr"/>
1155
1156
1157<!-- computed constructors -->
1158<!-- computed element constructor -->
1159 <xsd:complexType name="computedElementConstructor">
1160 <xsd:complexContent>
1161 <xsd:extension base="expr">
1162 <xsd:sequence>
1163 <xsd:choice>
1164 <xsd:element name="tagName" type="EQName"/>
1165 <xsd:element name="tagNameExpr" type="exprWrapper"/>
1166 </xsd:choice>
1167 <xsd:element name="contentExpr" type="exprWrapper" minOccurs="0"/>
1168 </xsd:sequence>
1169 </xsd:extension>
1170 </xsd:complexContent>
1171 </xsd:complexType>
1172
1173 <xsd:element name="computedElementConstructor" type="computedElementConstructor"
1174 substitutionGroup="expr"/>
1175
1176
1177<!-- computed attribute constructor -->
1178 <xsd:complexType name="computedAttributeConstructor">
1179 <xsd:complexContent>
1180 <xsd:extension base="expr">
1181 <xsd:sequence>
1182 <xsd:choice>
1183 <xsd:element name="tagName" type="EQName"/>
1184 <xsd:element name="tagNameExpr" type="exprWrapper"/>
1185 </xsd:choice>
1186 <xsd:element name="valueExpr" type="exprWrapper" minOccurs="0"/>
1187 </xsd:sequence>
1188 </xsd:extension>
1189 </xsd:complexContent>
1190 </xsd:complexType>
1191
1192 <xsd:element name="computedAttributeConstructor" type="computedAttributeConstructor"
1193 substitutionGroup="expr"/>
1194
1195
1196<!-- computed document constructor -->
1197 <xsd:complexType name="computedDocumentConstructor">
1198 <xsd:complexContent>
1199 <xsd:extension base="expr">
1200 <xsd:sequence>
1201 <xsd:element name="argExpr" type="exprWrapper"/>
1202 </xsd:sequence>
1203 </xsd:extension>
1204 </xsd:complexContent>
1205 </xsd:complexType>
1206
1207 <xsd:element name="computedDocumentConstructor" type="computedDocumentConstructor"
1208 substitutionGroup="expr"/>
1209
1210
1211<!-- computed text constructor -->
1212 <xsd:complexType name="computedTextConstructor">
1213 <xsd:complexContent>
1214 <xsd:extension base="expr">
1215 <xsd:sequence>
1216 <xsd:element name="argExpr" type="exprWrapper" minOccurs="0"/>
1217 </xsd:sequence>
1218 </xsd:extension>
1219 </xsd:complexContent>
1220 </xsd:complexType>
1221
1222 <xsd:element name="computedTextConstructor" type="computedTextConstructor"
1223 substitutionGroup="expr"/>
1224
1225
1226<!-- computed comment constructor -->
1227 <xsd:complexType name="computedCommentConstructor">
1228 <xsd:complexContent>
1229 <xsd:extension base="expr">
1230 <xsd:sequence>
1231 <xsd:element name="argExpr" type="exprWrapper"/>
1232 </xsd:sequence>
1233 </xsd:extension>
1234 </xsd:complexContent>
1235 </xsd:complexType>
1236
1237 <xsd:element name="computedCommentConstructor" type="computedCommentConstructor"
1238 substitutionGroup="expr"/>
1239
1240
1241<!-- computed namespace constructor -->
1242 <xsd:complexType name="computedNamespaceConstructor">
1243 <xsd:complexContent>
1244 <xsd:extension base="expr">
1245 <xsd:sequence>
1246 <xsd:choice>
1247 <xsd:element name="prefix" type="xsd:NCName"/>
1248 <xsd:element name="prefixExpr" type="exprWrapper"/>
1249 </xsd:choice>
1250 <xsd:element name="URIExpr" type="exprWrapper" minOccurs="0"/>
1251 </xsd:sequence>
1252 </xsd:extension>
1253 </xsd:complexContent>
1254 </xsd:complexType>
1255
1256 <xsd:element name="computedNamespaceConstructor" type="computedNamespaceConstructor"
1257 substitutionGroup="expr"/>
1258
1259
1260<!-- computed processing instruction constructor -->
1261 <xsd:complexType name="computedPIConstructor">
1262 <xsd:complexContent>
1263 <xsd:extension base="expr">
1264 <xsd:sequence>
1265 <xsd:choice>
1266 <xsd:element name="piTarget" type="xsd:NCName"/>
1267 <xsd:element name="piTargetExpr" type="exprWrapper"/>
1268 </xsd:choice>
1269 <xsd:element name="piValueExpr" type="exprWrapper" minOccurs="0"/>
1270 </xsd:sequence>
1271 </xsd:extension>
1272 </xsd:complexContent>
1273 </xsd:complexType>
1274
1275 <xsd:element name="computedPIConstructor" type="computedPIConstructor"
1276 substitutionGroup="expr"/>
1277
1278
1279<!-- ordered and unordered expressions -->
1280 <xsd:complexType name="unorderedExpr">
1281 <xsd:complexContent>
1282 <xsd:extension base="expr">
1283 <xsd:sequence>
1284 <xsd:element name="argExpr" type="exprWrapper"/>
1285 </xsd:sequence>
1286 </xsd:extension>
1287 </xsd:complexContent>
1288 </xsd:complexType>
1289
1290 <xsd:element name="unorderedExpr" type="unorderedExpr" substitutionGroup="expr"/>
1291
1292
1293 <xsd:complexType name="orderedExpr">
1294 <xsd:complexContent>
1295 <xsd:extension base="expr">
1296 <xsd:sequence>
1297 <xsd:element name="argExpr" type="exprWrapper"/>
1298 </xsd:sequence>
1299 </xsd:extension>
1300 </xsd:complexContent>
1301 </xsd:complexType>
1302
1303 <xsd:element name="orderedExpr" type="orderedExpr" substitutionGroup="expr"/>
1304
1305
1306<!-- function item expressions -->
1307<!-- literal function item expression -->
1308<!-- 2010-04-06: Jim changed child element QName to be functionName for consistency -->
1309 <xsd:complexType name="literalFunctionItemExpr">
1310 <xsd:complexContent>
1311 <xsd:extension base="expr">
1312 <xsd:sequence>
1313 <xsd:element name="functionName" type="EQName"/>
1314 <xsd:element name="integerConstantExpr" type="integerConstantExpr"/>
1315 </xsd:sequence>
1316 </xsd:extension>
1317 </xsd:complexContent>
1318 </xsd:complexType>
1319
1320 <xsd:element name="literalFunctionItemExpr" type="literalFunctionItemExpr" substitutionGroup="expr"/>
1321
1322
1323<!-- inline function item expression -->
1324 <xsd:complexType name="inlineFunctionItemExpr">
1325 <xsd:complexContent>
1326 <xsd:extension base="expr">
1327 <xsd:sequence>
1328 <xsd:element ref="paramList"/>
1329 <xsd:element ref="typeDeclaration" minOccurs="0"/>
1330 <xsd:element name="functionBody" type="exprWrapper"/>
1331 </xsd:sequence>
1332 </xsd:extension>
1333 </xsd:complexContent>
1334 </xsd:complexType>
1335
1336 <xsd:element name="inlineFunctionItemExpr" type="inlineFunctionItemExpr" substitutionGroup="expr"/>
1337
1338
1339<!-- dynamic function invocations -->
1340<!-- 2010-06-23 - Added support for partial function application -->
1341 <xsd:complexType name="dynamicFunctionInvocationExpr">
1342 <xsd:complexContent>
1343 <xsd:extension base="expr">
1344 <xsd:sequence>
1345 <xsd:element name="functionItem">
1346 <xsd:complexType>
1347 <xsd:sequence>
1348 <xsd:group ref="filterExpr"/>
1349 </xsd:sequence>
1350 </xsd:complexType>
1351 </xsd:element>
1352 <xsd:element name="predicates" type="exprList" minOccurs="0"/>
1353 <xsd:element name="arguments" type="exprOrPlaceholderList" minOccurs="0"/>
1354 </xsd:sequence>
1355 </xsd:extension>
1356 </xsd:complexContent>
1357 </xsd:complexType>
1358
1359 <xsd:element name="dynamicFunctionInvocationExpr" type="dynamicFunctionInvocationExpr" substitutionGroup="expr"/>
1360
1361
1362<!-- wildcards -->
1363 <xsd:complexType name="simpleWildcard">
1364 <xsd:choice>
1365 <xsd:element name="QName" type="EQName"/>
1366 <xsd:element name="star" type="emptyContent"/>
1367 </xsd:choice>
1368 </xsd:complexType>
1369
1370<!-- 2011-06-10: Redesigned to allow "URliteral:*" -->
1371<!-- Corresponds to the following XQuery syntax: -->
1372<!-- [44] Wildcard ::= "*" -->
1373<!-- | (NCName ":" "*") -->
1374<!-- | ("*" ":" NCName) -->
1375<!-- | (URILiteral ":" "*") -->
1376
1377 <xsd:complexType name="Wildcard">
1378 <xsd:choice minOccurs="0">
1379 <xsd:sequence>
1380 <xsd:element name="star" type="emptyContent"/>
1381 <xsd:element ref="NCName"/>
1382 </xsd:sequence>
1383 <xsd:sequence>
1384 <xsd:element ref="NCName"/>
1385 <xsd:element name="star" type="emptyContent"/>
1386 </xsd:sequence>
1387 <xsd:sequence>
1388 <xsd:element name="uri" type="xsd:string"/>
1389 <xsd:element name="star" type="emptyContent"/>
1390 </xsd:sequence>
1391 </xsd:choice>
1392 </xsd:complexType>
1393
1394 <xsd:element name="Wildcard" type="Wildcard"/>
1395
1396
1397<!-- tests (name and/or type) -->
1398 <xsd:element name="schemaAttributeTest" type="EQName"
1399 substitutionGroup="kindTest"/>
1400
1401
1402 <xsd:complexType name="attributeTest">
1403 <xsd:complexContent>
1404 <xsd:extension base="emptyItemTypeContent">
1405 <xsd:sequence minOccurs="0">
1406 <xsd:element name="attributeName" type="simpleWildcard"/>
1407 <xsd:element name="typeName" type="EQName" minOccurs="0"/>
1408 </xsd:sequence>
1409 </xsd:extension>
1410 </xsd:complexContent>
1411 </xsd:complexType>
1412
1413 <xsd:element name="attributeTest" type="attributeTest"
1414 substitutionGroup="kindTest"/>
1415
1416
1417 <xsd:element name="anyElementTest" abstract="true"
1418 substitutionGroup="kindTest"/>
1419
1420
1421 <xsd:element name="schemaElementTest" type="EQName"
1422 substitutionGroup="anyElementTest"/>
1423
1424
1425 <xsd:complexType name="elementTest">
1426 <xsd:complexContent>
1427 <xsd:extension base="emptyItemTypeContent">
1428 <xsd:sequence minOccurs="0">
1429 <xsd:element name="elementName" type="simpleWildcard"/>
1430 <xsd:sequence minOccurs="0">
1431 <xsd:element name="typeName" type="EQName"/>
1432 <xsd:element name="nillable" type="emptyContent" minOccurs="0"/>
1433 </xsd:sequence>
1434 </xsd:sequence>
1435 </xsd:extension>
1436 </xsd:complexContent>
1437 </xsd:complexType>
1438
1439 <xsd:element name="elementTest" type="elementTest"
1440 substitutionGroup="anyElementTest"/>
1441
1442
1443 <xsd:complexType name="documentTest">
1444 <xsd:complexContent>
1445 <xsd:extension base="emptyItemTypeContent">
1446 <xsd:sequence>
1447 <xsd:element ref="anyElementTest" minOccurs="0"/>
1448 </xsd:sequence>
1449 </xsd:extension>
1450 </xsd:complexContent>
1451 </xsd:complexType>
1452
1453 <xsd:element name="documentTest" type="documentTest"
1454 substitutionGroup="kindTest"/>
1455
1456
1457 <xsd:complexType name="piTest">
1458 <xsd:complexContent>
1459 <xsd:extension base="emptyItemTypeContent">
1460 <xsd:sequence>
1461 <xsd:element name="piTarget" type="xsd:NCName" minOccurs="0"/>
1462 </xsd:sequence>
1463 </xsd:extension>
1464 </xsd:complexContent>
1465 </xsd:complexType>
1466
1467 <xsd:element name="piTest" type="piTest" substitutionGroup="kindTest"/>
1468
1469
1470 <xsd:element name="nameTest" type="EQName"/>
1471
1472 <xsd:element name="kindTest" substitutionGroup="itemType"/>
1473
1474 <xsd:element name="textTest" type="emptyItemTypeContent"
1475 substitutionGroup="kindTest"/>
1476
1477 <xsd:element name="commentTest" type="emptyItemTypeContent"
1478 substitutionGroup="kindTest"/>
1479
1480 <xsd:element name="namespaceTest" type="emptyItemTypeContent"
1481 substitutionGroup="kindTest"/>
1482
1483 <xsd:element name="anyKindTest" type="emptyItemTypeContent"
1484 substitutionGroup="kindTest"/>
1485
1486
1487<!-- functionTest variations -->
1488 <xsd:element name="anyFunctionTest" type="emptyItemTypeContent" substitutionGroup="itemType"/>
1489
1490 <xsd:complexType name="typedFunctionTest">
1491 <xsd:complexContent>
1492 <xsd:extension base="emptyItemTypeContent">
1493 <xsd:sequence>
1494 <xsd:element ref="paramTypeList" minOccurs="0"/>
1495 <xsd:element ref="sequenceType"/>
1496 </xsd:sequence>
1497 </xsd:extension>
1498 </xsd:complexContent>
1499 </xsd:complexType>
1500
1501 <xsd:element name="typedFunctionTest" type="typedFunctionTest" substitutionGroup="itemType"/>
1502
1503
1504 <xsd:complexType name="paramTypeList">
1505 <xsd:sequence>
1506 <xsd:element ref="sequenceType" minOccurs="0" maxOccurs="unbounded"/>
1507 </xsd:sequence>
1508 </xsd:complexType>
1509
1510 <xsd:element name="paramTypeList" type="paramTypeList"/>
1511
1512
1513 <xsd:complexType name="parenthesizedItemType">
1514 <xsd:complexContent>
1515 <xsd:extension base="emptyItemTypeContent">
1516 <xsd:sequence>
1517 <xsd:element ref="itemType"/>
1518 </xsd:sequence>
1519 </xsd:extension>
1520 </xsd:complexContent>
1521 </xsd:complexType>
1522
1523 <xsd:element name="parenthesizedItemType" type="parenthesizedItemType" substitutionGroup="itemType"/>
1524
1525
1526<!-- XPath axes -->
1527 <xsd:simpleType name="xpathAxis">
1528 <xsd:restriction base="xsd:NMTOKEN">
1529 <xsd:enumeration value="child"/>
1530 <xsd:enumeration value="attribute"/>
1531 <xsd:enumeration value="self"/>
1532 <xsd:enumeration value="parent"/>
1533 <xsd:enumeration value="descendant-or-self"/>
1534 <xsd:enumeration value="descendant"/>
1535 <xsd:enumeration value="following"/>
1536 <xsd:enumeration value="following-sibling"/>
1537 <xsd:enumeration value="ancestor"/>
1538 <xsd:enumeration value="ancestor-or-self"/>
1539 <xsd:enumeration value="preceding"/>
1540 <xsd:enumeration value="preceding-sibling"/>
1541 </xsd:restriction>
1542 </xsd:simpleType>
1543
1544 <xsd:element name="xpathAxis" type="xpathAxis"/>
1545
1546
1547<!-- filter expressions -->
1548<!-- added literalFunctionItemExpr, inlineFunctionItemExpr, and -->
1549<!-- dynamicFunctionInvocation for higher-order functions -->
1550 <xsd:group name="filterExpr">
1551 <xsd:choice>
1552 <xsd:element ref="constantExpr"/>
1553 <xsd:element ref="varRef"/>
1554 <xsd:element ref="contextItemExpr"/>
1555 <xsd:element ref="functionCallExpr"/>
1556 <xsd:element ref="sequenceExpr"/>
1557 <xsd:element ref="elementConstructor"/>
1558 <xsd:element ref="computedElementConstructor"/>
1559 <xsd:element ref="computedAttributeConstructor"/>
1560 <xsd:element ref="computedDocumentConstructor"/>
1561 <xsd:element ref="computedTextConstructor"/>
1562 <xsd:element ref="computedCommentConstructor"/>
1563 <xsd:element ref="computedNamespaceConstructor"/>
1564 <xsd:element ref="computedPIConstructor"/>
1565 <xsd:element ref="orderedExpr"/>
1566 <xsd:element ref="unorderedExpr"/>
1567 <xsd:element ref="literalFunctionItemExpr"/>
1568 <xsd:element ref="inlineFunctionItemExpr"/>
1569 <xsd:element ref="dynamicFunctionInvocationExpr"/>
1570 </xsd:choice>
1571 </xsd:group>
1572
1573
1574<!-- step expression -->
1575<!-- removed nameTest and Wildcard outer choices per Bugzilla Bug #2523 -->
1576<!-- replaced element "predicates" with choice of "predicates" & "dynamicfunctioninv'n" -->
1577 <xsd:complexType name="stepExpr">
1578 <xsd:sequence>
1579 <xsd:choice>
1580 <xsd:sequence>
1581 <xsd:element ref="xpathAxis"/>
1582 <xsd:choice>
1583 <xsd:element ref="kindTest"/>
1584 <xsd:element ref="nameTest"/>
1585 <xsd:element ref="Wildcard"/>
1586 </xsd:choice>
1587 </xsd:sequence>
1588 <xsd:element name="filterExpr">
1589 <xsd:complexType>
1590 <xsd:sequence>
1591 <xsd:group ref="filterExpr"/>
1592 </xsd:sequence>
1593 </xsd:complexType>
1594 </xsd:element>
1595 </xsd:choice>
1596 <xsd:element name="predicates" type="exprList" minOccurs="0"/>
1597 </xsd:sequence>
1598 </xsd:complexType>
1599
1600 <xsd:element name="stepExpr" type="stepExpr"/>
1601
1602
1603<!-- path expression -->
1604<!-- rewrote pathExpr definition per Bugzilla Bug #2523 -->
1605 <xsd:complexType name="pathExpr">
1606 <xsd:complexContent>
1607 <xsd:extension base="expr">
1608 <xsd:choice>
1609 <xsd:sequence>
1610 <xsd:element name="rootExpr" type="emptyContent"/>
1611 <xsd:element ref="stepExpr" minOccurs="0" maxOccurs="unbounded"/>
1612 </xsd:sequence>
1613 <xsd:element ref="stepExpr" maxOccurs="unbounded"/>
1614 </xsd:choice>
1615 </xsd:extension>
1616 </xsd:complexContent>
1617 </xsd:complexType>
1618
1619 <xsd:element name="pathExpr" type="pathExpr" substitutionGroup="expr"/>
1620
1621
1622<!-- The following constructs deal with the query prolog -->
1623 <xsd:complexType name="module">
1624 <xsd:sequence>
1625 <xsd:element ref="versionDecl" minOccurs="0"/>
1626 <xsd:choice>
1627 <xsd:element ref="mainModule"/>
1628 <xsd:element ref="libraryModule"/>
1629 </xsd:choice>
1630 </xsd:sequence>
1631 </xsd:complexType>
1632
1633 <xsd:element name="module" type="module"/>
1634
1635
1636 <xsd:complexType name="mainModule">
1637 <xsd:sequence>
1638 <xsd:element ref="prolog" minOccurs="0"/>
1639 <xsd:element name="queryBody" type="exprWrapper"/>
1640 </xsd:sequence>
1641 </xsd:complexType>
1642
1643 <xsd:element name="mainModule" type="mainModule"/>
1644
1645
1646 <xsd:complexType name="libraryModule">
1647 <xsd:sequence>
1648 <xsd:element ref="moduleDecl"/>
1649 <xsd:element ref="prolog" minOccurs="0"/>
1650 </xsd:sequence>
1651 </xsd:complexType>
1652
1653 <xsd:element name="libraryModule" type="libraryModule"/>
1654
1655
1656 <xsd:complexType name="versionDecl">
1657 <xsd:sequence>
1658 <xsd:element name="version" type="xsd:string" minOccurs="0"/>
1659 <xsd:element name="encoding" type="xsd:string" minOccurs="0"/>
1660 </xsd:sequence>
1661 </xsd:complexType>
1662
1663 <xsd:element name="versionDecl" type="versionDecl"/>
1664
1665
1666 <xsd:complexType name="prolog">
1667 <xsd:sequence>
1668 <xsd:element ref="prologPartOneItem" minOccurs="0" maxOccurs="unbounded"/>
1669 <xsd:element ref="prologPartTwoItem" minOccurs="0" maxOccurs="unbounded"/>
1670 </xsd:sequence>
1671 </xsd:complexType>
1672
1673 <xsd:element name="prolog" type="prolog"/>
1674
1675
1676 <xsd:element name="prologPartOneItem" abstract="true"/>
1677
1678
1679 <xsd:element name="prologPartTwoItem" abstract="true"/>
1680
1681
1682 <xsd:simpleType name="boundarySpaceDecl">
1683 <xsd:restriction base="xsd:NMTOKEN">
1684 <xsd:enumeration value="strip"/>
1685 <xsd:enumeration value="preserve"/>
1686 </xsd:restriction>
1687 </xsd:simpleType>
1688
1689 <xsd:element name="boundarySpaceDecl" type="boundarySpaceDecl"
1690 substitutionGroup="prologPartOneItem"/>
1691
1692
1693 <xsd:element name="defaultCollationDecl" type="xsd:string"
1694 substitutionGroup="prologPartOneItem"/>
1695
1696
1697 <xsd:element name="baseUriDecl" type="xsd:string"
1698 substitutionGroup="prologPartOneItem"/>
1699
1700
1701 <xsd:simpleType name="constructionDecl">
1702 <xsd:restriction base="xsd:NMTOKEN">
1703 <xsd:enumeration value="strip"/>
1704 <xsd:enumeration value="preserve"/>
1705 </xsd:restriction>
1706 </xsd:simpleType>
1707
1708 <xsd:element name="constructionDecl" type="constructionDecl"
1709 substitutionGroup="prologPartOneItem"/>
1710
1711
1712 <xsd:simpleType name="orderingModeDecl">
1713 <xsd:restriction base="xsd:NMTOKEN">
1714 <xsd:enumeration value="ordered"/>
1715 <xsd:enumeration value="unordered"/>
1716 </xsd:restriction>
1717 </xsd:simpleType>
1718
1719 <xsd:element name="orderingModeDecl" type="orderingModeDecl"
1720 substitutionGroup="prologPartOneItem"/>
1721
1722
1723 <xsd:element name="emptyOrderingDecl" type="emptyOrderingMode"
1724 substitutionGroup="prologPartOneItem"/>
1725
1726
1727 <xsd:complexType name="copyNamespacesDecl">
1728 <xsd:sequence>
1729 <xsd:element name="preserveMode">
1730 <xsd:simpleType>
1731 <xsd:restriction base="xsd:NMTOKEN">
1732 <xsd:enumeration value="preserve"/>
1733 <xsd:enumeration value="no-preserve"/>
1734 </xsd:restriction>
1735 </xsd:simpleType>
1736 </xsd:element>
1737 <xsd:element name="inheritMode">
1738 <xsd:simpleType>
1739 <xsd:restriction base="xsd:NMTOKEN">
1740 <xsd:enumeration value="inherit"/>
1741 <xsd:enumeration value="no-inherit"/>
1742 </xsd:restriction>
1743 </xsd:simpleType>
1744 </xsd:element>
1745 </xsd:sequence>
1746 </xsd:complexType>
1747
1748 <xsd:element name="copyNamespacesDecl" type="copyNamespacesDecl"
1749 substitutionGroup="prologPartOneItem"/>
1750
1751
1752 <xsd:simpleType name="defaultNamespaceCategory">
1753 <xsd:restriction base="xsd:NMTOKEN">
1754 <xsd:enumeration value="function"/>
1755 <xsd:enumeration value="element"/>
1756 </xsd:restriction>
1757 </xsd:simpleType>
1758
1759 <xsd:complexType name="defaultNamespaceDecl">
1760 <xsd:sequence>
1761 <xsd:element name="defaultNamespaceCategory" type="defaultNamespaceCategory"/>
1762 <xsd:element name="uri" type="xsd:string"/>
1763 </xsd:sequence>
1764 </xsd:complexType>
1765
1766 <xsd:element name="defaultNamespaceDecl" type="defaultNamespaceDecl"
1767 substitutionGroup="prologPartOneItem"/>
1768
1769
1770 <xsd:complexType name="namespaceDeclType">
1771 <xsd:sequence>
1772 <xsd:element name="prefix" type="xsd:NCName"/>
1773 <xsd:element name="uri" type="xsd:string"/>
1774 </xsd:sequence>
1775 </xsd:complexType>
1776
1777 <xsd:element name="namespaceDecl" type="namespaceDeclType"
1778 substitutionGroup="prologPartOneItem"/>
1779
1780
1781 <xsd:element name="moduleDecl" type="namespaceDeclType"/>
1782
1783
1784 <xsd:complexType name="decimalFormatDeclType">
1785 <xsd:sequence>
1786 <xsd:element name="decimalFormatName" type="EQName" minOccurs="0"/>
1787 <xsd:element name="decimalFormatParam" minOccurs="0" maxOccurs="unbounded">
1788 <xsd:complexType>
1789 <xsd:sequence>
1790 <xsd:element name="decimalFormatParamName">
1791 <xsd:simpleType>
1792 <xsd:restriction base="xsd:NMTOKEN">
1793 <xsd:enumeration value="decimal-separator"/>
1794 <xsd:enumeration value="grouping-separator"/>
1795 <xsd:enumeration value="infinity"/>
1796 <xsd:enumeration value="minus-sign"/>
1797 <xsd:enumeration value="NaN"/>
1798 <xsd:enumeration value="percent"/>
1799 <xsd:enumeration value="per-mille"/>
1800 <xsd:enumeration value="zero-digit"/>
1801 <xsd:enumeration value="digit"/>
1802 <xsd:enumeration value="pattern-separator"/>
1803 </xsd:restriction>
1804 </xsd:simpleType>
1805 </xsd:element>
1806 <xsd:element name="decimalFormatParamValue" type="xsd:string"/>
1807 </xsd:sequence>
1808 </xsd:complexType>
1809 </xsd:element>
1810 </xsd:sequence>
1811 <xsd:attribute name="default" default="false">
1812 <xsd:simpleType>
1813 <xsd:restriction base="xsd:NMTOKEN">
1814 <xsd:enumeration value="true"/>
1815 <xsd:enumeration value="false"/>
1816 </xsd:restriction>
1817 </xsd:simpleType>
1818 </xsd:attribute>
1819 </xsd:complexType>
1820
1821 <xsd:element name="decimalFormatDecl" type="decimalFormatDeclType"
1822 substitutionGroup="prologPartOneItem"/>
1823
1824
1825 <xsd:complexType name="schemaImport">
1826 <xsd:sequence>
1827 <xsd:choice minOccurs="0">
1828 <xsd:element name="namespacePrefix" type="xsd:NCName"/>
1829 <xsd:element name="defaultElementNamespace" type="emptyContent"/>
1830 </xsd:choice>
1831 <xsd:element name="targetNamespace" type="xsd:string"/>
1832 <xsd:element name="targetLocation" type="xsd:string"
1833 minOccurs="0" maxOccurs="unbounded"/>
1834 </xsd:sequence>
1835 </xsd:complexType>
1836
1837 <xsd:element name="schemaImport" type="schemaImport"
1838 substitutionGroup="prologPartOneItem"/>
1839
1840
1841 <xsd:complexType name="moduleImport">
1842 <xsd:sequence>
1843 <xsd:element name="namespacePrefix" type="xsd:NCName" minOccurs="0"/>
1844 <xsd:element name="targetNamespace" type="xsd:string"/>
1845 <xsd:element name="targetLocation" type="xsd:string"
1846 minOccurs="0" maxOccurs="unbounded"/>
1847 </xsd:sequence>
1848 </xsd:complexType>
1849
1850 <xsd:element name="moduleImport" type="moduleImport"
1851 substitutionGroup="prologPartOneItem"/>
1852
1853
1854 <xsd:complexType name="contextItemDecl">
1855 <xsd:sequence>
1856 <xsd:element ref="typeDeclaration" minOccurs="0"/>
1857 <xsd:choice>
1858 <xsd:element name="varValue" type="exprWrapper"/>
1859 <xsd:sequence>
1860 <xsd:element name="external">
1861 <xsd:complexType>
1862 <xsd:sequence>
1863 <xsd:element name="varValue" type="exprWrapper" minOccurs="0"/>
1864 </xsd:sequence>
1865 </xsd:complexType>
1866 </xsd:element>
1867 </xsd:sequence>
1868 </xsd:choice>
1869 </xsd:sequence>
1870 </xsd:complexType>
1871
1872 <xsd:element name="contextItemDecl" type="contextItemDecl"
1873 substitutionGroup="prologPartTwoItem"/>
1874
1875
1876<!-- For %-annotations -->
1877 <xsd:complexType name="annotation">
1878 <xsd:sequence>
1879 <xsd:element name="annotationName" type="EQName"/>
1880 <xsd:element name="arguments" type="exprList" minOccurs="0"/>
1881 </xsd:sequence>
1882 </xsd:complexType>
1883
1884
1885 <xsd:complexType name="varDecl">
1886 <xsd:sequence>
1887 <xsd:element name="annotation" type="annotation"
1888 minOccurs="0" maxOccurs="unbounded"/>
1889 <xsd:element name="varName" type="EQName"/>
1890 <xsd:element ref="typeDeclaration" minOccurs="0"/>
1891 <xsd:choice>
1892 <xsd:element name="varValue" type="exprWrapper"/>
1893 <xsd:sequence>
1894 <xsd:element name="external">
1895 <xsd:complexType>
1896 <xsd:sequence>
1897 <xsd:element name="varValue" type="exprWrapper" minOccurs="0"/>
1898 </xsd:sequence>
1899 </xsd:complexType>
1900 </xsd:element>
1901 </xsd:sequence>
1902 </xsd:choice>
1903 </xsd:sequence>
1904 </xsd:complexType>
1905
1906 <xsd:element name="varDecl" type="varDecl"
1907 substitutionGroup="prologPartTwoItem"/>
1908
1909
1910 <xsd:complexType name="optionDecl">
1911 <xsd:sequence>
1912 <xsd:element name="optionName" type="EQName"/>
1913 <xsd:element name="optionContents" type="xsd:string"/>
1914 </xsd:sequence>
1915 </xsd:complexType>
1916
1917 <xsd:element name="optionDecl" type="optionDecl"
1918 substitutionGroup="prologPartTwoItem"/>
1919
1920
1921 <xsd:complexType name="functionDecl">
1922 <xsd:sequence>
1923 <xsd:element name="annotation" type="annotation"
1924 minOccurs="0" maxOccurs="unbounded"/>
1925 <xsd:element name="functionName" type="EQName"/>
1926 <xsd:element ref="paramList"/>
1927 <xsd:element ref="typeDeclaration" minOccurs="0"/>
1928 <xsd:choice>
1929 <xsd:element name="functionBody" type="exprWrapper"/>
1930 <xsd:element name="externalDefinition" type="emptyContent"/>
1931 </xsd:choice>
1932 </xsd:sequence>
1933 <xsd:attribute name="nondeterministic" use="optional"
1934 type="xsd:boolean" default="false"/>
1935 <xsd:attribute name="private" use="optional"
1936 type="xsd:boolean" default="false"/>
1937 </xsd:complexType>
1938
1939 <xsd:element name="functionDecl" type="functionDecl"
1940 substitutionGroup="prologPartTwoItem"/>
1941
1942
1943 <xsd:complexType name="param">
1944 <xsd:sequence>
1945 <xsd:element name="varName" type="EQName"/>
1946 <xsd:element ref="typeDeclaration" minOccurs="0"/>
1947 </xsd:sequence>
1948 </xsd:complexType>
1949
1950 <xsd:element name="param" type="param"/>
1951
1952
1953 <xsd:complexType name="paramList">
1954 <xsd:sequence>
1955 <xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
1956 </xsd:sequence>
1957 </xsd:complexType>
1958
1959 <xsd:element name="paramList" type="paramList"/>
1960
1961
1962</xsd:schema>
0\ No newline at end of file1963\ No newline at end of file
11964
=== added file 'schemas/complete-pul.xsd'
--- schemas/complete-pul.xsd 1970-01-01 00:00:00 +0000
+++ schemas/complete-pul.xsd 2012-03-01 13:03:21 +0000
@@ -0,0 +1,136 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 ************************************************************************
4 Zorba schema for representing a complete Pending Update List as XML
5 A complete PUL contains the necessary information for reverting changes.
6 ************************************************************************
7--><xs:schema
8 xmlns:xs="http://www.w3.org/2001/XMLSchema"
9 targetNamespace="http://www.zorba-xquery.com/schemas/complete-pul"
10 xmlns:pul="http://www.zorba-xquery.com/schemas/pul"
11 xmlns:cpul="http://www.zorba-xquery.com/schemas/complete-pul"
12 xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
13 elementFormDefault="qualified">
14
15 <xs:import namespace="http://www.zorba-xquery.com/schemas/xdm" schemaLocation="xdm.xsd"/>
16 <xs:import namespace="http://www.zorba-xquery.com/schemas/pul" schemaLocation="pul.xsd"/>
17
18 <!--
19 ****************
20 The root element
21 ****************
22 -->
23 <xs:element name="complete-pending-update-list">
24 <xs:complexType>
25 <xs:choice minOccurs="0" maxOccurs="unbounded">
26 <xs:element name="insertBefore" type="pul:insert-type"/>
27 <xs:element name="insertAfter" type="pul:insert-type"/>
28 <xs:element name="insertInto" type="pul:insert-type"/>
29 <xs:element name="insertIntoAsFirst" type="pul:insert-type"/>
30 <xs:element name="insertIntoAsLast" type="pul:insert-type"/>
31 <xs:element name="insertAttributes" type="pul:insertAttributes-type"/>
32 <xs:element name="complete-delete" type="cpul:complete-delete-type"/>
33 <xs:element name="complete-replaceNode" type="cpul:complete-replaceNode-type"/>
34 <xs:element name="complete-replaceValue" type="cpul:complete-replaceValue-type"/>
35 <xs:element name="complete-replaceElementContent" type="cpul:complete-replaceElementContent-type"/>
36 <xs:element name="complete-rename" type="cpul:complete-rename-type"/>
37 <xs:element name="put" type="pul:put-type"/>
38 <xs:element name="createCollection" type="pul:createCollection-type"/>
39 <xs:element name="insertAfterIntoCollection" type="pul:insertNodesRelative-type"/>
40 <xs:element name="insertBeforeIntoCollection" type="pul:insertNodesRelative-type"/>
41 <xs:element name="insertAsFirstIntoCollection" type="pul:insertNodesAbsolute-type"/>
42 <xs:element name="insertAsLastIntoCollection" type="pul:insertNodesAbsolute-type"/>
43 <xs:element name="insertIntoCollection" type="pul:insertNodes-type"/>
44 <xs:element name="deleteNodesFromCollection" type="pul:deleteNodes-type"/>
45 <xs:element name="createDocument" type="pul:createDocument-type"/>
46 <xs:element name="complete-deleteDocument" type="cpul:complete-deleteDocument-type"/>
47 <xs:element name="complete-deleteCollection" type="cpul:complete-deleteCollection-type"/>
48 <xs:element name="activateIntegrityConstraint" type="pul:activateIntegrityConstraint-type"/>
49 <xs:element name="deActivateIntegrityConstraint" type="pul:deActivateIntegrityConstraint-type"/>
50 <xs:element name="createIndex" type="pul:createIndex-type"/>
51 <xs:element name="deleteIndex" type="pul:deleteIndex-type"/>
52 <xs:element name="refreshIndex" type="pul:refreshIndex-type"/>
53 </xs:choice>
54 </xs:complexType>
55 </xs:element>
56
57 <!--
58 *****************************************************
59 Definition of completed update primitives
60 *****************************************************
61 -->
62 <xs:complexType name="complete-delete-type">
63 <xs:complexContent>
64 <xs:extension base="pul:delete-type">
65 <xs:sequence>
66 <xs:element name="parent" type="xs:anyURI"/>
67 <xs:element name="left-sibling" type="xs:anyURI" minOccurs="0"/>
68 <xs:element name="deleted-node" type="xdm:one-node-no-namespace-type"/>
69 </xs:sequence>
70 </xs:extension>
71 </xs:complexContent>
72 </xs:complexType>
73
74 <xs:complexType name="complete-replaceNode-type">
75 <xs:complexContent>
76 <xs:extension base="pul:replaceNode-type">
77 <xs:sequence>
78 <xs:element name="parent" type="xs:anyURI"/>
79 <xs:element name="left-sibling" type="xs:anyURI" minOccurs="0"/>
80 <xs:element name="replaced-node" type="xdm:one-node-no-namespace-type"/>
81 </xs:sequence>
82 </xs:extension>
83 </xs:complexContent>
84 </xs:complexType>
85
86 <xs:complexType name="complete-replaceValue-type">
87 <xs:complexContent>
88 <xs:extension base="pul:replaceValue-type">
89 <xs:sequence>
90 <xs:element name="old-string-value" type="xs:string"/>
91 </xs:sequence>
92 </xs:extension>
93 </xs:complexContent>
94 </xs:complexType>
95
96 <xs:complexType name="complete-replaceElementContent-type">
97 <xs:complexContent>
98 <xs:extension base="pul:replaceElementContent-type">
99 <xs:sequence>
100 <xs:element name="replaced-nodes" type="xdm:children-sequence-type"/>
101 </xs:sequence>
102 </xs:extension>
103 </xs:complexContent>
104 </xs:complexType>
105
106 <xs:complexType name="complete-rename-type">
107 <xs:complexContent>
108 <xs:extension base="pul:rename-type">
109 <xs:sequence>
110 <xs:element name="oldName" type="xs:QName"/>
111 </xs:sequence>
112 </xs:extension>
113 </xs:complexContent>
114 </xs:complexType>
115
116 <xs:complexType name="complete-deleteCollection-type">
117 <xs:complexContent>
118 <xs:extension base="pul:deleteCollection-type">
119 <xs:sequence>
120 <xs:element name="deleted-nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
121 </xs:sequence>
122 </xs:extension>
123 </xs:complexContent>
124 </xs:complexType>
125
126 <xs:complexType name="complete-deleteDocument-type">
127 <xs:complexContent>
128 <xs:extension base="pul:deleteDocument-type">
129 <xs:sequence>
130 <xs:element name="deleted-node-reference" type="xs:anyURI"/>
131 </xs:sequence>
132 </xs:extension>
133 </xs:complexContent>
134 </xs:complexType>
135
136</xs:schema>
0137
=== added file 'schemas/pul.xsd'
--- schemas/pul.xsd 1970-01-01 00:00:00 +0000
+++ schemas/pul.xsd 2012-03-01 13:03:21 +0000
@@ -0,0 +1,237 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 ************************************************************
4 28msec schema for representing a Pending Update List as XML.
5 ************************************************************
6-->
7<xs:schema
8 xmlns:xs="http://www.w3.org/2001/XMLSchema"
9 targetNamespace="http://www.zorba-xquery.com/schemas/pul"
10 xmlns:pul="http://www.zorba-xquery.com/schemas/pul"
11 xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
12 xmlns:xqx="http://www.w3.org/2005/XQueryX"
13 elementFormDefault="qualified">
14
15 <xs:import namespace="http://www.zorba-xquery.com/schemas/xdm" schemaLocation="xdm.xsd"/>
16 <xs:import namespace="http://www.w3.org/2005/XQueryX" schemaLocation="../../../../org/w3/www/2005/XQueryX.xsd"/>
17
18 <!--
19 ****************
20 The root element
21 ****************
22 -->
23 <xs:element name="pending-update-list">
24 <xs:complexType>
25 <xs:choice minOccurs="0" maxOccurs="unbounded">
26 <xs:element name="insertBefore" type="pul:insert-type"/>
27 <xs:element name="insertAfter" type="pul:insert-type"/>
28 <xs:element name="insertInto" type="pul:insert-type"/>
29 <xs:element name="insertIntoAsFirst" type="pul:insert-type"/>
30 <xs:element name="insertIntoAsLast" type="pul:insert-type"/>
31 <xs:element name="insertAttributes" type="pul:insertAttributes-type"/>
32 <xs:element name="delete" type="pul:delete-type"/>
33 <xs:element name="replaceNode" type="pul:replaceNode-type"/>
34 <xs:element name="replaceValue" type="pul:replaceValue-type"/>
35 <xs:element name="replaceElementContent" type="pul:replaceElementContent-type"/>
36 <xs:element name="rename" type="pul:rename-type"/>
37 <xs:element name="put" type="pul:put-type"/>
38 <xs:element name="createCollection" type="pul:createCollection-type"/>
39 <xs:element name="insertAfterIntoCollection" type="pul:insertNodesRelative-type"/>
40 <xs:element name="insertBeforeIntoCollection" type="pul:insertNodesRelative-type"/>
41 <xs:element name="insertAsFirstIntoCollection" type="pul:insertNodesAbsolute-type"/>
42 <xs:element name="insertAsLastIntoCollection" type="pul:insertNodesAbsolute-type"/>
43 <xs:element name="insertIntoCollection" type="pul:insertNodes-type"/>
44 <xs:element name="deleteNodesFromCollection" type="pul:deleteNodes-type"/>
45 <xs:element name="deleteCollection" type="pul:deleteCollection-type"/>
46 <xs:element name="createDocument" type="pul:createDocument-type"/>
47 <xs:element name="deleteDocument" type="pul:deleteDocument-type"/>
48 <xs:element name="activateIntegrityConstraint" type="pul:activateIntegrityConstraint-type"/>
49 <xs:element name="deActivateIntegrityConstraint" type="pul:deActivateIntegrityConstraint-type"/>
50 <xs:element name="createIndex" type="pul:createIndex-type"/>
51 <xs:element name="deleteIndex" type="pul:deleteIndex-type"/>
52 <xs:element name="refreshIndex" type="pul:refreshIndex-type"/>
53 </xs:choice>
54 </xs:complexType>
55 </xs:element>
56
57 <!--
58 *****************************************************
59 Definition of a PUL and the 11 XQUF update primitives
60 *****************************************************
61 -->
62 <xs:complexType name="insert-type">
63 <xs:sequence>
64 <xs:element name="target" type="xs:anyURI"/>
65 <xs:element name="content" type="xdm:children-sequence-type"/>
66 </xs:sequence>
67 </xs:complexType>
68 <xs:complexType name="insertAttributes-type">
69 <xs:sequence>
70 <xs:element name="target" type="xs:anyURI"/>
71 <xs:element name="content" type="xdm:attributes-sequence-type"/>
72 </xs:sequence>
73 </xs:complexType>
74 <xs:complexType name="delete-type">
75 <xs:sequence>
76 <xs:element name="target" type="xs:anyURI"/>
77 </xs:sequence>
78 </xs:complexType>
79 <!-- Must check upon delivery that:
80 o if target is an attribute node, all nodes in content are attributes.
81 o if target is a text/PI/comment/element node, all nodes in content are text/PI/comment/element nodes.
82 The definition of pul:children-or-attributes-only-type already makes sure that one of these two cases is met.
83 But one still needs to make sure that it is the right one of the two depending on the target.
84 -->
85 <xs:complexType name="replaceNode-type">
86 <xs:sequence>
87 <xs:element name="target" type="xs:anyURI"/>
88 <xs:element name="replacement" type="xdm:children-or-attributes-sequence-type"/>
89 </xs:sequence>
90 </xs:complexType>
91 <xs:complexType name="replaceValue-type">
92 <xs:sequence>
93 <xs:element name="target" type="xs:anyURI"/>
94 <xs:element name="string-value" type="xs:string"/>
95 </xs:sequence>
96 </xs:complexType>
97 <xs:complexType name="replaceElementContent-type">
98 <xs:sequence>
99 <xs:element name="target" type="xs:anyURI"/>
100 <xs:element name="text" type="xdm:zero-or-one-text-node-type"/>
101 </xs:sequence>
102 </xs:complexType>
103 <xs:complexType name="rename-type">
104 <xs:sequence>
105 <xs:element name="target" type="xs:anyURI"/>
106 <xs:element name="newName" type="xs:QName"/>
107 </xs:sequence>
108 </xs:complexType>
109 <xs:complexType name="put-type">
110 <xs:sequence>
111 <xs:element name="node" type="xdm:one-document-or-element-node-type"/>
112 <xs:element name="uri" type="xs:anyURI"/>
113 </xs:sequence>
114 </xs:complexType>
115
116
117<!--
118 ******************************************************
119 Definition of proprietary collection update primitives
120 ******************************************************
121-->
122 <xs:complexType name="createCollection-type">
123 <xs:sequence>
124 <xs:element name="name" type="xs:QName"/>
125 <xs:element name="type" minOccurs="0">
126 <xs:complexType>
127 <xs:sequence>
128 <xs:element ref="xqx:sequenceType"/>
129 </xs:sequence>
130 </xs:complexType>
131 </xs:element>
132 <xs:element name="annotation" type="xqx:annotation" minOccurs="0" maxOccurs="unbounded"/>
133 <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
134 </xs:sequence>
135 </xs:complexType>
136 <xs:complexType name="insertNodesRelative-type">
137 <xs:sequence>
138 <xs:element name="collection" type="xs:QName"/>
139 <xs:element name="target" type="xs:anyURI"/>
140 <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
141 </xs:sequence>
142 </xs:complexType>
143 <xs:complexType name="insertNodesAbsolute-type">
144 <xs:sequence>
145 <xs:element name="collection" type="xs:QName"/>
146 <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
147 </xs:sequence>
148 </xs:complexType>
149 <xs:complexType name="insertNodes-type">
150 <xs:sequence>
151 <xs:element name="collection" type="xs:QName"/>
152 <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
153 </xs:sequence>
154 </xs:complexType>
155 <xs:complexType name="deleteNodes-type">
156 <xs:sequence>
157 <xs:element name="collection" type="xs:QName"/>
158 <xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
159 </xs:sequence>
160 </xs:complexType>
161 <xs:complexType name="deleteCollection-type">
162 <xs:sequence>
163 <xs:element name="collection" type="xs:QName"/>
164 </xs:sequence>
165 </xs:complexType>
166
167 <!--
168 ******************************************************
169 Definition of proprietary document primitives
170 ******************************************************
171-->
172 <xs:complexType name="createDocument-type">
173 <xs:sequence>
174 <xs:element name="uri" type="xs:anyURI"/>
175 <xs:element name="node-reference" type="xs:anyURI"/>
176 </xs:sequence>
177 </xs:complexType>
178 <xs:complexType name="deleteDocument-type">
179 <xs:sequence>
180 <xs:element name="uri" type="xs:anyURI"/>
181 </xs:sequence>
182 </xs:complexType>
183
184 <!--
185 ****************************************************************
186 Definition of proprietary integrity constraint update primitives
187 ****************************************************************
188-->
189 <xs:complexType name="activateIntegrityConstraint-type">
190 <xs:sequence>
191 <xs:element name="identity-constraint-name" type="xs:QName"/>
192 </xs:sequence>
193 </xs:complexType>
194 <xs:complexType name="deActivateIntegrityConstraint-type">
195 <xs:sequence>
196 <xs:element name="identity-constraint-name" type="xs:QName"/>
197 </xs:sequence>
198 </xs:complexType>
199
200<!--
201 *************************************************
202 Definition of proprietary index update primitives
203 *************************************************
204-->
205 <xs:complexType name="createIndex-type">
206 <xs:sequence>
207 <xs:element name="index-name" type="xs:QName"/>
208 <xs:element name="domain-expression">
209 <xs:complexType>
210 <xs:sequence>
211 <xs:element ref="xqx:expr"/>
212 </xs:sequence>
213 </xs:complexType>
214 </xs:element>
215 <xs:element name="key-expressions">
216 <xs:complexType>
217 <xs:sequence>
218 <xs:element ref="xqx:expr" maxOccurs="unbounded"/>
219 </xs:sequence>
220 </xs:complexType>
221 </xs:element>
222 <xs:element name="annotation" type="xqx:annotation" minOccurs="0" maxOccurs="unbounded"/>
223 </xs:sequence>
224 </xs:complexType>
225
226 <xs:complexType name="deleteIndex-type">
227 <xs:sequence>
228 <xs:element name="index-name" type="xs:QName"/>
229 </xs:sequence>
230 </xs:complexType>
231
232 <xs:complexType name="refreshIndex-type">
233 <xs:sequence>
234 <xs:element name="index-name" type="xs:QName"/>
235 </xs:sequence>
236 </xs:complexType>
237</xs:schema>
0238
=== added file 'schemas/xdm.xsd'
--- schemas/xdm.xsd 1970-01-01 00:00:00 +0000
+++ schemas/xdm.xsd 2012-03-01 13:03:21 +0000
@@ -0,0 +1,283 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 ******************************************************
4 28msec schema for representing an XDM instance as XML.
5 ******************************************************
6-->
7<xs:schema
8 xmlns:xs="http://www.w3.org/2001/XMLSchema"
9 targetNamespace="http://www.zorba-xquery.com/schemas/xdm"
10 xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
11 elementFormDefault="qualified">
12
13 <!--
14 ****************
15 The root element
16 ****************
17 -->
18 <xs:element name="sequence-of-items" type="xdm:sequence-of-items-type"/>
19
20 <!--
21 ************************************************
22 Serialization of an atomic item (type specified)
23 ************************************************
24 -->
25 <xs:element name="atomic-value">
26 <xs:complexType>
27 <xs:simpleContent>
28 <xs:extension base="xs:string">
29 <xs:attribute name="type" type="xs:QName"/>
30 </xs:extension>
31 </xs:simpleContent>
32 </xs:complexType>
33 </xs:element>
34
35 <!--
36 **********************************************************************************
37 XDM-to-XML Proprietary serialization: the seven kinds of nodes and their accessors
38 For each node kind, the accessors that are always empty are ignored.
39 **********************************************************************************
40 -->
41 <xs:element name="document">
42 <xs:complexType>
43 <xs:sequence>
44 <!--
45 dm:children($n as node()) as node()*
46
47 The dm:children accessor returns the children of a node as a sequence containing
48 zero or more nodes.
49 -->
50 <xs:element name="children" type="xdm:children-sequence-type" minOccurs="0"/>
51 </xs:sequence>
52 <!--
53 dm:base-uri($n as node()) as xs:anyURI?
54
55 The dm:base-uri accessor returns the base URI of a node as a sequence containing
56 zero or one URI reference. For more information about base URIs, see [XML Base].
57 -->
58 <xs:attribute name="base-uri" type="xs:anyURI"/>
59 <!--
60 dm:document-uri($node as node()) as xs:anyURI?
61
62 The dm:document-uri accessor returns the absolute URI of the resource from which
63 the Document Node was constructed, if the absolute URI is available. If there is
64 no URI available, or if it cannot be made absolute when the Document Node is
65 constructed, or if it is used on a node other than a Document Node, the empty
66 sequence is returned.
67 -->
68 <xs:attribute name="document-uri" type="xs:anyURI"/>
69 <!--
70 dm:reference-uri($node as node()) as xs:anyURI?
71
72 An additional, proprietary accessor reference-uri is used to store Sausalito's
73 UUID references.
74 -->
75 <xs:attribute name="reference-uri" type="xs:anyURI"/>
76 </xs:complexType>
77 </xs:element>
78 <xs:element name="element">
79 <xs:complexType>
80 <xs:sequence>
81 <!--
82 dm:attributes($n as node()) as attribute()*
83
84 The dm:attributes accessor returns the attributes of a node as a sequence
85 containing zero or more Attribute Nodes. The order of Attribute Nodes is
86 stable but implementation dependent.
87 -->
88 <xs:element name="attributes" type="xdm:attributes-sequence-type" minOccurs="0"/>
89 <xs:element name="children" type="xdm:children-sequence-type" minOccurs="0"/>
90 <!--
91 dm:namespace-nodes($n as node()) as node()*
92
93 The dm:namespace-nodes accessor returns the dynamic, in-scope namespaces associated
94 with a node as a sequence containing zero or more Namespace Nodes. The order of Namespace
95 Nodes is stable but implementation dependent.
96 -->
97 <xs:element name="namespace-nodes" type="xdm:namespaces-sequence-type" minOccurs="0"/>
98 </xs:sequence>
99 <!--
100 dm:node-name($n as node()) as xs:QName?
101
102 The dm:node-name accessor returns the name of the node as a sequence of zero or one
103 xs:QNames. Note that the QName value includes an optional prefix as described in 3.3.3
104 QNames and NOTATIONS.
105 -->
106 <xs:attribute name="node-name" type="xs:QName" use="required"/>
107 <!--
108 dm:type-name($n as node()) as xs:QName?
109
110 The dm:type-name accessor returns the name of the schema type of a node as a sequence of
111 zero or one xs:QNames.
112 -->
113 <xs:attribute name="type-name" type="xs:QName" use="required"/>
114 <!--
115 dm:is-id($node as node()) as xs:boolean?
116
117 The dm:is-id accessor returns true if the node is an XML ID. Exactly what constitutes
118 an ID depends in part on how the data model was constructed, see 6.2 Element Nodes
119 and 6.3 Attribute Nodes.
120 -->
121 <xs:attribute name="is-id" type="xs:boolean" default="false"/>
122 <!--
123 dm:is-idrefs($node as node()) as xs:boolean?
124
125 The dm:is-idrefs accessor returns true if the node is an XML IDREF or IDREFS. Exactly
126 what constitutes an IDREF or IDREFS depends in part on how the data model was
127 constructed, see 6.2 Element Nodes and 6.3 Attribute Nodes.
128 -->
129 <xs:attribute name="is-idrefs" type="xs:boolean" default="false"/>
130 <!--
131 dm:nilled($n as node()) as xs:boolean?
132
133 The dm:nilled accessor returns true if the node is "nilled". [Schema Part 1] introduced
134 the nilled mechanism to signal that an element should be accepted as valid when it has
135 no content even when it has a content type which does not require or even necessarily
136 allow empty content.
137 -->
138 <xs:attribute name="nilled" type="xs:boolean" default="false"/>
139 <xs:attribute name="reference-uri" type="xs:anyURI"/>
140 </xs:complexType>
141 </xs:element>
142 <xs:element name="attribute">
143 <xs:complexType>
144 <xs:simpleContent>
145 <xs:extension base="xs:string">
146 <xs:attribute name="node-name" type="xs:QName" use="required"/>
147 <xs:attribute name="type-name" type="xs:QName" use="required"/>
148 <xs:attribute name="is-id" type="xs:boolean" default="false"/>
149 <xs:attribute name="is-idrefs" type="xs:boolean" default="false"/>
150 <xs:attribute name="reference-uri" type="xs:anyURI"/>
151 </xs:extension>
152 </xs:simpleContent>
153 </xs:complexType>
154 </xs:element>
155 <xs:element name="namespace">
156 <xs:complexType>
157 <xs:simpleContent>
158 <xs:extension base="xs:string">
159 <xs:attribute name="node-name" type="xs:QName" use="required"/>
160 <xs:attribute name="reference-uri" type="xs:anyURI"/>
161 </xs:extension>
162 </xs:simpleContent>
163 </xs:complexType>
164 </xs:element>
165 <xs:element name="processing-instruction">
166 <xs:complexType>
167 <xs:simpleContent>
168 <xs:extension base="xs:string">
169 <xs:attribute name="node-name" type="xs:NCName" use="required"/>
170 <xs:attribute name="reference-uri" type="xs:anyURI"/>
171 </xs:extension>
172 </xs:simpleContent>
173 </xs:complexType>
174 </xs:element>
175 <xs:element name="comment">
176 <xs:complexType>
177 <xs:simpleContent>
178 <xs:extension base="xs:string">
179 <xs:attribute name="reference-uri" type="xs:anyURI"/>
180 </xs:extension>
181 </xs:simpleContent>
182 </xs:complexType>
183 </xs:element>
184 <xs:element name="text">
185 <xs:complexType>
186 <xs:simpleContent>
187 <xs:extension base="xs:string">
188 <xs:attribute name="reference-uri" type="xs:anyURI"/>
189 </xs:extension>
190 </xs:simpleContent>
191 </xs:complexType>
192 </xs:element>
193
194 <!--
195 *************************************************************************************
196 Types that are sequences of items (restricted on the kinds of nodes that are allowed)
197 *************************************************************************************
198 -->
199 <xs:complexType name="sequence-of-items-type">
200 <xs:choice minOccurs="0" maxOccurs="unbounded">
201 <xs:element ref="xdm:document"/>
202 <xs:element ref="xdm:element"/>
203 <xs:element ref="xdm:comment"/>
204 <xs:element ref="xdm:text"/>
205 <xs:element ref="xdm:processing-instruction"/>
206 <xs:element ref="xdm:attribute"/>
207 <xs:element ref="xdm:namespace"/>
208 <xs:element ref="xdm:atomic-value"/>
209 </xs:choice>
210 </xs:complexType>
211
212 <xs:complexType name="attributes-sequence-type">
213 <xs:sequence minOccurs="0" maxOccurs="unbounded">
214 <xs:element ref="xdm:attribute"/>
215 </xs:sequence>
216 </xs:complexType>
217 <xs:complexType name="children-sequence-type">
218 <xs:choice minOccurs="0" maxOccurs="unbounded">
219 <xs:element ref="xdm:element"/>
220 <xs:element ref="xdm:comment"/>
221 <xs:element ref="xdm:text"/>
222 <xs:element ref="xdm:processing-instruction"/>
223 </xs:choice>
224 </xs:complexType>
225 <xs:complexType name="namespaces-sequence-type">
226 <xs:sequence>
227 <xs:element ref="xdm:namespace" minOccurs="0" maxOccurs="unbounded"/>
228 </xs:sequence>
229 </xs:complexType>
230
231 <xs:complexType name="children-or-attributes-sequence-type">
232 <xs:choice>
233 <xs:choice minOccurs="0" maxOccurs="unbounded">
234 <xs:element ref="xdm:element"/>
235 <xs:element ref="xdm:comment"/>
236 <xs:element ref="xdm:text"/>
237 <xs:element ref="xdm:processing-instruction"/>
238 </xs:choice>
239 <xs:element ref="xdm:attribute" minOccurs="0" maxOccurs="unbounded"/>
240 </xs:choice>
241 </xs:complexType>
242
243 <xs:complexType name="zero-or-one-text-node-type">
244 <xs:sequence>
245 <xs:element ref="xdm:text" minOccurs="0"/>
246 </xs:sequence>
247 </xs:complexType>
248
249 <xs:complexType name="one-document-or-element-node-type">
250 <xs:choice>
251 <xs:element ref="xdm:document"/>
252 <xs:element ref="xdm:element"/>
253 </xs:choice>
254 </xs:complexType>
255
256 <xs:complexType name="one-document-node-type">
257 <xs:choice>
258 <xs:element ref="xdm:document"/>
259 </xs:choice>
260 </xs:complexType>
261
262 <xs:complexType name="nodes-sequence-no-namespaces-type">
263 <xs:choice minOccurs="0" maxOccurs="unbounded">
264 <xs:element ref="xdm:document"/>
265 <xs:element ref="xdm:element"/>
266 <xs:element ref="xdm:comment"/>
267 <xs:element ref="xdm:text"/>
268 <xs:element ref="xdm:processing-instruction"/>
269 <xs:element ref="xdm:attribute"/>
270 </xs:choice>
271 </xs:complexType>
272
273 <xs:complexType name="one-node-no-namespace-type">
274 <xs:choice>
275 <xs:element ref="xdm:document"/>
276 <xs:element ref="xdm:element"/>
277 <xs:element ref="xdm:comment"/>
278 <xs:element ref="xdm:text"/>
279 <xs:element ref="xdm:processing-instruction"/>
280 <xs:element ref="xdm:attribute"/>
281 </xs:choice>
282 </xs:complexType>
283</xs:schema>
0284
=== added directory 'test/rbkt/ExpQueryResults/zorba/pul-schema'
=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res'
--- test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,14 @@
1<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul">
2 <pul:createCollection xmlns:xqx="http://www.w3.org/2005/XQueryX">
3 <pul:name xmlns:my="http://www.example.com/">my:collection</pul:name>
4 <pul:type>
5 <xqx:sequenceType>
6 <xqx:anyItemType/>
7 <xqx:occurrenceIndicator>*</xqx:occurrenceIndicator>
8 </xqx:sequenceType>
9 </pul:type>
10 <pul:nodes>
11 <xdm:element xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema" node-name="el" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
12 </pul:nodes>
13 </pul:createCollection>
14</pul:pending-update-list>
0\ No newline at end of file15\ No newline at end of file
116
=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res'
--- test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,1 @@
1<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul"/>
02
=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res'
--- test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,8 @@
1<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul">
2 <pul:insertIntoCollection>
3 <pul:collection xmlns:p="http://www.zorba-xquery.com/templates/guestbook/guestbook">p:entries</pul:collection>
4 <pul:nodes>
5 <xdm:element xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema" node-name="el" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
6 </pul:nodes>
7 </pul:insertIntoCollection>
8</pul:pending-update-list>
09
=== added directory 'test/rbkt/ExpQueryResults/zorba/xdm-schema'
=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res'
--- test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,7 @@
1<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2 <xdm:atomic-value type="xs:integer">1</xdm:atomic-value>
3 <xdm:atomic-value type="xs:integer">2</xdm:atomic-value>
4 <xdm:atomic-value type="xs:integer">3</xdm:atomic-value>
5 <xdm:atomic-value type="xs:integer">4</xdm:atomic-value>
6 <xdm:atomic-value type="xs:integer">5</xdm:atomic-value>
7</xdm:sequence-of-items>
08
=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res'
--- test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,1 @@
1<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"/>
02
=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res'
--- test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res 1970-01-01 00:00:00 +0000
+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res 2012-03-01 13:03:21 +0000
@@ -0,0 +1,7 @@
1<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2 <xdm:element node-name="a" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
3 <xdm:element node-name="b" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
4 <xdm:element node-name="c" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
5 <xdm:element node-name="d" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
6 <xdm:element node-name="e" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
7</xdm:sequence-of-items>
08
=== added directory 'test/rbkt/Queries/zorba/pul-schema'
=== added file 'test/rbkt/Queries/zorba/pul-schema/create-collection.xq'
--- test/rbkt/Queries/zorba/pul-schema/create-collection.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/pul-schema/create-collection.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,18 @@
1import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2
3validate strict {
4<pul:pending-update-list>
5 <pul:createCollection xmlns:xqx="http://www.w3.org/2005/XQueryX">
6 <pul:name xmlns:my="http://www.example.com/">my:collection</pul:name>
7 <pul:type>
8 <xqx:sequenceType>
9 <xqx:anyItemType/>
10 <xqx:occurrenceIndicator>*</xqx:occurrenceIndicator>
11 </xqx:sequenceType>
12 </pul:type>
13 <pul:nodes>
14 <xdm:element xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema" node-name="el" type-name="xs:untyped"/>
15 </pul:nodes>
16 </pul:createCollection>
17</pul:pending-update-list>
18}
019
=== added file 'test/rbkt/Queries/zorba/pul-schema/empty-pul.xq'
--- test/rbkt/Queries/zorba/pul-schema/empty-pul.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/pul-schema/empty-pul.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,5 @@
1import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2
3validate strict {
4 <pul:pending-update-list/>
5}
06
=== added file 'test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq'
--- test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,12 @@
1import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2
3validate strict {
4<pul:pending-update-list>
5 <pul:insertIntoCollection>
6 <pul:collection xmlns:p="http://www.zorba-xquery.com/templates/guestbook/guestbook">p:entries</pul:collection>
7 <pul:nodes>
8 <xdm:element xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema" node-name="el" type-name="xs:untyped"/>
9 </pul:nodes>
10 </pul:insertIntoCollection>
11</pul:pending-update-list>
12}
013
=== added directory 'test/rbkt/Queries/zorba/xdm-schema'
=== added file 'test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq'
--- test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,11 @@
1import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2
3validate strict {
4 <xdm:sequence-of-items xmlns:xs="http://www.w3.org/2001/XMLSchema">
5 <xdm:atomic-value type="xs:integer">1</xdm:atomic-value>
6 <xdm:atomic-value type="xs:integer">2</xdm:atomic-value>
7 <xdm:atomic-value type="xs:integer">3</xdm:atomic-value>
8 <xdm:atomic-value type="xs:integer">4</xdm:atomic-value>
9 <xdm:atomic-value type="xs:integer">5</xdm:atomic-value>
10 </xdm:sequence-of-items>
11}
012
=== added file 'test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq'
--- test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,5 @@
1import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2
3validate strict {
4 <xdm:sequence-of-items/>
5}
06
=== added file 'test/rbkt/Queries/zorba/xdm-schema/nodes.xq'
--- test/rbkt/Queries/zorba/xdm-schema/nodes.xq 1970-01-01 00:00:00 +0000
+++ test/rbkt/Queries/zorba/xdm-schema/nodes.xq 2012-03-01 13:03:21 +0000
@@ -0,0 +1,11 @@
1import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2
3validate strict {
4 <xdm:sequence-of-items xmlns:xs="http://www.w3.org/2001/XMLSchema">
5 <xdm:element node-name="a" type-name="xs:untyped"/>
6 <xdm:element node-name="b" type-name="xs:untyped"/>
7 <xdm:element node-name="c" type-name="xs:untyped"/>
8 <xdm:element node-name="d" type-name="xs:untyped"/>
9 <xdm:element node-name="e" type-name="xs:untyped"/>
10 </xdm:sequence-of-items>
11}

Subscribers

People subscribed via source and target branches