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
1=== modified file 'schemas/CMakeLists.txt'
2--- schemas/CMakeLists.txt 2012-02-02 09:56:52 +0000
3+++ schemas/CMakeLists.txt 2012-03-01 13:03:21 +0000
4@@ -19,6 +19,18 @@
5 DECLARE_ZORBA_SCHEMA(URI "http://www.w3.org/2010/xslt-xquery-serialization"
6 FILE xslt-xquery-serialization.xsd)
7
8+# XDM and PUL
9+DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/pul"
10+ FILE pul.xsd)
11+DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/complete-pul"
12+ FILE complete-pul.xsd)
13+DECLARE_ZORBA_SCHEMA(URI "http://www.zorba-xquery.com/schemas/xdm"
14+ FILE xdm.xsd)
15+
16+# XQueryX
17+DECLARE_ZORBA_SCHEMA(URI "http://www.w3.org/2005/XQueryX"
18+FILE XQueryX.xsd)
19+
20 # The following are DTDs, not schemas, but (currently at least) we
21 # only ever load them when an imported schema file references them
22 # (which, in turn, only happens in error cases - see bug 921624). So,
23
24=== added file 'schemas/XQueryX.xsd'
25--- schemas/XQueryX.xsd 1970-01-01 00:00:00 +0000
26+++ schemas/XQueryX.xsd 2012-03-01 13:03:21 +0000
27@@ -0,0 +1,1962 @@
28+<?xml version="1.0"?>
29+<!-- ================================================================================ -->
30+<!-- NOTES TO READERS OF THIS SCHEMA: -->
31+<!-- The default value for both minOccurs and maxOccurs is "1". -->
32+<!-- The XQueryX schema has been designed to provide the ability to extend definitions -->
33+<!-- of top-level elements in extensions such as Full-Text and the Update Facility. -->
34+<!-- The nature of the modification is to define named complex types and redefine -->
35+<!-- those top-level elements in terms of the named complex types. -->
36+<!-- ================================================================================ -->
37+<!-- Changes from Recommendation (edition 1): -->
38+<!-- * Element defs using anon complex types changed to use named types (bug #4924) -->
39+<!-- * In Example 4, replaced xqx:parentheziedExpr with xqx:sequenceExpr (bug #4963) -->
40+<!-- * In XSLT stylesheet, deleted template for xqx:parenthesizedExpr (bug #4963) -->
41+<!-- * Replaced link to grammar applet with correct link (bug #5323) -->
42+<!-- * In XSLT stylesheet, corrected template for xqx:namespaceDeclaration (bug #5343) -->
43+<!-- Changes from Recommendation (edition 2): -->
44+<!-- * Added support for new Windowing clause in FLWOR expression -->
45+<!-- * Added support for new Group By Clause in FLWOR expression -->
46+<!-- * Added support for new Count Clause in FLWOR expression -->
47+<!-- * Added support for keyword "outer" on for expression -->
48+<!-- * Modified structure of FLWOR clause per "simplified FLWOR expressions" -->
49+<!-- * Modified validation syntax per Bugzilla Bug 5472 -->
50+<!-- * Modified function declaration so that external functions can be nondeterminstic -->
51+<!-- * Modified variable declaration so external variables can have an initial value -->
52+<!-- * Added support for new try-catch expression -->
53+<!-- * Added support for new decimal formatting declaration -->
54+<!-- * Added support for encoding in the version declaration -->
55+<!-- * Added support for new context item declaration -->
56+<!-- * Added support for computed namespace constructor -->
57+<!-- * Made changes triggered by Bugzilla Bugs 6309, 6310, and 6311 -->
58+<!-- * Modified errlist syntax per Bugzilla Bug 7053 -->
59+<!-- * Added support for public/private functions -->
60+<!-- * Replaced "outer for" support with support for "allowing empty" -->
61+<!-- * Added support for higher-order functions -->
62+<!-- * Added support for value-based "switch" expression -->
63+<!-- * Use pattern to prohibit "#)" in pragma contents per Bugzilla Bug 2711 -->
64+<!-- * Changed functionItemExpr child element QName to be functionName for consistency -->
65+<!-- * Replaced "public", "private", and "[non]deterministic" with %-annotations -->
66+<!-- * Added EQName to permit "URI-literal":NCNAME as alternative to NCName:NCName -->
67+<!-- * Changed type of atomicType to EQName, so it's really atomicOrUnionType -->
68+<!-- ================================================================================ -->
69+<!-- Errata applied: -->
70+<!-- XQX.E1 - Editorial (Bugzilla Bug 4924) -->
71+<!-- XQX.E7 - Substantive (Bugzilla Bug 2711) -->
72+<!-- ================================================================================ -->
73+<!-- Modifications: -->
74+<!-- 2008-07-30 - Add XQuery 1.1 grouping and windowing support -->
75+<!-- 2008-09-18 - Add XQuery 1.1 count and outer-for support, simplified FLWOR -->
76+<!-- 2008-09-27 - Add validation type, nondeterministic function declarations, -->
77+<!-- initial values for external variables, try-catch expression -->
78+<!-- 2008-11-25 - Add support for number formatting, Snelson's version declaration -->
79+<!-- proposal, context item declaration, computed namespace constructor,-->
80+<!-- fixes for validate expression, and change to allow the count -->
81+<!-- clause to only be an intermediate expression -->
82+<!-- 2009-01-13 - Bugs 6309 and 6310 (fixes to details of certain windowing clauses -->
83+<!-- 2009-03-03 - tumblingWindowClause syntax now matches slidingWindowClause syntax -->
84+<!-- 2009-09-06 - Modified errlist syntax per Bugzilla Bug 7053 -->
85+<!-- 2009-10-09 - Added support for private/public functions -->
86+<!-- Replace "outer for" with "allowing empty" -->
87+<!-- 2009-10-22 - Add support for higher-order functions & switch expression -->
88+<!-- 2010-04-06 - Changed functionItemExpr child QName -> functionName (consistency) -->
89+<!-- 2010-05-10 - Added %-annotation support for varDecl and functionDecl -->
90+<!-- 2010-06-23 - Added support for partial function application -->
91+<!-- 2011-02-02 - Added support for EQNames and atomicOrUnionType -->
92+<!-- 2011-05-04 - Updated structure of catch component of try-catch expression -->
93+<!-- 2011-05-04 - Updated validationexpr, mode/type alternatives, type is EQName -->
94+<!-- ================================================================================ -->
95+
96+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
97+ xmlns="http://www.w3.org/2005/XQueryX"
98+ targetNamespace="http://www.w3.org/2005/XQueryX"
99+ elementFormDefault="qualified" attributeFormDefault="qualified">
100+
101+
102+<!-- A few helper declarations -->
103+ <xsd:complexType name="emptyContent"/>
104+
105+ <xsd:element name="NCName" type="xsd:NCName"/>
106+
107+ <xsd:complexType name="QName">
108+ <xsd:simpleContent>
109+ <xsd:extension base="xsd:NCName">
110+ <xsd:attribute name="prefix" type="xsd:NCName" use="optional"/>
111+ </xsd:extension>
112+ </xsd:simpleContent>
113+ </xsd:complexType>
114+
115+ <xsd:complexType name="EQName">
116+ <xsd:simpleContent>
117+ <xsd:extension base="xsd:NCName">
118+ <xsd:attribute name="prefix" type="xsd:NCName" use="optional"/>
119+ <xsd:attribute name="URI" type="xsd:string" use="optional"/>
120+ </xsd:extension>
121+ </xsd:simpleContent>
122+ </xsd:complexType>
123+
124+<!-- The base expression class -->
125+ <xsd:complexType name="expr"/>
126+
127+ <xsd:element name="expr" type="expr" abstract="true"/>
128+
129+
130+<!-- A list of expressions -->
131+ <xsd:complexType name="exprList">
132+ <xsd:sequence>
133+ <xsd:element ref="expr" minOccurs="0" maxOccurs="unbounded"/>
134+ </xsd:sequence>
135+ </xsd:complexType>
136+
137+<!-- A list of expressions or placeholders -->
138+<!-- 2010-06-23 - Added support for partial function application -->
139+ <xsd:complexType name="exprOrPlaceholderList">
140+ <xsd:sequence>
141+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
142+ <xsd:element ref="expr"/>
143+ <xsd:element name="argumentPlaceholder" type="emptyContent"/>
144+ </xsd:choice>
145+ </xsd:sequence>
146+ </xsd:complexType>
147+
148+<!-- A type to be used by elements that comprise an optional expr -->
149+ <xsd:complexType name="exprWrapperOptional">
150+ <xsd:sequence>
151+ <xsd:element ref="expr" minOccurs="0"/>
152+ </xsd:sequence>
153+ </xsd:complexType>
154+
155+<!-- Simple wrapper class -->
156+ <xsd:complexType name="exprWrapper">
157+ <xsd:sequence>
158+ <xsd:element ref="expr"/>
159+ </xsd:sequence>
160+ </xsd:complexType>
161+
162+<!-- constant expressions. We have 4 different subclasses for this -->
163+ <xsd:complexType name="constantExpr">
164+ <xsd:complexContent>
165+ <xsd:extension base="expr">
166+ <xsd:sequence>
167+ <xsd:element name="value" type="xsd:anyType"/>
168+ </xsd:sequence>
169+ </xsd:extension>
170+ </xsd:complexContent>
171+ </xsd:complexType>
172+
173+ <xsd:element name="constantExpr" type="constantExpr" abstract="true"
174+ substitutionGroup="expr"/>
175+
176+
177+ <xsd:complexType name="integerConstantExpr">
178+ <xsd:complexContent>
179+ <xsd:restriction base="constantExpr">
180+ <xsd:sequence>
181+ <xsd:element name="value" type="xsd:integer"/>
182+ </xsd:sequence>
183+ </xsd:restriction>
184+ </xsd:complexContent>
185+ </xsd:complexType>
186+
187+ <xsd:element name="integerConstantExpr" type="integerConstantExpr"
188+ substitutionGroup="constantExpr"/>
189+
190+
191+ <xsd:complexType name="decimalConstantExpr">
192+ <xsd:complexContent>
193+ <xsd:restriction base="constantExpr">
194+ <xsd:sequence>
195+ <xsd:element name="value" type="xsd:decimal"/>
196+ </xsd:sequence>
197+ </xsd:restriction>
198+ </xsd:complexContent>
199+ </xsd:complexType>
200+
201+ <xsd:element name="decimalConstantExpr" type="decimalConstantExpr"
202+ substitutionGroup="constantExpr"/>
203+
204+
205+ <xsd:complexType name="doubleConstantExpr">
206+ <xsd:complexContent>
207+ <xsd:restriction base="constantExpr">
208+ <xsd:sequence>
209+ <xsd:element name="value" type="xsd:double"/>
210+ </xsd:sequence>
211+ </xsd:restriction>
212+ </xsd:complexContent>
213+ </xsd:complexType>
214+
215+ <xsd:element name="doubleConstantExpr" type="doubleConstantExpr"
216+ substitutionGroup="constantExpr"/>
217+
218+
219+ <xsd:complexType name="stringConstantExpr">
220+ <xsd:complexContent>
221+ <xsd:restriction base="constantExpr">
222+ <xsd:sequence>
223+ <xsd:element name="value" type="xsd:string"/>
224+ </xsd:sequence>
225+ </xsd:restriction>
226+ </xsd:complexContent>
227+ </xsd:complexType>
228+
229+ <xsd:element name="stringConstantExpr" type="stringConstantExpr"
230+ substitutionGroup="constantExpr"/>
231+
232+
233+<!-- Variables -->
234+ <xsd:complexType name="varRef">
235+ <xsd:complexContent>
236+ <xsd:extension base="expr">
237+ <xsd:sequence>
238+ <xsd:element name="name" type="EQName"/>
239+ </xsd:sequence>
240+ </xsd:extension>
241+ </xsd:complexContent>
242+ </xsd:complexType>
243+
244+ <xsd:element name="varRef" type="varRef" substitutionGroup="expr"/>
245+
246+
247+<!-- root and context-item expressions -->
248+<!-- rootExpr deleted per Bugzilla Bug #2523 -->
249+ <xsd:complexType name="contextItemExpr">
250+ <xsd:complexContent>
251+ <xsd:extension base="expr"/>
252+ </xsd:complexContent>
253+ </xsd:complexType>
254+
255+ <xsd:element name="contextItemExpr" type="contextItemExpr"
256+ substitutionGroup="expr"/>
257+
258+
259+<!-- Pragmas and extension expressions -->
260+<!-- 2010-01-01, JM replaced pragmaContents elem def'n with one that has a pattern -->
261+ <xsd:complexType name="pragma">
262+ <xsd:sequence>
263+ <xsd:element name="pragmaName" type="EQName"/>
264+ <xsd:element name="pragmaContents">
265+ <xsd:simpleType>
266+ <xsd:restriction base="xsd:string">
267+ <xsd:pattern value="(([^#]|#+[^\)#])*#*)"/>
268+ </xsd:restriction>
269+ </xsd:simpleType>
270+ </xsd:element>
271+ </xsd:sequence>
272+ </xsd:complexType>
273+
274+ <xsd:element name="pragma" type="pragma"/>
275+
276+
277+ <xsd:complexType name="extensionExpr">
278+ <xsd:complexContent>
279+ <xsd:extension base="expr">
280+ <xsd:sequence>
281+ <xsd:element ref="pragma" maxOccurs="unbounded"/>
282+ <xsd:element name="argExpr" type="exprWrapper" minOccurs="0"/>
283+ </xsd:sequence>
284+ </xsd:extension>
285+ </xsd:complexContent>
286+ </xsd:complexType>
287+
288+ <xsd:element name="extensionExpr" type="extensionExpr"
289+ substitutionGroup="expr"/>
290+
291+
292+<!-- Function call expressions -->
293+<!-- 2010-06-23 - Added support for partial function application -->
294+ <xsd:complexType name="functionCallExpr">
295+ <xsd:complexContent>
296+ <xsd:extension base="expr">
297+ <xsd:sequence>
298+ <xsd:element name="functionName" type="EQName"/>
299+ <xsd:element name="arguments" type="exprOrPlaceholderList" minOccurs="0"/>
300+ </xsd:sequence>
301+ </xsd:extension>
302+ </xsd:complexContent>
303+ </xsd:complexType>
304+
305+ <xsd:element name="functionCallExpr" type="functionCallExpr"
306+ substitutionGroup="expr"/>
307+
308+
309+<!-- Constructor functions -->
310+ <xsd:complexType name="constructorFunctionExpr">
311+ <xsd:complexContent>
312+ <xsd:extension base="expr">
313+ <xsd:sequence>
314+ <xsd:element name="typeName" type="EQName"/>
315+ <xsd:element name="argExpr" type="exprWrapper"/>
316+ </xsd:sequence>
317+ </xsd:extension>
318+ </xsd:complexContent>
319+ </xsd:complexType>
320+
321+ <xsd:element name="constructorFunctionExpr" type="constructorFunctionExpr"
322+ substitutionGroup="expr"/>
323+
324+
325+<!-- Sequence expressions -->
326+ <xsd:complexType name="sequenceExpr">
327+ <xsd:complexContent>
328+ <xsd:extension base="expr">
329+ <xsd:sequence>
330+ <xsd:element ref="expr" minOccurs="0" maxOccurs="unbounded"/>
331+ </xsd:sequence>
332+ </xsd:extension>
333+ </xsd:complexContent>
334+ </xsd:complexType>
335+
336+ <xsd:element name="sequenceExpr" type="sequenceExpr" substitutionGroup="expr"/>
337+
338+
339+ <xsd:complexType name="rangeSequenceExpr">
340+ <xsd:complexContent>
341+ <xsd:extension base="expr">
342+ <xsd:sequence>
343+ <xsd:element name="startExpr" type="exprWrapper"/>
344+ <xsd:element name="endExpr" type="exprWrapper"/>
345+ </xsd:sequence>
346+ </xsd:extension>
347+ </xsd:complexContent>
348+ </xsd:complexType>
349+
350+ <xsd:element name="rangeSequenceExpr" type="rangeSequenceExpr"
351+ substitutionGroup="expr"/>
352+
353+
354+<!-- Builtin operator expressions -->
355+ <xsd:complexType name="operatorExpr">
356+ <xsd:complexContent>
357+ <xsd:extension base="expr"/>
358+ </xsd:complexContent>
359+ </xsd:complexType>
360+
361+
362+ <xsd:complexType name="unaryOperatorExpr">
363+ <xsd:complexContent>
364+ <xsd:extension base="operatorExpr">
365+ <xsd:sequence>
366+ <xsd:element name="operand" type="exprWrapper"/>
367+ </xsd:sequence>
368+ </xsd:extension>
369+ </xsd:complexContent>
370+ </xsd:complexType>
371+
372+
373+ <xsd:complexType name="binaryOperatorExpr">
374+ <xsd:complexContent>
375+ <xsd:extension base="operatorExpr">
376+ <xsd:sequence>
377+ <xsd:element name="firstOperand" type="exprWrapper"/>
378+ <xsd:element name="secondOperand" type="exprWrapper"/>
379+ </xsd:sequence>
380+ </xsd:extension>
381+ </xsd:complexContent>
382+ </xsd:complexType>
383+
384+
385+ <xsd:element name="operatorExpr" type="operatorExpr"
386+ abstract="true" substitutionGroup="expr"/>
387+
388+ <xsd:element name="arithmeticOp" type="operatorExpr"
389+ abstract="true" substitutionGroup="operatorExpr"/>
390+
391+ <xsd:element name="addOp" type="binaryOperatorExpr"
392+ substitutionGroup="arithmeticOp"/>
393+
394+ <xsd:element name="subtractOp" type="binaryOperatorExpr"
395+ substitutionGroup="arithmeticOp"/>
396+
397+ <xsd:element name="multiplyOp" type="binaryOperatorExpr"
398+ substitutionGroup="arithmeticOp"/>
399+
400+ <xsd:element name="divOp" type="binaryOperatorExpr"
401+ substitutionGroup="arithmeticOp"/>
402+
403+ <xsd:element name="idivOp" type="binaryOperatorExpr"
404+ substitutionGroup="arithmeticOp"/>
405+
406+ <xsd:element name="modOp" type="binaryOperatorExpr"
407+ substitutionGroup="arithmeticOp"/>
408+
409+ <xsd:element name="unaryMinusOp" type="unaryOperatorExpr"
410+ substitutionGroup="arithmeticOp"/>
411+
412+ <xsd:element name="unaryPlusOp" type="unaryOperatorExpr"
413+ substitutionGroup="arithmeticOp"/>
414+
415+ <xsd:element name="comparisonOp" type="binaryOperatorExpr" abstract="true"
416+ substitutionGroup="operatorExpr"/>
417+
418+ <xsd:element name="valueComparisonOp" type="binaryOperatorExpr" abstract="true"
419+ substitutionGroup="operatorExpr"/>
420+
421+ <xsd:element name="eqOp" type="binaryOperatorExpr"
422+ substitutionGroup="valueComparisonOp"/>
423+
424+ <xsd:element name="neOp" type="binaryOperatorExpr"
425+ substitutionGroup="valueComparisonOp"/>
426+
427+ <xsd:element name="gtOp" type="binaryOperatorExpr"
428+ substitutionGroup="valueComparisonOp"/>
429+
430+ <xsd:element name="geOp" type="binaryOperatorExpr"
431+ substitutionGroup="valueComparisonOp"/>
432+
433+ <xsd:element name="ltOp" type="binaryOperatorExpr"
434+ substitutionGroup="valueComparisonOp"/>
435+
436+ <xsd:element name="leOp" type="binaryOperatorExpr"
437+ substitutionGroup="valueComparisonOp"/>
438+
439+ <xsd:element name="generalComparisonOp" type="binaryOperatorExpr" abstract="true"
440+ substitutionGroup="operatorExpr"/>
441+
442+ <xsd:element name="equalOp" type="binaryOperatorExpr"
443+ substitutionGroup="generalComparisonOp"/>
444+
445+ <xsd:element name="notEqualOp" type="binaryOperatorExpr"
446+ substitutionGroup="generalComparisonOp"/>
447+
448+ <xsd:element name="lessThanOp" type="binaryOperatorExpr"
449+ substitutionGroup="generalComparisonOp"/>
450+
451+ <xsd:element name="lessThanOrEqualOp" type="binaryOperatorExpr"
452+ substitutionGroup="generalComparisonOp"/>
453+
454+ <xsd:element name="greaterThanOp" type="binaryOperatorExpr"
455+ substitutionGroup="generalComparisonOp"/>
456+
457+ <xsd:element name="greaterThanOrEqualOp" type="binaryOperatorExpr"
458+ substitutionGroup="generalComparisonOp"/>
459+
460+ <xsd:element name="nodeComparisonOp" type="binaryOperatorExpr" abstract="true"
461+ substitutionGroup="operatorExpr"/>
462+
463+ <xsd:element name="isOp" type="binaryOperatorExpr"
464+ substitutionGroup="nodeComparisonOp"/>
465+
466+ <xsd:element name="orderComparisonOp" type="binaryOperatorExpr" abstract="true"
467+ substitutionGroup="operatorExpr"/>
468+
469+ <xsd:element name="nodeBeforeOp" type="binaryOperatorExpr"
470+ substitutionGroup="orderComparisonOp"/>
471+
472+ <xsd:element name="nodeAfterOp" type="binaryOperatorExpr"
473+ substitutionGroup="orderComparisonOp"/>
474+
475+ <xsd:element name="logicalOp" type="binaryOperatorExpr" abstract="true"
476+ substitutionGroup="operatorExpr"/>
477+
478+ <xsd:element name="andOp" type="binaryOperatorExpr"
479+ substitutionGroup="logicalOp"/>
480+
481+ <xsd:element name="orOp" type="binaryOperatorExpr"
482+ substitutionGroup="logicalOp"/>
483+
484+ <xsd:element name="setOp" type="binaryOperatorExpr"
485+ abstract="true" substitutionGroup="operatorExpr"/>
486+
487+ <xsd:element name="unionOp" type="binaryOperatorExpr"
488+ substitutionGroup="setOp"/>
489+
490+ <xsd:element name="intersectOp" type="binaryOperatorExpr"
491+ substitutionGroup="setOp"/>
492+
493+ <xsd:element name="exceptOp" type="binaryOperatorExpr"
494+ substitutionGroup="setOp"/>
495+
496+
497+<!-- Basic typenames -->
498+<!-- By changing the type attribute from QName to EQName, this is now atomicOrUnionType -->
499+<!-- However, for backwards compatibility w/XQueryX 1.0, the name had to stay the same-->
500+ <xsd:element name="atomicType" type="EQName" substitutionGroup="itemType"/>
501+
502+
503+<!-- Used in castable expression and cast expression -->
504+ <xsd:complexType name="singleType">
505+ <xsd:sequence>
506+ <xsd:element ref="atomicType"/>
507+ <xsd:element name="optional" type="emptyContent" minOccurs="0"/>
508+ </xsd:sequence>
509+ </xsd:complexType>
510+
511+ <xsd:element name="singleType" type="singleType"/>
512+
513+
514+<!-- Item type schema types and elements -->
515+ <xsd:element name="itemType" abstract="true"/>
516+
517+
518+ <xsd:complexType name="emptyItemTypeContent"/>
519+
520+ <xsd:element name="anyItemType" type="emptyItemTypeContent"
521+ substitutionGroup="itemType"/>
522+
523+
524+ <xsd:simpleType name="occurrenceIndicator">
525+ <xsd:restriction base="xsd:string">
526+ <xsd:enumeration value="?"/>
527+ <xsd:enumeration value="*"/>
528+ <xsd:enumeration value="+"/>
529+ </xsd:restriction>
530+ </xsd:simpleType>
531+
532+
533+<!-- Sequence type -->
534+ <xsd:complexType name="sequenceType">
535+ <xsd:choice>
536+ <xsd:element name="voidSequenceType" type="emptyContent"/>
537+ <xsd:sequence>
538+ <xsd:element ref="itemType"/>
539+ <xsd:element name="occurrenceIndicator" type="occurrenceIndicator"
540+ minOccurs="0"/>
541+ </xsd:sequence>
542+ </xsd:choice>
543+ </xsd:complexType>
544+
545+ <xsd:element name="sequenceType" type="sequenceType"/>
546+
547+ <xsd:element name="typeDeclaration" type="sequenceType"/>
548+
549+
550+<!-- Represents a "typed" variable (for clause, let clause etc) -->
551+ <xsd:complexType name="typedVariableBinding">
552+ <xsd:sequence>
553+ <xsd:element name="varName" type="EQName"/>
554+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
555+ </xsd:sequence>
556+ </xsd:complexType>
557+
558+ <xsd:element name="typedVariableBinding" type="typedVariableBinding"/>
559+
560+
561+<!-- Represents an untyped variable for the "at" clause in a for clause -->
562+ <xsd:element name="positionalVariableBinding" type="EQName"/>
563+
564+ <xsd:element name="variableBinding" type="EQName"/>
565+
566+
567+<!-- Represents all variable bindings in a for or let clause except typed and -->
568+<!-- positional variable bindings -->
569+ <xsd:element name="forLetClauseItemExtensions" abstract="true"/>
570+
571+
572+<!-- Major syntax productions: FLWOR clause components -->
573+<!-- for clause -->
574+ <xsd:complexType name="forClauseItem">
575+ <xsd:sequence>
576+ <xsd:element ref="typedVariableBinding"/>
577+ <xsd:element name="allowingEmpty" type="emptyContent"
578+ minOccurs="0"/>
579+ <xsd:element ref="positionalVariableBinding" minOccurs="0" maxOccurs="1"/>
580+ <xsd:element ref="forLetClauseItemExtensions" minOccurs="0"
581+ maxOccurs="unbounded"/>
582+ <xsd:element name="forExpr" type="exprWrapper"/>
583+ </xsd:sequence>
584+ </xsd:complexType>
585+
586+ <xsd:element name="forClauseItem" type="forClauseItem"/>
587+
588+
589+ <xsd:complexType name="forClause">
590+ <xsd:sequence>
591+ <xsd:element ref="forClauseItem" minOccurs="1" maxOccurs="unbounded"/>
592+ </xsd:sequence>
593+ </xsd:complexType>
594+
595+ <xsd:element name="forClause" type="forClause"/>
596+
597+
598+<!-- let clause -->
599+ <xsd:complexType name="letClauseItem">
600+ <xsd:sequence>
601+ <xsd:choice>
602+ <xsd:sequence>
603+ <xsd:element ref="typedVariableBinding"/>
604+ <xsd:element ref="forLetClauseItemExtensions"
605+ minOccurs="0" maxOccurs="unbounded"/>
606+ </xsd:sequence>
607+ <xsd:element ref="forLetClauseItemExtensions"
608+ minOccurs="0" maxOccurs="unbounded"/>
609+ </xsd:choice>
610+ <xsd:element name="letExpr" type="exprWrapper"/>
611+ </xsd:sequence>
612+ </xsd:complexType>
613+
614+ <xsd:element name="letClauseItem" type="letClauseItem"/>
615+
616+
617+ <xsd:complexType name="letClause">
618+ <xsd:sequence>
619+ <xsd:element ref="letClauseItem" maxOccurs="unbounded"/>
620+ </xsd:sequence>
621+ </xsd:complexType>
622+
623+ <xsd:element name="letClause" type="letClause"/>
624+
625+
626+<!-- This is the windowClause (part of FLWOR expression) -->
627+<!-- It corresponds to the following XQuery grammar -->
628+<!-- WindowClause ::= "for" (TumblingWindowClause | SlidingWindowClause) -->
629+ <xsd:complexType name="windowClause">
630+ <xsd:choice>
631+ <xsd:element ref="tumblingWindowClause"/>
632+ <xsd:element ref="slidingWindowClause"/>
633+ </xsd:choice>
634+ </xsd:complexType>
635+
636+ <xsd:element name="windowClause" type="windowClause"/>
637+
638+
639+<!-- This is the tumblingWindowClause -->
640+<!-- It corresponds to the following XQuery grammar -->
641+<!-- TumblingWindowClause ::= "tumbling" "window" "$" VarName TypeDeclaration? -->
642+<!-- "in" ExprSingle WindowStartCondition WindowEndCondition? -->
643+ <xsd:complexType name="tumblingWindowClause">
644+ <xsd:sequence>
645+ <xsd:element ref="typedVariableBinding"/>
646+ <xsd:element name="bindingSequence" type="exprWrapper"/>
647+ <xsd:element ref="windowStartCondition"/>
648+ <xsd:element ref="windowEndCondition" minOccurs="0"/>
649+ </xsd:sequence>
650+ </xsd:complexType>
651+
652+ <xsd:element name="tumblingWindowClause" type="tumblingWindowClause"/>
653+
654+
655+<!-- This is the slidingWindowClause -->
656+<!-- It corresponds to the following XQuery grammar -->
657+<!-- SlidingWindowClause ::= "sliding" "window" "$" VarName TypeDeclaration? -->
658+<!-- "in" ExprSingle WindowStartCondition WindowEndCondition -->
659+ <xsd:complexType name="slidingWindowClause">
660+ <xsd:sequence>
661+ <xsd:element ref="typedVariableBinding"/>
662+ <xsd:element name="bindingSequence" type="exprWrapper"/>
663+ <xsd:element ref="windowStartCondition"/>
664+ <xsd:element ref="windowEndCondition"/>
665+ </xsd:sequence>
666+ </xsd:complexType>
667+
668+ <xsd:element name="slidingWindowClause" type="slidingWindowClause"/>
669+
670+
671+<!-- windowStartCondition -->
672+<!-- Corresponds to the following XQuery grammar -->
673+<!-- WindowStartCondition ::= "start" WindowVars "when" ExprSingle -->
674+ <xsd:complexType name="windowStartCondition">
675+ <xsd:sequence>
676+ <xsd:element ref="windowVars" minOccurs="0"/>
677+ <xsd:element name="winStartExpr" type="exprWrapper"/>
678+ </xsd:sequence>
679+ </xsd:complexType>
680+
681+ <xsd:element name="windowStartCondition" type="windowStartCondition"/>
682+
683+
684+<!-- windowEndCondition -->
685+<!-- Corresponds to the following XQuery grammar -->
686+<!-- WindowEndCondition ::= "only"? "end" WindowVars "when" ExprSingle -->
687+ <xsd:complexType name="windowEndCondition">
688+ <xsd:sequence>
689+ <xsd:element ref="windowVars" minOccurs="0"/>
690+ <xsd:element name="winEndExpr" type="exprWrapper"/>
691+ </xsd:sequence>
692+ <xsd:attribute name="onlyEnd" type="xsd:boolean" default="false"/>
693+ </xsd:complexType>
694+
695+ <xsd:element name="windowEndCondition" type="windowEndCondition"/>
696+
697+
698+<!-- windowVars -->
699+<!-- Corresponds to the following XQuery grammar -->
700+<!-- WindowVars ::= ("$" \)? PositionalVar? ("previous" "$" PreviousItem)? -->
701+<!-- ("next" "$" NextItem)? -->
702+ <xsd:complexType name="windowVars">
703+ <xsd:sequence>
704+ <xsd:element name="currentItem" type="EQName" minOccurs="0"/>
705+ <xsd:element ref="positionalVariableBinding" minOccurs="0"/>
706+ <xsd:element name="previousItem" type="EQName" minOccurs="0"/>
707+ <xsd:element name="nextItem" type="EQName" minOccurs="0"/>
708+ </xsd:sequence>
709+ </xsd:complexType>
710+
711+ <xsd:element name="windowVars" type="windowVars"/>
712+
713+
714+<!-- countClause (part of FLWOR expression) -->
715+ <xsd:complexType name="countClause">
716+ <xsd:sequence>
717+ <xsd:element ref="varRef"/>
718+ </xsd:sequence>
719+ </xsd:complexType>
720+
721+ <xsd:element name="countClause" type="countClause"/>
722+
723+
724+<!-- whereClause (part of FLWOR expression) -->
725+ <xsd:element name="whereClause" type="exprWrapper"/>
726+
727+
728+<!-- groupByClause (part of FLWOR expression) -->
729+<!-- Corresponds to the following XQuery syntax -->
730+<!-- GroupByClause ::= "group" "by" GroupingSpecList -->
731+<!-- GroupingSpecList ::= GroupingSpec ("," GroupingSpec)* -->
732+ <xsd:complexType name="groupByClause">
733+ <xsd:sequence maxOccurs="unbounded">
734+ <xsd:element ref="groupingSpec"/>
735+ </xsd:sequence>
736+ </xsd:complexType>
737+
738+ <xsd:element name="groupByClause" type="groupByClause"/>
739+
740+
741+<!-- Corresponds to the following XQuery syntax -->
742+<!-- GroupingSpec ::= "$" VarName ("collation" URILiteral)? -->
743+ <xsd:complexType name="groupingSpec">
744+ <xsd:sequence>
745+ <xsd:element name="varName" type="EQName"/>
746+ <xsd:element name="collation" type="xsd:string" minOccurs="0"/>
747+ </xsd:sequence>
748+ </xsd:complexType>
749+
750+ <xsd:element name="groupingSpec" type="groupingSpec"/>
751+
752+
753+<!-- order by clause -->
754+ <xsd:simpleType name="emptyOrderingMode">
755+ <xsd:restriction base="xsd:string">
756+ <xsd:enumeration value="empty greatest"/>
757+ <xsd:enumeration value="empty least"/>
758+ </xsd:restriction>
759+ </xsd:simpleType>
760+
761+ <xsd:simpleType name="orderingKind">
762+ <xsd:restriction base="xsd:string">
763+ <xsd:enumeration value="ascending"/>
764+ <xsd:enumeration value="descending"/>
765+ </xsd:restriction>
766+ </xsd:simpleType>
767+
768+
769+ <xsd:complexType name="orderModifier">
770+ <xsd:sequence>
771+ <xsd:element name="orderingKind" type="orderingKind" minOccurs="0"/>
772+ <xsd:element name="emptyOrderingMode" type="emptyOrderingMode" minOccurs="0"/>
773+ <xsd:element name="collation" type="xsd:string" minOccurs="0"/>
774+ </xsd:sequence>
775+ </xsd:complexType>
776+
777+ <xsd:element name="orderModifier" type="orderModifier"/>
778+
779+
780+ <xsd:complexType name="orderBySpec">
781+ <xsd:sequence>
782+ <xsd:element name="orderByExpr" type="exprWrapper"/>
783+ <xsd:element ref="orderModifier" minOccurs="0"/>
784+ </xsd:sequence>
785+ </xsd:complexType>
786+
787+ <xsd:element name="orderBySpec" type="orderBySpec"/>
788+
789+
790+ <xsd:complexType name="orderByClause">
791+ <xsd:sequence>
792+ <xsd:element name="stable" type="emptyContent" minOccurs="0"/>
793+ <xsd:element ref="orderBySpec" maxOccurs="unbounded"/>
794+ </xsd:sequence>
795+ </xsd:complexType>
796+
797+ <xsd:element name="orderByClause" type="orderByClause"/>
798+
799+
800+<!-- return clause -->
801+ <xsd:element name="returnClause" type="exprWrapper"/>
802+
803+
804+<!-- This is the XQuery 1.1 flwor expression -->
805+<!-- Corresponds to the following XQuery syntax: -->
806+<!-- 1.1 FLWORExpr ::= (ForClause | LetClause | WindowClause) -->
807+<!-- (ForClause | LetClause | WindowClause | CountClause | -->
808+<!-- WhereClause | GroupByClause | OrderByClause)* -->
809+<!-- ReturnClause -->
810+ <xsd:complexType name="flworExpr">
811+ <xsd:complexContent>
812+ <xsd:extension base="expr">
813+ <xsd:sequence>
814+ <xsd:choice>
815+ <xsd:element ref="forClause"/>
816+ <xsd:element ref="letClause"/>
817+ <xsd:element ref="windowClause"/>
818+ </xsd:choice>
819+ <xsd:sequence>
820+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
821+ <xsd:element ref="forClause"/>
822+ <xsd:element ref="letClause"/>
823+ <xsd:element ref="windowClause"/>
824+ <xsd:element ref="countClause"/>
825+ <xsd:element ref="whereClause"/>
826+ <xsd:element ref="groupByClause"/>
827+ <xsd:element ref="orderByClause"/>
828+ </xsd:choice>
829+ <xsd:element ref="returnClause"/>
830+ </xsd:sequence>
831+ </xsd:sequence>
832+ </xsd:extension>
833+ </xsd:complexContent>
834+ </xsd:complexType>
835+
836+ <xsd:element name="flworExpr" type="flworExpr" substitutionGroup="expr"/>
837+
838+
839+<!-- conditional expressions -->
840+ <xsd:complexType name="ifThenElseExpr">
841+ <xsd:complexContent>
842+ <xsd:extension base="expr">
843+ <xsd:sequence>
844+ <xsd:element name="ifClause" type="exprWrapper"/>
845+ <xsd:element name="thenClause" type="exprWrapper"/>
846+ <xsd:element name="elseClause" type="exprWrapper"/>
847+ </xsd:sequence>
848+ </xsd:extension>
849+ </xsd:complexContent>
850+ </xsd:complexType>
851+
852+ <xsd:element name="ifThenElseExpr" type="ifThenElseExpr"
853+ substitutionGroup="expr"/>
854+
855+
856+<!-- The following clauses describe quantified expressions -->
857+ <xsd:simpleType name="quantifier">
858+ <xsd:restriction base="xsd:NMTOKEN">
859+ <xsd:enumeration value="some"/>
860+ <xsd:enumeration value="every"/>
861+ </xsd:restriction>
862+ </xsd:simpleType>
863+
864+
865+ <xsd:complexType name="quantifiedExprInClause">
866+ <xsd:sequence>
867+ <xsd:element ref="typedVariableBinding"/>
868+ <xsd:element name="sourceExpr" type="exprWrapper"/>
869+ </xsd:sequence>
870+ </xsd:complexType>
871+
872+ <xsd:element name="quantifiedExprInClause" type="quantifiedExprInClause"/>
873+
874+
875+ <xsd:complexType name="quantifiedExpr">
876+ <xsd:complexContent>
877+ <xsd:extension base="expr">
878+ <xsd:sequence>
879+ <xsd:element name="quantifier" type="quantifier"/>
880+ <xsd:element ref="quantifiedExprInClause" maxOccurs="unbounded"/>
881+ <xsd:element name="predicateExpr" type="exprWrapper"/>
882+ </xsd:sequence>
883+ </xsd:extension>
884+ </xsd:complexContent>
885+ </xsd:complexType>
886+
887+ <xsd:element name="quantifiedExpr" type="quantifiedExpr"
888+ substitutionGroup="expr"/>
889+
890+
891+<!-- handle the switch expression -->
892+<!-- Note: no substitutionGroup as we cannot use this anywhere except within switch -->
893+ <xsd:complexType name="switchExprCaseClause">
894+ <xsd:complexContent>
895+ <xsd:extension base="expr">
896+ <xsd:sequence>
897+ <xsd:element name="switchCaseExpr" type="exprWrapper" maxOccurs="unbounded"/>
898+ <xsd:element name="resultExpr" type="exprWrapper"/>
899+ </xsd:sequence>
900+ </xsd:extension>
901+ </xsd:complexContent>
902+ </xsd:complexType>
903+
904+ <xsd:element name="switchExprCaseClause"
905+ type="switchExprCaseClause"/>
906+
907+
908+<!-- Note: no substitutionGroup as we cannot use this anywhere except within switch -->
909+ <xsd:complexType name="switchExprDefaultClause">
910+ <xsd:complexContent>
911+ <xsd:extension base="expr">
912+ <xsd:sequence>
913+ <xsd:element name="resultExpr" type="exprWrapper"/>
914+ </xsd:sequence>
915+ </xsd:extension>
916+ </xsd:complexContent>
917+ </xsd:complexType>
918+
919+ <xsd:element name="switchExprDefaultClause"
920+ type="switchExprDefaultClause"/>
921+
922+
923+ <xsd:complexType name="switchExpr">
924+ <xsd:complexContent>
925+ <xsd:extension base="expr">
926+ <xsd:sequence>
927+ <xsd:element name="argExpr" type="exprWrapper"/>
928+ <xsd:element ref="switchExprCaseClause" maxOccurs="unbounded"/>
929+ <xsd:element ref="switchExprDefaultClause"/>
930+ </xsd:sequence>
931+ </xsd:extension>
932+ </xsd:complexContent>
933+ </xsd:complexType>
934+
935+ <xsd:element name="switchExpr" type="switchExpr"
936+ substitutionGroup="expr"/>
937+
938+
939+<!-- handle the typeswitch expression -->
940+<!-- Note: no substitutionGroup as we cannot use this anywhere except within typeswitch -->
941+ <xsd:complexType name="typeswitchExprCaseClause">
942+ <xsd:complexContent>
943+ <xsd:extension base="expr">
944+ <xsd:sequence>
945+ <xsd:element ref="variableBinding" minOccurs="0"/>
946+ <xsd:element ref="sequenceType"/>
947+ <xsd:element name="resultExpr" type="exprWrapper"/>
948+ </xsd:sequence>
949+ </xsd:extension>
950+ </xsd:complexContent>
951+ </xsd:complexType>
952+
953+ <xsd:element name="typeswitchExprCaseClause"
954+ type="typeswitchExprCaseClause"/>
955+
956+
957+<!-- Note: no substitutionGroup as we cannot use this anywhere except within typeswitch -->
958+ <xsd:complexType name="typeswitchExprDefaultClause">
959+ <xsd:complexContent>
960+ <xsd:extension base="expr">
961+ <xsd:sequence>
962+ <xsd:element ref="variableBinding" minOccurs="0"/>
963+ <xsd:element name="resultExpr" type="exprWrapper"/>
964+ </xsd:sequence>
965+ </xsd:extension>
966+ </xsd:complexContent>
967+ </xsd:complexType>
968+
969+ <xsd:element name="typeswitchExprDefaultClause"
970+ type="typeswitchExprDefaultClause"/>
971+
972+
973+ <xsd:complexType name="typeswitchExpr">
974+ <xsd:complexContent>
975+ <xsd:extension base="expr">
976+ <xsd:sequence>
977+ <xsd:element name="argExpr" type="exprWrapper"/>
978+ <xsd:element ref="typeswitchExprCaseClause" maxOccurs="unbounded"/>
979+ <xsd:element ref="typeswitchExprDefaultClause"/>
980+ </xsd:sequence>
981+ </xsd:extension>
982+ </xsd:complexContent>
983+ </xsd:complexType>
984+
985+ <xsd:element name="typeswitchExpr" type="typeswitchExpr"
986+ substitutionGroup="expr"/>
987+
988+
989+<!-- TryCatchExpression -->
990+<!-- Corresponds to the following XQuery syntax -->
991+<!-- TryCatchExpression ::= TryClause CatchClause+ -->
992+<!-- TryClause ::= "{" TryTargetExpr "}" -->
993+<!-- TryTargetExpr ::= Expr -->
994+ <xsd:complexType name="tryCatchExpr">
995+ <xsd:complexContent>
996+ <xsd:extension base="expr">
997+ <xsd:sequence>
998+ <xsd:element name="tryClause" type="exprWrapper"/>
999+ <xsd:element ref="catchClause" maxOccurs="unbounded"/>
1000+ </xsd:sequence>
1001+ </xsd:extension>
1002+ </xsd:complexContent>
1003+ </xsd:complexType>
1004+
1005+ <xsd:element name="tryCatchExpr" type="tryCatchExpr"
1006+ substitutionGroup="expr"/>
1007+
1008+
1009+<!-- CatchClause (part of the TryCatchExpression) -->
1010+<!-- Corresponds to the following XQuery syntax -->
1011+<!-- CatchClause ::= "catch" CatchErrorList "{" Expr "}" -->
1012+ <xsd:complexType name="catchClause">
1013+ <xsd:sequence>
1014+ <xsd:element ref="catchErrorList"/>
1015+ <xsd:element name="catchExpr" type="exprWrapper"/>
1016+ </xsd:sequence>
1017+ </xsd:complexType>
1018+
1019+ <xsd:element name="catchClause" type="catchClause"/>
1020+
1021+
1022+<!-- CatchErrorList (part of the TryCatchExpression) -->
1023+<!-- Corresponds to the following XQuery syntax -->
1024+<!-- CatchErrorList ::= NameTest ( "|" NameTest )* -->
1025+<!-- (remembering that NameTest is either QName or Wildcard) -->
1026+ <xsd:complexType name="catchErrorList">
1027+ <xsd:sequence maxOccurs="unbounded">
1028+ <xsd:choice>
1029+ <xsd:element ref="nameTest"/>
1030+ <xsd:element ref="Wildcard"/>
1031+ </xsd:choice>
1032+ </xsd:sequence>
1033+ </xsd:complexType>
1034+
1035+ <xsd:element name="catchErrorList" type="catchErrorList"/>
1036+
1037+
1038+<!-- instance-of expressions -->
1039+ <xsd:complexType name="instanceOfExpr">
1040+ <xsd:complexContent>
1041+ <xsd:extension base="expr">
1042+ <xsd:sequence>
1043+ <xsd:element name="argExpr" type="exprWrapper"/>
1044+ <xsd:element ref="sequenceType"/>
1045+ </xsd:sequence>
1046+ </xsd:extension>
1047+ </xsd:complexContent>
1048+ </xsd:complexType>
1049+
1050+ <xsd:element name="instanceOfExpr" type="instanceOfExpr"
1051+ substitutionGroup="expr"/>
1052+
1053+
1054+<!-- treat-as expressions -->
1055+ <xsd:complexType name="treatExpr">
1056+ <xsd:complexContent>
1057+ <xsd:extension base="expr">
1058+ <xsd:sequence>
1059+ <xsd:element name="argExpr" type="exprWrapper"/>
1060+ <xsd:element ref="sequenceType"/>
1061+ </xsd:sequence>
1062+ </xsd:extension>
1063+ </xsd:complexContent>
1064+ </xsd:complexType>
1065+
1066+ <xsd:element name="treatExpr" type="treatExpr"
1067+ substitutionGroup="expr"/>
1068+
1069+
1070+<!-- castable and cast expressions -->
1071+ <xsd:complexType name="castableExpr">
1072+ <xsd:complexContent>
1073+ <xsd:extension base="expr">
1074+ <xsd:sequence>
1075+ <xsd:element name="argExpr" type="exprWrapper"/>
1076+ <xsd:element ref="singleType"/>
1077+ </xsd:sequence>
1078+ </xsd:extension>
1079+ </xsd:complexContent>
1080+ </xsd:complexType>
1081+
1082+ <xsd:element name="castableExpr" type="castableExpr"
1083+ substitutionGroup="expr"/>
1084+
1085+
1086+ <xsd:complexType name="castExpr">
1087+ <xsd:complexContent>
1088+ <xsd:extension base="expr">
1089+ <xsd:sequence>
1090+ <xsd:element name="argExpr" type="exprWrapper"/>
1091+ <xsd:element ref="singleType"/>
1092+ </xsd:sequence>
1093+ </xsd:extension>
1094+ </xsd:complexContent>
1095+ </xsd:complexType>
1096+
1097+ <xsd:element name="castExpr" type="castExpr"
1098+ substitutionGroup="expr"/>
1099+
1100+
1101+<!-- Validate expressions -->
1102+ <xsd:simpleType name="validationMode">
1103+ <xsd:restriction base="xsd:NMTOKEN">
1104+ <xsd:enumeration value="lax"/>
1105+ <xsd:enumeration value="strict"/>
1106+ </xsd:restriction>
1107+ </xsd:simpleType>
1108+
1109+ <xsd:complexType name="validateExpr">
1110+ <xsd:complexContent>
1111+ <xsd:extension base="expr">
1112+ <xsd:sequence>
1113+ <xsd:choice>
1114+ <xsd:element name="validationMode" type="validationMode" minOccurs="0"/>
1115+ <xsd:element name="typeName" type="EQName" minOccurs="0"/>
1116+ </xsd:choice>
1117+ <xsd:element name="argExpr" type="exprWrapper"/>
1118+ </xsd:sequence>
1119+ </xsd:extension>
1120+ </xsd:complexContent>
1121+ </xsd:complexType>
1122+
1123+ <xsd:element name="validateExpr" type="validateExpr"
1124+ substitutionGroup="expr"/>
1125+
1126+
1127+<!-- Direct constructors. Only elementConstructor for now -->
1128+<!-- Note the absence of constructors corresponding to -->
1129+<!-- the directCommentConstructor and the directPIConstructor -->
1130+<!-- productions in the XQuery grammar. This is because they are -->
1131+<!-- trivially identical to the computed variants -->
1132+
1133+<!-- attributeConstructor is no longer a subclass of expr -->
1134+ <xsd:complexType name="attributeConstructor">
1135+ <xsd:sequence>
1136+ <xsd:element name="attributeName" type="QName"/>
1137+ <xsd:choice>
1138+ <xsd:element name="attributeValueExpr" type="exprList"/>
1139+ <xsd:element name="attributeValue" type="xsd:string"/>
1140+ </xsd:choice>
1141+ </xsd:sequence>
1142+ </xsd:complexType>
1143+
1144+ <xsd:complexType name="namespaceDeclaration">
1145+ <xsd:sequence>
1146+ <xsd:element name="prefix" type="xsd:NCName" minOccurs="0"/>
1147+ <xsd:element name="uri" type="xsd:string"/>
1148+ </xsd:sequence>
1149+ </xsd:complexType>
1150+
1151+
1152+<!-- element constructors -->
1153+ <xsd:complexType name="attributeList">
1154+ <xsd:sequence>
1155+ <xsd:choice maxOccurs="unbounded">
1156+ <xsd:element name="attributeConstructor" type="attributeConstructor"/>
1157+ <xsd:element name="namespaceDeclaration" type="namespaceDeclaration"/>
1158+ </xsd:choice>
1159+ </xsd:sequence>
1160+ </xsd:complexType>
1161+
1162+ <xsd:element name="attributeList" type="attributeList"/>
1163+
1164+
1165+ <xsd:element name="elementContent" type="exprList"/>
1166+
1167+
1168+ <xsd:complexType name="elementConstructor">
1169+ <xsd:complexContent>
1170+ <xsd:extension base="expr">
1171+ <xsd:sequence>
1172+ <xsd:element name="tagName" type="QName"/>
1173+ <xsd:element ref="attributeList" minOccurs="0"/>
1174+ <xsd:element ref="elementContent" minOccurs="0"/>
1175+ </xsd:sequence>
1176+ </xsd:extension>
1177+ </xsd:complexContent>
1178+ </xsd:complexType>
1179+
1180+ <xsd:element name="elementConstructor" type="elementConstructor"
1181+ substitutionGroup="expr"/>
1182+
1183+
1184+<!-- computed constructors -->
1185+<!-- computed element constructor -->
1186+ <xsd:complexType name="computedElementConstructor">
1187+ <xsd:complexContent>
1188+ <xsd:extension base="expr">
1189+ <xsd:sequence>
1190+ <xsd:choice>
1191+ <xsd:element name="tagName" type="EQName"/>
1192+ <xsd:element name="tagNameExpr" type="exprWrapper"/>
1193+ </xsd:choice>
1194+ <xsd:element name="contentExpr" type="exprWrapper" minOccurs="0"/>
1195+ </xsd:sequence>
1196+ </xsd:extension>
1197+ </xsd:complexContent>
1198+ </xsd:complexType>
1199+
1200+ <xsd:element name="computedElementConstructor" type="computedElementConstructor"
1201+ substitutionGroup="expr"/>
1202+
1203+
1204+<!-- computed attribute constructor -->
1205+ <xsd:complexType name="computedAttributeConstructor">
1206+ <xsd:complexContent>
1207+ <xsd:extension base="expr">
1208+ <xsd:sequence>
1209+ <xsd:choice>
1210+ <xsd:element name="tagName" type="EQName"/>
1211+ <xsd:element name="tagNameExpr" type="exprWrapper"/>
1212+ </xsd:choice>
1213+ <xsd:element name="valueExpr" type="exprWrapper" minOccurs="0"/>
1214+ </xsd:sequence>
1215+ </xsd:extension>
1216+ </xsd:complexContent>
1217+ </xsd:complexType>
1218+
1219+ <xsd:element name="computedAttributeConstructor" type="computedAttributeConstructor"
1220+ substitutionGroup="expr"/>
1221+
1222+
1223+<!-- computed document constructor -->
1224+ <xsd:complexType name="computedDocumentConstructor">
1225+ <xsd:complexContent>
1226+ <xsd:extension base="expr">
1227+ <xsd:sequence>
1228+ <xsd:element name="argExpr" type="exprWrapper"/>
1229+ </xsd:sequence>
1230+ </xsd:extension>
1231+ </xsd:complexContent>
1232+ </xsd:complexType>
1233+
1234+ <xsd:element name="computedDocumentConstructor" type="computedDocumentConstructor"
1235+ substitutionGroup="expr"/>
1236+
1237+
1238+<!-- computed text constructor -->
1239+ <xsd:complexType name="computedTextConstructor">
1240+ <xsd:complexContent>
1241+ <xsd:extension base="expr">
1242+ <xsd:sequence>
1243+ <xsd:element name="argExpr" type="exprWrapper" minOccurs="0"/>
1244+ </xsd:sequence>
1245+ </xsd:extension>
1246+ </xsd:complexContent>
1247+ </xsd:complexType>
1248+
1249+ <xsd:element name="computedTextConstructor" type="computedTextConstructor"
1250+ substitutionGroup="expr"/>
1251+
1252+
1253+<!-- computed comment constructor -->
1254+ <xsd:complexType name="computedCommentConstructor">
1255+ <xsd:complexContent>
1256+ <xsd:extension base="expr">
1257+ <xsd:sequence>
1258+ <xsd:element name="argExpr" type="exprWrapper"/>
1259+ </xsd:sequence>
1260+ </xsd:extension>
1261+ </xsd:complexContent>
1262+ </xsd:complexType>
1263+
1264+ <xsd:element name="computedCommentConstructor" type="computedCommentConstructor"
1265+ substitutionGroup="expr"/>
1266+
1267+
1268+<!-- computed namespace constructor -->
1269+ <xsd:complexType name="computedNamespaceConstructor">
1270+ <xsd:complexContent>
1271+ <xsd:extension base="expr">
1272+ <xsd:sequence>
1273+ <xsd:choice>
1274+ <xsd:element name="prefix" type="xsd:NCName"/>
1275+ <xsd:element name="prefixExpr" type="exprWrapper"/>
1276+ </xsd:choice>
1277+ <xsd:element name="URIExpr" type="exprWrapper" minOccurs="0"/>
1278+ </xsd:sequence>
1279+ </xsd:extension>
1280+ </xsd:complexContent>
1281+ </xsd:complexType>
1282+
1283+ <xsd:element name="computedNamespaceConstructor" type="computedNamespaceConstructor"
1284+ substitutionGroup="expr"/>
1285+
1286+
1287+<!-- computed processing instruction constructor -->
1288+ <xsd:complexType name="computedPIConstructor">
1289+ <xsd:complexContent>
1290+ <xsd:extension base="expr">
1291+ <xsd:sequence>
1292+ <xsd:choice>
1293+ <xsd:element name="piTarget" type="xsd:NCName"/>
1294+ <xsd:element name="piTargetExpr" type="exprWrapper"/>
1295+ </xsd:choice>
1296+ <xsd:element name="piValueExpr" type="exprWrapper" minOccurs="0"/>
1297+ </xsd:sequence>
1298+ </xsd:extension>
1299+ </xsd:complexContent>
1300+ </xsd:complexType>
1301+
1302+ <xsd:element name="computedPIConstructor" type="computedPIConstructor"
1303+ substitutionGroup="expr"/>
1304+
1305+
1306+<!-- ordered and unordered expressions -->
1307+ <xsd:complexType name="unorderedExpr">
1308+ <xsd:complexContent>
1309+ <xsd:extension base="expr">
1310+ <xsd:sequence>
1311+ <xsd:element name="argExpr" type="exprWrapper"/>
1312+ </xsd:sequence>
1313+ </xsd:extension>
1314+ </xsd:complexContent>
1315+ </xsd:complexType>
1316+
1317+ <xsd:element name="unorderedExpr" type="unorderedExpr" substitutionGroup="expr"/>
1318+
1319+
1320+ <xsd:complexType name="orderedExpr">
1321+ <xsd:complexContent>
1322+ <xsd:extension base="expr">
1323+ <xsd:sequence>
1324+ <xsd:element name="argExpr" type="exprWrapper"/>
1325+ </xsd:sequence>
1326+ </xsd:extension>
1327+ </xsd:complexContent>
1328+ </xsd:complexType>
1329+
1330+ <xsd:element name="orderedExpr" type="orderedExpr" substitutionGroup="expr"/>
1331+
1332+
1333+<!-- function item expressions -->
1334+<!-- literal function item expression -->
1335+<!-- 2010-04-06: Jim changed child element QName to be functionName for consistency -->
1336+ <xsd:complexType name="literalFunctionItemExpr">
1337+ <xsd:complexContent>
1338+ <xsd:extension base="expr">
1339+ <xsd:sequence>
1340+ <xsd:element name="functionName" type="EQName"/>
1341+ <xsd:element name="integerConstantExpr" type="integerConstantExpr"/>
1342+ </xsd:sequence>
1343+ </xsd:extension>
1344+ </xsd:complexContent>
1345+ </xsd:complexType>
1346+
1347+ <xsd:element name="literalFunctionItemExpr" type="literalFunctionItemExpr" substitutionGroup="expr"/>
1348+
1349+
1350+<!-- inline function item expression -->
1351+ <xsd:complexType name="inlineFunctionItemExpr">
1352+ <xsd:complexContent>
1353+ <xsd:extension base="expr">
1354+ <xsd:sequence>
1355+ <xsd:element ref="paramList"/>
1356+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
1357+ <xsd:element name="functionBody" type="exprWrapper"/>
1358+ </xsd:sequence>
1359+ </xsd:extension>
1360+ </xsd:complexContent>
1361+ </xsd:complexType>
1362+
1363+ <xsd:element name="inlineFunctionItemExpr" type="inlineFunctionItemExpr" substitutionGroup="expr"/>
1364+
1365+
1366+<!-- dynamic function invocations -->
1367+<!-- 2010-06-23 - Added support for partial function application -->
1368+ <xsd:complexType name="dynamicFunctionInvocationExpr">
1369+ <xsd:complexContent>
1370+ <xsd:extension base="expr">
1371+ <xsd:sequence>
1372+ <xsd:element name="functionItem">
1373+ <xsd:complexType>
1374+ <xsd:sequence>
1375+ <xsd:group ref="filterExpr"/>
1376+ </xsd:sequence>
1377+ </xsd:complexType>
1378+ </xsd:element>
1379+ <xsd:element name="predicates" type="exprList" minOccurs="0"/>
1380+ <xsd:element name="arguments" type="exprOrPlaceholderList" minOccurs="0"/>
1381+ </xsd:sequence>
1382+ </xsd:extension>
1383+ </xsd:complexContent>
1384+ </xsd:complexType>
1385+
1386+ <xsd:element name="dynamicFunctionInvocationExpr" type="dynamicFunctionInvocationExpr" substitutionGroup="expr"/>
1387+
1388+
1389+<!-- wildcards -->
1390+ <xsd:complexType name="simpleWildcard">
1391+ <xsd:choice>
1392+ <xsd:element name="QName" type="EQName"/>
1393+ <xsd:element name="star" type="emptyContent"/>
1394+ </xsd:choice>
1395+ </xsd:complexType>
1396+
1397+<!-- 2011-06-10: Redesigned to allow "URliteral:*" -->
1398+<!-- Corresponds to the following XQuery syntax: -->
1399+<!-- [44] Wildcard ::= "*" -->
1400+<!-- | (NCName ":" "*") -->
1401+<!-- | ("*" ":" NCName) -->
1402+<!-- | (URILiteral ":" "*") -->
1403+
1404+ <xsd:complexType name="Wildcard">
1405+ <xsd:choice minOccurs="0">
1406+ <xsd:sequence>
1407+ <xsd:element name="star" type="emptyContent"/>
1408+ <xsd:element ref="NCName"/>
1409+ </xsd:sequence>
1410+ <xsd:sequence>
1411+ <xsd:element ref="NCName"/>
1412+ <xsd:element name="star" type="emptyContent"/>
1413+ </xsd:sequence>
1414+ <xsd:sequence>
1415+ <xsd:element name="uri" type="xsd:string"/>
1416+ <xsd:element name="star" type="emptyContent"/>
1417+ </xsd:sequence>
1418+ </xsd:choice>
1419+ </xsd:complexType>
1420+
1421+ <xsd:element name="Wildcard" type="Wildcard"/>
1422+
1423+
1424+<!-- tests (name and/or type) -->
1425+ <xsd:element name="schemaAttributeTest" type="EQName"
1426+ substitutionGroup="kindTest"/>
1427+
1428+
1429+ <xsd:complexType name="attributeTest">
1430+ <xsd:complexContent>
1431+ <xsd:extension base="emptyItemTypeContent">
1432+ <xsd:sequence minOccurs="0">
1433+ <xsd:element name="attributeName" type="simpleWildcard"/>
1434+ <xsd:element name="typeName" type="EQName" minOccurs="0"/>
1435+ </xsd:sequence>
1436+ </xsd:extension>
1437+ </xsd:complexContent>
1438+ </xsd:complexType>
1439+
1440+ <xsd:element name="attributeTest" type="attributeTest"
1441+ substitutionGroup="kindTest"/>
1442+
1443+
1444+ <xsd:element name="anyElementTest" abstract="true"
1445+ substitutionGroup="kindTest"/>
1446+
1447+
1448+ <xsd:element name="schemaElementTest" type="EQName"
1449+ substitutionGroup="anyElementTest"/>
1450+
1451+
1452+ <xsd:complexType name="elementTest">
1453+ <xsd:complexContent>
1454+ <xsd:extension base="emptyItemTypeContent">
1455+ <xsd:sequence minOccurs="0">
1456+ <xsd:element name="elementName" type="simpleWildcard"/>
1457+ <xsd:sequence minOccurs="0">
1458+ <xsd:element name="typeName" type="EQName"/>
1459+ <xsd:element name="nillable" type="emptyContent" minOccurs="0"/>
1460+ </xsd:sequence>
1461+ </xsd:sequence>
1462+ </xsd:extension>
1463+ </xsd:complexContent>
1464+ </xsd:complexType>
1465+
1466+ <xsd:element name="elementTest" type="elementTest"
1467+ substitutionGroup="anyElementTest"/>
1468+
1469+
1470+ <xsd:complexType name="documentTest">
1471+ <xsd:complexContent>
1472+ <xsd:extension base="emptyItemTypeContent">
1473+ <xsd:sequence>
1474+ <xsd:element ref="anyElementTest" minOccurs="0"/>
1475+ </xsd:sequence>
1476+ </xsd:extension>
1477+ </xsd:complexContent>
1478+ </xsd:complexType>
1479+
1480+ <xsd:element name="documentTest" type="documentTest"
1481+ substitutionGroup="kindTest"/>
1482+
1483+
1484+ <xsd:complexType name="piTest">
1485+ <xsd:complexContent>
1486+ <xsd:extension base="emptyItemTypeContent">
1487+ <xsd:sequence>
1488+ <xsd:element name="piTarget" type="xsd:NCName" minOccurs="0"/>
1489+ </xsd:sequence>
1490+ </xsd:extension>
1491+ </xsd:complexContent>
1492+ </xsd:complexType>
1493+
1494+ <xsd:element name="piTest" type="piTest" substitutionGroup="kindTest"/>
1495+
1496+
1497+ <xsd:element name="nameTest" type="EQName"/>
1498+
1499+ <xsd:element name="kindTest" substitutionGroup="itemType"/>
1500+
1501+ <xsd:element name="textTest" type="emptyItemTypeContent"
1502+ substitutionGroup="kindTest"/>
1503+
1504+ <xsd:element name="commentTest" type="emptyItemTypeContent"
1505+ substitutionGroup="kindTest"/>
1506+
1507+ <xsd:element name="namespaceTest" type="emptyItemTypeContent"
1508+ substitutionGroup="kindTest"/>
1509+
1510+ <xsd:element name="anyKindTest" type="emptyItemTypeContent"
1511+ substitutionGroup="kindTest"/>
1512+
1513+
1514+<!-- functionTest variations -->
1515+ <xsd:element name="anyFunctionTest" type="emptyItemTypeContent" substitutionGroup="itemType"/>
1516+
1517+ <xsd:complexType name="typedFunctionTest">
1518+ <xsd:complexContent>
1519+ <xsd:extension base="emptyItemTypeContent">
1520+ <xsd:sequence>
1521+ <xsd:element ref="paramTypeList" minOccurs="0"/>
1522+ <xsd:element ref="sequenceType"/>
1523+ </xsd:sequence>
1524+ </xsd:extension>
1525+ </xsd:complexContent>
1526+ </xsd:complexType>
1527+
1528+ <xsd:element name="typedFunctionTest" type="typedFunctionTest" substitutionGroup="itemType"/>
1529+
1530+
1531+ <xsd:complexType name="paramTypeList">
1532+ <xsd:sequence>
1533+ <xsd:element ref="sequenceType" minOccurs="0" maxOccurs="unbounded"/>
1534+ </xsd:sequence>
1535+ </xsd:complexType>
1536+
1537+ <xsd:element name="paramTypeList" type="paramTypeList"/>
1538+
1539+
1540+ <xsd:complexType name="parenthesizedItemType">
1541+ <xsd:complexContent>
1542+ <xsd:extension base="emptyItemTypeContent">
1543+ <xsd:sequence>
1544+ <xsd:element ref="itemType"/>
1545+ </xsd:sequence>
1546+ </xsd:extension>
1547+ </xsd:complexContent>
1548+ </xsd:complexType>
1549+
1550+ <xsd:element name="parenthesizedItemType" type="parenthesizedItemType" substitutionGroup="itemType"/>
1551+
1552+
1553+<!-- XPath axes -->
1554+ <xsd:simpleType name="xpathAxis">
1555+ <xsd:restriction base="xsd:NMTOKEN">
1556+ <xsd:enumeration value="child"/>
1557+ <xsd:enumeration value="attribute"/>
1558+ <xsd:enumeration value="self"/>
1559+ <xsd:enumeration value="parent"/>
1560+ <xsd:enumeration value="descendant-or-self"/>
1561+ <xsd:enumeration value="descendant"/>
1562+ <xsd:enumeration value="following"/>
1563+ <xsd:enumeration value="following-sibling"/>
1564+ <xsd:enumeration value="ancestor"/>
1565+ <xsd:enumeration value="ancestor-or-self"/>
1566+ <xsd:enumeration value="preceding"/>
1567+ <xsd:enumeration value="preceding-sibling"/>
1568+ </xsd:restriction>
1569+ </xsd:simpleType>
1570+
1571+ <xsd:element name="xpathAxis" type="xpathAxis"/>
1572+
1573+
1574+<!-- filter expressions -->
1575+<!-- added literalFunctionItemExpr, inlineFunctionItemExpr, and -->
1576+<!-- dynamicFunctionInvocation for higher-order functions -->
1577+ <xsd:group name="filterExpr">
1578+ <xsd:choice>
1579+ <xsd:element ref="constantExpr"/>
1580+ <xsd:element ref="varRef"/>
1581+ <xsd:element ref="contextItemExpr"/>
1582+ <xsd:element ref="functionCallExpr"/>
1583+ <xsd:element ref="sequenceExpr"/>
1584+ <xsd:element ref="elementConstructor"/>
1585+ <xsd:element ref="computedElementConstructor"/>
1586+ <xsd:element ref="computedAttributeConstructor"/>
1587+ <xsd:element ref="computedDocumentConstructor"/>
1588+ <xsd:element ref="computedTextConstructor"/>
1589+ <xsd:element ref="computedCommentConstructor"/>
1590+ <xsd:element ref="computedNamespaceConstructor"/>
1591+ <xsd:element ref="computedPIConstructor"/>
1592+ <xsd:element ref="orderedExpr"/>
1593+ <xsd:element ref="unorderedExpr"/>
1594+ <xsd:element ref="literalFunctionItemExpr"/>
1595+ <xsd:element ref="inlineFunctionItemExpr"/>
1596+ <xsd:element ref="dynamicFunctionInvocationExpr"/>
1597+ </xsd:choice>
1598+ </xsd:group>
1599+
1600+
1601+<!-- step expression -->
1602+<!-- removed nameTest and Wildcard outer choices per Bugzilla Bug #2523 -->
1603+<!-- replaced element "predicates" with choice of "predicates" & "dynamicfunctioninv'n" -->
1604+ <xsd:complexType name="stepExpr">
1605+ <xsd:sequence>
1606+ <xsd:choice>
1607+ <xsd:sequence>
1608+ <xsd:element ref="xpathAxis"/>
1609+ <xsd:choice>
1610+ <xsd:element ref="kindTest"/>
1611+ <xsd:element ref="nameTest"/>
1612+ <xsd:element ref="Wildcard"/>
1613+ </xsd:choice>
1614+ </xsd:sequence>
1615+ <xsd:element name="filterExpr">
1616+ <xsd:complexType>
1617+ <xsd:sequence>
1618+ <xsd:group ref="filterExpr"/>
1619+ </xsd:sequence>
1620+ </xsd:complexType>
1621+ </xsd:element>
1622+ </xsd:choice>
1623+ <xsd:element name="predicates" type="exprList" minOccurs="0"/>
1624+ </xsd:sequence>
1625+ </xsd:complexType>
1626+
1627+ <xsd:element name="stepExpr" type="stepExpr"/>
1628+
1629+
1630+<!-- path expression -->
1631+<!-- rewrote pathExpr definition per Bugzilla Bug #2523 -->
1632+ <xsd:complexType name="pathExpr">
1633+ <xsd:complexContent>
1634+ <xsd:extension base="expr">
1635+ <xsd:choice>
1636+ <xsd:sequence>
1637+ <xsd:element name="rootExpr" type="emptyContent"/>
1638+ <xsd:element ref="stepExpr" minOccurs="0" maxOccurs="unbounded"/>
1639+ </xsd:sequence>
1640+ <xsd:element ref="stepExpr" maxOccurs="unbounded"/>
1641+ </xsd:choice>
1642+ </xsd:extension>
1643+ </xsd:complexContent>
1644+ </xsd:complexType>
1645+
1646+ <xsd:element name="pathExpr" type="pathExpr" substitutionGroup="expr"/>
1647+
1648+
1649+<!-- The following constructs deal with the query prolog -->
1650+ <xsd:complexType name="module">
1651+ <xsd:sequence>
1652+ <xsd:element ref="versionDecl" minOccurs="0"/>
1653+ <xsd:choice>
1654+ <xsd:element ref="mainModule"/>
1655+ <xsd:element ref="libraryModule"/>
1656+ </xsd:choice>
1657+ </xsd:sequence>
1658+ </xsd:complexType>
1659+
1660+ <xsd:element name="module" type="module"/>
1661+
1662+
1663+ <xsd:complexType name="mainModule">
1664+ <xsd:sequence>
1665+ <xsd:element ref="prolog" minOccurs="0"/>
1666+ <xsd:element name="queryBody" type="exprWrapper"/>
1667+ </xsd:sequence>
1668+ </xsd:complexType>
1669+
1670+ <xsd:element name="mainModule" type="mainModule"/>
1671+
1672+
1673+ <xsd:complexType name="libraryModule">
1674+ <xsd:sequence>
1675+ <xsd:element ref="moduleDecl"/>
1676+ <xsd:element ref="prolog" minOccurs="0"/>
1677+ </xsd:sequence>
1678+ </xsd:complexType>
1679+
1680+ <xsd:element name="libraryModule" type="libraryModule"/>
1681+
1682+
1683+ <xsd:complexType name="versionDecl">
1684+ <xsd:sequence>
1685+ <xsd:element name="version" type="xsd:string" minOccurs="0"/>
1686+ <xsd:element name="encoding" type="xsd:string" minOccurs="0"/>
1687+ </xsd:sequence>
1688+ </xsd:complexType>
1689+
1690+ <xsd:element name="versionDecl" type="versionDecl"/>
1691+
1692+
1693+ <xsd:complexType name="prolog">
1694+ <xsd:sequence>
1695+ <xsd:element ref="prologPartOneItem" minOccurs="0" maxOccurs="unbounded"/>
1696+ <xsd:element ref="prologPartTwoItem" minOccurs="0" maxOccurs="unbounded"/>
1697+ </xsd:sequence>
1698+ </xsd:complexType>
1699+
1700+ <xsd:element name="prolog" type="prolog"/>
1701+
1702+
1703+ <xsd:element name="prologPartOneItem" abstract="true"/>
1704+
1705+
1706+ <xsd:element name="prologPartTwoItem" abstract="true"/>
1707+
1708+
1709+ <xsd:simpleType name="boundarySpaceDecl">
1710+ <xsd:restriction base="xsd:NMTOKEN">
1711+ <xsd:enumeration value="strip"/>
1712+ <xsd:enumeration value="preserve"/>
1713+ </xsd:restriction>
1714+ </xsd:simpleType>
1715+
1716+ <xsd:element name="boundarySpaceDecl" type="boundarySpaceDecl"
1717+ substitutionGroup="prologPartOneItem"/>
1718+
1719+
1720+ <xsd:element name="defaultCollationDecl" type="xsd:string"
1721+ substitutionGroup="prologPartOneItem"/>
1722+
1723+
1724+ <xsd:element name="baseUriDecl" type="xsd:string"
1725+ substitutionGroup="prologPartOneItem"/>
1726+
1727+
1728+ <xsd:simpleType name="constructionDecl">
1729+ <xsd:restriction base="xsd:NMTOKEN">
1730+ <xsd:enumeration value="strip"/>
1731+ <xsd:enumeration value="preserve"/>
1732+ </xsd:restriction>
1733+ </xsd:simpleType>
1734+
1735+ <xsd:element name="constructionDecl" type="constructionDecl"
1736+ substitutionGroup="prologPartOneItem"/>
1737+
1738+
1739+ <xsd:simpleType name="orderingModeDecl">
1740+ <xsd:restriction base="xsd:NMTOKEN">
1741+ <xsd:enumeration value="ordered"/>
1742+ <xsd:enumeration value="unordered"/>
1743+ </xsd:restriction>
1744+ </xsd:simpleType>
1745+
1746+ <xsd:element name="orderingModeDecl" type="orderingModeDecl"
1747+ substitutionGroup="prologPartOneItem"/>
1748+
1749+
1750+ <xsd:element name="emptyOrderingDecl" type="emptyOrderingMode"
1751+ substitutionGroup="prologPartOneItem"/>
1752+
1753+
1754+ <xsd:complexType name="copyNamespacesDecl">
1755+ <xsd:sequence>
1756+ <xsd:element name="preserveMode">
1757+ <xsd:simpleType>
1758+ <xsd:restriction base="xsd:NMTOKEN">
1759+ <xsd:enumeration value="preserve"/>
1760+ <xsd:enumeration value="no-preserve"/>
1761+ </xsd:restriction>
1762+ </xsd:simpleType>
1763+ </xsd:element>
1764+ <xsd:element name="inheritMode">
1765+ <xsd:simpleType>
1766+ <xsd:restriction base="xsd:NMTOKEN">
1767+ <xsd:enumeration value="inherit"/>
1768+ <xsd:enumeration value="no-inherit"/>
1769+ </xsd:restriction>
1770+ </xsd:simpleType>
1771+ </xsd:element>
1772+ </xsd:sequence>
1773+ </xsd:complexType>
1774+
1775+ <xsd:element name="copyNamespacesDecl" type="copyNamespacesDecl"
1776+ substitutionGroup="prologPartOneItem"/>
1777+
1778+
1779+ <xsd:simpleType name="defaultNamespaceCategory">
1780+ <xsd:restriction base="xsd:NMTOKEN">
1781+ <xsd:enumeration value="function"/>
1782+ <xsd:enumeration value="element"/>
1783+ </xsd:restriction>
1784+ </xsd:simpleType>
1785+
1786+ <xsd:complexType name="defaultNamespaceDecl">
1787+ <xsd:sequence>
1788+ <xsd:element name="defaultNamespaceCategory" type="defaultNamespaceCategory"/>
1789+ <xsd:element name="uri" type="xsd:string"/>
1790+ </xsd:sequence>
1791+ </xsd:complexType>
1792+
1793+ <xsd:element name="defaultNamespaceDecl" type="defaultNamespaceDecl"
1794+ substitutionGroup="prologPartOneItem"/>
1795+
1796+
1797+ <xsd:complexType name="namespaceDeclType">
1798+ <xsd:sequence>
1799+ <xsd:element name="prefix" type="xsd:NCName"/>
1800+ <xsd:element name="uri" type="xsd:string"/>
1801+ </xsd:sequence>
1802+ </xsd:complexType>
1803+
1804+ <xsd:element name="namespaceDecl" type="namespaceDeclType"
1805+ substitutionGroup="prologPartOneItem"/>
1806+
1807+
1808+ <xsd:element name="moduleDecl" type="namespaceDeclType"/>
1809+
1810+
1811+ <xsd:complexType name="decimalFormatDeclType">
1812+ <xsd:sequence>
1813+ <xsd:element name="decimalFormatName" type="EQName" minOccurs="0"/>
1814+ <xsd:element name="decimalFormatParam" minOccurs="0" maxOccurs="unbounded">
1815+ <xsd:complexType>
1816+ <xsd:sequence>
1817+ <xsd:element name="decimalFormatParamName">
1818+ <xsd:simpleType>
1819+ <xsd:restriction base="xsd:NMTOKEN">
1820+ <xsd:enumeration value="decimal-separator"/>
1821+ <xsd:enumeration value="grouping-separator"/>
1822+ <xsd:enumeration value="infinity"/>
1823+ <xsd:enumeration value="minus-sign"/>
1824+ <xsd:enumeration value="NaN"/>
1825+ <xsd:enumeration value="percent"/>
1826+ <xsd:enumeration value="per-mille"/>
1827+ <xsd:enumeration value="zero-digit"/>
1828+ <xsd:enumeration value="digit"/>
1829+ <xsd:enumeration value="pattern-separator"/>
1830+ </xsd:restriction>
1831+ </xsd:simpleType>
1832+ </xsd:element>
1833+ <xsd:element name="decimalFormatParamValue" type="xsd:string"/>
1834+ </xsd:sequence>
1835+ </xsd:complexType>
1836+ </xsd:element>
1837+ </xsd:sequence>
1838+ <xsd:attribute name="default" default="false">
1839+ <xsd:simpleType>
1840+ <xsd:restriction base="xsd:NMTOKEN">
1841+ <xsd:enumeration value="true"/>
1842+ <xsd:enumeration value="false"/>
1843+ </xsd:restriction>
1844+ </xsd:simpleType>
1845+ </xsd:attribute>
1846+ </xsd:complexType>
1847+
1848+ <xsd:element name="decimalFormatDecl" type="decimalFormatDeclType"
1849+ substitutionGroup="prologPartOneItem"/>
1850+
1851+
1852+ <xsd:complexType name="schemaImport">
1853+ <xsd:sequence>
1854+ <xsd:choice minOccurs="0">
1855+ <xsd:element name="namespacePrefix" type="xsd:NCName"/>
1856+ <xsd:element name="defaultElementNamespace" type="emptyContent"/>
1857+ </xsd:choice>
1858+ <xsd:element name="targetNamespace" type="xsd:string"/>
1859+ <xsd:element name="targetLocation" type="xsd:string"
1860+ minOccurs="0" maxOccurs="unbounded"/>
1861+ </xsd:sequence>
1862+ </xsd:complexType>
1863+
1864+ <xsd:element name="schemaImport" type="schemaImport"
1865+ substitutionGroup="prologPartOneItem"/>
1866+
1867+
1868+ <xsd:complexType name="moduleImport">
1869+ <xsd:sequence>
1870+ <xsd:element name="namespacePrefix" type="xsd:NCName" minOccurs="0"/>
1871+ <xsd:element name="targetNamespace" type="xsd:string"/>
1872+ <xsd:element name="targetLocation" type="xsd:string"
1873+ minOccurs="0" maxOccurs="unbounded"/>
1874+ </xsd:sequence>
1875+ </xsd:complexType>
1876+
1877+ <xsd:element name="moduleImport" type="moduleImport"
1878+ substitutionGroup="prologPartOneItem"/>
1879+
1880+
1881+ <xsd:complexType name="contextItemDecl">
1882+ <xsd:sequence>
1883+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
1884+ <xsd:choice>
1885+ <xsd:element name="varValue" type="exprWrapper"/>
1886+ <xsd:sequence>
1887+ <xsd:element name="external">
1888+ <xsd:complexType>
1889+ <xsd:sequence>
1890+ <xsd:element name="varValue" type="exprWrapper" minOccurs="0"/>
1891+ </xsd:sequence>
1892+ </xsd:complexType>
1893+ </xsd:element>
1894+ </xsd:sequence>
1895+ </xsd:choice>
1896+ </xsd:sequence>
1897+ </xsd:complexType>
1898+
1899+ <xsd:element name="contextItemDecl" type="contextItemDecl"
1900+ substitutionGroup="prologPartTwoItem"/>
1901+
1902+
1903+<!-- For %-annotations -->
1904+ <xsd:complexType name="annotation">
1905+ <xsd:sequence>
1906+ <xsd:element name="annotationName" type="EQName"/>
1907+ <xsd:element name="arguments" type="exprList" minOccurs="0"/>
1908+ </xsd:sequence>
1909+ </xsd:complexType>
1910+
1911+
1912+ <xsd:complexType name="varDecl">
1913+ <xsd:sequence>
1914+ <xsd:element name="annotation" type="annotation"
1915+ minOccurs="0" maxOccurs="unbounded"/>
1916+ <xsd:element name="varName" type="EQName"/>
1917+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
1918+ <xsd:choice>
1919+ <xsd:element name="varValue" type="exprWrapper"/>
1920+ <xsd:sequence>
1921+ <xsd:element name="external">
1922+ <xsd:complexType>
1923+ <xsd:sequence>
1924+ <xsd:element name="varValue" type="exprWrapper" minOccurs="0"/>
1925+ </xsd:sequence>
1926+ </xsd:complexType>
1927+ </xsd:element>
1928+ </xsd:sequence>
1929+ </xsd:choice>
1930+ </xsd:sequence>
1931+ </xsd:complexType>
1932+
1933+ <xsd:element name="varDecl" type="varDecl"
1934+ substitutionGroup="prologPartTwoItem"/>
1935+
1936+
1937+ <xsd:complexType name="optionDecl">
1938+ <xsd:sequence>
1939+ <xsd:element name="optionName" type="EQName"/>
1940+ <xsd:element name="optionContents" type="xsd:string"/>
1941+ </xsd:sequence>
1942+ </xsd:complexType>
1943+
1944+ <xsd:element name="optionDecl" type="optionDecl"
1945+ substitutionGroup="prologPartTwoItem"/>
1946+
1947+
1948+ <xsd:complexType name="functionDecl">
1949+ <xsd:sequence>
1950+ <xsd:element name="annotation" type="annotation"
1951+ minOccurs="0" maxOccurs="unbounded"/>
1952+ <xsd:element name="functionName" type="EQName"/>
1953+ <xsd:element ref="paramList"/>
1954+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
1955+ <xsd:choice>
1956+ <xsd:element name="functionBody" type="exprWrapper"/>
1957+ <xsd:element name="externalDefinition" type="emptyContent"/>
1958+ </xsd:choice>
1959+ </xsd:sequence>
1960+ <xsd:attribute name="nondeterministic" use="optional"
1961+ type="xsd:boolean" default="false"/>
1962+ <xsd:attribute name="private" use="optional"
1963+ type="xsd:boolean" default="false"/>
1964+ </xsd:complexType>
1965+
1966+ <xsd:element name="functionDecl" type="functionDecl"
1967+ substitutionGroup="prologPartTwoItem"/>
1968+
1969+
1970+ <xsd:complexType name="param">
1971+ <xsd:sequence>
1972+ <xsd:element name="varName" type="EQName"/>
1973+ <xsd:element ref="typeDeclaration" minOccurs="0"/>
1974+ </xsd:sequence>
1975+ </xsd:complexType>
1976+
1977+ <xsd:element name="param" type="param"/>
1978+
1979+
1980+ <xsd:complexType name="paramList">
1981+ <xsd:sequence>
1982+ <xsd:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
1983+ </xsd:sequence>
1984+ </xsd:complexType>
1985+
1986+ <xsd:element name="paramList" type="paramList"/>
1987+
1988+
1989+</xsd:schema>
1990\ No newline at end of file
1991
1992=== added file 'schemas/complete-pul.xsd'
1993--- schemas/complete-pul.xsd 1970-01-01 00:00:00 +0000
1994+++ schemas/complete-pul.xsd 2012-03-01 13:03:21 +0000
1995@@ -0,0 +1,136 @@
1996+<?xml version="1.0" encoding="UTF-8"?>
1997+<!--
1998+ ************************************************************************
1999+ Zorba schema for representing a complete Pending Update List as XML
2000+ A complete PUL contains the necessary information for reverting changes.
2001+ ************************************************************************
2002+--><xs:schema
2003+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
2004+ targetNamespace="http://www.zorba-xquery.com/schemas/complete-pul"
2005+ xmlns:pul="http://www.zorba-xquery.com/schemas/pul"
2006+ xmlns:cpul="http://www.zorba-xquery.com/schemas/complete-pul"
2007+ xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
2008+ elementFormDefault="qualified">
2009+
2010+ <xs:import namespace="http://www.zorba-xquery.com/schemas/xdm" schemaLocation="xdm.xsd"/>
2011+ <xs:import namespace="http://www.zorba-xquery.com/schemas/pul" schemaLocation="pul.xsd"/>
2012+
2013+ <!--
2014+ ****************
2015+ The root element
2016+ ****************
2017+ -->
2018+ <xs:element name="complete-pending-update-list">
2019+ <xs:complexType>
2020+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2021+ <xs:element name="insertBefore" type="pul:insert-type"/>
2022+ <xs:element name="insertAfter" type="pul:insert-type"/>
2023+ <xs:element name="insertInto" type="pul:insert-type"/>
2024+ <xs:element name="insertIntoAsFirst" type="pul:insert-type"/>
2025+ <xs:element name="insertIntoAsLast" type="pul:insert-type"/>
2026+ <xs:element name="insertAttributes" type="pul:insertAttributes-type"/>
2027+ <xs:element name="complete-delete" type="cpul:complete-delete-type"/>
2028+ <xs:element name="complete-replaceNode" type="cpul:complete-replaceNode-type"/>
2029+ <xs:element name="complete-replaceValue" type="cpul:complete-replaceValue-type"/>
2030+ <xs:element name="complete-replaceElementContent" type="cpul:complete-replaceElementContent-type"/>
2031+ <xs:element name="complete-rename" type="cpul:complete-rename-type"/>
2032+ <xs:element name="put" type="pul:put-type"/>
2033+ <xs:element name="createCollection" type="pul:createCollection-type"/>
2034+ <xs:element name="insertAfterIntoCollection" type="pul:insertNodesRelative-type"/>
2035+ <xs:element name="insertBeforeIntoCollection" type="pul:insertNodesRelative-type"/>
2036+ <xs:element name="insertAsFirstIntoCollection" type="pul:insertNodesAbsolute-type"/>
2037+ <xs:element name="insertAsLastIntoCollection" type="pul:insertNodesAbsolute-type"/>
2038+ <xs:element name="insertIntoCollection" type="pul:insertNodes-type"/>
2039+ <xs:element name="deleteNodesFromCollection" type="pul:deleteNodes-type"/>
2040+ <xs:element name="createDocument" type="pul:createDocument-type"/>
2041+ <xs:element name="complete-deleteDocument" type="cpul:complete-deleteDocument-type"/>
2042+ <xs:element name="complete-deleteCollection" type="cpul:complete-deleteCollection-type"/>
2043+ <xs:element name="activateIntegrityConstraint" type="pul:activateIntegrityConstraint-type"/>
2044+ <xs:element name="deActivateIntegrityConstraint" type="pul:deActivateIntegrityConstraint-type"/>
2045+ <xs:element name="createIndex" type="pul:createIndex-type"/>
2046+ <xs:element name="deleteIndex" type="pul:deleteIndex-type"/>
2047+ <xs:element name="refreshIndex" type="pul:refreshIndex-type"/>
2048+ </xs:choice>
2049+ </xs:complexType>
2050+ </xs:element>
2051+
2052+ <!--
2053+ *****************************************************
2054+ Definition of completed update primitives
2055+ *****************************************************
2056+ -->
2057+ <xs:complexType name="complete-delete-type">
2058+ <xs:complexContent>
2059+ <xs:extension base="pul:delete-type">
2060+ <xs:sequence>
2061+ <xs:element name="parent" type="xs:anyURI"/>
2062+ <xs:element name="left-sibling" type="xs:anyURI" minOccurs="0"/>
2063+ <xs:element name="deleted-node" type="xdm:one-node-no-namespace-type"/>
2064+ </xs:sequence>
2065+ </xs:extension>
2066+ </xs:complexContent>
2067+ </xs:complexType>
2068+
2069+ <xs:complexType name="complete-replaceNode-type">
2070+ <xs:complexContent>
2071+ <xs:extension base="pul:replaceNode-type">
2072+ <xs:sequence>
2073+ <xs:element name="parent" type="xs:anyURI"/>
2074+ <xs:element name="left-sibling" type="xs:anyURI" minOccurs="0"/>
2075+ <xs:element name="replaced-node" type="xdm:one-node-no-namespace-type"/>
2076+ </xs:sequence>
2077+ </xs:extension>
2078+ </xs:complexContent>
2079+ </xs:complexType>
2080+
2081+ <xs:complexType name="complete-replaceValue-type">
2082+ <xs:complexContent>
2083+ <xs:extension base="pul:replaceValue-type">
2084+ <xs:sequence>
2085+ <xs:element name="old-string-value" type="xs:string"/>
2086+ </xs:sequence>
2087+ </xs:extension>
2088+ </xs:complexContent>
2089+ </xs:complexType>
2090+
2091+ <xs:complexType name="complete-replaceElementContent-type">
2092+ <xs:complexContent>
2093+ <xs:extension base="pul:replaceElementContent-type">
2094+ <xs:sequence>
2095+ <xs:element name="replaced-nodes" type="xdm:children-sequence-type"/>
2096+ </xs:sequence>
2097+ </xs:extension>
2098+ </xs:complexContent>
2099+ </xs:complexType>
2100+
2101+ <xs:complexType name="complete-rename-type">
2102+ <xs:complexContent>
2103+ <xs:extension base="pul:rename-type">
2104+ <xs:sequence>
2105+ <xs:element name="oldName" type="xs:QName"/>
2106+ </xs:sequence>
2107+ </xs:extension>
2108+ </xs:complexContent>
2109+ </xs:complexType>
2110+
2111+ <xs:complexType name="complete-deleteCollection-type">
2112+ <xs:complexContent>
2113+ <xs:extension base="pul:deleteCollection-type">
2114+ <xs:sequence>
2115+ <xs:element name="deleted-nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
2116+ </xs:sequence>
2117+ </xs:extension>
2118+ </xs:complexContent>
2119+ </xs:complexType>
2120+
2121+ <xs:complexType name="complete-deleteDocument-type">
2122+ <xs:complexContent>
2123+ <xs:extension base="pul:deleteDocument-type">
2124+ <xs:sequence>
2125+ <xs:element name="deleted-node-reference" type="xs:anyURI"/>
2126+ </xs:sequence>
2127+ </xs:extension>
2128+ </xs:complexContent>
2129+ </xs:complexType>
2130+
2131+</xs:schema>
2132
2133=== added file 'schemas/pul.xsd'
2134--- schemas/pul.xsd 1970-01-01 00:00:00 +0000
2135+++ schemas/pul.xsd 2012-03-01 13:03:21 +0000
2136@@ -0,0 +1,237 @@
2137+<?xml version="1.0" encoding="UTF-8"?>
2138+<!--
2139+ ************************************************************
2140+ 28msec schema for representing a Pending Update List as XML.
2141+ ************************************************************
2142+-->
2143+<xs:schema
2144+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
2145+ targetNamespace="http://www.zorba-xquery.com/schemas/pul"
2146+ xmlns:pul="http://www.zorba-xquery.com/schemas/pul"
2147+ xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
2148+ xmlns:xqx="http://www.w3.org/2005/XQueryX"
2149+ elementFormDefault="qualified">
2150+
2151+ <xs:import namespace="http://www.zorba-xquery.com/schemas/xdm" schemaLocation="xdm.xsd"/>
2152+ <xs:import namespace="http://www.w3.org/2005/XQueryX" schemaLocation="../../../../org/w3/www/2005/XQueryX.xsd"/>
2153+
2154+ <!--
2155+ ****************
2156+ The root element
2157+ ****************
2158+ -->
2159+ <xs:element name="pending-update-list">
2160+ <xs:complexType>
2161+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2162+ <xs:element name="insertBefore" type="pul:insert-type"/>
2163+ <xs:element name="insertAfter" type="pul:insert-type"/>
2164+ <xs:element name="insertInto" type="pul:insert-type"/>
2165+ <xs:element name="insertIntoAsFirst" type="pul:insert-type"/>
2166+ <xs:element name="insertIntoAsLast" type="pul:insert-type"/>
2167+ <xs:element name="insertAttributes" type="pul:insertAttributes-type"/>
2168+ <xs:element name="delete" type="pul:delete-type"/>
2169+ <xs:element name="replaceNode" type="pul:replaceNode-type"/>
2170+ <xs:element name="replaceValue" type="pul:replaceValue-type"/>
2171+ <xs:element name="replaceElementContent" type="pul:replaceElementContent-type"/>
2172+ <xs:element name="rename" type="pul:rename-type"/>
2173+ <xs:element name="put" type="pul:put-type"/>
2174+ <xs:element name="createCollection" type="pul:createCollection-type"/>
2175+ <xs:element name="insertAfterIntoCollection" type="pul:insertNodesRelative-type"/>
2176+ <xs:element name="insertBeforeIntoCollection" type="pul:insertNodesRelative-type"/>
2177+ <xs:element name="insertAsFirstIntoCollection" type="pul:insertNodesAbsolute-type"/>
2178+ <xs:element name="insertAsLastIntoCollection" type="pul:insertNodesAbsolute-type"/>
2179+ <xs:element name="insertIntoCollection" type="pul:insertNodes-type"/>
2180+ <xs:element name="deleteNodesFromCollection" type="pul:deleteNodes-type"/>
2181+ <xs:element name="deleteCollection" type="pul:deleteCollection-type"/>
2182+ <xs:element name="createDocument" type="pul:createDocument-type"/>
2183+ <xs:element name="deleteDocument" type="pul:deleteDocument-type"/>
2184+ <xs:element name="activateIntegrityConstraint" type="pul:activateIntegrityConstraint-type"/>
2185+ <xs:element name="deActivateIntegrityConstraint" type="pul:deActivateIntegrityConstraint-type"/>
2186+ <xs:element name="createIndex" type="pul:createIndex-type"/>
2187+ <xs:element name="deleteIndex" type="pul:deleteIndex-type"/>
2188+ <xs:element name="refreshIndex" type="pul:refreshIndex-type"/>
2189+ </xs:choice>
2190+ </xs:complexType>
2191+ </xs:element>
2192+
2193+ <!--
2194+ *****************************************************
2195+ Definition of a PUL and the 11 XQUF update primitives
2196+ *****************************************************
2197+ -->
2198+ <xs:complexType name="insert-type">
2199+ <xs:sequence>
2200+ <xs:element name="target" type="xs:anyURI"/>
2201+ <xs:element name="content" type="xdm:children-sequence-type"/>
2202+ </xs:sequence>
2203+ </xs:complexType>
2204+ <xs:complexType name="insertAttributes-type">
2205+ <xs:sequence>
2206+ <xs:element name="target" type="xs:anyURI"/>
2207+ <xs:element name="content" type="xdm:attributes-sequence-type"/>
2208+ </xs:sequence>
2209+ </xs:complexType>
2210+ <xs:complexType name="delete-type">
2211+ <xs:sequence>
2212+ <xs:element name="target" type="xs:anyURI"/>
2213+ </xs:sequence>
2214+ </xs:complexType>
2215+ <!-- Must check upon delivery that:
2216+ o if target is an attribute node, all nodes in content are attributes.
2217+ o if target is a text/PI/comment/element node, all nodes in content are text/PI/comment/element nodes.
2218+ The definition of pul:children-or-attributes-only-type already makes sure that one of these two cases is met.
2219+ But one still needs to make sure that it is the right one of the two depending on the target.
2220+ -->
2221+ <xs:complexType name="replaceNode-type">
2222+ <xs:sequence>
2223+ <xs:element name="target" type="xs:anyURI"/>
2224+ <xs:element name="replacement" type="xdm:children-or-attributes-sequence-type"/>
2225+ </xs:sequence>
2226+ </xs:complexType>
2227+ <xs:complexType name="replaceValue-type">
2228+ <xs:sequence>
2229+ <xs:element name="target" type="xs:anyURI"/>
2230+ <xs:element name="string-value" type="xs:string"/>
2231+ </xs:sequence>
2232+ </xs:complexType>
2233+ <xs:complexType name="replaceElementContent-type">
2234+ <xs:sequence>
2235+ <xs:element name="target" type="xs:anyURI"/>
2236+ <xs:element name="text" type="xdm:zero-or-one-text-node-type"/>
2237+ </xs:sequence>
2238+ </xs:complexType>
2239+ <xs:complexType name="rename-type">
2240+ <xs:sequence>
2241+ <xs:element name="target" type="xs:anyURI"/>
2242+ <xs:element name="newName" type="xs:QName"/>
2243+ </xs:sequence>
2244+ </xs:complexType>
2245+ <xs:complexType name="put-type">
2246+ <xs:sequence>
2247+ <xs:element name="node" type="xdm:one-document-or-element-node-type"/>
2248+ <xs:element name="uri" type="xs:anyURI"/>
2249+ </xs:sequence>
2250+ </xs:complexType>
2251+
2252+
2253+<!--
2254+ ******************************************************
2255+ Definition of proprietary collection update primitives
2256+ ******************************************************
2257+-->
2258+ <xs:complexType name="createCollection-type">
2259+ <xs:sequence>
2260+ <xs:element name="name" type="xs:QName"/>
2261+ <xs:element name="type" minOccurs="0">
2262+ <xs:complexType>
2263+ <xs:sequence>
2264+ <xs:element ref="xqx:sequenceType"/>
2265+ </xs:sequence>
2266+ </xs:complexType>
2267+ </xs:element>
2268+ <xs:element name="annotation" type="xqx:annotation" minOccurs="0" maxOccurs="unbounded"/>
2269+ <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
2270+ </xs:sequence>
2271+ </xs:complexType>
2272+ <xs:complexType name="insertNodesRelative-type">
2273+ <xs:sequence>
2274+ <xs:element name="collection" type="xs:QName"/>
2275+ <xs:element name="target" type="xs:anyURI"/>
2276+ <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
2277+ </xs:sequence>
2278+ </xs:complexType>
2279+ <xs:complexType name="insertNodesAbsolute-type">
2280+ <xs:sequence>
2281+ <xs:element name="collection" type="xs:QName"/>
2282+ <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
2283+ </xs:sequence>
2284+ </xs:complexType>
2285+ <xs:complexType name="insertNodes-type">
2286+ <xs:sequence>
2287+ <xs:element name="collection" type="xs:QName"/>
2288+ <xs:element name="nodes" type="xdm:nodes-sequence-no-namespaces-type"/>
2289+ </xs:sequence>
2290+ </xs:complexType>
2291+ <xs:complexType name="deleteNodes-type">
2292+ <xs:sequence>
2293+ <xs:element name="collection" type="xs:QName"/>
2294+ <xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
2295+ </xs:sequence>
2296+ </xs:complexType>
2297+ <xs:complexType name="deleteCollection-type">
2298+ <xs:sequence>
2299+ <xs:element name="collection" type="xs:QName"/>
2300+ </xs:sequence>
2301+ </xs:complexType>
2302+
2303+ <!--
2304+ ******************************************************
2305+ Definition of proprietary document primitives
2306+ ******************************************************
2307+-->
2308+ <xs:complexType name="createDocument-type">
2309+ <xs:sequence>
2310+ <xs:element name="uri" type="xs:anyURI"/>
2311+ <xs:element name="node-reference" type="xs:anyURI"/>
2312+ </xs:sequence>
2313+ </xs:complexType>
2314+ <xs:complexType name="deleteDocument-type">
2315+ <xs:sequence>
2316+ <xs:element name="uri" type="xs:anyURI"/>
2317+ </xs:sequence>
2318+ </xs:complexType>
2319+
2320+ <!--
2321+ ****************************************************************
2322+ Definition of proprietary integrity constraint update primitives
2323+ ****************************************************************
2324+-->
2325+ <xs:complexType name="activateIntegrityConstraint-type">
2326+ <xs:sequence>
2327+ <xs:element name="identity-constraint-name" type="xs:QName"/>
2328+ </xs:sequence>
2329+ </xs:complexType>
2330+ <xs:complexType name="deActivateIntegrityConstraint-type">
2331+ <xs:sequence>
2332+ <xs:element name="identity-constraint-name" type="xs:QName"/>
2333+ </xs:sequence>
2334+ </xs:complexType>
2335+
2336+<!--
2337+ *************************************************
2338+ Definition of proprietary index update primitives
2339+ *************************************************
2340+-->
2341+ <xs:complexType name="createIndex-type">
2342+ <xs:sequence>
2343+ <xs:element name="index-name" type="xs:QName"/>
2344+ <xs:element name="domain-expression">
2345+ <xs:complexType>
2346+ <xs:sequence>
2347+ <xs:element ref="xqx:expr"/>
2348+ </xs:sequence>
2349+ </xs:complexType>
2350+ </xs:element>
2351+ <xs:element name="key-expressions">
2352+ <xs:complexType>
2353+ <xs:sequence>
2354+ <xs:element ref="xqx:expr" maxOccurs="unbounded"/>
2355+ </xs:sequence>
2356+ </xs:complexType>
2357+ </xs:element>
2358+ <xs:element name="annotation" type="xqx:annotation" minOccurs="0" maxOccurs="unbounded"/>
2359+ </xs:sequence>
2360+ </xs:complexType>
2361+
2362+ <xs:complexType name="deleteIndex-type">
2363+ <xs:sequence>
2364+ <xs:element name="index-name" type="xs:QName"/>
2365+ </xs:sequence>
2366+ </xs:complexType>
2367+
2368+ <xs:complexType name="refreshIndex-type">
2369+ <xs:sequence>
2370+ <xs:element name="index-name" type="xs:QName"/>
2371+ </xs:sequence>
2372+ </xs:complexType>
2373+</xs:schema>
2374
2375=== added file 'schemas/xdm.xsd'
2376--- schemas/xdm.xsd 1970-01-01 00:00:00 +0000
2377+++ schemas/xdm.xsd 2012-03-01 13:03:21 +0000
2378@@ -0,0 +1,283 @@
2379+<?xml version="1.0" encoding="UTF-8"?>
2380+<!--
2381+ ******************************************************
2382+ 28msec schema for representing an XDM instance as XML.
2383+ ******************************************************
2384+-->
2385+<xs:schema
2386+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
2387+ targetNamespace="http://www.zorba-xquery.com/schemas/xdm"
2388+ xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"
2389+ elementFormDefault="qualified">
2390+
2391+ <!--
2392+ ****************
2393+ The root element
2394+ ****************
2395+ -->
2396+ <xs:element name="sequence-of-items" type="xdm:sequence-of-items-type"/>
2397+
2398+ <!--
2399+ ************************************************
2400+ Serialization of an atomic item (type specified)
2401+ ************************************************
2402+ -->
2403+ <xs:element name="atomic-value">
2404+ <xs:complexType>
2405+ <xs:simpleContent>
2406+ <xs:extension base="xs:string">
2407+ <xs:attribute name="type" type="xs:QName"/>
2408+ </xs:extension>
2409+ </xs:simpleContent>
2410+ </xs:complexType>
2411+ </xs:element>
2412+
2413+ <!--
2414+ **********************************************************************************
2415+ XDM-to-XML Proprietary serialization: the seven kinds of nodes and their accessors
2416+ For each node kind, the accessors that are always empty are ignored.
2417+ **********************************************************************************
2418+ -->
2419+ <xs:element name="document">
2420+ <xs:complexType>
2421+ <xs:sequence>
2422+ <!--
2423+ dm:children($n as node()) as node()*
2424+
2425+ The dm:children accessor returns the children of a node as a sequence containing
2426+ zero or more nodes.
2427+ -->
2428+ <xs:element name="children" type="xdm:children-sequence-type" minOccurs="0"/>
2429+ </xs:sequence>
2430+ <!--
2431+ dm:base-uri($n as node()) as xs:anyURI?
2432+
2433+ The dm:base-uri accessor returns the base URI of a node as a sequence containing
2434+ zero or one URI reference. For more information about base URIs, see [XML Base].
2435+ -->
2436+ <xs:attribute name="base-uri" type="xs:anyURI"/>
2437+ <!--
2438+ dm:document-uri($node as node()) as xs:anyURI?
2439+
2440+ The dm:document-uri accessor returns the absolute URI of the resource from which
2441+ the Document Node was constructed, if the absolute URI is available. If there is
2442+ no URI available, or if it cannot be made absolute when the Document Node is
2443+ constructed, or if it is used on a node other than a Document Node, the empty
2444+ sequence is returned.
2445+ -->
2446+ <xs:attribute name="document-uri" type="xs:anyURI"/>
2447+ <!--
2448+ dm:reference-uri($node as node()) as xs:anyURI?
2449+
2450+ An additional, proprietary accessor reference-uri is used to store Sausalito's
2451+ UUID references.
2452+ -->
2453+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2454+ </xs:complexType>
2455+ </xs:element>
2456+ <xs:element name="element">
2457+ <xs:complexType>
2458+ <xs:sequence>
2459+ <!--
2460+ dm:attributes($n as node()) as attribute()*
2461+
2462+ The dm:attributes accessor returns the attributes of a node as a sequence
2463+ containing zero or more Attribute Nodes. The order of Attribute Nodes is
2464+ stable but implementation dependent.
2465+ -->
2466+ <xs:element name="attributes" type="xdm:attributes-sequence-type" minOccurs="0"/>
2467+ <xs:element name="children" type="xdm:children-sequence-type" minOccurs="0"/>
2468+ <!--
2469+ dm:namespace-nodes($n as node()) as node()*
2470+
2471+ The dm:namespace-nodes accessor returns the dynamic, in-scope namespaces associated
2472+ with a node as a sequence containing zero or more Namespace Nodes. The order of Namespace
2473+ Nodes is stable but implementation dependent.
2474+ -->
2475+ <xs:element name="namespace-nodes" type="xdm:namespaces-sequence-type" minOccurs="0"/>
2476+ </xs:sequence>
2477+ <!--
2478+ dm:node-name($n as node()) as xs:QName?
2479+
2480+ The dm:node-name accessor returns the name of the node as a sequence of zero or one
2481+ xs:QNames. Note that the QName value includes an optional prefix as described in 3.3.3
2482+ QNames and NOTATIONS.
2483+ -->
2484+ <xs:attribute name="node-name" type="xs:QName" use="required"/>
2485+ <!--
2486+ dm:type-name($n as node()) as xs:QName?
2487+
2488+ The dm:type-name accessor returns the name of the schema type of a node as a sequence of
2489+ zero or one xs:QNames.
2490+ -->
2491+ <xs:attribute name="type-name" type="xs:QName" use="required"/>
2492+ <!--
2493+ dm:is-id($node as node()) as xs:boolean?
2494+
2495+ The dm:is-id accessor returns true if the node is an XML ID. Exactly what constitutes
2496+ an ID depends in part on how the data model was constructed, see 6.2 Element Nodes
2497+ and 6.3 Attribute Nodes.
2498+ -->
2499+ <xs:attribute name="is-id" type="xs:boolean" default="false"/>
2500+ <!--
2501+ dm:is-idrefs($node as node()) as xs:boolean?
2502+
2503+ The dm:is-idrefs accessor returns true if the node is an XML IDREF or IDREFS. Exactly
2504+ what constitutes an IDREF or IDREFS depends in part on how the data model was
2505+ constructed, see 6.2 Element Nodes and 6.3 Attribute Nodes.
2506+ -->
2507+ <xs:attribute name="is-idrefs" type="xs:boolean" default="false"/>
2508+ <!--
2509+ dm:nilled($n as node()) as xs:boolean?
2510+
2511+ The dm:nilled accessor returns true if the node is "nilled". [Schema Part 1] introduced
2512+ the nilled mechanism to signal that an element should be accepted as valid when it has
2513+ no content even when it has a content type which does not require or even necessarily
2514+ allow empty content.
2515+ -->
2516+ <xs:attribute name="nilled" type="xs:boolean" default="false"/>
2517+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2518+ </xs:complexType>
2519+ </xs:element>
2520+ <xs:element name="attribute">
2521+ <xs:complexType>
2522+ <xs:simpleContent>
2523+ <xs:extension base="xs:string">
2524+ <xs:attribute name="node-name" type="xs:QName" use="required"/>
2525+ <xs:attribute name="type-name" type="xs:QName" use="required"/>
2526+ <xs:attribute name="is-id" type="xs:boolean" default="false"/>
2527+ <xs:attribute name="is-idrefs" type="xs:boolean" default="false"/>
2528+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2529+ </xs:extension>
2530+ </xs:simpleContent>
2531+ </xs:complexType>
2532+ </xs:element>
2533+ <xs:element name="namespace">
2534+ <xs:complexType>
2535+ <xs:simpleContent>
2536+ <xs:extension base="xs:string">
2537+ <xs:attribute name="node-name" type="xs:QName" use="required"/>
2538+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2539+ </xs:extension>
2540+ </xs:simpleContent>
2541+ </xs:complexType>
2542+ </xs:element>
2543+ <xs:element name="processing-instruction">
2544+ <xs:complexType>
2545+ <xs:simpleContent>
2546+ <xs:extension base="xs:string">
2547+ <xs:attribute name="node-name" type="xs:NCName" use="required"/>
2548+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2549+ </xs:extension>
2550+ </xs:simpleContent>
2551+ </xs:complexType>
2552+ </xs:element>
2553+ <xs:element name="comment">
2554+ <xs:complexType>
2555+ <xs:simpleContent>
2556+ <xs:extension base="xs:string">
2557+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2558+ </xs:extension>
2559+ </xs:simpleContent>
2560+ </xs:complexType>
2561+ </xs:element>
2562+ <xs:element name="text">
2563+ <xs:complexType>
2564+ <xs:simpleContent>
2565+ <xs:extension base="xs:string">
2566+ <xs:attribute name="reference-uri" type="xs:anyURI"/>
2567+ </xs:extension>
2568+ </xs:simpleContent>
2569+ </xs:complexType>
2570+ </xs:element>
2571+
2572+ <!--
2573+ *************************************************************************************
2574+ Types that are sequences of items (restricted on the kinds of nodes that are allowed)
2575+ *************************************************************************************
2576+ -->
2577+ <xs:complexType name="sequence-of-items-type">
2578+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2579+ <xs:element ref="xdm:document"/>
2580+ <xs:element ref="xdm:element"/>
2581+ <xs:element ref="xdm:comment"/>
2582+ <xs:element ref="xdm:text"/>
2583+ <xs:element ref="xdm:processing-instruction"/>
2584+ <xs:element ref="xdm:attribute"/>
2585+ <xs:element ref="xdm:namespace"/>
2586+ <xs:element ref="xdm:atomic-value"/>
2587+ </xs:choice>
2588+ </xs:complexType>
2589+
2590+ <xs:complexType name="attributes-sequence-type">
2591+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
2592+ <xs:element ref="xdm:attribute"/>
2593+ </xs:sequence>
2594+ </xs:complexType>
2595+ <xs:complexType name="children-sequence-type">
2596+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2597+ <xs:element ref="xdm:element"/>
2598+ <xs:element ref="xdm:comment"/>
2599+ <xs:element ref="xdm:text"/>
2600+ <xs:element ref="xdm:processing-instruction"/>
2601+ </xs:choice>
2602+ </xs:complexType>
2603+ <xs:complexType name="namespaces-sequence-type">
2604+ <xs:sequence>
2605+ <xs:element ref="xdm:namespace" minOccurs="0" maxOccurs="unbounded"/>
2606+ </xs:sequence>
2607+ </xs:complexType>
2608+
2609+ <xs:complexType name="children-or-attributes-sequence-type">
2610+ <xs:choice>
2611+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2612+ <xs:element ref="xdm:element"/>
2613+ <xs:element ref="xdm:comment"/>
2614+ <xs:element ref="xdm:text"/>
2615+ <xs:element ref="xdm:processing-instruction"/>
2616+ </xs:choice>
2617+ <xs:element ref="xdm:attribute" minOccurs="0" maxOccurs="unbounded"/>
2618+ </xs:choice>
2619+ </xs:complexType>
2620+
2621+ <xs:complexType name="zero-or-one-text-node-type">
2622+ <xs:sequence>
2623+ <xs:element ref="xdm:text" minOccurs="0"/>
2624+ </xs:sequence>
2625+ </xs:complexType>
2626+
2627+ <xs:complexType name="one-document-or-element-node-type">
2628+ <xs:choice>
2629+ <xs:element ref="xdm:document"/>
2630+ <xs:element ref="xdm:element"/>
2631+ </xs:choice>
2632+ </xs:complexType>
2633+
2634+ <xs:complexType name="one-document-node-type">
2635+ <xs:choice>
2636+ <xs:element ref="xdm:document"/>
2637+ </xs:choice>
2638+ </xs:complexType>
2639+
2640+ <xs:complexType name="nodes-sequence-no-namespaces-type">
2641+ <xs:choice minOccurs="0" maxOccurs="unbounded">
2642+ <xs:element ref="xdm:document"/>
2643+ <xs:element ref="xdm:element"/>
2644+ <xs:element ref="xdm:comment"/>
2645+ <xs:element ref="xdm:text"/>
2646+ <xs:element ref="xdm:processing-instruction"/>
2647+ <xs:element ref="xdm:attribute"/>
2648+ </xs:choice>
2649+ </xs:complexType>
2650+
2651+ <xs:complexType name="one-node-no-namespace-type">
2652+ <xs:choice>
2653+ <xs:element ref="xdm:document"/>
2654+ <xs:element ref="xdm:element"/>
2655+ <xs:element ref="xdm:comment"/>
2656+ <xs:element ref="xdm:text"/>
2657+ <xs:element ref="xdm:processing-instruction"/>
2658+ <xs:element ref="xdm:attribute"/>
2659+ </xs:choice>
2660+ </xs:complexType>
2661+</xs:schema>
2662
2663=== added directory 'test/rbkt/ExpQueryResults/zorba/pul-schema'
2664=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res'
2665--- test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res 1970-01-01 00:00:00 +0000
2666+++ test/rbkt/ExpQueryResults/zorba/pul-schema/create-collection.xml.res 2012-03-01 13:03:21 +0000
2667@@ -0,0 +1,14 @@
2668+<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul">
2669+ <pul:createCollection xmlns:xqx="http://www.w3.org/2005/XQueryX">
2670+ <pul:name xmlns:my="http://www.example.com/">my:collection</pul:name>
2671+ <pul:type>
2672+ <xqx:sequenceType>
2673+ <xqx:anyItemType/>
2674+ <xqx:occurrenceIndicator>*</xqx:occurrenceIndicator>
2675+ </xqx:sequenceType>
2676+ </pul:type>
2677+ <pul:nodes>
2678+ <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"/>
2679+ </pul:nodes>
2680+ </pul:createCollection>
2681+</pul:pending-update-list>
2682\ No newline at end of file
2683
2684=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res'
2685--- test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res 1970-01-01 00:00:00 +0000
2686+++ test/rbkt/ExpQueryResults/zorba/pul-schema/empty-pul.xml.res 2012-03-01 13:03:21 +0000
2687@@ -0,0 +1,1 @@
2688+<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul"/>
2689
2690=== added file 'test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res'
2691--- test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res 1970-01-01 00:00:00 +0000
2692+++ test/rbkt/ExpQueryResults/zorba/pul-schema/insert-into-collection.xml.res 2012-03-01 13:03:21 +0000
2693@@ -0,0 +1,8 @@
2694+<pul:pending-update-list xmlns:pul="http://www.zorba-xquery.com/schemas/pul">
2695+ <pul:insertIntoCollection>
2696+ <pul:collection xmlns:p="http://www.zorba-xquery.com/templates/guestbook/guestbook">p:entries</pul:collection>
2697+ <pul:nodes>
2698+ <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"/>
2699+ </pul:nodes>
2700+ </pul:insertIntoCollection>
2701+</pul:pending-update-list>
2702
2703=== added directory 'test/rbkt/ExpQueryResults/zorba/xdm-schema'
2704=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res'
2705--- test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res 1970-01-01 00:00:00 +0000
2706+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/1-to-5.xml.res 2012-03-01 13:03:21 +0000
2707@@ -0,0 +1,7 @@
2708+<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2709+ <xdm:atomic-value type="xs:integer">1</xdm:atomic-value>
2710+ <xdm:atomic-value type="xs:integer">2</xdm:atomic-value>
2711+ <xdm:atomic-value type="xs:integer">3</xdm:atomic-value>
2712+ <xdm:atomic-value type="xs:integer">4</xdm:atomic-value>
2713+ <xdm:atomic-value type="xs:integer">5</xdm:atomic-value>
2714+</xdm:sequence-of-items>
2715
2716=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res'
2717--- test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res 1970-01-01 00:00:00 +0000
2718+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/empty-sequence.xml.res 2012-03-01 13:03:21 +0000
2719@@ -0,0 +1,1 @@
2720+<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm"/>
2721
2722=== added file 'test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res'
2723--- test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res 1970-01-01 00:00:00 +0000
2724+++ test/rbkt/ExpQueryResults/zorba/xdm-schema/nodes.xml.res 2012-03-01 13:03:21 +0000
2725@@ -0,0 +1,7 @@
2726+<xdm:sequence-of-items xmlns:xdm="http://www.zorba-xquery.com/schemas/xdm" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2727+ <xdm:element node-name="a" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
2728+ <xdm:element node-name="b" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
2729+ <xdm:element node-name="c" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
2730+ <xdm:element node-name="d" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
2731+ <xdm:element node-name="e" type-name="xs:untyped" is-id="false" is-idrefs="false" nilled="false"/>
2732+</xdm:sequence-of-items>
2733
2734=== added directory 'test/rbkt/Queries/zorba/pul-schema'
2735=== added file 'test/rbkt/Queries/zorba/pul-schema/create-collection.xq'
2736--- test/rbkt/Queries/zorba/pul-schema/create-collection.xq 1970-01-01 00:00:00 +0000
2737+++ test/rbkt/Queries/zorba/pul-schema/create-collection.xq 2012-03-01 13:03:21 +0000
2738@@ -0,0 +1,18 @@
2739+import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2740+
2741+validate strict {
2742+<pul:pending-update-list>
2743+ <pul:createCollection xmlns:xqx="http://www.w3.org/2005/XQueryX">
2744+ <pul:name xmlns:my="http://www.example.com/">my:collection</pul:name>
2745+ <pul:type>
2746+ <xqx:sequenceType>
2747+ <xqx:anyItemType/>
2748+ <xqx:occurrenceIndicator>*</xqx:occurrenceIndicator>
2749+ </xqx:sequenceType>
2750+ </pul:type>
2751+ <pul:nodes>
2752+ <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"/>
2753+ </pul:nodes>
2754+ </pul:createCollection>
2755+</pul:pending-update-list>
2756+}
2757
2758=== added file 'test/rbkt/Queries/zorba/pul-schema/empty-pul.xq'
2759--- test/rbkt/Queries/zorba/pul-schema/empty-pul.xq 1970-01-01 00:00:00 +0000
2760+++ test/rbkt/Queries/zorba/pul-schema/empty-pul.xq 2012-03-01 13:03:21 +0000
2761@@ -0,0 +1,5 @@
2762+import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2763+
2764+validate strict {
2765+ <pul:pending-update-list/>
2766+}
2767
2768=== added file 'test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq'
2769--- test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq 1970-01-01 00:00:00 +0000
2770+++ test/rbkt/Queries/zorba/pul-schema/insert-into-collection.xq 2012-03-01 13:03:21 +0000
2771@@ -0,0 +1,12 @@
2772+import schema namespace pul = "http://www.zorba-xquery.com/schemas/pul";
2773+
2774+validate strict {
2775+<pul:pending-update-list>
2776+ <pul:insertIntoCollection>
2777+ <pul:collection xmlns:p="http://www.zorba-xquery.com/templates/guestbook/guestbook">p:entries</pul:collection>
2778+ <pul:nodes>
2779+ <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"/>
2780+ </pul:nodes>
2781+ </pul:insertIntoCollection>
2782+</pul:pending-update-list>
2783+}
2784
2785=== added directory 'test/rbkt/Queries/zorba/xdm-schema'
2786=== added file 'test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq'
2787--- test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq 1970-01-01 00:00:00 +0000
2788+++ test/rbkt/Queries/zorba/xdm-schema/1-to-5.xq 2012-03-01 13:03:21 +0000
2789@@ -0,0 +1,11 @@
2790+import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2791+
2792+validate strict {
2793+ <xdm:sequence-of-items xmlns:xs="http://www.w3.org/2001/XMLSchema">
2794+ <xdm:atomic-value type="xs:integer">1</xdm:atomic-value>
2795+ <xdm:atomic-value type="xs:integer">2</xdm:atomic-value>
2796+ <xdm:atomic-value type="xs:integer">3</xdm:atomic-value>
2797+ <xdm:atomic-value type="xs:integer">4</xdm:atomic-value>
2798+ <xdm:atomic-value type="xs:integer">5</xdm:atomic-value>
2799+ </xdm:sequence-of-items>
2800+}
2801
2802=== added file 'test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq'
2803--- test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq 1970-01-01 00:00:00 +0000
2804+++ test/rbkt/Queries/zorba/xdm-schema/empty-sequence.xq 2012-03-01 13:03:21 +0000
2805@@ -0,0 +1,5 @@
2806+import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2807+
2808+validate strict {
2809+ <xdm:sequence-of-items/>
2810+}
2811
2812=== added file 'test/rbkt/Queries/zorba/xdm-schema/nodes.xq'
2813--- test/rbkt/Queries/zorba/xdm-schema/nodes.xq 1970-01-01 00:00:00 +0000
2814+++ test/rbkt/Queries/zorba/xdm-schema/nodes.xq 2012-03-01 13:03:21 +0000
2815@@ -0,0 +1,11 @@
2816+import schema namespace xdm = "http://www.zorba-xquery.com/schemas/xdm";
2817+
2818+validate strict {
2819+ <xdm:sequence-of-items xmlns:xs="http://www.w3.org/2001/XMLSchema">
2820+ <xdm:element node-name="a" type-name="xs:untyped"/>
2821+ <xdm:element node-name="b" type-name="xs:untyped"/>
2822+ <xdm:element node-name="c" type-name="xs:untyped"/>
2823+ <xdm:element node-name="d" type-name="xs:untyped"/>
2824+ <xdm:element node-name="e" type-name="xs:untyped"/>
2825+ </xdm:sequence-of-items>
2826+}

Subscribers

People subscribed via source and target branches