XQuery 1.0:XML查询语言 工作草案-6
TransWiki - W3CHINA.ORG开放翻译计划(OTP)
摘要_文档状态_目录 第1节 第2节 3.1~3.3节 3.4~3.6节 3.7节 3.8~3.13节 第4节 附录A 附录B,C,D 附录E,F,G,H,I
| 目录 |
B Type Promotion and Operator Mapping
B.1 Type Promotion
[Definition: Under certain circumstances, an atomic value can be promoted from one type to another. Type promotion is used in function calls (see 3.1.5 Function Calls) and in processing of operators that accept numeric operands (see B.2 Operator Mapping).] The following type promotions are permitted:
A value of type xs:float (or any type derived by restriction from xs:float) can be promoted to the type xs:double. The result is the xs:double value that is the same as the original value.
A value of type xs:decimal (or any type derived by restriction from xs:decimal) can be promoted to either of the types xs:float or xs:double. The result of this promotion is created by casting the original value to the required type. This kind of promotion may cause loss of precision.
Note that type promotion (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-type-promotion) is different from subtype substitution (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-subtype-substitution). For example:
A function that expects a parameter $p of type xs:float can be invoked with a value of type xs:decimal. This is an example of type promotion (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-type-promotion). The value is actually converted to the expected type. Within the body of the function, $p instance of xs:decimal returns false.
A function that expects a parameter $p of type xs:decimal can be invoked with a value of type xs:integer. This is an example of subtype substitution (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-subtype-substitution). The value retains its original type. Within the body of the function, $p instance of xs:integer returns true.
B.2 Operator Mapping
The tables in this section list the combinations of types for which the various operators of XQuery are defined in terms of functions that are defined in [XQuery 1.0 and XPath 2.0 Functions and Operators (http://www.w3.org/TR/2004/WD-xquery-20040723/#FunctionsAndOperators)]. The and and or operators are defined directly in the main body of this document, and do not occur in this table. For each valid combination of types, the table indicates the function(s) that are used to implement the operator and the type of the result. Note that in some cases the function does not implement the full semantics of the given operator. For the definition of each operator (including its behavior for empty sequences or sequences of length greater than one), see the descriptive material in the main part of this document.
Any operator listed in the tables may be validly applied to an operand of type AT if the table calls for an operand of type ET and type-matches(ET, AT) is true (see 2.4.4 SequenceType Matching). For example, a table entry indicates that the gt operator may be applied to two xs:date operands, returning xs:boolean. Therefore, the gt operator may also be applied to two (possibly different) subtypes of xs:date, also returning xs:boolean.
In the operator tables, the term numeric refers to the types xs:integer, xs:decimal, xs:float, and xs:double. An operator whose operands and result are designated as numeric might be thought of as representing four operators, one for each of the numeric types. For example, the numeric + operator might be thought of as representing the following four operators:
Operator |
First operand type |
Second operand type |
Result type |
+ |
xs:integer |
xs:integer |
xs:integer |
+ |
xs:decimal |
xs:decimal |
xs:decimal |
+ |
xs:float |
xs:float |
xs:float |
+ |
xs:double |
xs:double |
xs:double |
A numeric operator may be validly applied to an operand of type AT if type-matches(ET, AT) is true where ET is any of the four numeric types. If the result type of an operator is listed as numeric, it means "the first type in the ordered list (xs:integer, xs:decimal, xs:float, xs:double) into which all operands can be converted by subtype substitution (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-subtype-substitution) and type promotion (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-type-promotion)." As an example, suppose that the type hatsize is derived from xs:integer and the type shoesize is derived from xs:float. Then if the + operator is invoked with operands of type hatsize and shoesize, it returns a result of type xs:float. Similarly, if + is invoked with two operands of type hatsize it returns a result of type xs:integer.
In the following tables, the term Gregorian refers to the types xs:gYearMonth, xs:gYear, xs:gMonthDay, xs:gDay, and xs:gMonth. For binary operators that accept two Gregorian-type operands, both operands must have the same type (for example, if one operand is of type xs:gDay, the other operand must be of type xs:gDay.)
Operator | Type(A) | Type(B) | Function | Result type |
|---|---|---|---|---|
| A + B | numeric | numeric | op:numeric-add(A, B) | numeric |
| A + B | xs:date | xdt:yearMonthDuration | op:add-yearMonthDuration-to-date(A, B) | xs:date |
| A + B | xdt:yearMonthDuration | xs:date | op:add-yearMonthDuration-to-date(B, A) | xs:date |
| A + B | xs:date | xdt:dayTimeDuration | op:add-dayTimeDuration-to-date(A, B) | xs:date |
| A + B | xdt:dayTimeDuration | xs:date | op:add-dayTimeDuration-to-date(B, A) | xs:date |
| A + B | xs:time | xdt:dayTimeDuration | op:add-dayTimeDuration-to-time(A, B) | xs:time |
| A + B | xdt:dayTimeDuration | xs:time | op:add-dayTimeDuration-to-time(B, A) | xs:time |
| A + B | xs:datetime | xdt:yearMonthDuration | op:add-yearMonthDuration-to-dateTime(A, B) | xs:dateTime |
| A + B | xdt:yearMonthDuration | xs:datetime | op:add-yearMonthDuration-to-dateTime(B, A) | xs:dateTime |
| A + B | xs:datetime | xdt:dayTimeDuration | op:add-dayTimeDuration-to-dateTime(A, B) | xs:dateTime |
| A + B | xdt:dayTimeDuration | xs:datetime | op:add-dayTimeDuration-to-dateTime(B, A) | xs:dateTime |
| A + B | xdt:yearMonthDuration | xdt:yearMonthDuration | op:add-yearMonthDurations(A, B) | xdt:yearMonthDuration |
| A + B | xdt:dayTimeDuration | xdt:dayTimeDuration | op:add-dayTimeDurations(A, B) | xdt:dayTimeDuration |
| A - B | numeric | numeric | op:numeric-subtract(A, B) | numeric |
| A - B | xs:date | xs:date | fn:subtract-dates-yielding-dayTimeDuration(A, B) | xdt:dayTimeDuration |
| A - B | xs:date | xdt:yearMonthDuration | op:subtract-yearMonthDuration-from-date(A, B) | xs:date |
| A - B | xs:date | xdt:dayTimeDuration | op:subtract-dayTimeDuration-from-date(A, B) | xs:date |
| A - B | xs:time | xs:time | op:subtract-times(A, B) | xdt:dayTimeDuration |
| A - B | xs:time | xdt:dayTimeDuration | op:subtract-dayTimeDuration-from-time(A, B) | xs:time |
| A - B | xs:datetime | xs:datetime | fn:subtract-dateTimes-yielding-dayTimeDuration(A, B) | xdt:dayTimeDuration |
| A - B | xs:datetime | xdt:yearMonthDuration | op:subtract-yearMonthDuration-from-dateTime(A, B) | xs:dateTime |
| A - B | xs:datetime | xdt:dayTimeDuration | op:subtract-dayTimeDuration-from-dateTime(A, B) | xs:dateTime |
| A - B | xdt:yearMonthDuration | xdt:yearMonthDuration | op:subtract-yearMonthDurations(A, B) | xdt:yearMonthDuration |
| A - B | xdt:dayTimeDuration | xdt:dayTimeDuration | op:subtract-dayTimeDurations(A, B) | xdt:dayTimeDuration |
| A * B | numeric | numeric | op:numeric-multiply(A, B) | numeric |
| A * B | xdt:yearMonthDuration | numeric | op:multiply-yearMonthDuration(A, B) | xdt:yearMonthDuration |
| A * B | numeric | xdt:yearMonthDuration | op:multiply-yearMonthDuration(B, A) | xdt:yearMonthDuration |
| A * B | xdt:dayTimeDuration | numeric | op:multiply-dayTimeDuration(A, B) | xdt:dayTimeDuration |
| A * B | numeric | xdt:dayTimeDuration | op:multiply-dayTimeDuration(B, A) | xdt:dayTimeDuration |
| A idiv B | numeric | numeric | op:integer-div(A, B) | xs:integer |
| A div B | numeric | numeric | op:numeric-divide(A, B) | numeric; but xs:decimal if both operands are xs:integer |
| A div B | xdt:yearMonthDuration | numeric | op:divide-yearMonthDuration(A, B) | xdt:yearMonthDuration |
| A div B | xdt:dayTimeDuration | numeric | op:divide-dayTimeDuration(A, B) | xdt:dayTimeDuration |
| A mod B | numeric | numeric | op:numeric-mod(A, B) | numeric |
| A eq B | numeric | numeric | op:numeric-equal(A, B) | xs:boolean |
| A eq B | xs:boolean | xs:boolean | op:boolean-equal(A, B) | xs:boolean |
| A eq B | xs:string | xs:string | op:numeric-equal(fn:compare(A, B), 1) | xs:boolean |
| A eq B | xs:date | xs:date | op:date-equal(A, B) | xs:boolean |
| A eq B | xs:time | xs:time | op:time-equal(A, B) | xs:boolean |
| A eq B | xs:dateTime | xs:dateTime | op:datetime-equal(A, B) | xs:boolean |
| A eq B | xdt:yearMonthDuration | xdt:yearMonthDuration | op:yearMonthDuration-equal(A, B) | xs:boolean |
| A eq B | xdt:dayTimeDuration | xdt:dayTimeDuration | op:dayTimeDuration-equal(A, B) | xs:boolean |
| A eq B | Gregorian | Gregorian | op:gYear-equal(A, B) etc. | xs:boolean |
| A eq B | xs:hexBinary | xs:hexBinary | op:hex-binary-equal(A, B) | xs:boolean |
| A eq B | xs:base64Binary | xs:base64Binary | op:base64-binary-equal(A, B) | xs:boolean |
| A eq B | xs:anyURI | xs:anyURI | op:anyURI-equal(A, B) | xs:boolean |
| A eq B | xs:QName | xs:QName | op:QName-equal(A, B) | xs:boolean |
| A eq B | xs:NOTATION | xs:NOTATION | op:NOTATION-equal(A, B) | xs:boolean |
| A ne B | numeric | numeric | fn:not(op:numeric-equal(A, B)) | xs:boolean |
| A ne B | xs:boolean | xs:boolean | fn:not(op:boolean-equal(A, B)) | xs:boolean |
| A ne B | xs:string | xs:string | fn:not(op:numeric-equal(fn:compare(A, B), 1)) | xs:boolean |
| A ne B | xs:date | xs:date | fn:not(op:date-equal(A, B)) | xs:boolean |
| A ne B | xs:time | xs:time | fn:not(op:time-equal(A, B)) | xs:boolean |
| A ne B | xs:dateTime | xs:dateTime | fn:not(op:datetime-equal(A, B)) | xs:boolean |
| A ne B | xdt:yearMonthDuration | xdt:yearMonthDuration | fn:not(op:yearMonthDuration-equal(A, B)) | xs:boolean |
| A ne B | xdt:dayTimeDuration | xdt:dayTimeDuration | fn:not(op:dayTimeDuration-equal(A, B) | xs:boolean |
| A ne B | Gregorian | Gregorian | fn:not(op:gYear-equal(A, B)) etc. | xs:boolean |
| A ne B | xs:hexBinary | xs:hexBinary | fn:not(op:hex-binary-equal(A, B)) | xs:boolean |
| A ne B | xs:base64Binary | xs:base64Binary | fn:not(op:base64-binary-equal(A, B)) | xs:boolean |
| A ne B | xs:anyURI | xs:anyURI | fn:not(op:anyURI-equal(A, B)) | xs:boolean |
| A ne B | xs:QName | xs:QName | fn:not(op:QName-equal(A, B)) | xs:boolean |
| A ne B | xs:NOTATION | xs:NOTATION | fn:not(op:NOTATION-equal(A, B)) | xs:boolean |
| A gt B | numeric | numeric | op:numeric-greater-than(A, B) | xs:boolean |
| A gt B | xs:boolean | xs:boolean | op:boolean-greater-than(A, B) | xs:boolean |
| A gt B | xs:string | xs:string | op:numeric-greater-than(fn:compare(A, B), 0) | xs:boolean |
| A gt B | xs:date | xs:date | op:date-greater-than(A, B) | xs:boolean |
| A gt B | xs:time | xs:time | op:time-greater-than(A, B) | xs:boolean |
| A gt B | xs:dateTime | xs:dateTime | op:datetime-greater-than(A, B) | xs:boolean |
| A gt B | xdt:yearMonthDuration | xdt:yearMonthDuration | op:yearMonthDuration-greater-than(A, B) | xs:boolean |
| A gt B | xdt:dayTimeDuration | xdt:dayTimeDuration | op:dayTimeDuration-greater-than(A, B) | xs:boolean |
| A lt B | numeric | numeric | op:numeric-less-than(A, B) | xs:boolean |
| A lt B | xs:boolean | xs:boolean | op:boolean-less-than(A, B) | xs:boolean |
| A lt B | xs:string | xs:string | op:numeric-less-than(fn:compare(A, B), 0) | xs:boolean |
| A lt B | xs:date | xs:date | op:date-less-than(A, B) | xs:boolean |
| A lt B | xs:time | xs:time | op:time-less-than(A, B) | xs:boolean |
| A lt B | xs:dateTime | xs:dateTime | op:datetime-less-than(A, B) | xs:boolean |
| A lt B | xdt:yearMonthDuration | xdt:yearMonthDuration | op:yearMonthDuration-less-than(A, B) | xs:boolean |
| A lt B | xdt:dayTimeDuration | xdt:dayTimeDuration | op:dayTimeDuration-less-than(A, B) | xs:boolean |
| A ge B | numeric | numeric | fn:not(op:numeric-less-than(A, B)) | xs:boolean |
| A ge B | xs:boolean | xs:boolean | fn:not(op:boolean-less-than(A, B)) | |
| A ge B | xs:string | xs:string | op:numeric-greater-than(fn:compare(A, B), -1) | xs:boolean |
| A ge B | xs:date | xs:date | fn:not(op:date-less-than(A, B)) | xs:boolean |
| A ge B | xs:time | xs:time | fn:not(op:time-less-than(A, B)) | xs:boolean |
| A ge B | xs:dateTime | xs:dateTime | fn:not(op:datetime-less-than(A, B)) | xs:boolean |
| A ge B | xdt:yearMonthDuration | xdt:yearMonthDuration | fn:not(op:yearMonthDuration-less-than(A, B)) | xs:boolean |
| A ge B | xdt:dayTimeDuration | xdt:dayTimeDuration | fn:not(op:dayTimeDuration-less-than(A, B)) | xs:boolean |
| A le B | numeric | numeric | fn:not(op:numeric-greater-than(A, B)) | xs:boolean |
| A le B | xs:boolean | xs:boolean | fn:not(op:boolean-greater-than(A, B)) | |
| A le B | xs:string | xs:string | op:numeric-less-than(fn:compare(A, B), 1) | xs:boolean |
| A le B | xs:date | xs:date | fn:not(op:date-greater-than(A, B)) | xs:boolean |
| A le B | xs:time | xs:time | fn:not(op:time-greater-than(A, B)) | xs:boolean |
| A le B | xs:dateTime | xs:dateTime | fn:not(op:datetime-greater-than(A, B)) | xs:boolean |
| A le B | xdt:yearMonthDuration | xdt:yearMonthDuration | fn:not(op:yearMonthDuration-greater-than(A, B)) | xs:boolean |
| A le B | xdt:dayTimeDuration | xdt:dayTimeDuration | fn:not(op:dayTimeDuration-greater-than(A, B)) | xs:boolean |
| A is B | node() | node() | op:is-same-node(A, B) | xs:boolean |
| A << B | node() | node() | op:node-before(A, B) | xs:boolean |
| A >> B | node() | node() | op:node-after(A, B) | xs:boolean |
| A union B | node()* | node()* | op:union(A, B) | node()* |
| A | B | node()* | node()* | op:union(A, B) | node()* |
| A intersect B | node()* | node()* | op:intersect(A, B) | node()* |
| A except B | node()* | node()* | op:except(A, B) | node()* |
| A to B | xs:integer | xs:integer | op:to(A, B) | xs:integer+ |
| A , B | item()* | item()* | op:concatenate(A, B) | item()* |
Operator | Operand type | Function | Result type |
|---|---|---|---|
| + A | numeric | op:numeric-unary-plus(A) | numeric |
| - A | numeric | op:numeric-unary-minus(A) | numeric |
C Context Components
The tables in this section describe how values are assigned to the various components of the static context and dynamic context, and to the parameters that control the serialization process.
C.1 Static Context Components
The following table describes the components of the static context. The following aspects of each component are described:
Default value: This is the value of the component if it is not overridden or augmented by the implementation or by a query.
Can be overwritten or augmented by implementation: Indicates whether an XQuery implementation is allowed to replace the default value of the component by a different value and/or to augment the default value by additional values.
Can be overwritten or augmented by a query: Indicates whether a query is allowed to replace and/or augment the initial value provided by default or by the implementation. If so, indicates how this is accomplished (for example, by a declaration in the prolog).
Scope: Indicates where the component is applicable. "Global" indicates that the component applies globally, throughout all the modules used in a query. "Module resource" indicates that the component applies throughout a module resource (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-module-resource). "Lexical" indicates that the component applies within the expression in which it is defined (equivalent to "module resource" if the component is declared in a Prolog (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-prolog).)
Consistency Rules: Indicates rules that must be observed in assigning values to the component. If any consistency rule is violated, a static error (http://www.w3.org/TR/2004/WD-xquery-20040723/#dt-static-error) is raised. Additional consistency rules may be found in 2.2.5 Consistency Constraints.
Component | Default predefined value | Can be overwritten or augmented by implementation? | Can be overwritten or augmented by a query? | Scope | Consistency rules |
|---|---|---|---|---|---|
| XPath 1.0 Compatability Mode | false | no | no | global | Must be false. |
| Statically known namespaces | fn, xml, xs, xsi, xdt, local | overwriteable and augmentable (except for xml) | overwriteable and augmentable by prolog or element constructor | lexical | Only one namespace can be assigned to a given prefix per lexical scope. |
| Default element/type namespace | no namespace | overwriteable | overwriteable by prolog or element constructor | lexical | Only one default namespace per lexical scope. |
| Default function namespace | fn | overwriteable (not recommended) | overwriteable by prolog | module resource | Only one declaration per prolog. |
| In-scope type definitions | Built-in types in xs, xdt | augmentable | augmentable by schema import in prolog | module resource | Only one definition per global or local type. |
| In-scope element declarations | none | augmentable | augmentable by schema import in prolog | module resource | Only one definition per global or local element name. |
| In-scope attribute declarations | none | augmentable | augmentable by schema import in prolog | module resource | Only one definition per global or local attribute name. |
| In-scope variables | none | augmentable | overwriteable and augmentable by prolog and by variable-binding expressions | lexical | Only one definition per variable per lexical scope. |
| Context item static type | none | augmentable | not explicitly, but can be influenced by expressions | lexical | None |
| Function signatures | Functions in fn namespace, and constructors for built-in atomic types | augmentable | augmentable by module import and by function declaration in prolog | module resource | Each function must have a unique expanded QName and number of arguments. |
| Statically known collations | only the default collation | augmentable | no | module resource | Each URI uniquely identifies a collation. |
| Default collation | Unicode codepoint collation | overwriteable | overwriteable by prolog | module resource | Only one default collation per module resource. |
| Construction mode | preserve | overwriteable | overwriteable by prolog | module resource | Only one construction mode per module resource. |
| Ordering mode | ordered | overwriteable | overwriteable by prolog or expression | lexical | None |
| XMLSpace policy | strip | overwriteable | overwriteable by prolog | module resource | Only one XMLSpace declaration per module resource. |
| Base URI | none | overwriteable | overwriteable by prolog | module resource | Only one base-uri declaration per module resource. |
| Statically known documents | none | augmentable | no | module resource | None |
| Statically known collections | none | augmentable | no | module resource | None |
| XQuery Flagger status | off | overwriteable | no | global | None |
| XQuery Static Flagger status | off | overwriteable | no | global | None |
C.2 Dynamic Context Components
The following table describes the components of the dynamic context. The following aspects of each component are described:
Default value: This is the value of the component if it is not overridden or augmented by the implementation or by a query.
Can be overwritten or augmented by implementation: Indicates whether an XQuery implementation is allowed to replace the default value of the component by a different value and/or to augment the default value by additional values.
Can be overwritten or augmented by a query: Indicates whether a query is allowed to replace and/or augment the initial value provided by default or by the implementation. If so, indicates how this is accomplished.
Scope: Indicates where the component is applicable. "Global" indicates that the component applies globally, throughout all the modules used in a query, and remains constant during evaluation of a query. "Dynamic" indicates that evalation of an expression may influence the value of the component for that expression and for nested expressions.
Consistency Rules: Indicates rules that must be observed in assigning values to the component. Additional consistency rules may be found in 2.2.5 Consistency Constraints.
Component | Default predefined value | Can be overwritten or augmented by implementation? | Can be overwritten or augmented by a query? | Scope | Consistency rules |
|---|---|---|---|---|---|
| Context item | none | overwriteable | overwritten during evaluation of path expressions and predicates | dynamic | none |
| Context position | none | overwriteable | overwritten during evaluation of path expressions and predicates | dynamic | Must be consistent with context item and context size |
| Context size | none | overwriteable | overwritten during evaluation of path expressions and predicates | dynamic | Must be consistent with context item |
| Variable values | none | augmentable | overwriteable and augmentable by prolog and by variable-binding expressions | dynamic | Names and values must be consistent with in-scope variables. |
| Function implementations | Functions in fn namespace, and constructors for built-in atomic types | augmentable | augmentable by module import and by function declaration in prolog | global | Must be consistent with function signatures |
| Current date and time | none | Must be initialized by implementation | no | global | Remains constant during evaluation of a query. |
| Implicit timezone | none | Must be initialized by implementation | no | global | Remains constant during evaluation of a query. |
| Available documents | none | Must be initialized by implementation | no | global | None |
| Available collections | none | Must be initialized by implementation | no | global | None |
C.3 Serialization Parameters
The following table specifies default values for the parameters that control the process of serializing the Data Model into XML notation (method = "xml"). The meanings of the various parameters are defined in [XSLT 2.0 and XQuery 1.0 Serialization (http://www.w3.org/TR/2004/WD-xquery-20040723/#serialization)]. For each parameter, an XQuery implementation may (but is not required to) provide a means whereby a user can override the default value.
Parameter | Default Value |
|---|---|
| encoding | implementation-defined |
| cdata-section-elements | empty |
| doctype-system | (none) |
| doctype-public | (none) |
| escape-uri-attributes | no |
| indent | no |
| media-type | implementation-defined |
| normalization-form | implementation-defined |
| omit-xml-declaration | yes |
| standalone | none |
| use-character-maps | empty |
| version | 1.0 |
D References
D.1 Normative References
XQuery 1.0 and XPath 2.0 Functions and Operators
World Wide Web Consortium. XQuery 1.0 and XPath 2.0 Functions and Operators W3C Working Draft, 23 Jul. 2004. See http://www.w3.org/TR/xpath-functions/ (http://www.w3.org/TR/xquery-operators/)
XQuery 1.0 and XPath 2.0 Formal Semantics
World Wide Web Consortium. XQuery 1.0 and XPath 2.0 Formal Semantics. W3C Working Draft, 20 Feb. 2004. See http://www.w3.org/TR/xquery-semantics/ (http://www.w3.org/TR/xquery-semantics/).
XML Schema
World Wide Web Consortium. XML Schema, Parts 0, 1, and 2. W3C Recommendation, 2 May 2001. See http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/ (http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/), http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ (http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/), and http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/ (http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/).
XQuery 1.0 and XPath 2.0 Data Model
World Wide Web Consortium. XQuery 1.0 and XPath 2.0 Data Model. W3C Working Draft, 23 Jul. 2004. See http://www.w3.org/TR/xpath-datamodel/ (http://www.w3.org/TR/xpath-datamodel/).
XSLT 2.0 and XQuery 1.0 Serialization
World Wide Web Consortium. XSLT 2.0 and XQuery 1.0 Serialization. W3C Working Draft, 23 Jul. 2004. See http://www.w3.org/TR/xslt-xquery-serialization/ (http://www.w3.org/TR/xslt-xquery-serialization/).
XML 1.0
World Wide Web Consortium. Extensible Markup Language (XML) 1.0. W3C Recommendation. See http://www.w3.org/TR/2000/REC-xml-20001006 (http://www.w3.org/TR/2000/REC-xml-20001006)
XML 1.1
World Wide Web Consortium. Extensible Markup Language (XML) 1.1. W3C Recommendation. See http://www.w3.org/TR/xml11/ (http://www.w3.org/TR/xml11/)
XML Names
World Wide Web Consortium. Namespaces in XML. W3C Recommendation. See http://www.w3.org/TR/REC-xml-names/ (http://www.w3.org/TR/REC-xml-names/)
XML Names 1.1
World Wide Web Consortium. Namespaces in XML 1.1. W3C Recommendation. See http://www.w3.org/TR/xml-names11/ (http://www.w3.org/TR/xml-names11/)
ISO/IEC 10646
ISO (International Organization for Standardization). ISO/IEC 10646-1993 (E). Information technology—Universal Multiple-Octet Coded Character Set (UCS)—Part 1: Architecture and Basic Multilingual Plane. [Geneva]: International Organization for Standardization, 1993 (plus amendments AM 1 through AM 7).
ISO/IEC 10646-2000
ISO (International Organization for Standardization). ISO/IEC 10646-1:2000. Information technology—Universal Multiple-Octet Coded Character Set (UCS)—Part 1: Architecture and Basic Multilingual Plane. [Geneva]: International Organization for Standardization, 2000.
Unicode
The Unicode Consortium. The Unicode Standard, Version 2.0. Reading, Mass.: Addison-Wesley Developers Press, 1996.
Unicode3
The Unicode Consortium. The Unicode Standard, Version 3.0. Reading, Mass.: Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5.
D.2 Non-normative References
XML Query 1.0 Requirements
World Wide Web Consortium. XML Query 1.0 Requirements. W3C Working Draft, 27 Jun 2003. See http://www.w3.org/TR/xquery-requirements/ (http://www.w3.org/TR/xquery-requirements/).
XQueryX 1.0
Editorial note |
|
As of the date of this publication, XQueryX has not incorporated recent language changes; it will be made consistent with this document in its next edition. |
|
XPath 2.0
World Wide Web Consortium. XML Path Language (XPath) Version 2.0. W3C Working Draft, 23 Jul. 2004. See http://www.w3.org/TR/xpath20/ (http://www.w3.org/TR/xpath20/)
XSLT 2.0
World Wide Web Consortium. XSL Transformations (XSLT) 2.0. W3C Working Draft. See http://www.w3.org/TR/xslt20/ (http://www.w3.org/TR/xslt20/)
XML Query Use Cases
World Wide Web Consortium. XML Query Use Cases. W3C Working Draft, 12 Nov. 2003. See http://www.w3.org/TR/xquery-use-cases/ (http://www.w3.org/TR/xquery-use-cases/).
ISO 8601
International Organization for Standardization (ISO). Representations of Dates and Times, 2000-08-03. Available from http://www.iso.ch/ (http://www.iso.ch/)
Use Case Sample Queries
Queries from the XQuery 1.0 Use Caes, presented in a single file (See http://www.w3.org/TR/2003/WD-xquery-use-cases-20031112/xquery-use-case-queries.txt (http://www.w3.org/TR/2003/WD-xquery-use-cases-20031112/xquery-use-case-queries.txt).)
XQuery Sample Queries
Queries from this document, presented in a single file. (See http://www.w3.org/TR/2003/WD-xquery-use-cases-20031112/xquery-wd-queries.txt (http://www.w3.org/TR/2003/WD-xquery-use-cases-20031112/xquery-wd-queries.txt).)
D.3 Non-normative Background References
XQL
J. Robie, J. Lapp, D. Schach. XML Query Language (XQL). See http://www.w3.org/TandS/QL/QL98/pp/xql.html (http://www.w3.org/TandS/QL/QL98/pp/xql.html).
XML-QL
Alin Deutsch, Mary Fernandez, Daniela Florescu, Alon Levy, and Dan Suciu. A Query Language for XML. See http://www.research.att.com/~mff/files/final.html (http://www.research.att.com/~mff/files/final.html)
SQL
International Organization for Standardization (ISO). Information Technology-Database Language SQL. Standard No. ISO/IEC 9075:1999. (Available from American National Standards Institute, New York, NY 10036, (212) 642-4900.)
ODMG
Rick Cattell et al. The Object Database Standard: ODMG-93, Release 1.2. Morgan Kaufmann Publishers, San Francisco, 1996.
Lorel
Serge Abiteboul, Dallan Quass, Jason McHugh, Jennifer Widom, and Janet L. Wiener. The Lorel Query Language for Semistructured Data. International Journal on Digital Libraries, 1(1):68-88, April 1997. See "http://www-db.stanford.edu/~widom/pubs.html (http://www-db.stanford.edu/~widom/pubs.html)
YATL
S. Cluet, S. Jacqmin, and J. Simeon. The New YATL: Design and Specifications. Technical Report, INRIA, 1999.
Quilt
Don Chamberlin, Jonathan Robie, and Daniela Florescu. Quilt: an XML Query Language for Heterogeneous Data Sources. In Lecture Notes in Computer Science, Springer-Verlag, Dec. 2000. Also available at http://www.almaden.ibm.com/cs/people/chamberlin/quilt_lncs.pdf (http://www.almaden.ibm.com/cs/people/chamberlin/quilt_lncs.pdf). See also http://www.almaden.ibm.com/cs/people/chamberlin/quilt.html (http://www.almaden.ibm.com/cs/people/chamberlin/quilt.html).
D.4 Non-normative Informative Material
RFC2396
T. Berners-Lee, R. Fielding, and L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax. IETF RFC 2396. See http://www.ietf.org/rfc/rfc2396.txt (http://www.ietf.org/rfc/rfc2396.txt).
Character Model
World Wide Web Consortium. Character Model for the World Wide Web. W3C Working Draft. See http://www.w3.org/TR/charmod/ (http://www.w3.org/TR/charmod/)
XML Infoset
World Wide Web Consortium. XML Information Set. W3C Recommendation 24 October 2001. See http://www.w3.org/TR/xml-infoset/ (http://www.w3.org/TR/xml-infoset/)
XPath 1.0
World Wide Web Consortium. XML Path Language (XPath) Version 1.0. W3C Recommendation, Nov. 16, 1999. See http://www.w3.org/TR/xpath.html (http://www.w3.org/TR/xpath.html)
XPointer
World Wide Web Consortium. XML Pointer Language (XPointer). W3C Last Call Working Draft 8 January 2001. See http://www.w3.org/TR/WD-xptr (http://www.w3.org/TR/WD-xptr)
XSLT 1.0
World Wide Web Consortium. XSL Transformations (XSLT) 1.0. W3C Recommendation. See http://www.w3.org/TR/xslt (http://www.w3.org/TR/xslt)


