Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This specification provides a set of commonly used [XML Schema 1.0] patterns known to cause issues with some state of the art databinding implementations. The patterns in conjunction with the [Basic Patterns] may be used to describe XML representations of commonly used data structures. The data structures described are intended to be independent of any particular programming language, database or modelling environment.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This is a public Working Group Note produced by the XML Schema Patterns for Databinding Working Group, which is part of the W3C Web Services Activity. This publication as a Working Group Note coincides with the end of the Working Group's charter period, and represents the culmination of the group's work.
This document was built using evidence and experience gained examining the interoperability of a significant number of state of the art databinding implementations using a test suite, see the Advanced Patterns Implementation Report and a collection of implementation reports including the collection of patterns detected from "the wild". Please send comments to the public [email protected] mailing list (public archive).
The Working Group also produced an accompanying [Basic Patterns] document, which includes [XML Schema 1.0] patterns in common use, but which were discovered to be well supported by state of the art databinding implementations.
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
1. Introduction
1.1 Notational
Conventions
1.2 Namespaces
1.3 Document Conformance
1.4 Implementation Conformance
2. Schema Patterns
2.1 Schema
Element
2.2 Annotations
2.3 Properties
2.4 Import and
Include
2.5 Global
Element Declarations
2.6 Global
Attribute Declarations
2.7 Element
Declarations
2.8 Attribute
Declarations
2.9 Global ComplexType
Declarations
2.10 SimpleType
Declarations
2.11 ComplexType Declarations
2.12 Sequences
2.13 Choices
2.14 Unions
2.15 Lists
2.16 Element Predefined Types
2.17 Attribute Predefined
Types
2.18 Restricted Schema Types
2.19 Numbers
2.20 Group
2.21 Redefines
2.22 Unique
3. Data Types & Structures
3.1 Default
Value
3.2 Map
3.3 Extensible
Enumeration
4. References
4.1 Normative
References
4.2 Informative
References
A. Detecting Patterns
(Non-Normative)
B. XPath 2.0 Idioms
(Non-Normative)
C. Pattern Summary
(Non-Normative)
D. Assertion Summary
(Non-Normative)
E. Supported XML Schema elements,
attributes and simple types (Non-Normative)
F. Relationship with the WS-I Basic Profile
(Non-Normative)
G. Acknowledgements
(Non-Normative)
A databinding tool generates a mapping between XML documents which conform to an [XML Schema 1.0] schema and an internal data representation. For example, a Web services databinding tool may use [XML Schema 1.0] descriptions inside a [WSDL 2.0] document to produce and consume [SOAP 1.2] messages in terms of data structures in a programming language or data held inside a database.
State of the art databinding implementations have displayed uneven and inconsistent support of the W3C [XML Schema 1.0] Recommendation. XML Schema provides a wide variety of methods for describing the same XML structure, conversely a concept such as "null" may be represented in a wide variety of different ways.
The result of these issues is impaired interoperability and a poor user experience of databinding tools:
This specification provides a advanced set of example [XML Schema 1.0] constructs and types in the form of concrete [XPath 2.0] expressions. These patterns are known to be in widespresd use and considered to be compatible with databinding implementations.
Implementers of databinding tools may find these patterns useful to represent simple and common place data structures. Ensuring tools recognise at least these simple [XML Schema 1.0] patterns and present them in terms most appropriate to the specific language, database or environment will provide an improved user experience when using databinding tools. It is inappropriate to use this specification to constrain the use of the [XML Schema 1.0] Recommendation.
All parts of this specification are normative, with the EXCEPTION of notes, examples, and sections explicitly marked as Non-Normative.
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this specification are to be interpreted as described in [RFC 2119].
Each [XML Schema 1.0] pattern is defined using a single [XPath 2.0] expression constraining one or more [XML Schema 1.0] items.
Each [XML Schema 1.0] pattern is identified using a unique and stable URI [RFC 3986].
Assertions about documents and implementations that are not enforced by the normative patterns are marked by a dagger symbol (†) at the end of a sentence. Each assertion has been assigned a unique and stable identifier. The assertion identifiers may be used by implementations of this specification for any purpose, such as error reporting. The assertions and their identifiers are summarized in section D. Assertion Summary.
This specification uses a number of namespace prefixes throughout; they are listed in Table 1-1. Note that the choice of any namespace prefix is arbitrary and not semantically significant (see [XML Namespaces]).
Prefix | Namespace |
---|---|
xs | http://www.w3.org/2001/XMLSchema |
xsi | http://www.w3.org/2001/XMLSchema-instance |
soap11 | http://schemas.xmlsoap.org/soap/envelope/ |
soap12 | http://www.w3.org/2003/05/soap-envelope |
wsdl11 | http://schemas.xmlsoap.org/wsdl/ |
wsdl20 | http://www.w3.org/2005/08/wsdl |
pat | http://www.w3.org/2002/ws/databinding/patterns/6/09/ |
ex | http://www.w3.org/2002/ws/databinding/examples/6/09/ |
A Document claiming conformance to this specification:
An implementation that claims conformance to this specification:
Describing the form of the data model provided by a
databinding implementation is beyond the scope of this
specification. For example, the unconstrained built-in numeric
primitive types, xs:decimal
, xs:integer
,
xs:negativeInteger
, xs:positiveInteger
,
xs:nonNegativeInteger
and
xs:nonPositiveInteger
, do not map directly to native
types in many programming languages and are likely to be presented
as a toolkit specific construct or more generalised ways, such as a
'string'.
Note that although the patterns contained in this document are defined using [XPath 2.0], there is no requirement for a conformant implementation to support [XPath 2.0].
This section defines the set of concrete [XML Schema 1.0] patterns which may appear inside a conformant document. A pattern definition includes the following information:
A URI [RFC 3986] is provided to identify the pattern. The URI can be dereferenced to return informal documentation for the pattern including a list of examples and public schemas which exhibit the pattern.
A normative [XPath 2.0] expression, used
to detect a pattern in an [XML Schema 1.0]
document, returning a set of one or more XML element and attribute
nodes. The [XPath 2.0] expression having a
context node of an <xs:schema>
element node
which may be an [XML Schema 1.0] document
element, or an <xs:schema>
element contained
inside an [XML 1.0] document such as [WSDL 2.0] description.
Note, the [XPath 2.0] expressions used to identify individual patterns may be wrapped inside an [XSLT 2.0] stylesheet or [Schematron] schema and used to detect [XML Schema 1.0] patterns contained in a [WSDL 2.0] or other document, see A. Detecting Patterns and 1.3 Document Conformance. Readers unfamiliar with [XPath 2.0] may find the list of B. XPath 2.0 Idioms used within this specification useful.
Optionally one or more non-normative [XML Schema 1.0] documents or fragments, followed by one or more valid instance document fragments.
A collection of patterns, including patterns beyond the scope of this specification, are available from http://www.w3.org/2002/ws/databinding/patterns/6/09/. This document offers no additional semantics for the schema patterns presented beyond those specified by the [XML Schema 1.0] Recommendation.
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NoTargetNamespace pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NoTargetNamespace
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.[not(@targetNamespace)]/ (.)
The following example [XML Schema 1.0] document [NoTargetNamespace] illustrates the use of the NoTargetNamespace pattern:
<xs:schema> <xs:element name="noTargetNamespace" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NoTargetNamespace01]:
<noTargetNamespace xsi:noNamespaceSchemaLocation="NoTargetNamespace.xsd">some data</noTargetNamespace>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnqualifiedLocalElements pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnqualifiedLocalElements
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.[not(@elementFormDefault) or @elementFormDefault =
'unqualified']/ (., @elementFormDefault)
The following example [XML Schema 1.0] document [UnqualifiedLocalElements] illustrates the use of the UnqualifiedLocalElements pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" elementFormDefault="unqualified"> <xs:element name="unqualifiedLocalElements" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnqualifiedLocalElements01]:
<unqualifiedLocalElements>some data</unqualifiedLocalElements>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
QualifiedLocalAttributes pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/QualifiedLocalAttributes
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.[@attributeFormDefault = 'qualified']/
(@attributeFormDefault)
The following example [XML Schema 1.0] document [QualifiedLocalAttributes] illustrates the use of the QualifiedLocalAttributes pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" attributeFormDefault="qualified"> <xs:element name="qualifiedLocalAttributes" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [QualifiedLocalAttributes01]:
<ex:qualifiedLocalAttributes>string</ex:qualifiedLocalAttributes>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the FinalDefault
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/FinalDefault
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./@finalDefault
The following example [XML Schema 1.0] document [FinalDefault] illustrates the use of the FinalDefault pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" elementFormDefault="qualified" finalDefault="#all"> <xs:element name="finalDefault" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [FinalDefault01]:
<ex:finalDefault>foo</ex:finalDefault>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the BlockDefault
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/BlockDefault
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./@blockDefault
The following example [XML Schema 1.0] document [BlockDefault] illustrates the use of the BlockDefault pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" elementFormDefault="qualified" blockDefault="#all"> <xs:element name="blockDefault" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [BlockDefault01]:
<ex:blockDefault>foo</ex:blockDefault>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the XmlLang
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/XmlLang
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.[@xml:lang] /
(@xml:lang)
The following example [XML Schema 1.0] document [XmlLang] illustrates the use of the XmlLang pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" elementFormDefault="qualified" xml:lang="en"> <xs:element name="xmlLang" type="xs:string" /> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [XmlLang01]:
<ex:xmlLang>foo</ex:xmlLang>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AppinfoElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AppinfoElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:annotation/xs:appinfo/ (.., ., .//*,
.//@*)
The following example [XML Schema 1.0] extract illustrates the use of the AppinfoElement pattern within an [XML Schema 1.0] document [AppinfoElement]:
<xs:element name="appinfoElement" type="xs:string"> <xs:annotation> <xs:appinfo /> </xs:annotation> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AppinfoElement01]:
<ex:appinfoElement>some info</ex:appinfoElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
MixedComplexContent pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/MixedComplexContent
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexContent[@mixed = 'true']/ (@mixed)
The following example [XML Schema 1.0] extract illustrates the use of the MixedComplexContent pattern within an [XML Schema 1.0] document [MixedComplexContent]:
<xs:element name="mixedComplexContent" type="ex:MixedComplexContent" /> <xs:complexType name="MixedComplexContent"> <xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> <xs:element name="element3" type="xs:string" /> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [MixedComplexContent01]:
<ex:mixedComplexContent> <ex:element1>string</ex:element1> mixed content <ex:element2>string</ex:element2> mixed content <ex:element3>string</ex:element3> mixed content </ex:mixedComplexContent>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
MixedContentType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/MixedContentType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType[@mixed = 'true']/ (@mixed)
The following example [XML Schema 1.0] extract illustrates the use of the MixedContentType pattern within an [XML Schema 1.0] document [MixedContentType]:
<xs:element name="mixedContentType" type="ex:MixedContentType" /> <xs:complexType name="MixedContentType" mixed="true"> <xs:sequence> <xs:element name="elem1" type="xs:string" /> <xs:element name="elem2" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [MixedContentType01]:
<ex:mixedContentType> <ex:elem1>Tagged Value</ex:elem1> mixed value <ex:elem2>Tagged Value</ex:elem2> </ex:mixedContentType>
as is the following element when included in an instance document [MixedContentType02]:
<ex:mixedContentType> some text <ex:elem1>Tagged Value</ex:elem1> more text <ex:elem2>Tagged Value</ex:elem2> </ex:mixedContentType>
and the following element when included in an instance document [MixedContentType03]:
<ex:mixedContentType> <ex:elem1>Tagged Value</ex:elem1> mixed text value <ex:elem2>Tagged Value</ex:elem2> mixed text value </ex:mixedContentType>
and the following element when included in an instance document [MixedContentType04]:
<ex:mixedContentType> text mixed value <ex:elem1>Tagged Value</ex:elem1> <ex:elem2>Tagged Value</ex:elem2> some more text in a mixed value </ex:mixedContentType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ImportSchemaNamespace pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ImportSchemaNamespace
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:import[not(@schemaLocation) and @namespace =
'http://www.w3.org/2001/XMLSchema']/ (., @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ImportSchemaNamespace pattern within an [XML Schema 1.0] document [ImportSchemaNamespace]:
<xs:import namespace="http://www.w3.org/2001/XMLSchema" />
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementUnqualifiedType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementUnqualifiedType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name and @type and not(contains(@type, ':'))]/
(., @name, @type)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementUnqualifiedType pattern within an [XML Schema 1.0] document [GlobalElementUnqualifiedType]:
<xs:element name="globalElementUnqualifiedType" type="GlobalElementUnqualifiedType" /> <xs:complexType name="GlobalElementUnqualifiedType"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementUnqualifiedType01]:
<ex:globalElementUnqualifiedType> <ex:element1>string1</ex:element1> <ex:element2>string2</ex:element2> </ex:globalElementUnqualifiedType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementTypeDefaultNamespace pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementTypeDefaultNamespace
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@name and @type and not(contains(@type, ':'))]/
(@name, @type)
The following example [XML Schema 1.0] extract illustrates the use of the ElementTypeDefaultNamespace pattern within an [XML Schema 1.0] document [ElementTypeDefaultNamespace]:
<xs:element name="stringElementDefaultNamespace" type="string" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementTypeDefaultNamespace01]:
<ex:stringElementDefaultNamespace/>
as is the following element when included in an instance document [ElementTypeDefaultNamespace02]:
<ex:stringElementDefaultNamespace>This is a string!</ex:stringElementDefaultNamespace>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementAbstract pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementAbstract
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@abstract='true']/ (@abstract)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementAbstract pattern within an [XML Schema 1.0] document [GlobalElementAbstract]:
<xs:element name="globalElementAbstract" type="ex:GlobalElementAbstract" /> <xs:complexType name="GlobalElementAbstract"> <xs:sequence> <xs:element ref="ex:globalElementAbstractSubHead" /> </xs:sequence> </xs:complexType> <xs:element name="globalElementAbstractSubHead" abstract="true" /> <xs:element name="globalElementAbstractSub" substitutionGroup="ex:globalElementAbstractSubHead" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementAbstract01]:
<ex:globalElementAbstract> <ex:globalElementAbstractSub>String</ex:globalElementAbstractSub> </ex:globalElementAbstract>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementBlock pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementBlock
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element/ (@block)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementBlock pattern within an [XML Schema 1.0] document [GlobalElementBlock]:
<xs:element name="globalElementBlock" type="xs:string" block="#all" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementBlockExample01]:
<ex:globalElementBlock>Stuff</ex:globalElementBlock>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementFinal pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementFinal
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element/ (@final)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementFinal pattern within an [XML Schema 1.0] document [GlobalElementFinal]:
<xs:element name="globalElementFinal" type="xs:string" final="#all" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementFinalExample01]:
<ex:globalElementFinal>Stuff</ex:globalElementFinal>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementAll pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementAll
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:complexType/xs:all[xs:element]/
(../../(., @name), .., ., xs:element/(., @name))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementAll pattern within an [XML Schema 1.0] document [GlobalElementAll]:
<xs:element name="globalElementAll"> <xs:complexType> <xs:all> <xs:element name="globalElementAllA" type="xs:string" /> <xs:element name="globalElementAllB" type="xs:string" /> </xs:all> </xs:complexType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementAll01]:
<ex:globalElementAll> <ex:globalElementAllA>one</ex:globalElementAllA> <ex:globalElementAllB>42</ex:globalElementAllB> </ex:globalElementAll>
as is the following element when included in an instance document [GlobalElementAll02]:
<ex:globalElementAll> <ex:globalElementAllB>42</ex:globalElementAllB> <ex:globalElementAllA>douze</ex:globalElementAllA> </ex:globalElementAll>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementChoice pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementChoice
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:complexType/xs:choice[xs:element]/
(../../(., @name), .., ., xs:element/(., @name))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementChoice pattern within an [XML Schema 1.0] document [GlobalElementChoice]:
<xs:element name="globalElementChoice"> <xs:complexType> <xs:choice> <xs:element name="globalElementChoiceA" type="xs:string" /> <xs:element name="globalElementChoiceB" type="xs:string" /> </xs:choice> </xs:complexType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementChoice01]:
<ex:globalElementChoice> <ex:globalElementChoiceA>one</ex:globalElementChoiceA> </ex:globalElementChoice>
as is the following element when included in an instance document [GlobalElementChoice02]:
<ex:globalElementChoice> <ex:globalElementChoiceB>two</ex:globalElementChoiceB> </ex:globalElementChoice>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementSimpleType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementSimpleType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:simpleType/ (../(., @name),
.)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementSimpleType pattern within an [XML Schema 1.0] document [GlobalElementSimpleType]:
<xs:element name="globalElementSimpleType"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="value1" /> <xs:enumeration value="value2" /> <xs:enumeration value="value3" /> </xs:restriction> </xs:simpleType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementSimpleType01]:
<ex:globalElementSimpleType>value1</ex:globalElementSimpleType>
as is the following element when included in an instance document [GlobalElementSimpleType02]:
<ex:globalElementSimpleType>value2</ex:globalElementSimpleType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementComplexTypeSequenceExtension pattern identified
using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementComplexTypeSequenceExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/
(../../(., @name), .., ., xs:extension/(., @base, xs:sequence/(.,
xs:element/(., @name), xs:attribute/(., @name))))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementComplexTypeSequenceExtension pattern within an [XML Schema 1.0] document [GlobalElementComplexTypeSequenceExtension]:
<xs:element name="globalElementComplexTypeSequenceExtension"> <xs:complexType> <xs:complexContent> <xs:extension base="xs:anyType"> <xs:sequence /> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementComplexTypeSequenceExtension01]:
<ex:globalElementComplexTypeSequenceExtension> <ex:data> some data </ex:data> </ex:globalElementComplexTypeSequenceExtension>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementComplexTypeEmptyExtension pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementComplexTypeEmptyExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/not(*)]/
(../../(., @name), .., ., xs:extension/(., @base))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementComplexTypeEmptyExtension pattern within an [XML Schema 1.0] document [GlobalElementComplexTypeEmptyExtension]:
<xs:element name="globalElementComplexTypeEmptyExtension"> <xs:complexType> <xs:complexContent> <xs:extension base="xs:anyType" /> </xs:complexContent> </xs:complexType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementComplexTypeEmptyExtension01]:
<ex:globalElementComplexTypeEmptyExtension/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalAttributeUnqualifiedType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalAttributeUnqualifiedType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:attribute[@name and @type and not(contains(@type,
':'))]/ (., @name, @type)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalAttributeUnqualifiedType pattern within an [XML Schema 1.0] document [GlobalAttributeUnqualifiedType]:
<xs:attribute name="globalAttributeUnqualifiedTypeAttr" type="GlobalAttributeUnqualifiedTypeSimpleType" /> <xs:simpleType name="GlobalAttributeUnqualifiedTypeSimpleType"> <xs:restriction base="xs:string"> <xs:enumeration value="value1" /> <xs:enumeration value="value2" /> </xs:restriction> </xs:simpleType> <xs:complexType name="GlobalAttributeUnqualifiedType"> <xs:sequence> <xs:element name="globalAttributeUnqualifiedTypeElement" type="xs:string" /> </xs:sequence> <xs:attribute ref="ex:globalAttributeUnqualifiedTypeAttr" /> </xs:complexType> <xs:element name="globalAttributeUnqualifiedType" type="ex:GlobalAttributeUnqualifiedType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalAttributeUnqualifiedType01]:
<ex:globalAttributeUnqualifiedType ex:globalAttributeUnqualifiedTypeAttr="value1"> <ex:globalAttributeUnqualifiedTypeElement>another string</ex:globalAttributeUnqualifiedTypeElement> </ex:globalAttributeUnqualifiedType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalAttributeSimpleType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalAttributeSimpleType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:attribute/xs:simpleType/(../(., @name), .., .,
descendant::*, descendant::*/@value,
descendant::*/@base)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalAttributeSimpleType pattern within an [XML Schema 1.0] document [GlobalAttributeSimpleType]:
<xs:attribute name="globalAttributeSimpleTypeAttr"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="value1" /> <xs:enumeration value="value2" /> <xs:enumeration value="value3" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:complexType name="globalAttributeSimpleTypeComplexType"> <xs:sequence> <xs:element name="globalAttributeSimpleTypeElement" type="xs:string" /> </xs:sequence> <xs:attribute ref="ex:globalAttributeSimpleTypeAttr" /> </xs:complexType> <xs:element name="globalAttributeSimpleType" type="ex:globalAttributeSimpleTypeComplexType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalAttributeSimpleType01]:
<ex:globalAttributeSimpleType ex:globalAttributeSimpleTypeAttr="value1"> <ex:globalAttributeSimpleTypeElement>string</ex:globalAttributeSimpleTypeElement> </ex:globalAttributeSimpleType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementMinOccursFinite pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementMinOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[xs:integer(@minOccurs) gt 1]/ (@minOccurs,
@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ElementMinOccursFinite pattern within an [XML Schema 1.0] document [ElementMinOccursFinite]:
<xs:element name="elementMinOccursFinite" type="ex:ElementMinOccursFinite" /> <xs:complexType name="ElementMinOccursFinite"> <xs:sequence> <xs:element name="elementMinOccursFiniteitem" type="xs:string" minOccurs="3" maxOccurs="3" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementMinOccursFinite01]:
<ex:elementMinOccursFinite> <ex:elementMinOccursFiniteitem>item1</ex:elementMinOccursFiniteitem> <ex:elementMinOccursFiniteitem>item3</ex:elementMinOccursFiniteitem> <ex:elementMinOccursFiniteitem>item2</ex:elementMinOccursFiniteitem> </ex:elementMinOccursFinite>
The following example [XML Schema 1.0] extract illustrates the use of the ElementMinOccursFinite pattern within an [XML Schema 1.0] document [ElementMinOccurs2MaxOccurs2]:
<xs:element name="itemColors2" type="ex:ItemColors2" /> <xs:complexType name="ItemColors2"> <xs:sequence> <xs:element name="itemColor" type="xs:string" minOccurs="2" maxOccurs="2" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementMinOccurs2MaxOccurs201]:
<ex:itemColors2> <ex:itemColor>Red</ex:itemColor> <ex:itemColor>Yellow</ex:itemColor> </ex:itemColors2>
The following example [XML Schema 1.0] extract illustrates the use of the ElementMinOccursFinite pattern within an [XML Schema 1.0] document [ElementMinOccurs2orMore]:
<xs:element name="itemColors" type="ex:ItemColors" /> <xs:complexType name="ItemColors"> <xs:sequence> <xs:element name="itemColor" type="xs:string" minOccurs="2" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementMinOccurs2orMore01]:
<ex:itemColors> <ex:itemColor>Red</ex:itemColor> <ex:itemColor>Black</ex:itemColor> <ex:itemColor>White</ex:itemColor> <ex:itemColor>Yellow</ex:itemColor> </ex:itemColors>
as is the following element when included in an instance document [ElementMinOccurs2orMore02]:
<ex:itemColors> <ex:itemColor>Black</ex:itemColor> <ex:itemColor>White</ex:itemColor> </ex:itemColors>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementMinOccurs0MaxOccursFinite pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementMinOccurs0MaxOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@minOccurs = '0' and @maxOccurs and
not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs =
'unbounded')]/ (@minOccurs, @maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ElementMinOccurs0MaxOccursFinite pattern within an [XML Schema 1.0] document [ElementMinOccurs0MaxOccursFinite]:
<xs:element name="colorList" type="ex:ColorList" /> <xs:complexType name="ColorList"> <xs:sequence> <xs:element name="colorValue" type="xs:string" minOccurs="0" maxOccurs="2" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementMinOccurs0MaxOccursFinite101]:
<ex:colorList/>
as is the following element when included in an instance document [ElementMinOccurs0MaxOccursFinite102]:
<ex:colorList> <ex:colorValue>red</ex:colorValue> <ex:colorValue>green</ex:colorValue> </ex:colorList>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementMaxOccursFinite pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementMaxOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@maxOccurs and not(@maxOccurs = '0' or
@maxOccurs = '1' or @maxOccurs = 'unbounded')]/
(@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ElementMaxOccursFinite pattern within an [XML Schema 1.0] document [ElementMaxOccursFinite]:
<xs:element name="summer" type="ex:Summer" /> <xs:complexType name="Summer"> <xs:sequence> <xs:element name="mnth" type="xs:string" maxOccurs="4" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementMaxOccursFinite01]:
<ex:summer> <ex:mnth>May</ex:mnth> <ex:mnth>June</ex:mnth> <ex:mnth>July</ex:mnth> <ex:mnth>August</ex:mnth> </ex:summer>
as is the following element when included in an instance document [ElementMaxOccursFinite02]:
<ex:summer> <ex:mnth>August</ex:mnth> <ex:mnth>September</ex:mnth> </ex:summer>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementFormUnqualified pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementFormUnqualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@form='unqualified']/ (@form)
The following example [XML Schema 1.0] extract illustrates the use of the ElementFormUnqualified pattern within an [XML Schema 1.0] document [ElementFormUnqualified]:
<xs:element name="elementFormUnqualified" type="ex:ElementFormUnqualified" /> <xs:complexType name="ElementFormUnqualified"> <xs:sequence> <xs:element name="element" type="xs:string" form="unqualified" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementFormUnqualified01]:
<ex:elementFormUnqualified> <element>string</element> </ex:elementFormUnqualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice/xs:element/(.)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceElement pattern within an [XML Schema 1.0] document [ChoiceElement]:
<xs:element name="choiceElement" type="ex:ChoiceElement" /> <xs:complexType name="ChoiceElement"> <xs:choice> <xs:element name="AChoiceElement" type="xs:string" /> <xs:element name="BChoiceElement" type="xs:string" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceElement01]:
<ex:choiceElement> <ex:AChoiceElement>A</ex:AChoiceElement> </ex:choiceElement>
as is the following element when included in an instance document [ChoiceElement02]:
<ex:choiceElement> <ex:BChoiceElement>B</ex:BChoiceElement> </ex:choiceElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the AllElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AllElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:all/xs:element/(.)
The following example [XML Schema 1.0] extract illustrates the use of the AllElement pattern within an [XML Schema 1.0] document [AllElement]:
<xs:element name="allElement" type="ex:AllElement" /> <xs:complexType name="AllElement"> <xs:all> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> <xs:element name="element3" type="xs:string" /> <xs:element name="element4" type="xs:string" /> <xs:element name="element5" type="xs:string" /> </xs:all> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AllElement01]:
<ex:allElement> <ex:element1>element1</ex:element1> <ex:element2>element2</ex:element2> <ex:element3>element3</ex:element3> <ex:element4>element4</ex:element4> <ex:element5>element5</ex:element5> </ex:allElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the ElementFixed
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementFixed
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@fixed] / (@fixed)
The following example [XML Schema 1.0] extract illustrates the use of the ElementFixed pattern within an [XML Schema 1.0] document [ElementFixed]:
<xs:element name="elementFixed" type="xs:string" fixed="yes" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementFixed01]:
<ex:elementFixed>yes</ex:elementFixed>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeElementNameClash pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeElementNameClash
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:sequence/xs:element[@name =
../../xs:attribute/@name]/ (@name)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeElementNameClash pattern within an [XML Schema 1.0] document [AttributeElementNameClash]:
<xs:element name="clientDetails" type="ex:ClientDetails" /> <xs:complexType name="ClientDetails"> <xs:sequence> <xs:element name="forename" type="xs:string" /> <xs:element name="surname" type="xs:string" /> <xs:element name="title" type="xs:string" /> </xs:sequence> <xs:attribute name="phone" type="xs:string" /> <xs:attribute name="title" type="xs:int" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeElementNameClash01]:
<ex:clientDetails phone="+15556667788" title="1"> <ex:forename>Bobby</ex:forename> <ex:surname>Sox</ex:surname> <ex:title>Mr</ex:title> </ex:clientDetails>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NillableOptionalElement pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NillableOptionalElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@nillable = 'true' and @minOccurs = '0']/
(@nillable, @minOccurs)
Note, this specification places no particular
semantics on the difference between annotating an element with
xsi:nil
and the absence of an element.
The following example [XML Schema 1.0] extract illustrates the use of the NillableOptionalElement pattern within an [XML Schema 1.0] document [NillableOptionalElement]:
<xs:element name="nillableOptionalMiddleName" type="ex:NillableOptionalMiddleName" /> <xs:complexType name="NillableOptionalMiddleName"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="middleName" type="xs:string" minOccurs="0" nillable="true" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NillableOptionalElement01]:
<ex:nillableOptionalMiddleName> <ex:firstName>Paul</ex:firstName> <ex:lastName>Downey</ex:lastName> </ex:nillableOptionalMiddleName>
as is the following element when included in an instance document [NillableOptionalElement02]:
<ex:nillableOptionalMiddleName> <ex:firstName>Paul</ex:firstName> <ex:middleName>Sumner</ex:middleName> <ex:lastName>Downey</ex:lastName> </ex:nillableOptionalMiddleName>
and the following element when included in an instance document [NillableOptionalElement03]:
<ex:nillableOptionalMiddleName> <ex:firstName>Paul</ex:firstName> <ex:middleName xsi:nil="true"/> <ex:lastName>Downey</ex:lastName> </ex:nillableOptionalMiddleName>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementTypeReferenceUnqualified pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementTypeReferenceUnqualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@name and @type and
namespace-uri-from-QName(resolve-QName(@type,.)) !=
'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/
(., @name, @type)
The following example [XML Schema 1.0] extract illustrates the use of the ElementTypeReferenceUnqualified pattern within an [XML Schema 1.0] document [ElementTypeReferenceUnqualified]:
<xs:element name="elementTypeReferenceUnqualified" type="ex:ElementTypeReferenceUnqualified" /> <xs:complexType name="ElementTypeReferenceUnqualifiedRef"> <xs:sequence> <xs:element name="referenced" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="ElementTypeReferenceUnqualified"> <xs:sequence> <xs:element name="text" type="ElementTypeReferenceUnqualifiedRef" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementTypeReferenceUnqualified01]:
<ex:elementTypeReferenceUnqualified> <ex:text> <ex:referenced>String</ex:referenced> </ex:text> </ex:elementTypeReferenceUnqualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementReferenceUnqualified pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementReferenceUnqualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@ref and not(contains(@ref, ':'))]/ (.,
@ref)
The following example [XML Schema 1.0] extract illustrates the use of the ElementReferenceUnqualified pattern within an [XML Schema 1.0] document [ElementReferenceUnqualified]:
<xs:element name="elementReferenceUnqualified" type="ex:ElementReferenceUnqualified" /> <xs:element name="elementReferenceUnqualifiedElement1" type="xs:string" /> <xs:element name="elementReferenceUnqualifiedElement2" type="xs:string" /> <xs:complexType name="ElementReferenceUnqualified"> <xs:sequence> <xs:element ref="elementReferenceUnqualifiedElement1" /> <xs:element ref="elementReferenceUnqualifiedElement2" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementReferenceUnqualified01]:
<ex:elementReferenceUnqualified> <ex:elementReferenceUnqualifiedElement1>String</ex:elementReferenceUnqualifiedElement1> <ex:elementReferenceUnqualifiedElement2>String</ex:elementReferenceUnqualifiedElement2> </ex:elementReferenceUnqualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LocalElementSimpleType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LocalElementSimpleType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[not(parent::xs:schema)]/xs:simpleType
The following example [XML Schema 1.0] extract illustrates the use of the LocalElementSimpleType pattern within an [XML Schema 1.0] document [LocalElementSimpleType]:
<xs:element name="localElementSimpleType" type="ex:LocalElementSimpleType" /> <xs:complexType name="LocalElementSimpleType"> <xs:sequence> <xs:element name="localElement"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="First" /> <xs:enumeration value="Second" /> <xs:enumeration value="Third" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LocalElementSimpleType01]:
<ex:localElementSimpleType> <ex:localElement>First</ex:localElement> </ex:localElementSimpleType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LocalElementComplexTypeEmptyExtension pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LocalElementComplexTypeEmptyExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[not(parent::xs:schema)]/xs:complexType[not(@name)]/xs:complexContent[xs:extension[@base]/not(*)]/
(../../(., @name), .., ., xs:extension/(., @base))
The following example [XML Schema 1.0] extract illustrates the use of the LocalElementComplexTypeEmptyExtension pattern within an [XML Schema 1.0] document [LocalElementComplexTypeEmptyExtension]:
<xs:element name="localElementComplexTypeEmptyExtension"> <xs:complexType> <xs:sequence> <xs:element name="extensionElement"> <xs:complexType> <xs:complexContent> <xs:extension base="ex:ExtensionType" /> </xs:complexContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="ExtensionType"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LocalElementComplexTypeEmptyExtension01]:
<ex:localElementComplexTypeEmptyExtension> <ex:extensionElement> <ex:element1>string</ex:element1> <ex:element2>string</ex:element2> </ex:extensionElement> </ex:localElementComplexTypeEmptyExtension>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementDefaultAnyType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementDefaultAnyType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@name and not(@type) and ./not(xs:simpleType or
xs:complexType or xs:unique or xs:key or
xs:keyref)]/(.)
The following example [XML Schema 1.0] extract illustrates the use of the ElementDefaultAnyType pattern within an [XML Schema 1.0] document [ElementDefaultAnyType]:
<xs:element name="elementDefaultAnyType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementDefaultAnyType01]:
<ex:elementDefaultAnyType/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the ElementKey
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementKey
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/xs:key[xs:selector and xs:field]/(.,
xs:selector, xs:selector/(@xpath), xs:field,
xs:field/(@xpath))
The following example [XML Schema 1.0] extract illustrates the use of the ElementKey pattern within an [XML Schema 1.0] document [ElementKey]:
<xs:element name="elementKey" type="ex:ElementKey"> <xs:key name="key"> <xs:selector xpath=".//item" /> <xs:field xpath="number" /> </xs:key> </xs:element> <xs:complexType name="ElementKey"> <xs:sequence> <xs:element name="item" type="ex:itemType" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="itemType"> <xs:sequence> <xs:element name="number" type="xs:integer" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementKey01]:
<ex:elementKey> <ex:item> <ex:number>1234</ex:number> </ex:item> </ex:elementKey>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the MaxOccurs0
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/MaxOccurs0
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@maxOccurs='0']/(., @maxOccurs,
@minOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the MaxOccurs0 pattern within an [XML Schema 1.0] document [MaxOccurs0]:
<xs:element name="maxOccurs0" type="ex:MaxOccurs0" /> <xs:complexType name="MaxOccurs0"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" maxOccurs="0" minOccurs="0" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [MaxOccurs001]:
<ex:maxOccurs0> <ex:element1>string1</ex:element1> </ex:maxOccurs0>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeFormQualified pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeFormQualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@form='qualified']/ (@form)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeFormQualified pattern within an [XML Schema 1.0] document [AttributeFormQualified]:
<xs:element name="attributeFormQualified" type="ex:AttributeFormQualified" /> <xs:complexType name="AttributeFormQualified"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> <xs:attribute name="attribute" form="qualified" type="xs:string" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeFormQualified01]:
<ex:attributeFormQualified ex:attribute="string"> <ex:element1>string</ex:element1> <ex:element2>string</ex:element2> </ex:attributeFormQualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ElementDefault pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementDefault
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/
(@default)
The following example [XML Schema 1.0] extract illustrates the use of the ElementDefault pattern within an [XML Schema 1.0] document [GlobalElementDefault]:
<xs:element name="globalElementDefault" type="xs:string" default="theDefaultValue" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementDefault01]:
<ex:globalElementDefault/>
as is the following element when included in an instance document [GlobalElementDefault02]:
<ex:globalElementDefault>theDefaultValue</ex:globalElementDefault>
and the following element when included in an instance document [GlobalElementDefault03]:
<ex:globalElementDefault>anotherValue</ex:globalElementDefault>
The following example [XML Schema 1.0] extract illustrates the use of the ElementDefault pattern within an [XML Schema 1.0] document [ElementDefault]:
<xs:element name="elementDefault" type="ex:ElementDefault" /> <xs:complexType name="ElementDefault"> <xs:sequence> <xs:element name="element" type="xs:string" default="default" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementDefault01]:
<ex:elementDefault> <ex:element>default</ex:element> </ex:elementDefault>
as is the following element when included in an instance document [ElementDefault02]:
<ex:elementDefault> <ex:element>wrong value</ex:element> </ex:elementDefault>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeRequired pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeRequired
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@use = 'required']/ (@use)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeRequired pattern within an [XML Schema 1.0] document [AttributeRequired]:
<xs:element name="attributeRequired" type="ex:AttributeRequired" /> <xs:complexType name="AttributeRequired"> <xs:sequence> <xs:element name="percentage" type="xs:int" /> </xs:sequence> <xs:attribute name="id" type="xs:string" /> <xs:attribute name="seasonal" type="xs:string" use="required" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeRequired01]:
<ex:attributeRequired id="1611" seasonal="yes"> <ex:percentage>5</ex:percentage> </ex:attributeRequired>
as is the following element when included in an instance document [AttributeRequired02]:
<ex:attributeRequired id="1612" seasonal="no"> <ex:percentage>2</ex:percentage> </ex:attributeRequired>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeFixed pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeFixed
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@fixed] / (@fixed)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeFixed pattern within an [XML Schema 1.0] document [AttributeFixed]:
<xs:element name="attributeFixed" type="ex:AttributeFixed" /> <xs:complexType name="AttributeFixed"> <xs:sequence> <xs:element name="fee" type="xs:int" /> </xs:sequence> <xs:attribute name="id" type="xs:string" /> <xs:attribute name="currency" type="xs:string" fixed="GBP" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeFixed01]:
<ex:attributeFixed id="1511" currency="GBP"> <ex:fee>500</ex:fee> </ex:attributeFixed>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeDefault pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeDefault
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@default] / (@default)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeDefault pattern within an [XML Schema 1.0] document [AttributeDefault]:
<xs:element name="attributeDefault" type="ex:AttributeDefault" /> <xs:complexType name="AttributeDefault"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="defaultedValue" type="xs:string" default="theDefaultValue" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeDefault01]:
<ex:attributeDefault/>
as is the following element when included in an instance document [AttributeDefault02]:
<ex:attributeDefault defaultedValue="theDefaultValue"/>
and the following element when included in an instance document [AttributeDefault03]:
<ex:attributeDefault defaultedValue=""/>
and the following element when included in an instance document [AttributeDefault04]:
<ex:attributeDefault defaultedValue="anotherValue"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeReferenceUnqualified pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeReferenceUnqualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@ref and not(contains(@ref, ':'))]/ (.,
@ref)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeReferenceUnqualified pattern within an [XML Schema 1.0] document [AttributeReferenceUnqualified]:
<xs:element name="attributeReferenceUnqualified" type="ex:AttributeReferenceUnqualified" /> <xs:attribute name="attributeReferenceUnqualifiedAtt" type="xs:string" /> <xs:complexType name="AttributeReferenceUnqualified"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> </xs:sequence> <xs:attribute ref="attributeReferenceUnqualifiedAtt" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeReferenceUnqualified01]:
<ex:attributeReferenceUnqualified ex:attributeReferenceUnqualifiedAtt="String"> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> </ex:attributeReferenceUnqualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeTypeReferenceUnqualified pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeTypeReferenceUnqualified
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@name and @type and
namespace-uri-from-QName(resolve-QName(@type,.)) !=
'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/
(., @name, @type)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeTypeReferenceUnqualified pattern within an [XML Schema 1.0] document [AttributeTypeReferenceUnqualified]:
<xs:element name="attributeTypeReferenceUnqualified" type="ex:AttributeTypeReferenceUnqualified" /> <xs:simpleType name="AttributeTypeReferenceUnqualifiedType"> <xs:restriction base="xs:decimal"> <xs:totalDigits value="3" /> </xs:restriction> </xs:simpleType> <xs:complexType name="AttributeTypeReferenceUnqualified"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> </xs:sequence> <xs:attribute name="localAttribute" type="AttributeTypeReferenceUnqualifiedType" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeTypeReferenceUnqualified01]:
<ex:attributeTypeReferenceUnqualified localAttribute="123"> <ex:firstElement>String</ex:firstElement> </ex:attributeTypeReferenceUnqualified>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LocalAttributeSimpleType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LocalAttributeSimpleType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[not(parent::xs:schema)]/xs:simpleType
The following example [XML Schema 1.0] extract illustrates the use of the LocalAttributeSimpleType pattern within an [XML Schema 1.0] document [LocalAttributeSimpleType]:
<xs:element name="localAttributeSimpleType" type="ex:LocalAttributeSimpleType" /> <xs:complexType name="LocalAttributeSimpleType"> <xs:sequence> <xs:element name="localElement1" type="xs:string" /> <xs:element name="localElement2" type="xs:string" /> </xs:sequence> <xs:attribute name="localAttribute"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="First" /> <xs:enumeration value="Second" /> <xs:enumeration value="Third" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LocalAttributeSimpleType01]:
<ex:localAttributeSimpleType localAttribute="First"> <ex:localElement1>String</ex:localElement1> <ex:localElement2>String</ex:localElement2> </ex:localAttributeSimpleType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeProhibited pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeProhibited
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute[@use = 'prohibited']/ (@use)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeProhibited pattern within an [XML Schema 1.0] document [AttributeProhibited]:
<xs:element name="attributeProhibited" type="ex:AttributeProhibited" /> <xs:complexType name="AttributeProhibited"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> <xs:attribute name="prohibitedAttribute" use="prohibited" type="xs:string" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeProhibited01]:
<ex:attributeProhibited> <ex:element1>element1</ex:element1> <ex:element2>element2</ex:element2> </ex:attributeProhibited>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalComplexTypeAbstract pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalComplexTypeAbstract
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:complexType[@abstract='true']/ (@abstract)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalComplexTypeAbstract pattern within an [XML Schema 1.0] document [GlobalComplexTypeAbstract]:
<xs:element name="globalComplexTypeAbstract" type="ex:GlobalComplexTypeAbstract" /> <xs:complexType name="GlobalComplexTypeExtra" abstract="true"> <xs:sequence> <xs:element name="premium" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="GlobalComplexTypeAbstract"> <xs:complexContent> <xs:extension base="ex:GlobalComplexTypeExtra" /> </xs:complexContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalComplexTypeAbstractExample01]:
<ex:globalComplexTypeAbstract> <ex:premium>1175</ex:premium> </ex:globalComplexTypeAbstract>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalComplexTypeBlock pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalComplexTypeBlock
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:complexType/ (@block)
The following example [XML Schema 1.0] extract illustrates the use of the GlobalComplexTypeBlock pattern within an [XML Schema 1.0] document [GlobalComplexTypeBlock]:
<xs:element name="globalComplexTypeBlock" type="ex:BlockAll" /> <xs:complexType name="BlockAll" block="#all"> <xs:sequence> <xs:element name="amount" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalComplexTypeBlockExample01]:
<ex:globalComplexTypeBlock> <ex:amount>1175</ex:amount> </ex:globalComplexTypeBlock>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalComplexTypeEmptyExtension pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalComplexTypeEmptyExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:complexType[@name]/xs:complexContent[xs:extension[@base]/not(*)]/
(../../(., @name), .., ., xs:extension/(., @base))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalComplexTypeEmptyExtension pattern within an [XML Schema 1.0] document [GlobalComplexTypeEmptyExtension]:
<xs:complexType name="GlobalComplexTypeEmptyExtension"> <xs:complexContent> <xs:extension base="xs:anyType" /> </xs:complexContent> </xs:complexType> <xs:element name="globalComplexTypeEmptyExtension" type="ex:GlobalComplexTypeEmptyExtension" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalComplexTypeEmptyExtension01]:
<ex:globalComplexTypeEmptyExtension/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NMTOKENEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NMTOKENEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:NMTOKEN') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the NMTOKENEnumerationType pattern within an [XML Schema 1.0] document [NMTOKENEnumerationType]:
<xs:element name="nMTOKENEnumerationType" type="ex:NMTOKENEnumerationType" /> <xs:simpleType name="NMTOKENEnumerationType"> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="token1" /> <xs:enumeration value="token2" /> <xs:enumeration value="token3" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NMTOKENEnumerationType01]:
<ex:nMTOKENEnumerationType>token1</ex:nMTOKENEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:int') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the IntEnumerationType pattern within an [XML Schema 1.0] document [IntEnumerationType]:
<xs:element name="intEnumerationType" type="ex:IntEnumerationType" /> <xs:simpleType name="IntEnumerationType"> <xs:restriction base="xs:int"> <xs:enumeration value="2" /> <xs:enumeration value="3" /> <xs:enumeration value="5" /> <xs:enumeration value="7" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntEnumerationType01]:
<ex:intEnumerationType>2</ex:intEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ShortEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ShortEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:short') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the ShortEnumerationType pattern within an [XML Schema 1.0] document [ShortEnumerationType]:
<xs:element name="shortEnumerationType" type="ex:ShortEnumerationType" /> <xs:simpleType name="ShortEnumerationType"> <xs:restriction base="xs:short"> <xs:enumeration value="7" /> <xs:enumeration value="11" /> <xs:enumeration value="13" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ShortEnumerationType01]:
<ex:shortEnumerationType>11</ex:shortEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LongEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LongEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:long') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the LongEnumerationType pattern within an [XML Schema 1.0] document [LongEnumerationType]:
<xs:element name="longEnumerationType" type="ex:LongEnumerationType" /> <xs:simpleType name="LongEnumerationType"> <xs:restriction base="xs:long"> <xs:enumeration value="9152052" /> <xs:enumeration value="7816230" /> <xs:enumeration value="7235733" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LongEnumerationType01]:
<ex:longEnumerationType>9152052</ex:longEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DoubleEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DoubleEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:double') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the DoubleEnumerationType pattern within an [XML Schema 1.0] document [DoubleEnumerationType]:
<xs:element name="doubleEnumerationType" type="ex:DoubleEnumerationType" /> <xs:simpleType name="DoubleEnumerationType"> <xs:restriction base="xs:double"> <xs:enumeration value="1267.43233E12" /> <xs:enumeration value="7234.34541E12" /> <xs:enumeration value="5733.65565E12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DoubleEnumerationType01]:
<ex:doubleEnumerationType>1267.43233E12</ex:doubleEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntegerEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntegerEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:integer') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the IntegerEnumerationType pattern within an [XML Schema 1.0] document [IntegerEnumerationType]:
<xs:element name="integerEnumerationType" type="ex:IntegerEnumerationType" /> <xs:simpleType name="IntegerEnumerationType"> <xs:restriction base="xs:integer"> <xs:enumeration value="4000000" /> <xs:enumeration value="5000000" /> <xs:enumeration value="6000000" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntegerEnumerationType01]:
<ex:integerEnumerationType>4000000</ex:integerEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:decimal') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the DecimalEnumerationType pattern within an [XML Schema 1.0] document [DecimalEnumerationType]:
<xs:element name="decimalEnumerationType" type="ex:DecimalEnumerationType" /> <xs:simpleType name="DecimalEnumerationType"> <xs:restriction base="xs:decimal"> <xs:enumeration value="+1000.0001" /> <xs:enumeration value="-1000.0001" /> <xs:enumeration value="1000.0002" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalEnumerationType01]:
<ex:decimalEnumerationType>1000.0002</ex:decimalEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
FloatEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/FloatEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:float') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the FloatEnumerationType pattern within an [XML Schema 1.0] document [FloatEnumerationType]:
<xs:element name="floatEnumerationType" type="ex:FloatEnumerationType" /> <xs:simpleType name="FloatEnumerationType"> <xs:restriction base="xs:float"> <xs:enumeration value="1267.43233E12" /> <xs:enumeration value="7234.34541E12" /> <xs:enumeration value="5733.65565E12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [FloatEnumerationType01]:
<ex:floatEnumerationType>1267.43233E12</ex:floatEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NonNegativeIntegerEnumerationType pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NonNegativeIntegerEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:nonNegativeInteger') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the NonNegativeIntegerEnumerationType pattern within an [XML Schema 1.0] document [NonNegativeIntegerEnumerationType]:
<xs:element name="nonNegativeIntegerEnumerationType" type="ex:NonNegativeIntegerEnumerationType" /> <xs:simpleType name="NonNegativeIntegerEnumerationType"> <xs:restriction base="xs:nonNegativeInteger"> <xs:enumeration value="12" /> <xs:enumeration value="24" /> <xs:enumeration value="33" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NonNegativeIntegerEnumerationType01]:
<ex:nonNegativeIntegerEnumerationType>12</ex:nonNegativeIntegerEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
PositiveIntegerEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/PositiveIntegerEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:positiveInteger') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the PositiveIntegerEnumerationType pattern within an [XML Schema 1.0] document [PositiveIntegerEnumerationType]:
<xs:element name="positiveIntegerEnumerationType" type="ex:PositiveIntegerEnumerationType" /> <xs:simpleType name="PositiveIntegerEnumerationType"> <xs:restriction base="xs:positiveInteger"> <xs:enumeration value="12" /> <xs:enumeration value="24" /> <xs:enumeration value="33" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [PositiveIntegerEnumerationType01]:
<ex:positiveIntegerEnumerationType>12</ex:positiveIntegerEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedIntEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedIntEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedInt') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedIntEnumerationType pattern within an [XML Schema 1.0] document [UnsignedIntEnumerationType]:
<xs:element name="unsignedIntEnumerationType" type="ex:UnsignedIntEnumerationType" /> <xs:simpleType name="UnsignedIntEnumerationType"> <xs:restriction base="xs:unsignedInt"> <xs:enumeration value="1111111111" /> <xs:enumeration value="2222222222" /> <xs:enumeration value="3333333333" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedIntEnumerationType01]:
<ex:unsignedIntEnumerationType>3333333333</ex:unsignedIntEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedLongEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedLongEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedLong') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedLongEnumerationType pattern within an [XML Schema 1.0] document [UnsignedLongEnumerationType]:
<xs:element name="unsignedLongEnumerationType" type="ex:UnsignedLongEnumerationType" /> <xs:simpleType name="UnsignedLongEnumerationType"> <xs:restriction base="xs:unsignedLong"> <xs:enumeration value="11111111111111" /> <xs:enumeration value="22222222222222" /> <xs:enumeration value="33333333333333" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedLongEnumerationType01]:
<ex:unsignedLongEnumerationType>33333333333333</ex:unsignedLongEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedShortEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedShortEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedShort') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedShortEnumerationType pattern within an [XML Schema 1.0] document [UnsignedShortEnumerationType]:
<xs:element name="unsignedShortEnumerationType" type="ex:UnsignedShortEnumerationType" /> <xs:simpleType name="UnsignedShortEnumerationType"> <xs:restriction base="xs:unsignedShort"> <xs:enumeration value="1111" /> <xs:enumeration value="2222" /> <xs:enumeration value="3333" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedShortEnumerationType01]:
<ex:unsignedShortEnumerationType>3333</ex:unsignedShortEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
TokenEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/TokenEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:token') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the TokenEnumerationType pattern within an [XML Schema 1.0] document [TokenEnumerationType]:
<xs:element name="tokenEnumerationType" type="ex:TokenEnumerationType" /> <xs:simpleType name="TokenEnumerationType"> <xs:restriction base="xs:token"> <xs:enumeration value="1" /> <xs:enumeration value="2" /> <xs:enumeration value="3" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [TokenEnumerationType01]:
<ex:tokenEnumerationType>1</ex:tokenEnumerationType>
as is the following element when included in an instance document [TokenEnumerationType02]:
<ex:tokenEnumerationType>2</ex:tokenEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LanguageEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LanguageEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:language') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
Note, best current practice for the use of the
xs:language
type is described in [BCP
47].
The following example [XML Schema 1.0] extract illustrates the use of the LanguageEnumerationType pattern within an [XML Schema 1.0] document [LanguageEnumerationType]:
<xs:element name="languageEnumerationType" type="ex:LanguageEnumerationType" /> <xs:simpleType name="LanguageEnumerationType"> <xs:restriction base="xs:language"> <xs:enumeration value="en" /> <xs:enumeration value="en-US" /> <xs:enumeration value="fr" /> <xs:enumeration value="de" /> <xs:enumeration value="it" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LanguageEnumerationType01]:
<ex:languageEnumerationType>en</ex:languageEnumerationType>
as is the following element when included in an instance document [LanguageEnumerationType02]:
<ex:languageEnumerationType>it</ex:languageEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SimpleTypeEnumerationType pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SimpleTypeEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base and
namespace-uri-from-QName(resolve-QName(@base,.)) !=
'http://www.w3.org/2001/XMLSchema' ]/ (., @base, xs:enumeration/(.,
@value))
The following example [XML Schema 1.0] extract illustrates the use of the SimpleTypeEnumerationType pattern within an [XML Schema 1.0] document [SimpleTypeEnumerationType]:
<xs:element name="simpleTypeEnumerationType" type="ex:SimpleTypeEnumerationType" /> <xs:simpleType name="SimpleTypeEnumerationType"> <xs:restriction base="ex:SimpleTypeEnumerationTypeBase"> <xs:enumeration value="One" /> <xs:enumeration value="Two" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="SimpleTypeEnumerationTypeBase"> <xs:restriction base="xs:string"> <xs:enumeration value="One" /> <xs:enumeration value="Two" /> <xs:enumeration value="Three" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SimpleTypeEnumerationType01]:
<ex:simpleTypeEnumerationType>One</ex:simpleTypeEnumerationType>
as is the following element when included in an instance document [SimpleTypeEnumerationType02]:
<ex:simpleTypeEnumerationType>Two</ex:simpleTypeEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalSimpleTypeTotalDigits pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalSimpleTypeTotalDigits
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:decimal') and xs:totalDigits/@value]/ (., @base,
xs:totalDigits/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the DecimalSimpleTypeTotalDigits pattern within an [XML Schema 1.0] document [DecimalSimpleTypeTotalDigits]:
<xs:element name="decimalSimpleTypeTotalDigits" type="ex:DecimalSimpleTypeTotalDigits" /> <xs:simpleType name="DecimalSimpleTypeTotalDigits"> <xs:restriction base="xs:decimal"> <xs:totalDigits value="5" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalSimpleTypeTotalDigits01]:
<ex:decimalSimpleTypeTotalDigits>1234</ex:decimalSimpleTypeTotalDigits>
as is the following element when included in an instance document [DecimalSimpleTypeTotalDigits02]:
<ex:decimalSimpleTypeTotalDigits>12345</ex:decimalSimpleTypeTotalDigits>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalSimpleTypeFractionDigits pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalSimpleTypeFractionDigits
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:decimal') and xs:fractionDigits/@value]/ (., @base,
xs:fractionDigits/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the DecimalSimpleTypeFractionDigits pattern within an [XML Schema 1.0] document [DecimalSimpleTypeFractionDigits]:
<xs:element name="decimalSimpleTypeFractionDigits" type="ex:DecimalSimpleTypeFractionDigits" /> <xs:simpleType name="DecimalSimpleTypeFractionDigits"> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="2" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalSimpleTypeFractionDigits01]:
<ex:decimalSimpleTypeFractionDigits>1234.00</ex:decimalSimpleTypeFractionDigits>
as is the following element when included in an instance document [DecimalSimpleTypeFractionDigits02]:
<ex:decimalSimpleTypeFractionDigits>1234</ex:decimalSimpleTypeFractionDigits>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
QNameEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/QNameEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:QName') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the QNameEnumerationType pattern within an [XML Schema 1.0] document [QNameEnumerationType]:
<xs:element name="qNameEnumerationType" type="ex:QNameSimpleType" /> <xs:simpleType name="QNameSimpleType"> <xs:restriction base="xs:QName"> <xs:enumeration value="ex:firstQName" /> <xs:enumeration value="ex:secondQName" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [QNameEnumerationType01]:
<ex:qNameEnumerationType>ex:firstQName</ex:qNameEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyURIEnumerationType pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyURIEnumerationType
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:anyURI') and xs:enumeration]/ (., @base,
xs:enumeration/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the AnyURIEnumerationType pattern within an [XML Schema 1.0] document [AnyURIEnumerationType]:
<xs:element name="anyURIEnumerationType" type="ex:URISimpleType" /> <xs:simpleType name="URISimpleType"> <xs:restriction base="xs:anyURI"> <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyURIEnumerationType01]:
<ex:anyURIEnumerationType>http://www.w3.org/2005/08/addressing/reply</ex:anyURIEnumerationType>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeAll pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeAll
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:all/ (., xs:element/(.,
@name))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeAll pattern within an [XML Schema 1.0] document [ComplexTypeAll]:
<xs:element name="complexTypeAll" type="ex:ComplexTypeAll" /> <xs:complexType name="ComplexTypeAll"> <xs:all> <xs:element name="name" type="xs:string" /> <xs:element name="shade" type="xs:string" /> <xs:element name="length" type="xs:int" /> </xs:all> <xs:attribute name="id" type="xs:string" /> <xs:attribute name="inStock" type="xs:int" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeAll01]:
<ex:complexTypeAll id="6026" inStock="232"> <ex:name>Widget</ex:name> <ex:length>33</ex:length> <ex:shade>Light Blue</ex:shade> </ex:complexTypeAll>
as is the following element when included in an instance document [ComplexTypeAll02]:
<ex:complexTypeAll inStock="332" id="6026"> <ex:shade>Green</ex:shade> <ex:length>21</ex:length> <ex:name>Widget</ex:name> </ex:complexTypeAll>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeChoice pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeChoice
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:choice/ (., xs:element/(.,
@name))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeChoice pattern within an [XML Schema 1.0] document [ComplexTypeChoice]:
<xs:element name="fruit" type="ex:Fruit" /> <xs:complexType name="Fruit"> <xs:choice> <xs:element name="apple" type="xs:int" /> <xs:element name="orange" type="xs:string" /> <xs:element name="banana" type="xs:int" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeChoice01]:
<ex:fruit> <ex:apple>21</ex:apple> </ex:fruit>
as is the following element when included in an instance document [ComplexTypeChoice02]:
<ex:fruit> <ex:orange>Two Hundred</ex:orange> </ex:fruit>
and the following element when included in an instance document [ComplexTypeChoice03]:
<ex:fruit> <ex:banana>329</ex:banana> </ex:fruit>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeOnlyAttributes pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeOnlyAttributes
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:attribute[../not(xs:choice or
xs:sequence or xs:all or xs:anyAttribute or xs:group or
xs:attributeGroup or xs:simpleContent or xs:complexContent)]/ (.,
..,@use)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeOnlyAttributes pattern within an [XML Schema 1.0] document [ComplexTypeOnlyAttributes]:
<xs:element name="complexTypeOnlyAttributes" type="ex:ComplexTypeOnlyAttributes" /> <xs:complexType name="ComplexTypeOnlyAttributes"> <xs:attribute name="a1" type="xs:string" /> <xs:attribute name="a2" type="xs:int" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeOnlyAttributes01]:
<ex:complexTypeOnlyAttributes a1="11226026" a2="223232"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeOnlyAttributeGroup pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeOnlyAttributeGroup
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:attributeGroup[../not(xs:choice or
xs:sequence or xs:all or xs:anyAttribute or xs:group or
xs:simpleContent or xs:complexContent)]/(., ..,@ref)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeOnlyAttributeGroup pattern within an [XML Schema 1.0] document [ComplexTypeOnlyAttributeGroup]:
<xs:element name="complexTypeOnlyAttributeGroup" type="ex:ComplexTypeOnlyAttributeGroup" /> <xs:complexType name="ComplexTypeOnlyAttributeGroup"> <xs:attributeGroup ref="ex:CommonOnlyAttributeGroup" /> </xs:complexType> <xs:attributeGroup name="CommonOnlyAttributeGroup"> <xs:attribute name="id" type="xs:ID" use="optional" form="unqualified" /> </xs:attributeGroup>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeOnlyAttributeGroup01]:
<ex:complexTypeOnlyAttributeGroup id="AttributeGroup_contract_001"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GlobalElementSequenceAny pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GlobalElementSequenceAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:element[@name]/xs:complexType/xs:sequence[xs:any and
not(xs:element)]/ (../../(., @name))
The following example [XML Schema 1.0] extract illustrates the use of the GlobalElementSequenceAny pattern within an [XML Schema 1.0] document [GlobalElementSequenceAny]:
<xs:element name="globalElementSequenceAny"> <xs:complexType> <xs:sequence> <xs:any processContents="skip" /> </xs:sequence> </xs:complexType> </xs:element>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GlobalElementSequenceAny01]:
<ex:globalElementSequenceAny> <ex:data> some data </ex:data> </ex:globalElementSequenceAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeAnyAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeAnyAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeAnyAttribute pattern within an [XML Schema 1.0] document [ComplexTypeAnyAttribute]:
<xs:element name="complexTypeAnyAttribute" type="ex:ComplexTypeAnyAttribute" /> <xs:complexType name="ComplexTypeAnyAttribute"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeAnyAttribute01]:
<ex:complexTypeAnyAttribute anyattr="string"> <ex:element1>string</ex:element1> <ex:element2>string</ex:element2> </ex:complexTypeAnyAttribute>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeStrict pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeStrict
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(not(@processContents) or
@processContents = 'strict') and (not(@namespace) or @namespace =
'##any')]/ (., @processContents, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeStrict pattern within an [XML Schema 1.0] document [AnyAttributeStrict]:
<xs:element name="anyAttributeStrict" type="ex:AnyAttributeStrict" /> <xs:complexType name="AnyAttributeStrict"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> <xs:anyAttribute /> </xs:complexType> <xs:attribute name="eyeColor" type="xs:string" /> <xs:attribute name="hairColor" type="xs:string" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeStrict01]:
<ex:anyAttributeStrict ex:eyeColor="blue"> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:anyAttributeStrict>
as is the following element when included in an instance document [AnyAttributeStrict02]:
<ex:anyAttributeStrict ex:hairColor="green"> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:anyAttributeStrict>
and the following element when included in an instance document [AnyAttributeStrict03]:
<ex:anyAttributeStrict ex:eyeColor="blue" ex:hairColor="green"> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:anyAttributeStrict>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeLax pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeLax
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(@processContents = 'lax')
and (not(@namespace) or @namespace = '##any')]/ (.,
@processContents, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeLax pattern within an [XML Schema 1.0] document [AnyAttributeLax]:
<xs:element name="anyAttributeLax" type="ex:AnyAttributeLax" /> <xs:complexType name="AnyAttributeLax"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="lax" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeLax01]:
<ex:anyAttributeLax eyeColor="blue"> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:anyAttributeLax>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeSkip pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeSkip
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(@processContents = 'skip')
and (not(@namespace) or @namespace = '##any')]/ (.,
@processContents, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeSkip pattern within an [XML Schema 1.0] document [AnyAttributeSkip]:
<xs:element name="anyAttributeSkip" type="ex:AnyAttributeSkip" /> <xs:complexType name="AnyAttributeSkip"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeSkip01]:
<ex:anyAttributeSkip eyeColor="blue"> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:anyAttributeSkip>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeOtherStrict pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeOtherStrict
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(not(@processContents) or
@processContents = 'strict') and (@namespace = '##other')]/ (.,
@processContents, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeOtherStrict pattern within an [XML Schema 1.0] document [AnyAttributeOtherStrict]:
<xs:import namespace="http://www.w3.org/2002/ws/databinding/examples/6/09/strict/" schemaLocation="../strict.xsd" /> <xs:element name="anyAttributeOtherStrict" type="ex:AnyAttributeOtherStrict" /> <xs:complexType name="AnyAttributeOtherStrict"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="strict" namespace="##other" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeOtherStrict01]:
<ex:anyAttributeOtherStrict ex2:strictAttribute="value1"> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> </ex:anyAttributeOtherStrict>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeOtherLax pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeOtherLax
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(@processContents = 'lax')
and (@namespace = '##other')]/ (., @processContents,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeOtherLax pattern within an [XML Schema 1.0] document [AnyAttributeOtherLax]:
<xs:element name="anyAttributeOtherLax" type="ex:AnyAttributeOtherLax" /> <xs:complexType name="AnyAttributeOtherLax"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="lax" namespace="##other" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeOtherLax01]:
<ex:anyAttributeOtherLax ex2:otherAttribute="text"> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> </ex:anyAttributeOtherLax>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeOtherSkip pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeOtherSkip
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[(@processContents = 'skip')
and (@namespace = '##other')]/ (., @processContents,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeOtherSkip pattern within an [XML Schema 1.0] document [AnyAttributeOtherSkip]:
<xs:element name="anyAttributeOtherSkip" type="ex:AnyAttributeOtherSkip" /> <xs:complexType name="AnyAttributeOtherSkip"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="skip" namespace="##other" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeOtherSkip01]:
<ex:anyAttributeOtherSkip ex2:otherAttribute="text"> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> </ex:anyAttributeOtherSkip>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSimpleContent pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSimpleContent
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:simpleContent/xs:extension[@base]/ (..,
., ./@base, xs:attribute/ (., @name))
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSimpleContent pattern within an [XML Schema 1.0] document [ExtendedSimpleContent]:
<xs:element name="extendedSimpleContent" type="ex:ExtendedSimpleContent" /> <xs:complexType name="ExtendedSimpleContent"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="attribute" /> </xs:extension> </xs:simpleContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSimpleContent01]:
<ex:extendedSimpleContent attribute="string">string</ex:extendedSimpleContent>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SOAPEncodedArray pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SOAPEncodedArray
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
./xs:complexType[@name]/xs:complexContent/xs:restriction[
@base/resolve-QName(.,..) = xs:QName('soap11enc:Array')]/
xs:attribute[(@ref/resolve-QName(.,..) =
xs:QName('soap11enc:arrayType')) and @wsdl11:arrayType]/ (../..,
../(., @base), ., @ref, @wsdl11:arrayType)
The following example [XML Schema 1.0] document [SOAPEncodedArray] illustrates the use of the SOAPEncodedArray pattern:
<xs:schema targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" elementFormDefault="qualified"> <xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" /> <xs:element name="soapEncodedArray" type="ex:SOAPEncodedArray" /> <xs:complexType name="SOAPEncodedArray"> <xs:complexContent> <xs:restriction base="soap11enc:Array"> <xs:attribute ref="soap11enc:arrayType" wsdl11:arrayType="string[]" /> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SOAPEncodedArray01]:
<ex:soapEncodedArray/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedSimpleContent pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedSimpleContent
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:simpleContent/xs:restriction[@base]/(..,
., @base, child::*, child::*/@value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedSimpleContent pattern within an [XML Schema 1.0] document [RestrictedSimpleContent]:
<xs:element name="restrictedSimpleContent" type="ex:RestrictedSimpleContent" /> <xs:complexType name="RestrictedSimpleContent"> <xs:simpleContent> <xs:restriction base="ex:SomeSimpleContent"> <xs:minInclusive value="1" /> <xs:maxInclusive value="99" /> </xs:restriction> </xs:simpleContent> </xs:complexType> <xs:complexType name="SomeSimpleContent"> <xs:simpleContent> <xs:extension base="ex:SimpleType"> <xs:attribute name="Currency" type="xs:string" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:simpleType name="SimpleType"> <xs:restriction base="xs:int"> <xs:minExclusive value="0" /> <xs:maxExclusive value="100" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedSimpleContent01]:
<ex:restrictedSimpleContent>1</ex:restrictedSimpleContent>
as is the following element when included in an instance document [RestrictedSimpleContent02]:
<ex:restrictedSimpleContent>99</ex:restrictedSimpleContent>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeChoiceExtension pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeChoiceExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent[xs:extension[@base]/xs:choice]/
(., xs:extension/ (., @base, xs:choice/(., xs:element/(.,
@name))))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeChoiceExtension pattern within an [XML Schema 1.0] document [ComplexTypeChoiceExtension]:
<xs:element name="complexTypeChoiceExtension" type="ex:ComplexTypeChoiceExtension" /> <xs:complexType name="ComplexTypeChoiceBase"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="ComplexTypeChoiceExtension"> <xs:complexContent> <xs:extension base="ex:ComplexTypeChoiceBase"> <xs:choice> <xs:element name="element3" type="xs:string" /> <xs:element name="element4" type="xs:string" /> </xs:choice> </xs:extension> </xs:complexContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeChoiceExtension01]:
<ex:complexTypeChoiceExtension> <ex:element1>element1</ex:element1> <ex:element2>element2</ex:element2> <ex:element3>element3</ex:element3> </ex:complexTypeChoiceExtension>
as is the following element when included in an instance document [ComplexTypeChoiceExtension02]:
<ex:complexTypeChoiceExtension> <ex:element1>element1</ex:element1> <ex:element2>element2</ex:element2> <ex:element4>element4</ex:element4> </ex:complexTypeChoiceExtension>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeAttributeGroupExtension pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeAttributeGroupExtension
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent[xs:extension[@base]/xs:attributeGroup]/
(., xs:extension/ (., @base, xs:attributeGroup))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeAttributeGroupExtension pattern within an [XML Schema 1.0] document [ComplexTypeAttributeGroupExtension]:
<xs:element name="complexTypeAttributeGroupExtension" type="ex:ComplexTypeAttributeGroupExtension" /> <xs:complexType name="ComplexTypeAttributeGroupBase"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="ComplexTypeAttributeGroupExtension"> <xs:complexContent> <xs:extension base="ex:ComplexTypeAttributeGroupBase"> <xs:attributeGroup ref="ex:CommonAttributes" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:attributeGroup name="CommonAttributes"> <xs:attribute name="id" type="xs:ID" use="optional" form="unqualified" /> </xs:attributeGroup>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeAttributeGroupExtension01]:
<ex:complexTypeAttributeGroupExtension id="ComplexTypeAttributeGroupExtension_01"> <ex:element1>element1</ex:element1> <ex:element2>element2</ex:element2> </ex:complexTypeAttributeGroupExtension>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeAttributeRestriction pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeAttributeRestriction
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:attribute]/
(., xs:restriction/(., @base, xs:attribute/(.,
@name)))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeAttributeRestriction pattern within an [XML Schema 1.0] document [ComplexTypeAttributeRestriction]:
<xs:element name="complexTypeAttributeRestriction" type="ex:ComplexTypeAttributeRestriction" /> <xs:complexType name="ComplexTypeAttributeRestrictionBase"> <xs:sequence> <xs:element name="element1" type="xs:string" /> </xs:sequence> <xs:attribute name="attrRestriction" type="xs:string" /> </xs:complexType> <xs:complexType name="ComplexTypeAttributeRestriction"> <xs:complexContent> <xs:restriction base="ex:ComplexTypeAttributeRestrictionBase"> <xs:sequence> <xs:element name="element1" type="xs:string" /> </xs:sequence> <xs:attribute name="attrRestriction" type="xs:string" use="required" /> </xs:restriction> </xs:complexContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeAttributeRestriction01]:
<ex:complexTypeAttributeRestriction attrRestriction="value"> <ex:element1>string</ex:element1> </ex:complexTypeAttributeRestriction>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeSequenceRestriction pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeSequenceRestriction
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:sequence]/
(., xs:restriction/(., @base, xs:sequence))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeSequenceRestriction pattern within an [XML Schema 1.0] document [ComplexTypeSequenceRestriction]:
<xs:element name="complexTypeSequenceRestriction" type="ex:ComplexTypeSequenceRestriction" /> <xs:complexType name="ComplexTypeSequenceRestrictionBase"> <xs:sequence> <xs:element name="element1" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="ComplexTypeSequenceRestriction"> <xs:complexContent> <xs:restriction base="ex:ComplexTypeSequenceRestrictionBase"> <xs:sequence> <xs:element name="element1" type="xs:string" /> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeSequenceRestriction01]:
<ex:complexTypeSequenceRestriction> <ex:element1>string</ex:element1> </ex:complexTypeSequenceRestriction>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexContentRestrictionAnyAttribute pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexContentRestrictionAnyAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent/xs:restriction/xs:anyAttribute/(.,
@namespace, @processContents)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexContentRestrictionAnyAttribute pattern within an [XML Schema 1.0] document [ComplexContentRestrictionAnyAttribute]:
<xs:element name="complexContentRestrictionAnyAttribute" type="ex:ComplexContentRestrictionAnyAttribute" /> <xs:complexType name="ComplexContentRestrictionAnyAttribute"> <xs:complexContent> <xs:restriction base="ex:ComplexTypeToBeRestricted"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:restriction> </xs:complexContent> </xs:complexType> <xs:complexType name="ComplexTypeToBeRestricted"> <xs:sequence> <xs:element name="element1" type="xs:string" minOccurs="0" /> <xs:element name="element2" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexContentRestrictionAnyAttribute01]:
<ex:complexContentRestrictionAnyAttribute> <ex:element1>value1</ex:element1> <ex:element2>value2</ex:element2> </ex:complexContentRestrictionAnyAttribute>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexContentExtensionAnyAttribute pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexContentExtensionAnyAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent/xs:extension/xs:anyAttribute/(.,
@namespace, @processContents)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexContentExtensionAnyAttribute pattern within an [XML Schema 1.0] document [ComplexContentExtensionAnyAttribute]:
<xs:element name="complexContentExtensionAnyAttribute" type="ex:ComplexContentExtensionAnyAttribute" /> <xs:complexType name="ComplexContentExtensionAnyAttribute"> <xs:complexContent> <xs:extension base="ex:ComplexTypeToBeExtended"> <xs:sequence> <xs:element name="element3" type="xs:string" minOccurs="0" /> <xs:element name="element4" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ComplexTypeToBeExtended"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="skip" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexContentExtensionAnyAttribute01]:
<ex:complexContentExtensionAnyAttribute> <ex:element1>value1</ex:element1> <ex:element2>value2</ex:element2> </ex:complexContentExtensionAnyAttribute>
as is the following element when included in an instance document [ComplexContentExtensionAnyAttribute02]:
<ex:complexContentExtensionAnyAttribute> <ex:element1>value1</ex:element1> <ex:element2>value2</ex:element2> <ex:element3>value3</ex:element3> <ex:element4>value4</ex:element4> </ex:complexContentExtensionAnyAttribute>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeFinal pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeFinal
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType[@final]/(., @final)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeFinal pattern within an [XML Schema 1.0] document [ComplexTypeFinal]:
<xs:element name="complexTypeFinal" type="ex:ComplexTypeFinal" /> <xs:complexType name="ComplexTypeFinal" final="#all"> <xs:sequence> <xs:element name="element1" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeFinal01]:
<ex:complexTypeFinal> <ex:element1>value1</ex:element1> <ex:element1>value2</ex:element1> <ex:element1>value3</ex:element1> </ex:complexTypeFinal>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeExtensionAnnotationOnly pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeExtensionAnnotationOnly
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:complexContent/xs:extension[@base]/xs:annotation[not(preceding-sibling::*)
and not(following-sibling::*)]/ (../(., @base),
../../(.))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeExtensionAnnotationOnly pattern within an [XML Schema 1.0] document [ComplexTypeExtensionAnnotationOnly]:
<xs:element name="complexTypeExtensionAnnotationOnly" type="ex:ComplexTypeExtensionAnnotationOnly" /> <xs:complexType name="ComplexTypeExtensionAnnotationOnly"> <xs:complexContent> <xs:extension base="ex:ComplexTypeExtension"> <xs:annotation> <xs:documentation /> </xs:annotation> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ComplexTypeExtension"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeExtensionAnnotationOnly01]:
<ex:complexTypeExtensionAnnotationOnly> <ex:element1>string</ex:element1> <ex:element2>string</ex:element2> </ex:complexTypeExtensionAnnotationOnly>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SimpleContentAnyAttributeSkip pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SimpleContentAnyAttributeSkip
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents
= 'skip')]/ (., @processContents)
The following example [XML Schema 1.0] extract illustrates the use of the SimpleContentAnyAttributeSkip pattern within an [XML Schema 1.0] document [SimpleContentAnyAttributeSkip]:
<xs:element name="simpleContentAnyAttributeSkip" type="ex:SimpleContentAnyAttributeSkip" /> <xs:complexType name="SimpleContentAnyAttributeSkip"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:anyAttribute processContents="skip" /> </xs:extension> </xs:simpleContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SimpleContentAnyAttributeSkip01]:
<ex:simpleContentAnyAttributeSkip skipAttribute="string">string</ex:simpleContentAnyAttributeSkip>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SimpleContentAnyAttributeLax pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SimpleContentAnyAttributeLax
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents
= 'lax') and (@namespace = '##other')]/ (., @processContents,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the SimpleContentAnyAttributeLax pattern within an [XML Schema 1.0] document [SimpleContentAnyAttributeLax]:
<xs:element name="simpleContentAnyAttributeLax" type="ex:SimpleContentAnyAttributeLax" /> <xs:complexType name="SimpleContentAnyAttributeLax"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:anyAttribute processContents="lax" namespace="##other" /> </xs:extension> </xs:simpleContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SimpleContentAnyAttributeLax01]:
<ex:simpleContentAnyAttributeLax ex2:laxAttribute="string">some data</ex:simpleContentAnyAttributeLax>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SimpleContentAnyAttributeStrict pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SimpleContentAnyAttributeStrict
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[not(@processContents)
or (@processContents = 'strict') and (@namespace = '##other')]/ (.,
@processContents, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the SimpleContentAnyAttributeStrict pattern within an [XML Schema 1.0] document [SimpleContentAnyAttributeStrict]:
<xs:import namespace="http://www.w3.org/2002/ws/databinding/examples/6/09/strict/" schemaLocation="../strict.xsd" /> <xs:element name="simpleContentAnyAttributeStrict" type="ex:SimpleContentAnyAttributeStrict" /> <xs:complexType name="SimpleContentAnyAttributeStrict"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:anyAttribute processContents="strict" namespace="##other" /> </xs:extension> </xs:simpleContent> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SimpleContentAnyAttributeStrict01]:
<ex:simpleContentAnyAttributeStrict ex2:strictAttribute="value1">some data</ex:simpleContentAnyAttributeStrict>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyAttributeNamespacedFinite pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyAttributeNamespacedFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:anyAttribute[@processContents and
@namespace and (not (@namespace = '##targetNamespace')) and (not
(@namespace = '##any')) and (not (@namespace = '##local')) and (not
(@namespace = '##other'))]/ (., @processContents,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the AnyAttributeNamespacedFinite pattern within an [XML Schema 1.0] document [AnyAttributeNamespacedFinite]:
<xs:element name="anyAttributeNamespacedFinite" type="ex:AnyAttributeNamespacedFinite" /> <xs:complexType name="AnyAttributeNamespacedFinite"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> </xs:sequence> <xs:anyAttribute processContents="lax" namespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" /> </xs:complexType> <xs:attribute name="otherAttribute"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="value1" /> <xs:enumeration value="value2" /> </xs:restriction> </xs:simpleType> </xs:attribute>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyAttributeNamespacedFinite01]:
<ex:anyAttributeNamespacedFinite ex:otherAttribute="value1"> <ex:firstElement>element1</ex:firstElement> <ex:lastElement>element2</ex:lastElement> </ex:anyAttributeNamespacedFinite>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeSequenceChoice pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeSequenceChoice
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:sequence/xs:choice/ (., xs:element/(.,
@name))
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeSequenceChoice pattern within an [XML Schema 1.0] document [ComplexTypeSequenceChoice]:
<xs:element name="mortgage" type="ex:Mortgage" /> <xs:complexType name="Mortgage"> <xs:sequence> <xs:element name="amount" type="xs:int" /> <xs:choice> <xs:element name="repayment" type="ex:Repayment" /> <xs:element name="interestonly" type="ex:InterestOnly" /> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="Repayment"> <xs:sequence> <xs:element name="years" type="xs:int" /> <xs:element name="months" type="xs:int" /> <xs:element name="rate" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="InterestOnly"> <xs:sequence> <xs:element name="years" type="xs:int" /> <xs:element name="rate" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeSequenceChoice01]:
<ex:mortgage> <ex:amount>225000</ex:amount> <ex:repayment> <ex:years>20</ex:years> <ex:months>6</ex:months> <ex:rate>5.25</ex:rate> </ex:repayment> </ex:mortgage>
as is the following element when included in an instance document [ComplexTypeSequenceChoice02]:
<ex:mortgage> <ex:amount>225000</ex:amount> <ex:interestonly> <ex:years>25</ex:years> <ex:rate>5.50</ex:rate> </ex:interestonly> </ex:mortgage>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceSequenceElement pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceSequenceElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:sequence/xs:element/ (., ..)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceSequenceElement pattern within an [XML Schema 1.0] document [SequenceSequenceElement]:
<xs:element name="sequenceSequenceElement" type="ex:SequenceSequenceElement" /> <xs:complexType name="SequenceSequenceElement"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:sequence minOccurs="0"> <xs:element name="middleName" type="xs:string" /> <xs:sequence minOccurs="0"> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:sequence> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceSequenceElement01]:
<ex:sequenceSequenceElement> <ex:firstName>Paul</ex:firstName> </ex:sequenceSequenceElement>
as is the following element when included in an instance document [SequenceSequenceElement02]:
<ex:sequenceSequenceElement> <ex:firstName>Paul</ex:firstName> <ex:middleName>Sumner</ex:middleName> </ex:sequenceSequenceElement>
and the following element when included in an instance document [SequenceSequenceElement03]:
<ex:sequenceSequenceElement> <ex:firstName>Paul</ex:firstName> <ex:middleName>Sumner</ex:middleName> <ex:lastName>Downey</ex:lastName> </ex:sequenceSequenceElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceMinOccurs0 pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceMinOccurs0
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence[@minOccurs = '0' and (not(@maxOccurs) or
@maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMinOccurs0 pattern within an [XML Schema 1.0] document [SequenceMinOccurs0]:
<xs:element name="sequenceMinOccurs0" type="ex:SequenceMinOccurs0" /> <xs:complexType name="SequenceMinOccurs0"> <xs:sequence minOccurs="0"> <xs:element name="firstName" type="xs:string" /> <xs:element name="middleName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMinOccurs001]:
<ex:sequenceMinOccurs0> <ex:firstName>Paul</ex:firstName> <ex:middleName>Sumner</ex:middleName> <ex:lastName>Downey</ex:lastName> </ex:sequenceMinOccurs0>
as is the following element when included in an instance document [SequenceMinOccurs002]:
<ex:sequenceMinOccurs0/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceMinOccurs0MaxOccursUnbounded pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceMinOccurs0MaxOccursUnbounded
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence[@minOccurs = '0' and @maxOccurs =
'unbounded']/ (@minOccurs, @maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMinOccurs0MaxOccursUnbounded pattern within an [XML Schema 1.0] document [SequenceMinOccurs0MaxOccursUnbounded]:
<xs:element name="durationListSequence" type="ex:DurationListSequence" /> <xs:complexType name="DurationListSequence"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="durationVal" type="xs:string" /> <xs:element name="durationPercentage" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMinOccurs0MaxOccursUnbounded101]:
<ex:durationListSequence> <ex:durationVal>44</ex:durationVal> <ex:durationPercentage>33</ex:durationPercentage> <ex:durationVal>24</ex:durationVal> <ex:durationPercentage>45</ex:durationPercentage> <ex:durationVal>64</ex:durationVal> <ex:durationPercentage>22</ex:durationPercentage> </ex:durationListSequence>
as is the following element when included in an instance document [SequenceMinOccurs0MaxOccursUnbounded102]:
<ex:durationListSequence/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceMinOccurs1MaxOccursUnbounded pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceMinOccurs1MaxOccursUnbounded
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence[(not(@minOccurs) or @minOccurs = '1') and
@maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMinOccurs1MaxOccursUnbounded pattern within an [XML Schema 1.0] document [SequenceMinOccurs1MaxOccursUnbounded]:
<xs:element name="ageListSequence" type="ex:AgeListSequence" /> <xs:complexType name="AgeListSequence"> <xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element name="ageVal" type="xs:string" /> <xs:element name="agePercentage" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMinOccurs1MaxOccursUnbounded101]:
<ex:ageListSequence> <ex:ageVal>44</ex:ageVal> <ex:agePercentage>33</ex:agePercentage> <ex:ageVal>24</ex:ageVal> <ex:agePercentage>45</ex:agePercentage> <ex:ageVal>64</ex:ageVal> <ex:agePercentage>22</ex:agePercentage> </ex:ageListSequence>
as is the following element when included in an instance document [SequenceMinOccurs1MaxOccursUnbounded102]:
<ex:ageListSequence> <ex:ageVal>44</ex:ageVal> <ex:agePercentage>33</ex:agePercentage> </ex:ageListSequence>
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMinOccurs1MaxOccursUnbounded pattern within an [XML Schema 1.0] document [SequenceMaxOccursUnbounded]:
<xs:element name="bookPublications" type="ex:BookPublications" /> <xs:complexType name="BookPublications"> <xs:sequence maxOccurs="unbounded"> <xs:element name="pubDate" type="xs:string" /> <xs:element name="pubISBN" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMaxOccursUnbounded01]:
<ex:bookPublications> <ex:pubDate>2002-09-24</ex:pubDate> <ex:pubISBN>1-55960-907-6</ex:pubISBN> <ex:pubDate>2003-04-14</ex:pubDate> <ex:pubISBN>1-25466-908-6</ex:pubISBN> <ex:pubDate>2004-03-31</ex:pubDate> <ex:pubISBN>1-35460-909-6</ex:pubISBN> <ex:pubDate>2005-06-04</ex:pubDate> <ex:pubISBN>1-54560-910-6</ex:pubISBN> <ex:pubDate>2006-07-03</ex:pubDate> <ex:pubISBN>1-74869-911-6</ex:pubISBN> </ex:bookPublications>
as is the following element when included in an instance document [SequenceMaxOccursUnbounded02]:
<ex:bookPublications> <ex:pubDate>2006-01-26</ex:pubDate> <ex:pubISBN>1-44795-912-6</ex:pubISBN> </ex:bookPublications>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceMinOccursFinite pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceMinOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence[xs:integer(@minOccurs) gt 1]/ (@minOccurs,
@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMinOccursFinite pattern within an [XML Schema 1.0] document [SequenceMinOccursFinite]:
<xs:element name="articleColors" type="ex:ArticleColors" /> <xs:complexType name="ArticleColors"> <xs:sequence minOccurs="2" maxOccurs="unbounded"> <xs:element name="articleColor" type="xs:string" /> <xs:element name="articleContrast" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMinOccursFinite01]:
<ex:articleColors> <ex:articleColor>Red</ex:articleColor> <ex:articleContrast>Bright</ex:articleContrast> <ex:articleColor>Black</ex:articleColor> <ex:articleContrast>Bright</ex:articleContrast> <ex:articleColor>White</ex:articleColor> <ex:articleContrast>Low</ex:articleContrast> <ex:articleColor>Yellow</ex:articleColor> <ex:articleContrast>Normal</ex:articleContrast> </ex:articleColors>
as is the following element when included in an instance document [SequenceMinOccursFinite02]:
<ex:articleColors> <ex:articleColor>Black</ex:articleColor> <ex:articleContrast>Normal</ex:articleContrast> <ex:articleColor>White</ex:articleColor> <ex:articleContrast>Bright</ex:articleContrast> </ex:articleColors>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceMaxOccursFinite pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceMaxOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence[@maxOccurs and not(@maxOccurs = '0' or
@maxOccurs = '1' or @maxOccurs = 'unbounded')]/
(@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceMaxOccursFinite pattern within an [XML Schema 1.0] document [SequenceMaxOccursFinite]:
<xs:element name="winter" type="ex:Winter" /> <xs:complexType name="Winter"> <xs:sequence maxOccurs="4"> <xs:element name="mnth" type="xs:string" /> <xs:element name="weather" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceMaxOccursFinite01]:
<ex:winter> <ex:mnth>November</ex:mnth> <ex:weather>Rain</ex:weather> <ex:mnth>December</ex:mnth> <ex:weather>Snow</ex:weather> <ex:mnth>January</ex:mnth> <ex:weather>Snow</ex:weather> <ex:mnth>February</ex:mnth> <ex:weather>Rain</ex:weather> </ex:winter>
as is the following element when included in an instance document [SequenceMaxOccursFinite02]:
<ex:winter> <ex:mnth>December</ex:mnth> <ex:weather>Snow</ex:weather> </ex:winter>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceStrict pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceStrict
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[(not(@processContents) or
@processContents = 'strict') and (not (@minOccurs) or @minOccurs =
'1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1'
or @maxOccurs='unbounded') and @namespace = '##targetNamespace']/
(., @processContents, @minOccurs, @maxOccurs,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceStrict pattern within an [XML Schema 1.0] document [ExtendedSequenceStrict]:
<xs:element name="extendedSequenceStrict" type="ex:ExtendedSequenceStrict" /> <xs:complexType name="ExtendedSequenceStrict"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> <xs:element name="extension" type="ex:StrictExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:element name="title" type="xs:string" /> <xs:element name="middleName" type="xs:string" /> <xs:complexType name="StrictExtension"> <xs:sequence> <xs:any processContents="strict" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceStrict01]:
<ex:extendedSequenceStrict> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:extendedSequenceStrict>
as is the following element when included in an instance document [ExtendedSequenceStrict02]:
<ex:extendedSequenceStrict> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> <ex:extension> <ex:middleName>William</ex:middleName> <ex:title>Mr</ex:title> </ex:extension> </ex:extendedSequenceStrict>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceLax pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceLax
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'lax' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
@namespace = '##targetNamespace']/ (., @processContents,
@minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceLax pattern within an [XML Schema 1.0] document [ExtendedSequenceLax]:
<xs:element name="extendedSequenceLax" type="ex:ExtendedSequenceLax" /> <xs:complexType name="ExtendedSequenceLax"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> <xs:element name="extension" type="ex:LaxExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="LaxExtension"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceLax01]:
<ex:extendedSequenceLax> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:extendedSequenceLax>
as is the following element when included in an instance document [ExtendedSequenceLax02]:
<ex:extendedSequenceLax> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> <ex:extension> <ex:middleName>William</ex:middleName> <ex:title>Mr</ex:title> </ex:extension> </ex:extendedSequenceLax>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceSkip pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceSkip
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'skip' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
@namespace = '##targetNamespace']/ (., @processContents,
@minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceSkip pattern within an [XML Schema 1.0] document [ExtendedSequenceSkip]:
<xs:element name="extendedSequenceSkip" type="ex:ExtendedSequenceSkip" /> <xs:complexType name="ExtendedSequenceSkip"> <xs:sequence> <xs:element name="firstName" type="xs:string" /> <xs:element name="lastName" type="xs:string" /> <xs:element name="extension" type="ex:SkipExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="SkipExtension"> <xs:sequence> <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceSkip01]:
<ex:extendedSequenceSkip> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> </ex:extendedSequenceSkip>
as is the following element when included in an instance document [ExtendedSequenceSkip02]:
<ex:extendedSequenceSkip> <ex:firstName>Bobby</ex:firstName> <ex:lastName>Sox</ex:lastName> <ex:extension> <ex:middleName>William</ex:middleName> <ex:title>Mr</ex:title> </ex:extension> </ex:extendedSequenceSkip>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceStrictAny pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceStrictAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[(not(@processContents) or
@processContents = 'strict') and (not (@minOccurs) or @minOccurs =
'1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1'
or @maxOccurs='unbounded') and (not(@namespace) or @namespace =
'##any')]/ (., @processContents, @minOccurs, @maxOccurs,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceStrictAny pattern within an [XML Schema 1.0] document [ExtendedSequenceStrictAny]:
<xs:element name="extendedSequenceStrictAny" type="ex:ExtendedSequenceStrictAny" /> <xs:element name="extendedSequenceStrictAnyElement" type="xs:string" /> <xs:complexType name="ExtendedSequenceStrictAny"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceStrictAnyExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceStrictAnyExtension"> <xs:sequence> <xs:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceStrictAny01]:
<ex:extendedSequenceStrictAny> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> <ex:extension> <ex:extendedSequenceStrictAnyElement>Stuff</ex:extendedSequenceStrictAnyElement> </ex:extension> </ex:extendedSequenceStrictAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceLaxAny pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceLaxAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'lax' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
(not(@namespace) or @namespace = '##any')]/ (., @processContents,
@minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceLaxAny pattern within an [XML Schema 1.0] document [ExtendedSequenceLaxAny]:
<xs:element name="extendedSequenceLaxAny" type="ex:ExtendedSequenceLaxAny" /> <xs:complexType name="ExtendedSequenceLaxAny"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceLaxAnyExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceLaxAnyExtension"> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceLaxAny01]:
<ex:extendedSequenceLaxAny> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> <ex:extension> <ex2:anyElement>Stuff</ex2:anyElement> </ex:extension> </ex:extendedSequenceLaxAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceSkipAny pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceSkipAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'skip' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
(not(@namespace) or @namespace = '##any')]/ (., @processContents,
@minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceSkipAny pattern within an [XML Schema 1.0] document [ExtendedSequenceSkipAny]:
<xs:element name="extendedSequenceSkipAny" type="ex:ExtendedSequenceSkipAny" /> <xs:complexType name="ExtendedSequenceSkipAny"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceSkipAnyExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceSkipAnyExtension"> <xs:sequence> <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceSkipAny01]:
<ex:extendedSequenceSkipAny> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> <ex:extension> <ex2:anyElement>Stuff</ex2:anyElement> </ex:extension> </ex:extendedSequenceSkipAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceStrictOther pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceStrictOther
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[(not(@processContents) or
@processContents = 'strict') and (not (@minOccurs) or @minOccurs =
'1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1'
or @maxOccurs='unbounded') and @namespace = '##other']/ (.,
@processContents, @minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceStrictOther pattern within an [XML Schema 1.0] document [ExtendedSequenceStrictOther]:
<xs:import namespace="http://www.w3.org/2002/ws/databinding/examples/6/09/strict/" schemaLocation="../strict.xsd" /> <xs:element name="extendedSequenceStrictOther" type="ex:ExtendedSequenceStrictOther" /> <xs:complexType name="ExtendedSequenceStrictOther"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceStrictOtherExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceStrictOtherExtension"> <xs:sequence> <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceStrictOther01]:
<ex:extendedSequenceStrictOther> <ex:element1>firstElement</ex:element1> <ex:element2>lastElement</ex:element2> <ex:extension> <strictElement>strictElement</strictElement> </ex:extension> </ex:extendedSequenceStrictOther>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceLaxOther pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceLaxOther
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'lax' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
@namespace = '##other']/ (., @processContents, @minOccurs,
@maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceLaxOther pattern within an [XML Schema 1.0] document [ExtendedSequenceLaxOther]:
<xs:element name="extendedSequenceLaxOther" type="ex:ExtendedSequenceLaxOther" /> <xs:complexType name="ExtendedSequenceLaxOther"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceLaxOtherExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceLaxOtherExtension"> <xs:sequence> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceLaxOther01]:
<ex:extendedSequenceLaxOther> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> <ex:extension> <ex2:anyElement>Stuff</ex2:anyElement> </ex:extension> </ex:extendedSequenceLaxOther>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceSkipOther pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceSkipOther
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents = 'skip' and (not
(@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not
(@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and
@namespace = '##other']/ (., @processContents, @minOccurs,
@maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceSkipOther pattern within an [XML Schema 1.0] document [ExtendedSequenceSkipOther]:
<xs:element name="extendedSequenceSkipOther" type="ex:ExtendedSequenceSkipOther" /> <xs:complexType name="ExtendedSequenceSkipOther"> <xs:sequence> <xs:element name="firstElement" type="xs:string" /> <xs:element name="lastElement" type="xs:string" /> <xs:element name="extension" type="ex:ExtendedSequenceSkipOtherExtension" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="ExtendedSequenceSkipOtherExtension"> <xs:sequence> <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceSkipOther01]:
<ex:extendedSequenceSkipOther> <ex:firstElement>String</ex:firstElement> <ex:lastElement>String</ex:lastElement> <ex:extension> <ex2:anyElement>Stuff</ex2:anyElement> </ex:extension> </ex:extendedSequenceSkipOther>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceAnyStrict pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceAnyStrict
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[(not(@processContents) or
@processContents = 'strict') and (not (@minOccurs) or @minOccurs =
'1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1'
or @maxOccurs='unbounded') and (not (@namespace) or @namespace =
'##any')]/ (., @processContents, @minOccurs, @maxOccurs,
@namespace)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceAnyStrict pattern within an [XML Schema 1.0] document [SequenceAnyStrict]:
<xs:element name="sequenceAnyStrict" type="ex:SequenceAnyStrict" /> <xs:complexType name="SequenceAnyStrict"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:any processContents="strict" namespace="##any" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceAnyStrict01]:
<ex:sequenceAnyStrict> <ex:element1>string</ex:element1> </ex:sequenceAnyStrict>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ExtendedSequenceNamespacedFinite pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ExtendedSequenceNamespacedFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:any[@processContents and @namespace and
@maxOccurs and (not (@minOccurs) or @minOccurs = '1' or @minOccurs
= '0') and (not (@maxOccurs = '1') ) and (not
(@maxOccurs='unbounded')) and (not (@namespace =
'##targetNamespace')) and (not (@namespace = '##any')) and (not
(@namespace = '##local')) and (not (@namespace = '##other'))]/ (.,
@processContents, @minOccurs, @maxOccurs, @namespace)
The following example [XML Schema 1.0] extract illustrates the use of the ExtendedSequenceNamespacedFinite pattern within an [XML Schema 1.0] document [ExtendedSequenceNamespacedFinite]:
<xs:element name="extendedSequenceNamespacedFinite" type="ex:ExtendedSequenceNamespacedFinite" /> <xs:complexType name="ExtendedSequenceNamespacedFinite"> <xs:sequence> <xs:any maxOccurs="2" processContents="lax" namespace="http://www.w3.org/2002/ws/databinding/examples/6/09/" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ExtendedSequenceNamespacedFinite01]:
<ex:extendedSequenceNamespacedFinite> <ex:anyElement>any data</ex:anyElement> </ex:extendedSequenceNamespacedFinite>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceSequenceGroup pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceSequenceGroup
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:sequence/xs:group/(., ..)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceSequenceGroup pattern within an [XML Schema 1.0] document [SequenceSequenceGroup]:
<xs:element name="sequenceSequenceGroup" type="ex:SequenceSequenceGroup" /> <xs:complexType name="SequenceSequenceGroup"> <xs:sequence> <xs:sequence> <xs:group ref="ex:SeqSeqGroup" /> </xs:sequence> </xs:sequence> </xs:complexType> <xs:group name="SeqSeqGroup"> <xs:sequence> <xs:element name="element1" type="xs:string" /> <xs:element name="element2" type="xs:string" /> </xs:sequence> </xs:group>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceSequenceGroup01]:
<ex:sequenceSequenceGroup> <ex:element1>string1</ex:element1> <ex:element2>string2</ex:element2> </ex:sequenceSequenceGroup>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceSequence pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceSequence
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice/xs:sequence/(.)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceSequence pattern within an [XML Schema 1.0] document [ChoiceSequence]:
<xs:element name="choiceSequence" type="ex:ChoiceSequenceType" /> <xs:complexType name="ChoiceSequenceType"> <xs:choice> <xs:element name="Avalue" type="xs:string" /> <xs:sequence> <xs:element name="Bvalue" type="xs:string" /> <xs:element name="Cvalue" type="xs:string" /> </xs:sequence> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceSequence01]:
<ex:choiceSequence> <ex:Avalue>home</ex:Avalue> </ex:choiceSequence>
as is the following element when included in an instance document [ChoiceSequence02]:
<ex:choiceSequence> <ex:Bvalue>home</ex:Bvalue> <ex:Cvalue>home</ex:Cvalue> </ex:choiceSequence>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SequenceChoice pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SequenceChoice
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:sequence/xs:choice/(.)
The following example [XML Schema 1.0] extract illustrates the use of the SequenceChoice pattern within an [XML Schema 1.0] document [SequenceChoice]:
<xs:element name="sequenceChoice" type="ex:SequenceChoiceType" /> <xs:complexType name="SequenceChoiceType"> <xs:sequence> <xs:choice> <xs:element name="Avalue" type="xs:string" /> <xs:element name="Bvalue" type="xs:string" /> </xs:choice> <xs:element name="Cvalue" type="xs:string" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SequenceChoice01]:
<ex:sequenceChoice> <ex:Avalue>home</ex:Avalue> <ex:Cvalue>home</ex:Cvalue> </ex:sequenceChoice>
as is the following element when included in an instance document [SequenceChoice02]:
<ex:sequenceChoice> <ex:Bvalue>home</ex:Bvalue> <ex:Cvalue>home</ex:Cvalue> </ex:sequenceChoice>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the ChoiceChoice
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceChoice
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice/xs:choice/(.)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceChoice pattern within an [XML Schema 1.0] document [ChoiceChoice]:
<xs:element name="choiceChoice" type="ex:ChoiceChoice" /> <xs:complexType name="ChoiceChoice"> <xs:choice> <xs:element name="Avalue" type="xs:string" /> <xs:choice> <xs:element name="Bvalue" type="xs:string" /> <xs:element name="Cvalue" type="xs:string" /> </xs:choice> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceChoice01]:
<ex:choiceChoice> <ex:Avalue>home</ex:Avalue> </ex:choiceChoice>
as is the following element when included in an instance document [ChoiceChoice02]:
<ex:choiceChoice> <ex:Bvalue>home</ex:Bvalue> </ex:choiceChoice>
and the following element when included in an instance document [ChoiceChoice03]:
<ex:choiceChoice> <ex:Cvalue>home</ex:Cvalue> </ex:choiceChoice>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceMaxOccursUnbounded pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceMaxOccursUnbounded
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice[@maxOccurs = 'unbounded']/
(@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceMaxOccursUnbounded pattern within an [XML Schema 1.0] document [ChoiceMaxOccursUnbounded]:
<xs:element name="choiceMaxOccursUnbounded" type="ex:ChoiceMaxOccursUnbounded" /> <xs:complexType name="ChoiceMaxOccursUnbounded"> <xs:choice maxOccurs="unbounded"> <xs:element name="choiceA" type="xs:string" /> <xs:element name="choiceB" type="xs:string" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceMaxOccursUnbounded01]:
<ex:choiceMaxOccursUnbounded> <ex:choiceB>1st</ex:choiceB> <ex:choiceB>2nd</ex:choiceB> <ex:choiceB>3rd</ex:choiceB> </ex:choiceMaxOccursUnbounded>
as is the following element when included in an instance document [ChoiceMaxOccursUnbounded02]:
<ex:choiceMaxOccursUnbounded> <ex:choiceA>first</ex:choiceA> <ex:choiceA>second</ex:choiceA> </ex:choiceMaxOccursUnbounded>
and the following element when included in an instance document [ChoiceMaxOccursUnbounded03]:
<ex:choiceMaxOccursUnbounded> <ex:choiceA>1st</ex:choiceA> <ex:choiceB>second</ex:choiceB> <ex:choiceA>3rd</ex:choiceA> </ex:choiceMaxOccursUnbounded>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceMaxOccursFinite pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceMaxOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice[@maxOccurs and not(@maxOccurs = '0' or
@maxOccurs = '1' or @maxOccurs = 'unbounded')]/
(@maxOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceMaxOccursFinite pattern within an [XML Schema 1.0] document [ChoiceMaxOccursFinite]:
<xs:element name="choiceMaxOccursFinite" type="ex:ChoiceMaxOccursFinite" /> <xs:complexType name="ChoiceMaxOccursFinite"> <xs:choice maxOccurs="2"> <xs:element name="choiceA" type="xs:string" /> <xs:element name="choiceB" type="xs:string" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceMaxOccursFinite01]:
<ex:choiceMaxOccursFinite> <ex:choiceA>first</ex:choiceA> <ex:choiceB>second</ex:choiceB> </ex:choiceMaxOccursFinite>
as is the following element when included in an instance document [ChoiceMaxOccursFinite02]:
<ex:choiceMaxOccursFinite> <ex:choiceA>first</ex:choiceA> <ex:choiceA>second</ex:choiceA> </ex:choiceMaxOccursFinite>
and the following element when included in an instance document [ChoiceMaxOccursFinite03]:
<ex:choiceMaxOccursFinite> <ex:choiceA>only</ex:choiceA> </ex:choiceMaxOccursFinite>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceMinOccurs0 pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceMinOccurs0
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice[@minOccurs='0']/ (@minOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceMinOccurs0 pattern within an [XML Schema 1.0] document [ChoiceMinOccurs0]:
<xs:element name="choiceMinOccurs0" type="ex:ChoiceMinOccurs0" /> <xs:complexType name="ChoiceMinOccurs0"> <xs:choice minOccurs="0"> <xs:element name="AChoiceMinOccurs0" type="xs:string" /> <xs:element name="BChoiceMinOccurs0" type="xs:string" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceMinOccurs001]:
<ex:choiceMinOccurs0> <ex:AChoiceMinOccurs0>A</ex:AChoiceMinOccurs0> </ex:choiceMinOccurs0>
as is the following element when included in an instance document [ChoiceMinOccurs002]:
<ex:choiceMinOccurs0> <ex:BChoiceMinOccurs0>B</ex:BChoiceMinOccurs0> </ex:choiceMinOccurs0>
and the following element when included in an instance document [ChoiceMinOccurs003]:
<ex:choiceMinOccurs0/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ChoiceMinOccursFinite pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ChoiceMinOccursFinite
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:choice[@minOccurs and not(@minOccurs = '0' or
@minOccurs = '1')]/ (@minOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ChoiceMinOccursFinite pattern within an [XML Schema 1.0] document [ChoiceMinOccursFinite]:
<xs:element name="choiceMinOccursFinite" type="ex:ChoiceMinOccursFinite" /> <xs:complexType name="ChoiceMinOccursFinite"> <xs:choice minOccurs="2" maxOccurs="2"> <xs:element name="AChoiceMinOccursFinite" type="xs:string" /> <xs:element name="BChoiceMinOccursFinite" type="xs:string" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ChoiceMinOccursFinite01]:
<ex:choiceMinOccursFinite> <ex:AChoiceMinOccursFinite>A</ex:AChoiceMinOccursFinite> <ex:AChoiceMinOccursFinite>AA</ex:AChoiceMinOccursFinite> </ex:choiceMinOccursFinite>
as is the following element when included in an instance document [ChoiceMinOccursFinite02]:
<ex:choiceMinOccursFinite> <ex:BChoiceMinOccursFinite>B</ex:BChoiceMinOccursFinite> <ex:AChoiceMinOccursFinite>BA</ex:AChoiceMinOccursFinite> </ex:choiceMinOccursFinite>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeChoiceAny pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeChoiceAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:choice/xs:any/(., @namespace,
@processContents, @maxOccurs, @minOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeChoiceAny pattern within an [XML Schema 1.0] document [ComplexTypeChoiceAny]:
<xs:element name="complexTypeChoiceAny" type="ex:ComplexTypeChoiceAny" /> <xs:complexType name="ComplexTypeChoiceAny"> <xs:choice> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" /> </xs:choice> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeChoiceAny01]:
<ex:complexTypeChoiceAny> <ex:anything> <ex:element>any data</ex:element> </ex:anything> </ex:complexTypeChoiceAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ComplexTypeSequenceChoiceAny pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ComplexTypeSequenceChoiceAny
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:complexType/xs:sequence/xs:choice/xs:any/(.,
@namespace, @processContents, @maxOccurs, @minOccurs)
The following example [XML Schema 1.0] extract illustrates the use of the ComplexTypeSequenceChoiceAny pattern within an [XML Schema 1.0] document [ComplexTypeSequenceChoiceAny]:
<xs:element name="complexTypeSequenceChoiceAny" type="ex:ComplexTypeSequenceChoiceAny" /> <xs:complexType name="ComplexTypeSequenceChoiceAny"> <xs:sequence> <xs:choice> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" /> </xs:choice> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ComplexTypeSequenceChoiceAny01]:
<ex:complexTypeSequenceChoiceAny> <ex:anyElement>any data</ex:anyElement> </ex:complexTypeSequenceChoiceAny>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnionMemberTypes pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnionMemberTypes
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:union[@memberTypes and
not(xs:simpleType)]/ (., @memberTypes)
The following example [XML Schema 1.0] extract illustrates the use of the UnionMemberTypes pattern within an [XML Schema 1.0] document [UnionMemberTypes]:
<xs:simpleType name="UnionMemberTypes"> <xs:union memberTypes="xs:int xs:string" /> </xs:simpleType> <xs:element name="unionMemberTypes" type="ex:UnionMemberTypes" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnionMemberTypes01]:
<ex:unionMemberTypes>22</ex:unionMemberTypes>
as is the following element when included in an instance document [UnionMemberTypes02]:
<ex:unionMemberTypes>a string?</ex:unionMemberTypes>
The following example [XML Schema 1.0] extract illustrates the use of the UnionMemberTypes pattern within an [XML Schema 1.0] document [UnionDateString]:
<xs:simpleType name="UnionDateString"> <xs:union memberTypes="xs:date xs:string" /> </xs:simpleType> <xs:element name="unionDateString" type="ex:UnionDateString" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnionDateString01]:
<ex:unionDateString>Tonight</ex:unionDateString>
as is the following element when included in an instance document [UnionDateString02]:
<ex:unionDateString>2006-06-06</ex:unionDateString>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnionSimpleTypes pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnionSimpleTypes
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:union[not(@memberTypes)]/xs:simpleType/
(.., .)
The following example [XML Schema 1.0] extract illustrates the use of the UnionSimpleTypes pattern within an [XML Schema 1.0] document [UnionSimpleDateString]:
<xs:simpleType name="UnionSimpleDateString"> <xs:union> <xs:simpleType> <xs:restriction base="xs:date" /> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:string" /> </xs:simpleType> </xs:union> </xs:simpleType> <xs:element name="unionSimpleDateString" type="ex:UnionSimpleDateString" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnionSimpleDateString01]:
<ex:unionSimpleDateString>Monday Night</ex:unionSimpleDateString>
as is the following element when included in an instance document [UnionSimpleDateString02]:
<ex:unionSimpleDateString>2006-06-06</ex:unionSimpleDateString>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnionSimpleAndMemberTypes pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnionSimpleAndMemberTypes
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:union[@memberTypes and xs:simpleType]/
(., @memberTypes, xs:simpleType)
The following example [XML Schema 1.0] extract illustrates the use of the UnionSimpleAndMemberTypes pattern within an [XML Schema 1.0] document [UnionSimpleAndMemberTypes]:
<xs:element name="unionSimpleAndMemberTypes" type="ex:UnionSimpleAndMemberTypes" /> <xs:simpleType name="UnionSimpleAndMemberTypes"> <xs:union memberTypes="xs:string"> <xs:simpleType> <xs:restriction base="xs:date" /> </xs:simpleType> </xs:union> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnionSimpleAndMemberTypes01]:
<ex:unionSimpleAndMemberTypes>string</ex:unionSimpleAndMemberTypes>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the List
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/List
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:list[@itemType]/ (.,
@itemType)
The following example [XML Schema 1.0] extract illustrates the use of the List pattern within an [XML Schema 1.0] document [List]:
<xs:element name="list" type="ex:List" /> <xs:simpleType name="List"> <xs:list itemType="xs:string" /> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [List01]:
<ex:list>This is a list of strings</ex:list>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnySimpleTypeElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnySimpleTypeElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:anySimpleType')]
The following example [XML Schema 1.0] extract illustrates the use of the AnySimpleTypeElement pattern within an [XML Schema 1.0] document [AnySimpleTypeElement]:
<xs:element name="anySimpleTypeElement" type="xs:anySimpleType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnySimpleTypeElement01]:
<ex:anySimpleTypeElement/>
as is the following element when included in an instance document [AnySimpleTypeElement02]:
<ex:anySimpleTypeElement>anySimpleTypeValue</ex:anySimpleTypeElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnyTypeElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnyTypeElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:anyType')]
The following example [XML Schema 1.0] extract illustrates the use of the AnyTypeElement pattern within an [XML Schema 1.0] document [AnyTypeElement]:
<xs:element name="anyTypeElement" type="xs:anyType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnyTypeElement01]:
<ex:anyTypeElement/>
as is the following element when included in an instance document [AnyTypeElement02]:
<ex:anyTypeElement> <foo> <bar>cheese</bar> </foo> </ex:anyTypeElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:decimal')]
The following example [XML Schema 1.0] extract illustrates the use of the DecimalElement pattern within an [XML Schema 1.0] document [DecimalElement]:
<xs:element name="decimalElement" type="xs:decimal" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalElement01]:
<ex:decimalElement>0</ex:decimalElement>
as is the following element when included in an instance document [DecimalElement02]:
<ex:decimalElement>-1.23</ex:decimalElement>
and the following element when included in an instance document [DecimalElement03]:
<ex:decimalElement>12678967.543233</ex:decimalElement>
and the following element when included in an instance document [DecimalElement04]:
<ex:decimalElement>+1000000.00</ex:decimalElement>
and the following element when included in an instance document [DecimalElement05]:
<ex:decimalElement>+100000000000000000000000000000000000000000000.00</ex:decimalElement>
and the following element when included in an instance document [DecimalElement06]:
<ex:decimalElement>210</ex:decimalElement>
and the following element when included in an instance document [DecimalElement07]:
<ex:decimalElement>210.00</ex:decimalElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the FloatElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/FloatElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:float')]
The following example [XML Schema 1.0] extract illustrates the use of the FloatElement pattern within an [XML Schema 1.0] document [FloatElement]:
<xs:element name="floatElement" type="xs:float" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [FloatElement01]:
<ex:floatElement>-1E4</ex:floatElement>
as is the following element when included in an instance document [FloatElement02]:
<ex:floatElement>1267.43233E12</ex:floatElement>
and the following element when included in an instance document [FloatElement03]:
<ex:floatElement>12.78e-2</ex:floatElement>
and the following element when included in an instance document [FloatElement04]:
<ex:floatElement>12</ex:floatElement>
and the following element when included in an instance document [FloatElement05]:
<ex:floatElement>INF</ex:floatElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DurationElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DurationElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:duration')]
The following example [XML Schema 1.0] extract illustrates the use of the DurationElement pattern within an [XML Schema 1.0] document [DurationElement]:
<xs:element name="durationElement" type="xs:duration" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DurationElement01]:
<ex:durationElement>P1Y2M3DT10H30M</ex:durationElement>
as is the following element when included in an instance document [DurationElement02]:
<ex:durationElement>-P1347M</ex:durationElement>
and the following element when included in an instance document [DurationElement03]:
<ex:durationElement>P1347Y</ex:durationElement>
and the following element when included in an instance document [DurationElement04]:
<ex:durationElement>P1M</ex:durationElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the TimeElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/TimeElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:time')]
The following example [XML Schema 1.0] extract illustrates the use of the TimeElement pattern within an [XML Schema 1.0] document [TimeElement]:
<xs:element name="timeElement" type="xs:time" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [TimeElement01]:
<ex:timeElement>00:00:00</ex:timeElement>
as is the following element when included in an instance document [TimeElement02]:
<ex:timeElement>12:00:01</ex:timeElement>
and the following element when included in an instance document [TimeElement03]:
<ex:timeElement>23:59:59</ex:timeElement>
and the following element when included in an instance document [TimeElement04]:
<ex:timeElement>13:21:03Z</ex:timeElement>
and the following element when included in an instance document [TimeElement05]:
<ex:timeElement>13:21:03-04:32</ex:timeElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the DateElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DateElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:date')]
The following example [XML Schema 1.0] extract illustrates the use of the DateElement pattern within an [XML Schema 1.0] document [DateElement]:
<xs:element name="dateElement" type="xs:date" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DateElement01]:
<ex:dateElement>1999-05-31</ex:dateElement>
as is the following element when included in an instance document [DateElement02]:
<ex:dateElement>0739-05-31</ex:dateElement>
and the following element when included in an instance document [DateElement03]:
<ex:dateElement>2038-05-31Z</ex:dateElement>
and the following element when included in an instance document [DateElement04]:
<ex:dateElement>1999-05-31+05:43</ex:dateElement>
and the following element when included in an instance document [DateElement05]:
<ex:dateElement>10739-05-31</ex:dateElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GYearMonthElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearMonthElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:gYearMonth')]
The following example [XML Schema 1.0] extract illustrates the use of the GYearMonthElement pattern within an [XML Schema 1.0] document [GYearMonthElement]:
<xs:element name="gYearMonthElement" type="xs:gYearMonth" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearMonthElement01]:
<ex:gYearMonthElement>1999-05</ex:gYearMonthElement>
as is the following element when included in an instance document [GYearMonthElement02]:
<ex:gYearMonthElement>0739-05</ex:gYearMonthElement>
and the following element when included in an instance document [GYearMonthElement03]:
<ex:gYearMonthElement>2038-02</ex:gYearMonthElement>
and the following element when included in an instance document [GYearMonthElement04]:
<ex:gYearMonthElement>2007-05+01:00</ex:gYearMonthElement>
and the following element when included in an instance document [GYearMonthElement05]:
<ex:gYearMonthElement>2007-05-01:00</ex:gYearMonthElement>
and the following element when included in an instance document [GYearMonthElement06]:
<ex:gYearMonthElement>2007-05Z</ex:gYearMonthElement>
and the following element when included in an instance document [GYearMonthElement07]:
<ex:gYearMonthElement>10739-05</ex:gYearMonthElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the GYearElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:gYear')]
The following example [XML Schema 1.0] extract illustrates the use of the GYearElement pattern within an [XML Schema 1.0] document [GYearElement]:
<xs:element name="gYearElement" type="xs:gYear" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearElement01]:
<ex:gYearElement>1999</ex:gYearElement>
as is the following element when included in an instance document [GYearElement02]:
<ex:gYearElement>0739</ex:gYearElement>
and the following element when included in an instance document [GYearElement03]:
<ex:gYearElement>2039</ex:gYearElement>
and the following element when included in an instance document [GYearElement04]:
<ex:gYearElement>2007-13:00</ex:gYearElement>
and the following element when included in an instance document [GYearElement05]:
<ex:gYearElement>1999+02:00</ex:gYearElement>
and the following element when included in an instance document [GYearElement06]:
<ex:gYearElement>2008Z</ex:gYearElement>
and the following element when included in an instance document [GYearElement07]:
<ex:gYearElement>10739</ex:gYearElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthDayElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthDayElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:gMonthDay')]
The following example [XML Schema 1.0] extract illustrates the use of the GMonthDayElement pattern within an [XML Schema 1.0] document [GMonthDayElement]:
<xs:element name="gMonthDayElement" type="xs:gMonthDay" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthDayElement01]:
<ex:gMonthDayElement>--12-31</ex:gMonthDayElement>
as is the following element when included in an instance document [GMonthDayElement02]:
<ex:gMonthDayElement>--12-31Z</ex:gMonthDayElement>
and the following element when included in an instance document [GMonthDayElement03]:
<ex:gMonthDayElement>--12-31-05:00</ex:gMonthDayElement>
and the following element when included in an instance document [GMonthDayElement04]:
<ex:gMonthDayElement>--12-31+01:00</ex:gMonthDayElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the GDayElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GDayElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:gDay')]
The following example [XML Schema 1.0] extract illustrates the use of the GDayElement pattern within an [XML Schema 1.0] document [GDayElement]:
<xs:element name="gDayElement" type="xs:gDay" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GDayElement01]:
<ex:gDayElement>---05</ex:gDayElement>
as is the following element when included in an instance document [GDayElement02]:
<ex:gDayElement>---12Z</ex:gDayElement>
and the following element when included in an instance document [GDayElement03]:
<ex:gDayElement>---31-12:00</ex:gDayElement>
and the following element when included in an instance document [GDayElement04]:
<ex:gDayElement>---05+01:00</ex:gDayElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:gMonth')]
The following example [XML Schema 1.0] extract illustrates the use of the GMonthElement pattern within an [XML Schema 1.0] document [GMonthElement]:
<xs:element name="gMonthElement" type="xs:gMonth" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthElement01]:
<ex:gMonthElement>--02</ex:gMonthElement>
as is the following element when included in an instance document [GMonthElement02]:
<ex:gMonthElement>--12-01:33</ex:gMonthElement>
and the following element when included in an instance document [GMonthElement03]:
<ex:gMonthElement>--12+01:02</ex:gMonthElement>
and the following element when included in an instance document [GMonthElement04]:
<ex:gMonthElement>--12Z</ex:gMonthElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
HexBinaryElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/HexBinaryElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:hexBinary')]
The following example [XML Schema 1.0] extract illustrates the use of the HexBinaryElement pattern within an [XML Schema 1.0] document [HexBinaryElement]:
<xs:element name="hexBinaryElement" type="xs:hexBinary" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [HexBinaryElement01]:
<ex:hexBinaryElement>76</ex:hexBinaryElement>
as is the following element when included in an instance document [HexBinaryElement02]:
<ex:hexBinaryElement>77696f646d6f6e7974637174716a7169696e6b65616f76786f746e66716b707875757261736e686469796b65706c656d7465626661637661646e6b65636662647669726d6f6e757361</ex:hexBinaryElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LanguageElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LanguageElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:language')]
Note, best current practice for the use of the
xs:language
type is described in [BCP
47].
The following example [XML Schema 1.0] extract illustrates the use of the LanguageElement pattern within an [XML Schema 1.0] document [LanguageElement]:
<xs:element name="languageElement" type="xs:language" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LanguageElement01]:
<ex:languageElement>en</ex:languageElement>
as is the following element when included in an instance document [LanguageElement02]:
<ex:languageElement>fr</ex:languageElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NMTOKENElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NMTOKENElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:NMTOKEN')]
The following example [XML Schema 1.0] extract illustrates the use of the NMTOKENElement pattern within an [XML Schema 1.0] document [NMTOKENElement]:
<xs:element name="NMTOKENElement" type="xs:NMTOKEN" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NMTOKENElement01]:
<ex:NMTOKENElement>id</ex:NMTOKENElement>
as is the following element when included in an instance document [NMTOKENElement02]:
<ex:NMTOKENElement>vocabularies:that.as:clean:assuring-s_to:The_we:contain</ex:NMTOKENElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NMTOKENSElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NMTOKENSElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:NMTOKENS')]
The following example [XML Schema 1.0] extract illustrates the use of the NMTOKENSElement pattern within an [XML Schema 1.0] document [NMTOKENSElement]:
<xs:element name="NMTOKENSElement" type="xs:NMTOKENS" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NMTOKENSElement01]:
<ex:NMTOKENSElement>a b c d e.b:s-w_x:q</ex:NMTOKENSElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the IDElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:ID')]
The following example [XML Schema 1.0] extract illustrates the use of the IDElement pattern within an [XML Schema 1.0] document [IDElement]:
<xs:element name="IDElement" type="xs:ID" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDElement01]:
<ex:IDElement>foo</ex:IDElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the IDREFElement
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDREFElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:IDREF')]
The following example [XML Schema 1.0] extract illustrates the use of the IDREFElement pattern within an [XML Schema 1.0] document [IDREFElement]:
<xs:element name="IDREFElement" type="ex:IDREFElementComplextType" /> <xs:complexType name="IDREFElementComplextType"> <xs:sequence> <xs:element name="element" type="xs:IDREF" /> <xs:element name="id" type="xs:ID" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDREFElement01]:
<ex:IDREFElement> <ex:element>idref</ex:element> <ex:id>idref</ex:id> </ex:IDREFElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IDREFSElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDREFSElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:IDREFS')]
The following example [XML Schema 1.0] extract illustrates the use of the IDREFSElement pattern within an [XML Schema 1.0] document [IDREFSElement]:
<xs:element name="IDREFSElement" type="ex:IDREFSElementComplextType" /> <xs:complexType name="IDREFSElementComplextType"> <xs:sequence> <xs:element name="element" type="xs:IDREFS" /> <xs:element name="id1" type="xs:ID" /> <xs:element name="id2" type="xs:ID" /> <xs:element name="id3" type="xs:ID" /> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDREFSElement01]:
<ex:IDREFSElement> <ex:element>id1 id2 id3</ex:element> <ex:id1>id1</ex:id1> <ex:id2>id2</ex:id2> <ex:id3>id3</ex:id3> </ex:IDREFSElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ENTITYElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ENTITYElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:ENTITY')]
The following example [XML Schema 1.0] extract illustrates the use of the ENTITYElement pattern within an [XML Schema 1.0] document [ENTITYElement]:
<xs:element name="ENTITYElement" type="xs:ENTITY" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ENTITYElement01]:
<ex:ENTITYElement>lt</ex:ENTITYElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ENTITIESElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ENTITIESElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:ENTITIES')]
The following example [XML Schema 1.0] extract illustrates the use of the ENTITIESElement pattern within an [XML Schema 1.0] document [ENTITIESElement]:
<xs:element name="ENTITIESElement" type="xs:ENTITIES" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ENTITIESElement01]:
<ex:ENTITIESElement>lt gt apos quot</ex:ENTITIESElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntegerElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntegerElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:integer')]
The following example [XML Schema 1.0] extract illustrates the use of the IntegerElement pattern within an [XML Schema 1.0] document [IntegerElement]:
<xs:element name="integerElement" type="xs:integer" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntegerElement01]:
<ex:integerElement>0</ex:integerElement>
as is the following element when included in an instance document [IntegerElement02]:
<ex:integerElement>1</ex:integerElement>
and the following element when included in an instance document [IntegerElement03]:
<ex:integerElement>-42</ex:integerElement>
and the following element when included in an instance document [IntegerElement04]:
<ex:integerElement>12678967543233</ex:integerElement>
and the following element when included in an instance document [IntegerElement05]:
<ex:integerElement>+10000</ex:integerElement>
and the following element when included in an instance document [IntegerElement06]:
<ex:integerElement>1234567891234567838475834753838887348573489123456789123456789</ex:integerElement>
and the following element when included in an instance document [IntegerElement07]:
<ex:integerElement>-1234567891234567838475834753838887348573489123456789123456789</ex:integerElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NonPositiveIntegerElement pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NonPositiveIntegerElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:nonPositiveInteger')]
The following example [XML Schema 1.0] extract illustrates the use of the NonPositiveIntegerElement pattern within an [XML Schema 1.0] document [NonPositiveIntegerElement]:
<xs:element name="nonPositiveIntegerElement" type="xs:nonPositiveInteger" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NonPositiveIntegerElement01]:
<ex:nonPositiveIntegerElement>-1</ex:nonPositiveIntegerElement>
as is the following element when included in an instance document [NonPositiveIntegerElement02]:
<ex:nonPositiveIntegerElement>0</ex:nonPositiveIntegerElement>
and the following element when included in an instance document [NonPositiveIntegerElement03]:
<ex:nonPositiveIntegerElement>+0</ex:nonPositiveIntegerElement>
and the following element when included in an instance document [NonPositiveIntegerElement04]:
<ex:nonPositiveIntegerElement>-1234324234532534254325234534252345342534253425324534253244</ex:nonPositiveIntegerElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NegativeIntegerElement pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NegativeIntegerElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:negativeInteger')]
The following example [XML Schema 1.0] extract illustrates the use of the NegativeIntegerElement pattern within an [XML Schema 1.0] document [NegativeIntegerElement]:
<xs:element name="negativeIntegerElement" type="xs:negativeInteger" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NegativeIntegerElement01]:
<ex:negativeIntegerElement>-1</ex:negativeIntegerElement>
as is the following element when included in an instance document [NegativeIntegerElement02]:
<ex:negativeIntegerElement>-12343242342345345346453643564536543645363456</ex:negativeIntegerElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NonNegativeIntegerElement pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NonNegativeIntegerElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:nonNegativeInteger')]
The following example [XML Schema 1.0] extract illustrates the use of the NonNegativeIntegerElement pattern within an [XML Schema 1.0] document [NonNegativeIntegerElement]:
<xs:element name="nonNegativeIntegerElement" type="xs:nonNegativeInteger" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NonNegativeIntegerElement01]:
<ex:nonNegativeIntegerElement>1</ex:nonNegativeIntegerElement>
as is the following element when included in an instance document [NonNegativeIntegerElement02]:
<ex:nonNegativeIntegerElement>-0</ex:nonNegativeIntegerElement>
and the following element when included in an instance document [NonNegativeIntegerElement03]:
<ex:nonNegativeIntegerElement>0</ex:nonNegativeIntegerElement>
and the following element when included in an instance document [NonNegativeIntegerElement04]:
<ex:nonNegativeIntegerElement>+42</ex:nonNegativeIntegerElement>
and the following element when included in an instance document [NonNegativeIntegerElement05]:
<ex:nonNegativeIntegerElement>3141592653531415926536106615151970884848347234273984723</ex:nonNegativeIntegerElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedLongElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedLongElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedLong')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedLongElement pattern within an [XML Schema 1.0] document [UnsignedLongElement]:
<xs:element name="unsignedLongElement" type="xs:unsignedLong" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedLongElement01]:
<ex:unsignedLongElement>1</ex:unsignedLongElement>
as is the following element when included in an instance document [UnsignedLongElement02]:
<ex:unsignedLongElement>-0</ex:unsignedLongElement>
and the following element when included in an instance document [UnsignedLongElement03]:
<ex:unsignedLongElement>+42</ex:unsignedLongElement>
and the following element when included in an instance document [UnsignedLongElement04]:
<ex:unsignedLongElement>18446744073709551615</ex:unsignedLongElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedIntElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedIntElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedInt')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedIntElement pattern within an [XML Schema 1.0] document [UnsignedIntElement]:
<xs:element name="unsignedIntElement" type="xs:unsignedInt" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedIntElement01]:
<ex:unsignedIntElement>1</ex:unsignedIntElement>
as is the following element when included in an instance document [UnsignedIntElement02]:
<ex:unsignedIntElement>-0</ex:unsignedIntElement>
and the following element when included in an instance document [UnsignedIntElement03]:
<ex:unsignedIntElement>+42</ex:unsignedIntElement>
and the following element when included in an instance document [UnsignedIntElement04]:
<ex:unsignedIntElement>4294967295</ex:unsignedIntElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedShortElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedShortElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedShort')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedShortElement pattern within an [XML Schema 1.0] document [UnsignedShortElement]:
<xs:element name="unsignedShortElement" type="xs:unsignedShort" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedShortElement01]:
<ex:unsignedShortElement>1</ex:unsignedShortElement>
as is the following element when included in an instance document [UnsignedShortElement02]:
<ex:unsignedShortElement>-0</ex:unsignedShortElement>
and the following element when included in an instance document [UnsignedShortElement03]:
<ex:unsignedShortElement>+42</ex:unsignedShortElement>
and the following element when included in an instance document [UnsignedShortElement04]:
<ex:unsignedShortElement>65535</ex:unsignedShortElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedByteElement pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedByteElement
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedByte')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedByteElement pattern within an [XML Schema 1.0] document [UnsignedByteElement]:
<xs:element name="unsignedByteElement" type="xs:unsignedByte" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedByteElement01]:
<ex:unsignedByteElement>1</ex:unsignedByteElement>
as is the following element when included in an instance document [UnsignedByteElement02]:
<ex:unsignedByteElement>-0</ex:unsignedByteElement>
and the following element when included in an instance document [UnsignedByteElement03]:
<ex:unsignedByteElement>+42</ex:unsignedByteElement>
and the following element when included in an instance document [UnsignedByteElement04]:
<ex:unsignedByteElement>255</ex:unsignedByteElement>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AnySimpleTypeAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AnySimpleTypeAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:anySimpleType')]
The following example [XML Schema 1.0] extract illustrates the use of the AnySimpleTypeAttribute pattern within an [XML Schema 1.0] document [AnySimpleTypeAttribute]:
<xs:element name="anySimpleTypeAttribute" type="ex:AnySimpleTypeAttribute" /> <xs:complexType name="AnySimpleTypeAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="anySimpleType" type="xs:anySimpleType" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AnySimpleTypeAttribute01]:
<ex:anySimpleTypeAttribute anySimpleType="hello"/>
as is the following element when included in an instance document [AnySimpleTypeAttribute02]:
<ex:anySimpleTypeAttribute anySimpleType="1"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:decimal')]
The following example [XML Schema 1.0] extract illustrates the use of the DecimalAttribute pattern within an [XML Schema 1.0] document [DecimalAttribute]:
<xs:element name="decimalAttribute" type="ex:DecimalAttribute" /> <xs:complexType name="DecimalAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="decimal" type="xs:decimal" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalAttribute01]:
<ex:decimalAttribute decimal="+10000000999829292922093443563.32423442"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
FloatAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/FloatAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:float')]
The following example [XML Schema 1.0] extract illustrates the use of the FloatAttribute pattern within an [XML Schema 1.0] document [FloatAttribute]:
<xs:element name="floatAttribute" type="ex:FloatAttribute" /> <xs:complexType name="FloatAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="float" type="xs:float" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [FloatAttribute01]:
<ex:floatAttribute float="-7446.445E5"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DurationAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DurationAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:duration')]
The following example [XML Schema 1.0] extract illustrates the use of the DurationAttribute pattern within an [XML Schema 1.0] document [DurationAttribute]:
<xs:element name="durationAttribute" type="ex:DurationAttribute" /> <xs:complexType name="DurationAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="duration" type="xs:duration" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DurationAttribute01]:
<ex:durationAttribute duration="P1M"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
TimeAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/TimeAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:time')]
The following example [XML Schema 1.0] extract illustrates the use of the TimeAttribute pattern within an [XML Schema 1.0] document [TimeAttribute]:
<xs:element name="timeAttribute" type="ex:TimeAttribute" /> <xs:complexType name="TimeAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="time" type="xs:time" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [TimeAttribute01]:
<ex:timeAttribute time="00:00:00"/>
as is the following element when included in an instance document [TimeAttribute02]:
<ex:timeAttribute time="12:00:01"/>
and the following element when included in an instance document [TimeAttribute03]:
<ex:timeAttribute time="23:59:59"/>
and the following element when included in an instance document [TimeAttribute04]:
<ex:timeAttribute time="12:34:56Z"/>
and the following element when included in an instance document [TimeAttribute05]:
<ex:timeAttribute time="12:34:56+01:23"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DateAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DateAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:date')]
The following example [XML Schema 1.0] extract illustrates the use of the DateAttribute pattern within an [XML Schema 1.0] document [DateAttribute]:
<xs:element name="dateAttribute" type="ex:DateAttribute" /> <xs:complexType name="DateAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="date" type="xs:date" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DateAttribute01]:
<ex:dateAttribute date="2006-05-30"/>
as is the following element when included in an instance document [DateAttribute02]:
<ex:dateAttribute date="0739-05-31"/>
and the following element when included in an instance document [DateAttribute03]:
<ex:dateAttribute date="2038-12-31Z"/>
and the following element when included in an instance document [DateAttribute04]:
<ex:dateAttribute date="2006-05-30-01:00"/>
and the following element when included in an instance document [DateAttribute05]:
<ex:dateAttribute date="10739-05-31"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GYearMonthAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearMonthAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:gYearMonth')]
The following example [XML Schema 1.0] extract illustrates the use of the GYearMonthAttribute pattern within an [XML Schema 1.0] document [GYearMonthAttribute]:
<xs:element name="gYearMonthAttribute" type="ex:GYearMonthAttribute" /> <xs:complexType name="GYearMonthAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="gYearMonth" type="xs:gYearMonth" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearMonthAttribute01]:
<ex:gYearMonthAttribute gYearMonth="2006-09"/>
as is the following element when included in an instance document [GYearMonthAttribute02]:
<ex:gYearMonthAttribute gYearMonth="0739-09"/>
and the following element when included in an instance document [GYearMonthAttribute03]:
<ex:gYearMonthAttribute gYearMonth="2038-09"/>
and the following element when included in an instance document [GYearMonthAttribute04]:
<ex:gYearMonthAttribute gYearMonth="2006-09+01:00"/>
and the following element when included in an instance document [GYearMonthAttribute05]:
<ex:gYearMonthAttribute gYearMonth="2006-09-01:00"/>
and the following element when included in an instance document [GYearMonthAttribute06]:
<ex:gYearMonthAttribute gYearMonth="2007-05Z"/>
and the following element when included in an instance document [GYearMonthAttribute07]:
<ex:gYearMonthAttribute gYearMonth="10739-09"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GYearAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:gYear')]
The following example [XML Schema 1.0] extract illustrates the use of the GYearAttribute pattern within an [XML Schema 1.0] document [GYearAttribute]:
<xs:element name="gYearAttribute" type="ex:GYearAttribute" /> <xs:complexType name="GYearAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="gYear" type="xs:gYear" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearAttribute01]:
<ex:gYearAttribute gYear="1999"/>
as is the following element when included in an instance document [GYearAttribute02]:
<ex:gYearAttribute gYear="0739"/>
and the following element when included in an instance document [GYearAttribute03]:
<ex:gYearAttribute gYear="2039"/>
and the following element when included in an instance document [GYearAttribute04]:
<ex:gYearAttribute gYear="2007-13:00"/>
and the following element when included in an instance document [GYearAttribute05]:
<ex:gYearAttribute gYear="1999+02:00"/>
and the following element when included in an instance document [GYearAttribute06]:
<ex:gYearAttribute gYear="2008Z"/>
and the following element when included in an instance document [GYearAttribute07]:
<ex:gYearAttribute gYear="10739"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthDayAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthDayAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:gMonthDay')]
The following example [XML Schema 1.0] extract illustrates the use of the GMonthDayAttribute pattern within an [XML Schema 1.0] document [GMonthDayAttribute]:
<xs:element name="gMonthDayAttribute" type="ex:GMonthDayAttribute" /> <xs:complexType name="GMonthDayAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="gMonthDay" type="xs:gMonthDay" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthDayAttribute01]:
<ex:gMonthDayAttribute gMonthDay="--09-28"/>
as is the following element when included in an instance document [GMonthDayAttribute02]:
<ex:gMonthDayAttribute gMonthDay="--09-28Z"/>
and the following element when included in an instance document [GMonthDayAttribute03]:
<ex:gMonthDayAttribute gMonthDay="--09-28-13:00"/>
and the following element when included in an instance document [GMonthDayAttribute04]:
<ex:gMonthDayAttribute gMonthDay="--09-28+01:00"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GDayAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GDayAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:gDay')]
The following example [XML Schema 1.0] extract illustrates the use of the GDayAttribute pattern within an [XML Schema 1.0] document [GDayAttribute]:
<xs:element name="gDayAttribute" type="ex:GDayAttribute" /> <xs:complexType name="GDayAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="gDay" type="xs:gDay" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GDayAttribute01]:
<ex:gDayAttribute gDay="---09"/>
as is the following element when included in an instance document [GDayAttribute02]:
<ex:gDayAttribute gDay="---12Z"/>
and the following element when included in an instance document [GDayAttribute03]:
<ex:gDayAttribute gDay="---24-12:00"/>
and the following element when included in an instance document [GDayAttribute04]:
<ex:gDayAttribute gDay="---31+01:00"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:gMonth')]
The following example [XML Schema 1.0] extract illustrates the use of the GMonthAttribute pattern within an [XML Schema 1.0] document [GMonthAttribute]:
<xs:element name="gMonthAttribute" type="ex:GMonthAttribute" /> <xs:complexType name="GMonthAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="gMonth" type="xs:gMonth" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthAttribute01]:
<ex:gMonthAttribute gMonth="--04--"/>
as is the following element when included in an instance document [GMonthAttribute02]:
<ex:gMonthAttribute gMonth="--04Z"/>
and the following element when included in an instance document [GMonthAttribute03]:
<ex:gMonthAttribute gMonth="--12+02:00"/>
and the following element when included in an instance document [GMonthAttribute04]:
<ex:gMonthAttribute gMonth="--04-10:00"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
HexBinaryAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/HexBinaryAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:hexBinary')]
The following example [XML Schema 1.0] extract illustrates the use of the HexBinaryAttribute pattern within an [XML Schema 1.0] document [HexBinaryAttribute]:
<xs:element name="hexBinaryAttribute" type="ex:HexBinaryAttribute" /> <xs:complexType name="HexBinaryAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="hexBinary" type="xs:hexBinary" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [HexBinaryAttribute01]:
<ex:hexBinaryAttribute hexBinary="77696f"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
Base64BinaryAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/Base64BinaryAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:base64Binary')]
The following example [XML Schema 1.0] extract illustrates the use of the Base64BinaryAttribute pattern within an [XML Schema 1.0] document [Base64BinaryAttribute]:
<xs:element name="base64BinaryAttribute" type="ex:Base64BinaryAttribute" /> <xs:complexType name="Base64BinaryAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="base64Binary" type="xs:base64Binary" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [Base64BinaryAttribute01]:
<ex:base64BinaryAttribute base64Binary="cnRjbGNyZW9scg=="/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LanguageAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LanguageAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:language')]
Note, best current practice for the use of the
xs:language
type is described in [BCP
47].
The following example [XML Schema 1.0] extract illustrates the use of the LanguageAttribute pattern within an [XML Schema 1.0] document [LanguageAttribute]:
<xs:element name="languageAttribute" type="ex:LanguageAttribute" /> <xs:complexType name="LanguageAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="language" type="xs:language" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LanguageAttribute01]:
<ex:languageAttribute language="en"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NMTOKENAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NMTOKENAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:NMTOKEN')]
The following example [XML Schema 1.0] extract illustrates the use of the NMTOKENAttribute pattern within an [XML Schema 1.0] document [NMTOKENAttribute]:
<xs:element name="NMTOKENAttribute" type="ex:NMTOKENAttribute" /> <xs:complexType name="NMTOKENAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="NMTOKEN" type="xs:NMTOKEN" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NMTOKENAttribute01]:
<ex:NMTOKENAttribute NMTOKEN="id"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NMTOKENSAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NMTOKENSAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:NMTOKENS')]
The following example [XML Schema 1.0] extract illustrates the use of the NMTOKENSAttribute pattern within an [XML Schema 1.0] document [NMTOKENSAttribute]:
<xs:element name="NMTOKENSAttribute" type="ex:NMTOKENSAttribute" /> <xs:complexType name="NMTOKENSAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="NMTOKENS" type="xs:NMTOKENS" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NMTOKENSAttribute01]:
<ex:NMTOKENSAttribute NMTOKENS="id a b e.b:s-dd:q"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the IDAttribute
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:ID')]
The following example [XML Schema 1.0] extract illustrates the use of the IDAttribute pattern within an [XML Schema 1.0] document [IDAttribute]:
<xs:element name="IDAttribute" type="ex:IDAttribute" /> <xs:complexType name="IDAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="ID" type="xs:ID" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDAttribute01]:
<ex:IDAttribute ID="bar"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IDREFAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDREFAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:IDREF')]
The following example [XML Schema 1.0] extract illustrates the use of the IDREFAttribute pattern within an [XML Schema 1.0] document [IDREFAttribute]:
<xs:element name="IDREFAttribute" type="ex:IDREFAttributeComplexType" /> <xs:complexType name="IDREFAttributeComplexType"> <xs:sequence> <xs:element name="id" type="xs:ID" /> </xs:sequence> <xs:attribute name="IDREF" type="xs:IDREF" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDREFAttribute01]:
<ex:IDREFAttribute IDREF="id1"> <ex:id>id1</ex:id> </ex:IDREFAttribute>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IDREFSAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IDREFSAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:IDREFS')]
The following example [XML Schema 1.0] extract illustrates the use of the IDREFSAttribute pattern within an [XML Schema 1.0] document [IDREFSAttribute]:
<xs:element name="IDREFSAttribute" type="ex:IDREFSAttributeComplexType" /> <xs:complexType name="IDREFSAttributeComplexType"> <xs:sequence> <xs:element name="id1" type="xs:ID" /> <xs:element name="id2" type="xs:ID" /> <xs:element name="id3" type="xs:ID" /> </xs:sequence> <xs:attribute name="IDREFS" type="xs:IDREFS" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IDREFSAttribute01]:
<ex:IDREFSAttribute IDREFS="id1 id2 id3"> <ex:id1>id1</ex:id1> <ex:id2>id2</ex:id2> <ex:id3>id3</ex:id3> </ex:IDREFSAttribute>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ENTITYAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ENTITYAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:ENTITY')]
The following example [XML Schema 1.0] extract illustrates the use of the ENTITYAttribute pattern within an [XML Schema 1.0] document [ENTITYAttribute]:
<xs:element name="ENTITYAttribute" type="ex:ENTITYAttribute" /> <xs:complexType name="ENTITYAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="ENTITY" type="xs:ENTITY" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ENTITYAttribute01]:
<ex:ENTITYAttribute ENTITY="lt"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ENTITIESAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ENTITIESAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:ENTITIES')]
The following example [XML Schema 1.0] extract illustrates the use of the ENTITIESAttribute pattern within an [XML Schema 1.0] document [ENTITIESAttribute]:
<xs:element name="ENTITIESAttribute" type="ex:ENTITIESAttribute" /> <xs:complexType name="ENTITIESAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="ENTITIES" type="xs:ENTITIES" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ENTITIESAttribute01]:
<ex:ENTITIESAttribute ENTITIES="lt gt"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntegerAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntegerAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:integer')]
The following example [XML Schema 1.0] extract illustrates the use of the IntegerAttribute pattern within an [XML Schema 1.0] document [IntegerAttribute]:
<xs:element name="integerAttribute" type="ex:IntegerAttribute" /> <xs:complexType name="IntegerAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="integer" type="xs:integer" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntegerAttribute01]:
<ex:integerAttribute integer="10002"/>
as is the following element when included in an instance document [IntegerAttribute02]:
<ex:integerAttribute integer="-0"/>
and the following element when included in an instance document [IntegerAttribute03]:
<ex:integerAttribute integer="+42"/>
and the following element when included in an instance document [IntegerAttribute04]:
<ex:integerAttribute integer="-42"/>
and the following element when included in an instance document [IntegerAttribute05]:
<ex:integerAttribute integer="-45345384593849583945843453454293405930495309450394503"/>
and the following element when included in an instance document [IntegerAttribute06]:
<ex:integerAttribute integer="123456789013234235435325235325325345432543253425324534253245"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NonPositiveIntegerAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NonPositiveIntegerAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:nonPositiveInteger')]
The following example [XML Schema 1.0] extract illustrates the use of the NonPositiveIntegerAttribute pattern within an [XML Schema 1.0] document [NonPositiveIntegerAttribute]:
<xs:element name="nonPositiveIntegerAttribute" type="ex:NonPositiveIntegerAttribute" /> <xs:complexType name="NonPositiveIntegerAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="nonPositiveInteger" type="xs:nonPositiveInteger" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NonPositiveIntegerAttribute01]:
<ex:nonPositiveIntegerAttribute nonPositiveInteger="-20"/>
as is the following element when included in an instance document [NonPositiveIntegerAttribute02]:
<ex:nonPositiveIntegerAttribute nonPositiveInteger="0"/>
and the following element when included in an instance document [NonPositiveIntegerAttribute03]:
<ex:nonPositiveIntegerAttribute nonPositiveInteger="+0"/>
and the following element when included in an instance document [NonPositiveIntegerAttribute04]:
<ex:nonPositiveIntegerAttribute nonPositiveInteger="-202342353425435345342567965342969786978679"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NegativeIntegerAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NegativeIntegerAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:negativeInteger')]
The following example [XML Schema 1.0] extract illustrates the use of the NegativeIntegerAttribute pattern within an [XML Schema 1.0] document [NegativeIntegerAttribute]:
<xs:element name="negativeIntegerAttribute" type="ex:NegativeIntegerAttribute" /> <xs:complexType name="NegativeIntegerAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="negativeInteger" type="xs:negativeInteger" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NegativeIntegerAttribute01]:
<ex:negativeIntegerAttribute negativeInteger="-100"/>
as is the following element when included in an instance document [NegativeIntegerAttribute02]:
<ex:negativeIntegerAttribute negativeInteger="-12343242342345345346453643564536543645363456"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedLongAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedLongAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedLong')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedLongAttribute pattern within an [XML Schema 1.0] document [UnsignedLongAttribute]:
<xs:element name="unsignedLongAttribute" type="ex:UnsignedLongAttribute" /> <xs:complexType name="UnsignedLongAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="unsignedLong" type="xs:unsignedLong" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedLongAttribute01]:
<ex:unsignedLongAttribute unsignedLong="2034"/>
as is the following element when included in an instance document [UnsignedLongAttribute02]:
<ex:unsignedLongAttribute unsignedLong="-0"/>
and the following element when included in an instance document [UnsignedLongAttribute03]:
<ex:unsignedLongAttribute unsignedLong="+42"/>
and the following element when included in an instance document [UnsignedLongAttribute04]:
<ex:unsignedLongAttribute unsignedLong="18446744073709551615"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedIntAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedIntAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedInt')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedIntAttribute pattern within an [XML Schema 1.0] document [UnsignedIntAttribute]:
<xs:element name="unsignedIntAttribute" type="ex:UnsignedIntAttribute" /> <xs:complexType name="UnsignedIntAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="unsignedInt" type="xs:unsignedInt" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedIntAttribute01]:
<ex:unsignedIntAttribute unsignedInt="32334"/>
as is the following element when included in an instance document [UnsignedIntAttribute02]:
<ex:unsignedIntAttribute unsignedInt="-0"/>
and the following element when included in an instance document [UnsignedIntAttribute03]:
<ex:unsignedIntAttribute unsignedInt="+42"/>
and the following element when included in an instance document [UnsignedIntAttribute04]:
<ex:unsignedIntAttribute unsignedInt="4294967295"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedShortAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedShortAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedShort')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedShortAttribute pattern within an [XML Schema 1.0] document [UnsignedShortAttribute]:
<xs:element name="unsignedShortAttribute" type="ex:UnsignedShortAttribute" /> <xs:complexType name="UnsignedShortAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="unsignedShort" type="xs:unsignedShort" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedShortAttribute01]:
<ex:unsignedShortAttribute unsignedShort="22"/>
as is the following element when included in an instance document [UnsignedShortAttribute02]:
<ex:unsignedShortAttribute unsignedShort="-0"/>
and the following element when included in an instance document [UnsignedShortAttribute03]:
<ex:unsignedShortAttribute unsignedShort="+42"/>
and the following element when included in an instance document [UnsignedShortAttribute04]:
<ex:unsignedShortAttribute unsignedShort="65535"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedByteAttribute pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedByteAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attribute/@type[resolve-QName(.,..) =
xs:QName('xs:unsignedByte')]
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedByteAttribute pattern within an [XML Schema 1.0] document [UnsignedByteAttribute]:
<xs:element name="unsignedByteAttribute" type="ex:UnsignedByteAttribute" /> <xs:complexType name="UnsignedByteAttribute"> <xs:sequence> <xs:element name="text" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:attribute name="unsignedByte" type="xs:unsignedByte" /> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedByteAttribute01]:
<ex:unsignedByteAttribute unsignedByte="64"/>
as is the following element when included in an instance document [UnsignedByteAttribute02]:
<ex:unsignedByteAttribute unsignedByte="-0"/>
and the following element when included in an instance document [UnsignedByteAttribute03]:
<ex:unsignedByteAttribute unsignedByte="+42"/>
and the following element when included in an instance document [UnsignedByteAttribute04]:
<ex:unsignedByteAttribute unsignedByte="255"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
StringSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/StringSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:string')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the StringSimpleTypePattern pattern within an [XML Schema 1.0] document [StringSimpleTypePattern]:
<xs:element name="stringSimpleTypePattern" type="ex:StringSimpleTypePattern" /> <xs:simpleType name="StringSimpleTypePattern"> <xs:restriction base="xs:string"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [StringSimpleTypePattern01]:
<ex:stringSimpleTypePattern>123</ex:stringSimpleTypePattern>
as is the following element when included in an instance document [StringSimpleTypePattern02]:
<ex:stringSimpleTypePattern>009</ex:stringSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntSimpleTypePattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:int')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the IntSimpleTypePattern pattern within an [XML Schema 1.0] document [IntSimpleTypePattern]:
<xs:element name="intSimpleTypePattern" type="ex:IntSimpleTypePattern" /> <xs:simpleType name="IntSimpleTypePattern"> <xs:restriction base="xs:int"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntSimpleTypePattern01]:
<ex:intSimpleTypePattern>123</ex:intSimpleTypePattern>
as is the following element when included in an instance document [IntSimpleTypePattern02]:
<ex:intSimpleTypePattern>009</ex:intSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
IntegerSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/IntegerSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:integer')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the IntegerSimpleTypePattern pattern within an [XML Schema 1.0] document [IntegerSimpleTypePattern]:
<xs:element name="integerSimpleTypePattern" type="ex:IntegerSimpleTypePattern" /> <xs:simpleType name="IntegerSimpleTypePattern"> <xs:restriction base="xs:integer"> <xs:pattern value="[+\-]?([1-9][0-9]*)|0" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [IntegerSimpleTypePattern01]:
<ex:integerSimpleTypePattern>123</ex:integerSimpleTypePattern>
as is the following element when included in an instance document [IntegerSimpleTypePattern02]:
<ex:integerSimpleTypePattern>9</ex:integerSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
LongSimpleTypePattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/LongSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:long')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the LongSimpleTypePattern pattern within an [XML Schema 1.0] document [LongSimpleTypePattern]:
<xs:element name="longSimpleTypePattern" type="ex:LongSimpleTypePattern" /> <xs:simpleType name="LongSimpleTypePattern"> <xs:restriction base="xs:long"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [LongSimpleTypePattern01]:
<ex:longSimpleTypePattern>123</ex:longSimpleTypePattern>
as is the following element when included in an instance document [LongSimpleTypePattern02]:
<ex:longSimpleTypePattern>009</ex:longSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DecimalSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DecimalSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:decimal')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the DecimalSimpleTypePattern pattern within an [XML Schema 1.0] document [DecimalSimpleTypePattern]:
<xs:element name="decimalSimpleTypePattern" type="ex:DecimalSimpleTypePattern" /> <xs:simpleType name="DecimalSimpleTypePattern"> <xs:restriction base="xs:decimal"> <xs:pattern value="\d{4}\.\d{2}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DecimalSimpleTypePattern01]:
<ex:decimalSimpleTypePattern>1234.12</ex:decimalSimpleTypePattern>
as is the following element when included in an instance document [DecimalSimpleTypePattern02]:
<ex:decimalSimpleTypePattern>9898.00</ex:decimalSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
FloatSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/FloatSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:float')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the FloatSimpleTypePattern pattern within an [XML Schema 1.0] document [FloatSimpleTypePattern]:
<xs:element name="floatSimpleTypePattern" type="ex:FloatSimpleTypePattern" /> <xs:simpleType name="FloatSimpleTypePattern"> <xs:restriction base="xs:float"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [FloatSimpleTypePattern01]:
<ex:floatSimpleTypePattern>123</ex:floatSimpleTypePattern>
as is the following element when included in an instance document [FloatSimpleTypePattern02]:
<ex:floatSimpleTypePattern>009</ex:floatSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DoubleSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DoubleSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:double')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the DoubleSimpleTypePattern pattern within an [XML Schema 1.0] document [DoubleSimpleTypePattern]:
<xs:element name="doubleSimpleTypePattern" type="ex:DoubleSimpleTypePattern" /> <xs:simpleType name="DoubleSimpleTypePattern"> <xs:restriction base="xs:double"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DoubleSimpleTypePattern01]:
<ex:doubleSimpleTypePattern>123</ex:doubleSimpleTypePattern>
as is the following element when included in an instance document [DoubleSimpleTypePattern02]:
<ex:doubleSimpleTypePattern>009</ex:doubleSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ShortSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ShortSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:short')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the ShortSimpleTypePattern pattern within an [XML Schema 1.0] document [ShortSimpleTypePattern]:
<xs:element name="shortSimpleTypePattern" type="ex:ShortSimpleTypePattern" /> <xs:simpleType name="ShortSimpleTypePattern"> <xs:restriction base="xs:short"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ShortSimpleTypePattern01]:
<ex:shortSimpleTypePattern>123</ex:shortSimpleTypePattern>
as is the following element when included in an instance document [ShortSimpleTypePattern02]:
<ex:shortSimpleTypePattern>009</ex:shortSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
ByteSimpleTypePattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ByteSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:byte')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the ByteSimpleTypePattern pattern within an [XML Schema 1.0] document [ByteSimpleTypePattern]:
<xs:element name="byteSimpleTypePattern" type="ex:ByteSimpleTypePattern" /> <xs:simpleType name="ByteSimpleTypePattern"> <xs:restriction base="xs:byte"> <xs:pattern value="1" /> <xs:pattern value="2" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ByteSimpleTypePattern01]:
<ex:byteSimpleTypePattern>1</ex:byteSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
NonNegativeIntegerSimpleTypePattern pattern identified using
the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/NonNegativeIntegerSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:nonNegativeInteger')]/xs:pattern[@value]/ (..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the NonNegativeIntegerSimpleTypePattern pattern within an [XML Schema 1.0] document [NonNegativeIntegerSimpleTypePattern]:
<xs:element name="nonNegativeIntegerSimpleTypePattern" type="ex:NonNegativeIntegerSimpleTypePattern" /> <xs:simpleType name="NonNegativeIntegerSimpleTypePattern"> <xs:restriction base="xs:nonNegativeInteger"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [NonNegativeIntegerSimpleTypePattern01]:
<ex:nonNegativeIntegerSimpleTypePattern>123</ex:nonNegativeIntegerSimpleTypePattern>
as is the following element when included in an instance document [NonNegativeIntegerSimpleTypePattern02]:
<ex:nonNegativeIntegerSimpleTypePattern>009</ex:nonNegativeIntegerSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
PositiveIntegerSimpleTypePattern pattern identified using the
URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/PositiveIntegerSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:positiveInteger')]/xs:pattern[@value]/ (.., ../@base,
., @value)
The following example [XML Schema 1.0] extract illustrates the use of the PositiveIntegerSimpleTypePattern pattern within an [XML Schema 1.0] document [PositiveIntegerSimpleTypePattern]:
<xs:element name="positiveIntegerSimpleTypePattern" type="ex:PositiveIntegerSimpleTypePattern" /> <xs:simpleType name="PositiveIntegerSimpleTypePattern"> <xs:restriction base="xs:positiveInteger"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [PositiveIntegerSimpleTypePattern01]:
<ex:positiveIntegerSimpleTypePattern>123</ex:positiveIntegerSimpleTypePattern>
as is the following element when included in an instance document [PositiveIntegerSimpleTypePattern02]:
<ex:positiveIntegerSimpleTypePattern>009</ex:positiveIntegerSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedLongSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedLongSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedLong')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedLongSimpleTypePattern pattern within an [XML Schema 1.0] document [UnsignedLongSimpleTypePattern]:
<xs:element name="unsignedLongSimpleTypePattern" type="ex:UnsignedLongSimpleTypePattern" /> <xs:simpleType name="UnsignedLongSimpleTypePattern"> <xs:restriction base="xs:unsignedLong"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedLongSimpleTypePattern01]:
<ex:unsignedLongSimpleTypePattern>123</ex:unsignedLongSimpleTypePattern>
as is the following element when included in an instance document [UnsignedLongSimpleTypePattern02]:
<ex:unsignedLongSimpleTypePattern>009</ex:unsignedLongSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedIntSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedIntSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedInt')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedIntSimpleTypePattern pattern within an [XML Schema 1.0] document [UnsignedIntSimpleTypePattern]:
<xs:element name="unsignedIntSimpleTypePattern" type="ex:UnsignedIntSimpleTypePattern" /> <xs:simpleType name="UnsignedIntSimpleTypePattern"> <xs:restriction base="xs:unsignedInt"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedIntSimpleTypePattern01]:
<ex:unsignedIntSimpleTypePattern>123</ex:unsignedIntSimpleTypePattern>
as is the following element when included in an instance document [UnsignedIntSimpleTypePattern02]:
<ex:unsignedIntSimpleTypePattern>009</ex:unsignedIntSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
UnsignedShortSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/UnsignedShortSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:unsignedShort')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the UnsignedShortSimpleTypePattern pattern within an [XML Schema 1.0] document [UnsignedShortSimpleTypePattern]:
<xs:element name="unsignedShortSimpleTypePattern" type="ex:UnsignedShortSimpleTypePattern" /> <xs:simpleType name="UnsignedShortSimpleTypePattern"> <xs:restriction base="xs:unsignedShort"> <xs:pattern value="\d{3}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [UnsignedShortSimpleTypePattern01]:
<ex:unsignedShortSimpleTypePattern>123</ex:unsignedShortSimpleTypePattern>
as is the following element when included in an instance document [UnsignedShortSimpleTypePattern02]:
<ex:unsignedShortSimpleTypePattern>009</ex:unsignedShortSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
DateSimpleTypePattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/DateSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:date')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the DateSimpleTypePattern pattern within an [XML Schema 1.0] document [DateSimpleTypePattern]:
<xs:element name="dateSimpleTypePattern" type="ex:DateSimpleTypePattern" /> <xs:simpleType name="DateSimpleTypePattern"> <xs:restriction base="xs:date"> <xs:pattern value="[^\-]{4}\-[^\-]{2}\-[^\-]{2}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [DateSimpleTypePattern01]:
<ex:dateSimpleTypePattern>2006-12-18</ex:dateSimpleTypePattern>
as is the following element when included in an instance document [DateSimpleTypePattern02]:
<ex:dateSimpleTypePattern>2007-01-01</ex:dateSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GYearSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:gYear')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the GYearSimpleTypePattern pattern within an [XML Schema 1.0] document [GYearSimpleTypePattern]:
<xs:element name="gYearSimpleTypePattern" type="ex:GYearSimpleTypePattern" /> <xs:simpleType name="GYearSimpleTypePattern"> <xs:restriction base="xs:gYear"> <xs:pattern value="2008|2009|2010" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearSimpleTypePattern01]:
<ex:gYearSimpleTypePattern>2009</ex:gYearSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:gMonth')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the GMonthSimpleTypePattern pattern within an [XML Schema 1.0] document [GMonthSimpleTypePattern]:
<xs:element name="gMonthSimpleTypePattern" type="ex:GMonthSimpleTypePattern" /> <xs:simpleType name="GMonthSimpleTypePattern"> <xs:restriction base="xs:gMonth"> <xs:pattern value="--10|--11|--12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthSimpleTypePattern01]:
<ex:gMonthSimpleTypePattern>--11</ex:gMonthSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GDaySimpleTypePattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GDaySimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:gDay')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the GDaySimpleTypePattern pattern within an [XML Schema 1.0] document [GDaySimpleTypePattern]:
<xs:element name="gDaySimpleTypePattern" type="ex:GDaySimpleTypePattern" /> <xs:simpleType name="GDaySimpleTypePattern"> <xs:restriction base="xs:gDay"> <xs:pattern value="---01|---11|---31" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GDaySimpleTypePattern01]:
<ex:gDaySimpleTypePattern>---01</ex:gDaySimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GYearMonthSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GYearMonthSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:gYearMonth')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the GYearMonthSimpleTypePattern pattern within an [XML Schema 1.0] document [GYearMonthSimpleTypePattern]:
<xs:element name="gYearMonthSimpleTypePattern" type="ex:GYearMonthSimpleTypePattern" /> <xs:simpleType name="GYearMonthSimpleTypePattern"> <xs:restriction base="xs:gYearMonth"> <xs:pattern value="2001-12|2002-12|2003-12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GYearMonthSimpleTypePattern01]:
<ex:gYearMonthSimpleTypePattern>2001-12</ex:gYearMonthSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
GMonthDaySimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/GMonthDaySimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:gMonthDay')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the GMonthDaySimpleTypePattern pattern within an [XML Schema 1.0] document [GMonthDaySimpleTypePattern]:
<xs:element name="gMonthDaySimpleTypePattern" type="ex:GMonthDaySimpleTypePattern" /> <xs:simpleType name="GMonthDaySimpleTypePattern"> <xs:restriction base="xs:gMonthDay"> <xs:pattern value="--12-01|--11-01|--10-01" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [GMonthDaySimpleTypePattern01]:
<ex:gMonthDaySimpleTypePattern>--12-01</ex:gMonthDaySimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
TokenSimpleTypePattern pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/TokenSimpleTypePattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:token')]/xs:pattern[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the TokenSimpleTypePattern pattern within an [XML Schema 1.0] document [TokenSimpleTypePattern]:
<xs:element name="tokenSimpleTypePattern" type="ex:TokenSimpleTypePattern" /> <xs:simpleType name="TokenSimpleTypePattern"> <xs:restriction base="xs:token"> <xs:pattern value="1" /> <xs:pattern value="2" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [TokenSimpleTypePattern01]:
<ex:tokenSimpleTypePattern>1</ex:tokenSimpleTypePattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedStringMinLength pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedStringMinLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:string')]/xs:minLength[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedStringMinLength pattern within an [XML Schema 1.0] document [RestrictedStringMinLength]:
<xs:element name="restrictedStringMinLength" type="ex:RestrictedStringMinLength" /> <xs:simpleType name="RestrictedStringMinLength"> <xs:restriction base="xs:string"> <xs:minLength value="1" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedStringMinLength01]:
<ex:restrictedStringMinLength>String Value</ex:restrictedStringMinLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedStringMaxLength pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedStringMaxLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:string')]/xs:maxLength[@value]/ (.., ../@base, .,
@value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedStringMaxLength pattern within an [XML Schema 1.0] document [RestrictedStringMaxLength]:
<xs:element name="restrictedStringMaxLength" type="ex:RestrictedStringMaxLength" /> <xs:simpleType name="RestrictedStringMaxLength"> <xs:restriction base="xs:string"> <xs:maxLength value="12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedStringMaxLength01]:
<ex:restrictedStringMaxLength>String Value</ex:restrictedStringMaxLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedStringMinMaxLength pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedStringMinMaxLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:string') and xs:minLength/@value and
xs:maxLength/@value]/ (., @base, xs:minLength/(., @value),
xs:maxLength/(., @value))
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedStringMinMaxLength pattern within an [XML Schema 1.0] document [RestrictedStringMinMaxLength]:
<xs:element name="restrictedStringMinMaxLength" type="ex:RestrictedStringMinMaxLength" /> <xs:simpleType name="RestrictedStringMinMaxLength"> <xs:restriction base="xs:string"> <xs:minLength value="12" /> <xs:maxLength value="15" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedStringMinMaxLength01]:
<ex:restrictedStringMinMaxLength>String Value 2</ex:restrictedStringMinMaxLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SimpleTypeRenamed pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SimpleTypeRenamed
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction[@base and count(./*) = 0]/
(., @base)
The following example [XML Schema 1.0] extract illustrates the use of the SimpleTypeRenamed pattern within an [XML Schema 1.0] document [SimpleTypeRenamed]:
<xs:element name="simpleTypeRenamed" type="ex:SimpleTypeRenamed" /> <xs:simpleType name="SimpleTypeRenamed"> <xs:restriction base="xs:string" /> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SimpleTypeRenamed01]:
<ex:simpleTypeRenamed>String</ex:simpleTypeRenamed>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMinInclusive pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMinInclusive
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:minInclusive[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMinInclusive pattern within an [XML Schema 1.0] document [RestrictedMinInclusive]:
<xs:element name="restrictedMinInclusive" type="ex:RestrictedMinInclusive" /> <xs:simpleType name="RestrictedMinInclusive"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMinInclusive01]:
<ex:restrictedMinInclusive>1</ex:restrictedMinInclusive>
as is the following element when included in an instance document [RestrictedMinInclusive02]:
<ex:restrictedMinInclusive>2</ex:restrictedMinInclusive>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMaxInclusive pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMaxInclusive
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:maxInclusive[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMaxInclusive pattern within an [XML Schema 1.0] document [RestrictedMaxInclusive]:
<xs:element name="restrictedMaxInclusive" type="ex:RestrictedMaxInclusive" /> <xs:simpleType name="RestrictedMaxInclusive"> <xs:restriction base="xs:integer"> <xs:maxInclusive value="3" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMaxInclusive01]:
<ex:restrictedMaxInclusive>1</ex:restrictedMaxInclusive>
as is the following element when included in an instance document [RestrictedMaxInclusive02]:
<ex:restrictedMaxInclusive>3</ex:restrictedMaxInclusive>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMinExclusive pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMinExclusive
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:minExclusive[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMinExclusive pattern within an [XML Schema 1.0] document [RestrictedMinExclusive]:
<xs:element name="restrictedMinExclusive" type="ex:RestrictedMinExclusive" /> <xs:simpleType name="RestrictedMinExclusive"> <xs:restriction base="xs:integer"> <xs:minExclusive value="1" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMinExclusive01]:
<ex:restrictedMinExclusive>2</ex:restrictedMinExclusive>
as is the following element when included in an instance document [RestrictedMinExclusive02]:
<ex:restrictedMinExclusive>3</ex:restrictedMinExclusive>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMaxExclusive pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMaxExclusive
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:maxExclusive[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMaxExclusive pattern within an [XML Schema 1.0] document [RestrictedMaxExclusive]:
<xs:element name="restrictedMaxExclusive" type="ex:RestrictedMaxExclusive" /> <xs:simpleType name="RestrictedMaxExclusive"> <xs:restriction base="xs:integer"> <xs:maxExclusive value="3" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMaxExclusive01]:
<ex:restrictedMaxExclusive>1</ex:restrictedMaxExclusive>
as is the following element when included in an instance document [RestrictedMaxExclusive02]:
<ex:restrictedMaxExclusive>2</ex:restrictedMaxExclusive>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedLength pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:length[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedLength pattern within an [XML Schema 1.0] document [RestrictedLength]:
<xs:element name="restrictedLength" type="ex:RestrictedLength" /> <xs:simpleType name="RestrictedLength"> <xs:restriction base="xs:language"> <xs:length value="2" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedLength01]:
<ex:restrictedLength>en</ex:restrictedLength>
as is the following element when included in an instance document [RestrictedLength02]:
<ex:restrictedLength>FR</ex:restrictedLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMaxLength pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMaxLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:maxLength[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMaxLength pattern within an [XML Schema 1.0] document [RestrictedMaxLength]:
<xs:element name="restrictedMaxLength" type="ex:RestrictedMaxLength" /> <xs:simpleType name="RestrictedMaxLength"> <xs:restriction base="xs:string"> <xs:maxLength value="12" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMaxLength01]:
<ex:restrictedMaxLength>AUSTRALIA</ex:restrictedMaxLength>
as is the following element when included in an instance document [RestrictedMaxLength02]:
<ex:restrictedMaxLength>N AMERICA</ex:restrictedMaxLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedMinLength pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedMinLength
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:minLength[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedMinLength pattern within an [XML Schema 1.0] document [RestrictedMinLength]:
<xs:element name="restrictedMinLength" type="ex:RestrictedMinLength" /> <xs:simpleType name="RestrictedMinLength"> <xs:restriction base="xs:string"> <xs:minLength value="2" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedMinLength01]:
<ex:restrictedMinLength>AUS</ex:restrictedMinLength>
as is the following element when included in an instance document [RestrictedMinLength02]:
<ex:restrictedMinLength>GB</ex:restrictedMinLength>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedPattern pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedPattern
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:pattern[@value]/(..,
../@base, ., @value)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedPattern pattern within an [XML Schema 1.0] document [RestrictedPattern]:
<xs:element name="restrictedPattern" type="ex:RestrictedPattern" /> <xs:simpleType name="RestrictedPattern"> <xs:restriction base="xs:string"> <xs:minLength value="1" /> <xs:maxLength value="6" /> <xs:pattern value="[0-9]{1,6}" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedPattern01]:
<ex:restrictedPattern>123456</ex:restrictedPattern>
as is the following element when included in an instance document [RestrictedPattern02]:
<ex:restrictedPattern>1234</ex:restrictedPattern>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedWhitespacePreserve pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedWhitespacePreserve
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='preserve']/(..,
../@base, ., @value, @fixed)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedWhitespacePreserve pattern within an [XML Schema 1.0] document [RestrictedWhitespacePreserve]:
<xs:element name="restrictedWhitespacePreserve" type="ex:RestrictedWhitespacePreserve" /> <xs:simpleType name="RestrictedWhitespacePreserve"> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedWhitespacePreserve01]:
<ex:restrictedWhitespacePreserve>restricted whitespace preserve</ex:restrictedWhitespacePreserve>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedWhitespaceCollapse pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedWhitespaceCollapse
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='collapse']/(..,
../@base, ., @value, @fixed)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedWhitespaceCollapse pattern within an [XML Schema 1.0] document [RestrictedWhitespaceCollapse]:
<xs:element name="restrictedWhitespaceCollapse" type="ex:RestrictedWhitespaceCollapse" /> <xs:simpleType name="RestrictedWhitespaceCollapse"> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedWhitespaceCollapse01]:
<ex:restrictedWhitespaceCollapse>restricted whitespace collapse</ex:restrictedWhitespaceCollapse>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
RestrictedWhitespaceReplace pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/RestrictedWhitespaceReplace
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:restriction/xs:whiteSpace[@value='replace']/(..,
../@base, ., @value, @fixed)
The following example [XML Schema 1.0] extract illustrates the use of the RestrictedWhitespaceReplace pattern within an [XML Schema 1.0] document [RestrictedWhitespaceReplace]:
<xs:element name="restrictedWhitespaceReplace" type="ex:RestrictedWhitespaceReplace" /> <xs:simpleType name="RestrictedWhitespaceReplace"> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace" /> </xs:restriction> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [RestrictedWhitespaceReplace01]:
<ex:restrictedWhitespaceReplace>restricted whitespace replace</ex:restrictedWhitespaceReplace>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
PrecisionDecimal pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/PrecisionDecimal
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:simpleType/xs:union[
xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:decimal')]/xs:totalDigits[@value ='16'] and
xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:double')] and
xs:simpleType/xs:restriction[@base/resolve-QName(.,..) =
xs:QName('xs:string') and xs:enumeration/@value='NaN' and
xs:enumeration/@value='-INF' and not(xs:enumeration[3])] and
not(xs:simpleType[4] | xs:simpleType[@*]) ]/(., xs:simpleType/(.,
xs:restriction/(., @base, xs:totalDigits/(., @value),
xs:enumeration/(., @value))))
The following example [XML Schema 1.0] extract illustrates the use of the PrecisionDecimal pattern within an [XML Schema 1.0] document [PrecisionDecimal]:
<xs:element name="precisionDecimal" type="ex:PrecisionDecimal" /> <xs:simpleType name="PrecisionDecimal"> <xs:union> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:totalDigits value="16" /> </xs:restriction> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:double" /> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="NaN" /> <xs:enumeration value="-INF" /> </xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [PrecisionDecimal01]:
<ex:precisionDecimal>1000.20</ex:precisionDecimal>
as is the following element when included in an instance document [PrecisionDecimal02]:
<ex:precisionDecimal>NaN</ex:precisionDecimal>
and the following element when included in an instance document [PrecisionDecimal03]:
<ex:precisionDecimal>-INF</ex:precisionDecimal>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeGroup pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeGroup
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attributeGroup/(.,@name,@ref,xs:attribute)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeGroup pattern within an [XML Schema 1.0] document [AttributeGroup]:
<xs:element name="attributeGroup" type="ex:AttributeGroup" /> <xs:complexType name="AttributeGroup"> <xs:sequence> <xs:element name="contract" type="xs:string" /> </xs:sequence> <xs:attributeGroup ref="ex:CommonAttributes" /> </xs:complexType> <xs:attributeGroup name="CommonAttributes"> <xs:attribute name="id" type="xs:ID" use="optional" form="unqualified" /> </xs:attributeGroup>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeGroup01]:
<ex:attributeGroup id="AttributeGroup_contract_001"> <ex:contract>12345678910</ex:contract> </ex:attributeGroup>
as is the following element when included in an instance document [AttributeGroup02]:
<ex:attributeGroup> <ex:contract>9876543210</ex:contract> </ex:attributeGroup>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
SubstitutionGroup pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/SubstitutionGroup
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element[@substitutionGroup]/(.,@name,@substitutionGroup)
The following example [XML Schema 1.0] extract illustrates the use of the SubstitutionGroup pattern within an [XML Schema 1.0] document [SubstitutionGroup]:
<xs:element name="substitutionGroup" type="xs:string" /> <xs:element name="substitutionElement" substitutionGroup="ex:substitutionGroup" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [SubstitutionGroup01]:
<ex:substitutionElement>String</ex:substitutionElement>
as is the following element when included in an instance document [SubstitutionGroup02]:
<ex:substitutionGroup>String</ex:substitutionGroup>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the ElementGroup
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/ElementGroup
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:group/(.,@name,@ref,@minOccurs,@maxOccurs,xs:sequence,xs:all,xs:choice)
The following example [XML Schema 1.0] extract illustrates the use of the ElementGroup pattern within an [XML Schema 1.0] document [ElementGroup]:
<xs:element name="elementGroup" type="ex:ElementGroup" /> <xs:complexType name="ElementGroup"> <xs:sequence> <xs:group ref="ex:ElementGroupGroup" /> </xs:sequence> </xs:complexType> <xs:group name="ElementGroupGroup"> <xs:sequence> <xs:element name="value1" type="xs:string" /> <xs:element name="value2" type="xs:string" /> </xs:sequence> </xs:group>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [ElementGroup01]:
<ex:elementGroup> <ex:value1>foo</ex:value1> <ex:value2>bar</ex:value2> </ex:elementGroup>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the
AttributeGroupAnyAttribute pattern identified using the URI
[RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/AttributeGroupAnyAttribute
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:attributeGroup/xs:anyAttribute/(.,@namespace,@processContents)
The following example [XML Schema 1.0] extract illustrates the use of the AttributeGroupAnyAttribute pattern within an [XML Schema 1.0] document [AttributeGroupAnyAttribute]:
<xs:element name="attributeGroupAnyAttribute" type="ex:AttributeGroupAnyAttribute" /> <xs:complexType name="AttributeGroupAnyAttribute"> <xs:attributeGroup ref="ex:CommonAttributes" /> </xs:complexType> <xs:attributeGroup name="CommonAttributes"> <xs:attribute name="id" type="xs:ID" use="optional" form="unqualified" /> <xs:anyAttribute processContents="skip" /> </xs:attributeGroup>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [AttributeGroupAnyAttribute01]:
<ex:attributeGroupAnyAttribute id="id1" ex:anyattr="value1"/>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the Redefine
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/Redefine
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:redefine[@schemaLocation] / (., @schemaLocation,
child::*, child::*/@name, child::*/@base)
The following example [XML Schema 1.0] extract illustrates the use of the Redefine pattern within an [XML Schema 1.0] document [Redefine]:
<xs:redefine schemaLocation="../redefineschema.xsd"> <xs:complexType name="RedefineType"> <xs:complexContent> <xs:extension base="ex:RedefineType"> <xs:sequence> <xs:element name="element3" type="xs:string" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> <xs:element name="redefined" type="ex:RedefineType" />
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [Redefine01]:
<ex:redefined> <ex:element1>value1</ex:element1> <ex:element2>value2</ex:element2> <ex:element3>value3</ex:element3> </ex:redefined>
An [XML Schema 1.0], or other [XML 1.0] document containing an [XML Schema 1.0] element
<xs:schema>
, exhibits the Unique
pattern identified using the URI [RFC 3986]
http://www.w3.org/2002/ws/databinding/patterns/6/09/Unique
when the following [XPath 2.0] expression
applied to a document or element node with a context node of
//xs:schema
results in an [XPath
2.0] node-set containing at least one node:
.//xs:element/xs:unique/(..,
.,xs:selector,xs:selector/@xpath,xs:field,xs:field/@xpath)
The following example [XML Schema 1.0] extract illustrates the use of the Unique pattern within an [XML Schema 1.0] document [Unique]:
<xs:element name="unique" type="ex:Unique"> <xs:unique name="nameUniqueness"> <xs:selector xpath="ex:character" /> <xs:field xpath="ex:name" /> </xs:unique> </xs:element> <xs:complexType name="Unique"> <xs:sequence> <xs:element name="character" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="age" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType>
The following example [XML 1.0] element is valid against the above example [XML Schema 1.0] when included inside an instance document [Unique01]:
<ex:unique> <ex:character> <ex:name>String</ex:name> <ex:age>String</ex:age> </ex:character> </ex:unique>
This section offers one or more patterns which may be used to represent an abstract data structure. Each data structure presented is intended to be independent of any particular programming language, database or modeling environment. No semantics are implied by the order in which patterns are listed for a given abstract data structure.
The patterns defined by this specification may be detected in a description such as an [XML Schema 1.0], [WSDL 2.0] or [WSDL 1.1] document using an [XPath 2.0] processor. The following example illustrates detecting a pattern using an [XSLT 2.0] stylesheet:
<xsl:stylesheet version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://www.w3.org/2002/ws/databinding/examples/6/09/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/"> <xsl:output method="text" /> <xsl:template match="/"> <xsl:apply-templates select="//xs:schema" mode="detect"/> </xsl:template> <xsl:template match="*" mode="detect"> <xsl:if test="count(.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:string')]) gt 0"> http://www.w3.org/2002/ws/databinding/patterns/6/09/StringElement </xsl:if> <!-- tests to detect other patterns .. --> </xsl:template> <xsl:template match="text()"/> </xsl:stylesheet>
Similarly a [Schematron] schema may be assembled from this specification and used in conjunction with a processor which supports [XPath 2.0] as follows:
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema"></sch:ns> <sch:pattern name="Basic"> <sch:rule> <sch:report test="count(.//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:string')]) gt 0"> http://www.w3.org/2002/ws/databinding/patterns/6/09/StringElement </sch:report> </sch:rule> <!-- reports to detect other patterns .. --> </sch:pattern> </sch:schema>
The [XPath 2.0] for each [XML Schema 1.0] pattern is constructed to return a set containing all of the Element and Attribute nodes covered by an individual pattern. Elements and attributes contained within a [XML Schema 1.0] document not covered by a set of patterns may be detected using an [XPath2.0] expression as in the following [XSLT 2.0] extract:
<xsl:if select="(.//* | .//@*) except ( @targetNamespace | .//xs:element[resolve-QName(@type,.) = xs:QName('xs:string')]/(@type) | .. other pattern XPaths .. )"> unexpected elements or attributes detected </xsl:if>
The following [XPath2.0] examples are intended to illustrate the idiomatic use of [XPath2.0] by this specification when defining [XML Schema 1.0] patterns.
XPath 2.0 Sample | Description |
---|---|
./(@elementFormDefault) |
returns the elementFormDefault attribute of the
xs:schema element |
.[@elementFormDefault='qualified']/(@elementFormDefault) |
returns the elementFormDefault attribute of the
xs:schema element, where the contents of the
elementFormDefault attribute is the string
'qualified' . |
.//.[@mixed = 'false']/(@mixed) |
returns the set of mixed attributes contained on
any element found beneath the xs:schema element, where
the contents of the mixed attribute is the string
value 'false' . |
.//xs:element[not(parent::xs:schema)]/xs:complexType |
returns the xs:complexType element where the
parent node is not the element xs:schema . |
.//xs:annotation/xs:documentation/ (.., ., .//*,
.//@*) |
returns the parent node, the current node, all descendant
elements and all descendant attributes for all
xs:documentation elements. |
.//xs:element/@type[resolve-QName(.,..) =
xs:QName('xs:string')] |
returns the type attribute where the QName value
of the type attribute is a local part
string in the namespace found by resolving the prefix
xs in 1.2 Namespaces,
i.e 'http://www.w3.org/2001/XMLSchema' . |
.//xs:element[@name and @type and
namespace-uri-from-QName(resolve-QName(@type,.)) !=
'http://www.w3.org/2001/XMLSchema' and contains(@type, ':')]/ (.,
@name, @type) |
returns the xs:element , name and
type attributes where the string value of the
type attribute contains a ':' character, and the
resultant QName value is not the [XML 1.0]
datatypes namespace, i.e. an explicitly qualified datatype in the
##targetNamespace or ##other
namespace. |
./xs:import[@namespace and not(@schemaLocation) and
not(@namespace = 'http://www.w3.org/2001/XMLSchema')]/ (.,
@namespace) |
returns the xs:import element and
namespace attribute for an xs:import
element with an absent schemaLocation attribute or one
matching the [XML Schema 1.0] datatypes
namespace. |
.//xs:element[@minOccurs = '0' and (not(@maxOccurs) or
@maxOccurs = '1')]/ (@minOccurs, @maxOccurs) |
returns the minOccurs and maxOccurs
attributes for an xs:element element where the
minOccurs attribute has a string value of
'0' and the maxOccurs attribute is absent
or has a string value of '1' . |
.//xs:sequence[count(xs:element) =
1]/xs:element[@maxOccurs = 'unbounded']/ (.,
@maxOccurs) |
returns the xs:element element and
maxOccurs attribute where a sequence has
a single xs:element element that is defined with
maxOccurs attribute string value of
'unbounded' . |
.//xs:element[@name]/xs:complexType[not(node())]/(., ..,
../@name) |
returns the xs:complexType and
xs:element element, and the xs:element
name attribute where the complexType does not have any
child nodes. |
Id | Pattern |
---|---|
pattern-AllElement | .//xs:all/xs:element/(.) |
pattern-AnyAttributeLax | .//xs:complexType/xs:anyAttribute[(@processContents = 'lax') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @namespace) |
pattern-AnyAttributeNamespacedFinite | .//xs:complexType/xs:anyAttribute[@processContents and @namespace and (not (@namespace = '##targetNamespace')) and (not (@namespace = '##any')) and (not (@namespace = '##local')) and (not (@namespace = '##other'))]/ (., @processContents, @namespace) |
pattern-AnyAttributeOtherLax | .//xs:complexType/xs:anyAttribute[(@processContents = 'lax') and (@namespace = '##other')]/ (., @processContents, @namespace) |
pattern-AnyAttributeOtherSkip | .//xs:complexType/xs:anyAttribute[(@processContents = 'skip') and (@namespace = '##other')]/ (., @processContents, @namespace) |
pattern-AnyAttributeOtherStrict | .//xs:complexType/xs:anyAttribute[(not(@processContents) or @processContents = 'strict') and (@namespace = '##other')]/ (., @processContents, @namespace) |
pattern-AnyAttributeSkip | .//xs:complexType/xs:anyAttribute[(@processContents = 'skip') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @namespace) |
pattern-AnyAttributeStrict | .//xs:complexType/xs:anyAttribute[(not(@processContents) or @processContents = 'strict') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @namespace) |
pattern-AnySimpleTypeAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:anySimpleType')] |
pattern-AnySimpleTypeElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:anySimpleType')] |
pattern-AnyTypeElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:anyType')] |
pattern-AnyURIEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:anyURI') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-AppinfoElement | .//xs:annotation/xs:appinfo/ (.., ., .//*, .//@*) |
pattern-AttributeDefault | .//xs:attribute[@default] / (@default) |
pattern-AttributeElementNameClash | .//xs:complexType/xs:sequence/xs:element[@name = ../../xs:attribute/@name]/ (@name) |
pattern-AttributeFixed | .//xs:attribute[@fixed] / (@fixed) |
pattern-AttributeFormQualified | .//xs:attribute[@form='qualified']/ (@form) |
pattern-AttributeGroup | .//xs:attributeGroup/(.,@name,@ref,xs:attribute) |
pattern-AttributeGroupAnyAttribute | .//xs:attributeGroup/xs:anyAttribute/(.,@namespace,@processContents) |
pattern-AttributeProhibited | .//xs:attribute[@use = 'prohibited']/ (@use) |
pattern-AttributeReferenceUnqualified | .//xs:attribute[@ref and not(contains(@ref, ':'))]/ (., @ref) |
pattern-AttributeRequired | .//xs:attribute[@use = 'required']/ (@use) |
pattern-AttributeTypeReferenceUnqualified | .//xs:attribute[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/ (., @name, @type) |
pattern-Base64BinaryAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:base64Binary')] |
pattern-BlockDefault | ./@blockDefault |
pattern-ByteSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:byte')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-ChoiceChoice | .//xs:choice/xs:choice/(.) |
pattern-ChoiceElement | .//xs:choice/xs:element/(.) |
pattern-ChoiceMaxOccursFinite | .//xs:choice[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/ (@maxOccurs) |
pattern-ChoiceMaxOccursUnbounded | .//xs:choice[@maxOccurs = 'unbounded']/ (@maxOccurs) |
pattern-ChoiceMinOccurs0 | .//xs:choice[@minOccurs='0']/ (@minOccurs) |
pattern-ChoiceMinOccursFinite | .//xs:choice[@minOccurs and not(@minOccurs = '0' or @minOccurs = '1')]/ (@minOccurs) |
pattern-ChoiceSequence | .//xs:choice/xs:sequence/(.) |
pattern-ComplexContentExtensionAnyAttribute | .//xs:complexType/xs:complexContent/xs:extension/xs:anyAttribute/(., @namespace, @processContents) |
pattern-ComplexContentRestrictionAnyAttribute | .//xs:complexType/xs:complexContent/xs:restriction/xs:anyAttribute/(., @namespace, @processContents) |
pattern-ComplexTypeAll | .//xs:complexType/xs:all/ (., xs:element/(., @name)) |
pattern-ComplexTypeAnyAttribute | .//xs:complexType/xs:anyAttribute |
pattern-ComplexTypeAttributeGroupExtension | .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:attributeGroup]/ (., xs:extension/ (., @base, xs:attributeGroup)) |
pattern-ComplexTypeAttributeRestriction | .//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:attribute]/ (., xs:restriction/(., @base, xs:attribute/(., @name))) |
pattern-ComplexTypeChoice | .//xs:complexType/xs:choice/ (., xs:element/(., @name)) |
pattern-ComplexTypeChoiceAny | .//xs:complexType/xs:choice/xs:any/(., @namespace, @processContents, @maxOccurs, @minOccurs) |
pattern-ComplexTypeChoiceExtension | .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:choice]/ (., xs:extension/ (., @base, xs:choice/(., xs:element/(., @name)))) |
pattern-ComplexTypeExtensionAnnotationOnly | .//xs:complexType/xs:complexContent/xs:extension[@base]/xs:annotation[not(preceding-sibling::*) and not(following-sibling::*)]/ (../(., @base), ../../(.)) |
pattern-ComplexTypeFinal | .//xs:complexType[@final]/(., @final) |
pattern-ComplexTypeOnlyAttributeGroup | .//xs:complexType/xs:attributeGroup[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute or xs:group or xs:simpleContent or xs:complexContent)]/(., ..,@ref) |
pattern-ComplexTypeOnlyAttributes | .//xs:complexType/xs:attribute[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute or xs:group or xs:attributeGroup or xs:simpleContent or xs:complexContent)]/ (., ..,@use) |
pattern-ComplexTypeSequenceChoice | .//xs:complexType/xs:sequence/xs:choice/ (., xs:element/(., @name)) |
pattern-ComplexTypeSequenceChoiceAny | .//xs:complexType/xs:sequence/xs:choice/xs:any/(., @namespace, @processContents, @maxOccurs, @minOccurs) |
pattern-ComplexTypeSequenceRestriction | .//xs:complexType/xs:complexContent[xs:restriction[@base]/xs:sequence]/ (., xs:restriction/(., @base, xs:sequence)) |
pattern-DateAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:date')] |
pattern-DateElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:date')] |
pattern-DateSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:date')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-DecimalAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:decimal')] |
pattern-DecimalElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:decimal')] |
pattern-DecimalEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-DecimalSimpleTypeFractionDigits | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:fractionDigits/@value]/ (., @base, xs:fractionDigits/(., @value)) |
pattern-DecimalSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-DecimalSimpleTypeTotalDigits | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal') and xs:totalDigits/@value]/ (., @base, xs:totalDigits/(., @value)) |
pattern-DoubleEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-DoubleSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-DurationAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:duration')] |
pattern-DurationElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:duration')] |
pattern-ENTITIESAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ENTITIES')] |
pattern-ENTITIESElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ENTITIES')] |
pattern-ENTITYAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ENTITY')] |
pattern-ENTITYElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ENTITY')] |
pattern-ElementDefault | .//xs:element/ (@default) |
pattern-ElementDefaultAnyType | .//xs:element[@name and not(@type) and ./not(xs:simpleType or xs:complexType or xs:unique or xs:key or xs:keyref)]/(.) |
pattern-ElementFixed | .//xs:element[@fixed] / (@fixed) |
pattern-ElementFormUnqualified | .//xs:element[@form='unqualified']/ (@form) |
pattern-ElementGroup | .//xs:group/(.,@name,@ref,@minOccurs,@maxOccurs,xs:sequence,xs:all,xs:choice) |
pattern-ElementKey | .//xs:element/xs:key[xs:selector and xs:field]/(., xs:selector, xs:selector/(@xpath), xs:field, xs:field/(@xpath)) |
pattern-ElementMaxOccursFinite | .//xs:element[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/ (@maxOccurs) |
pattern-ElementMinOccurs0MaxOccursFinite | .//xs:element[@minOccurs = '0' and @maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/ (@minOccurs, @maxOccurs) |
pattern-ElementMinOccursFinite | .//xs:element[xs:integer(@minOccurs) gt 1]/ (@minOccurs, @maxOccurs) |
pattern-ElementReferenceUnqualified | .//xs:element[@ref and not(contains(@ref, ':'))]/ (., @ref) |
pattern-ElementTypeDefaultNamespace | .//xs:element[@name and @type and not(contains(@type, ':'))]/ (@name, @type) |
pattern-ElementTypeReferenceUnqualified | .//xs:element[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/ (., @name, @type) |
pattern-ExtendedSequenceLax | .//xs:sequence/xs:any[@processContents = 'lax' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##targetNamespace']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceLaxAny | .//xs:sequence/xs:any[@processContents = 'lax' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceLaxOther | .//xs:sequence/xs:any[@processContents = 'lax' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##other']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceNamespacedFinite | .//xs:sequence/xs:any[@processContents and @namespace and @maxOccurs and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs = '1') ) and (not (@maxOccurs='unbounded')) and (not (@namespace = '##targetNamespace')) and (not (@namespace = '##any')) and (not (@namespace = '##local')) and (not (@namespace = '##other'))]/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceSkip | .//xs:sequence/xs:any[@processContents = 'skip' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##targetNamespace']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceSkipAny | .//xs:sequence/xs:any[@processContents = 'skip' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceSkipOther | .//xs:sequence/xs:any[@processContents = 'skip' and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##other']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceStrict | .//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict') and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##targetNamespace']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceStrictAny | .//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict') and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and (not(@namespace) or @namespace = '##any')]/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSequenceStrictOther | .//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict') and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and @namespace = '##other']/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-ExtendedSimpleContent | .//xs:complexType/xs:simpleContent/xs:extension[@base]/ (.., ., ./@base, xs:attribute/ (., @name)) |
pattern-FinalDefault | ./@finalDefault |
pattern-FloatAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:float')] |
pattern-FloatElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:float')] |
pattern-FloatEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:float') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-FloatSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:float')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GDayAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gDay')] |
pattern-GDayElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gDay')] |
pattern-GDaySimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gDay')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GMonthAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gMonth')] |
pattern-GMonthDayAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gMonthDay')] |
pattern-GMonthDayElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gMonthDay')] |
pattern-GMonthDaySimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gMonthDay')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GMonthElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gMonth')] |
pattern-GMonthSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gMonth')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GYearAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gYear')] |
pattern-GYearElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gYear')] |
pattern-GYearMonthAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:gYearMonth')] |
pattern-GYearMonthElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:gYearMonth')] |
pattern-GYearMonthSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gYearMonth')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GYearSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:gYear')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-GlobalAttributeSimpleType | ./xs:attribute/xs:simpleType/(../(., @name), .., ., descendant::*, descendant::*/@value, descendant::*/@base) |
pattern-GlobalAttributeUnqualifiedType | ./xs:attribute[@name and @type and not(contains(@type, ':'))]/ (., @name, @type) |
pattern-GlobalComplexTypeAbstract | ./xs:complexType[@abstract='true']/ (@abstract) |
pattern-GlobalComplexTypeBlock | ./xs:complexType/ (@block) |
pattern-GlobalComplexTypeEmptyExtension | ./xs:complexType[@name]/xs:complexContent[xs:extension[@base]/not(*)]/ (../../(., @name), .., ., xs:extension/(., @base)) |
pattern-GlobalElementAbstract | ./xs:element[@abstract='true']/ (@abstract) |
pattern-GlobalElementAll | ./xs:element[@name]/xs:complexType/xs:all[xs:element]/ (../../(., @name), .., ., xs:element/(., @name)) |
pattern-GlobalElementBlock | ./xs:element/ (@block) |
pattern-GlobalElementChoice | ./xs:element[@name]/xs:complexType/xs:choice[xs:element]/ (../../(., @name), .., ., xs:element/(., @name)) |
pattern-GlobalElementComplexTypeEmptyExtension | ./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/not(*)]/ (../../(., @name), .., ., xs:extension/(., @base)) |
pattern-GlobalElementComplexTypeSequenceExtension | ./xs:element[@name]/xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/ (../../(., @name), .., ., xs:extension/(., @base, xs:sequence/(., xs:element/(., @name), xs:attribute/(., @name)))) |
pattern-GlobalElementFinal | ./xs:element/ (@final) |
pattern-GlobalElementSequenceAny | ./xs:element[@name]/xs:complexType/xs:sequence[xs:any and not(xs:element)]/ (../../(., @name)) |
pattern-GlobalElementSimpleType | ./xs:element[@name]/xs:simpleType/ (../(., @name), .) |
pattern-GlobalElementUnqualifiedType | ./xs:element[@name and @type and not(contains(@type, ':'))]/ (., @name, @type) |
pattern-HexBinaryAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:hexBinary')] |
pattern-HexBinaryElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:hexBinary')] |
pattern-IDAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:ID')] |
pattern-IDElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:ID')] |
pattern-IDREFAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:IDREF')] |
pattern-IDREFElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:IDREF')] |
pattern-IDREFSAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:IDREFS')] |
pattern-IDREFSElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:IDREFS')] |
pattern-ImportSchemaNamespace | ./xs:import[not(@schemaLocation) and @namespace = 'http://www.w3.org/2001/XMLSchema']/ (., @namespace) |
pattern-IntEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:int') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-IntSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:int')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-IntegerAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:integer')] |
pattern-IntegerElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:integer')] |
pattern-IntegerEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:integer') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-IntegerSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:integer')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-LanguageAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:language')] |
pattern-LanguageElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:language')] |
pattern-LanguageEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:language') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-List | .//xs:list[@itemType]/ (., @itemType) |
pattern-LocalAttributeSimpleType | .//xs:attribute[not(parent::xs:schema)]/xs:simpleType |
pattern-LocalElementComplexTypeEmptyExtension | .//xs:element[not(parent::xs:schema)]/xs:complexType[not(@name)]/xs:complexContent[xs:extension[@base]/not(*)]/ (../../(., @name), .., ., xs:extension/(., @base)) |
pattern-LocalElementSimpleType | .//xs:element[not(parent::xs:schema)]/xs:simpleType |
pattern-LongEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:long') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-LongSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:long')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-MaxOccurs0 | .//xs:element[@maxOccurs='0']/(., @maxOccurs, @minOccurs) |
pattern-MixedComplexContent | .//xs:complexContent[@mixed = 'true']/ (@mixed) |
pattern-MixedContentType | .//xs:complexType[@mixed = 'true']/ (@mixed) |
pattern-NMTOKENAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKEN')] |
pattern-NMTOKENElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKEN')] |
pattern-NMTOKENEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:NMTOKEN') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-NMTOKENSAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKENS')] |
pattern-NMTOKENSElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:NMTOKENS')] |
pattern-NegativeIntegerAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:negativeInteger')] |
pattern-NegativeIntegerElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:negativeInteger')] |
pattern-NillableOptionalElement | .//xs:element[@nillable = 'true' and @minOccurs = '0']/ (@nillable, @minOccurs) |
pattern-NoTargetNamespace | .[not(@targetNamespace)]/ (.) |
pattern-NonNegativeIntegerElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger')] |
pattern-NonNegativeIntegerEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-NonNegativeIntegerSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-NonPositiveIntegerAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:nonPositiveInteger')] |
pattern-NonPositiveIntegerElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:nonPositiveInteger')] |
pattern-PositiveIntegerEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:positiveInteger') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-PositiveIntegerSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:positiveInteger')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-PrecisionDecimal | .//xs:simpleType/xs:union[ xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:decimal')]/xs:totalDigits[@value ='16'] and xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:double')] and xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and xs:enumeration/@value='NaN' and xs:enumeration/@value='-INF' and not(xs:enumeration[3])] and not(xs:simpleType[4] | xs:simpleType[@*]) ]/(., xs:simpleType/(., xs:restriction/(., @base, xs:totalDigits/(., @value), xs:enumeration/(., @value)))) |
pattern-QNameEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:QName') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-QualifiedLocalAttributes | .[@attributeFormDefault = 'qualified']/ (@attributeFormDefault) |
pattern-Redefine | .//xs:redefine[@schemaLocation] / (., @schemaLocation, child::*, child::*/@name, child::*/@base) |
pattern-RestrictedLength | .//xs:simpleType/xs:restriction/xs:length[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMaxExclusive | .//xs:simpleType/xs:restriction/xs:maxExclusive[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMaxInclusive | .//xs:simpleType/xs:restriction/xs:maxInclusive[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMaxLength | .//xs:simpleType/xs:restriction/xs:maxLength[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMinExclusive | .//xs:simpleType/xs:restriction/xs:minExclusive[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMinInclusive | .//xs:simpleType/xs:restriction/xs:minInclusive[@value]/(.., ../@base, ., @value) |
pattern-RestrictedMinLength | .//xs:simpleType/xs:restriction/xs:minLength[@value]/(.., ../@base, ., @value) |
pattern-RestrictedPattern | .//xs:simpleType/xs:restriction/xs:pattern[@value]/(.., ../@base, ., @value) |
pattern-RestrictedSimpleContent | .//xs:complexType/xs:simpleContent/xs:restriction[@base]/(.., ., @base, child::*, child::*/@value) |
pattern-RestrictedStringMaxLength | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:maxLength[@value]/ (.., ../@base, ., @value) |
pattern-RestrictedStringMinLength | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:minLength[@value]/ (.., ../@base, ., @value) |
pattern-RestrictedStringMinMaxLength | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string') and xs:minLength/@value and xs:maxLength/@value]/ (., @base, xs:minLength/(., @value), xs:maxLength/(., @value)) |
pattern-RestrictedWhitespaceCollapse | .//xs:simpleType/xs:restriction/xs:whiteSpace[@value='collapse']/(.., ../@base, ., @value, @fixed) |
pattern-RestrictedWhitespacePreserve | .//xs:simpleType/xs:restriction/xs:whiteSpace[@value='preserve']/(.., ../@base, ., @value, @fixed) |
pattern-RestrictedWhitespaceReplace | .//xs:simpleType/xs:restriction/xs:whiteSpace[@value='replace']/(.., ../@base, ., @value, @fixed) |
pattern-SOAPEncodedArray | ./xs:complexType[@name]/xs:complexContent/xs:restriction[ @base/resolve-QName(.,..) = xs:QName('soap11enc:Array')]/ xs:attribute[(@ref/resolve-QName(.,..) = xs:QName('soap11enc:arrayType')) and @wsdl11:arrayType]/ (../.., ../(., @base), ., @ref, @wsdl11:arrayType) |
pattern-SequenceAnyStrict | .//xs:sequence/xs:any[(not(@processContents) or @processContents = 'strict') and (not (@minOccurs) or @minOccurs = '1' or @minOccurs = '0') and (not (@maxOccurs) or @maxOccurs = '1' or @maxOccurs='unbounded') and (not (@namespace) or @namespace = '##any')]/ (., @processContents, @minOccurs, @maxOccurs, @namespace) |
pattern-SequenceChoice | .//xs:sequence/xs:choice/(.) |
pattern-SequenceMaxOccursFinite | .//xs:sequence[@maxOccurs and not(@maxOccurs = '0' or @maxOccurs = '1' or @maxOccurs = 'unbounded')]/ (@maxOccurs) |
pattern-SequenceMinOccurs0 | .//xs:sequence[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs) |
pattern-SequenceMinOccurs0MaxOccursUnbounded | .//xs:sequence[@minOccurs = '0' and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs) |
pattern-SequenceMinOccurs1MaxOccursUnbounded | .//xs:sequence[(not(@minOccurs) or @minOccurs = '1') and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs) |
pattern-SequenceMinOccursFinite | .//xs:sequence[xs:integer(@minOccurs) gt 1]/ (@minOccurs, @maxOccurs) |
pattern-SequenceSequenceElement | .//xs:sequence/xs:sequence/xs:element/ (., ..) |
pattern-SequenceSequenceGroup | .//xs:sequence/xs:sequence/xs:group/(., ..) |
pattern-ShortEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:short') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-ShortSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:short')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-SimpleContentAnyAttributeLax | .//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents = 'lax') and (@namespace = '##other')]/ (., @processContents, @namespace) |
pattern-SimpleContentAnyAttributeSkip | .//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[(@processContents = 'skip')]/ (., @processContents) |
pattern-SimpleContentAnyAttributeStrict | .//xs:complexType/xs:simpleContent/xs:extension/xs:anyAttribute[not(@processContents) or (@processContents = 'strict') and (@namespace = '##other')]/ (., @processContents, @namespace) |
pattern-SimpleTypeEnumerationType | .//xs:simpleType/xs:restriction[@base and namespace-uri-from-QName(resolve-QName(@base,.)) != 'http://www.w3.org/2001/XMLSchema' ]/ (., @base, xs:enumeration/(., @value)) |
pattern-SimpleTypeRenamed | .//xs:simpleType/xs:restriction[@base and count(./*) = 0]/ (., @base) |
pattern-StringSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-SubstitutionGroup | .//xs:element[@substitutionGroup]/(.,@name,@substitutionGroup) |
pattern-TimeAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:time')] |
pattern-TimeElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:time')] |
pattern-TokenEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:token') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-TokenSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:token')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-UnionMemberTypes | .//xs:simpleType/xs:union[@memberTypes and not(xs:simpleType)]/ (., @memberTypes) |
pattern-UnionSimpleAndMemberTypes | .//xs:simpleType/xs:union[@memberTypes and xs:simpleType]/ (., @memberTypes, xs:simpleType) |
pattern-UnionSimpleTypes | .//xs:simpleType/xs:union[not(@memberTypes)]/xs:simpleType/ (.., .) |
pattern-Unique | .//xs:element/xs:unique/(.., .,xs:selector,xs:selector/@xpath,xs:field,xs:field/@xpath) |
pattern-UnqualifiedLocalElements | .[not(@elementFormDefault) or @elementFormDefault = 'unqualified']/ (., @elementFormDefault) |
pattern-UnsignedByteAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedByte')] |
pattern-UnsignedByteElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedByte')] |
pattern-UnsignedIntAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedInt')] |
pattern-UnsignedIntElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedInt')] |
pattern-UnsignedIntEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedInt') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-UnsignedIntSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedInt')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-UnsignedLongAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedLong')] |
pattern-UnsignedLongElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedLong')] |
pattern-UnsignedLongEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedLong') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-UnsignedLongSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedLong')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-UnsignedShortAttribute | .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:unsignedShort')] |
pattern-UnsignedShortElement | .//xs:element/@type[resolve-QName(.,..) = xs:QName('xs:unsignedShort')] |
pattern-UnsignedShortEnumerationType | .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedShort') and xs:enumeration]/ (., @base, xs:enumeration/(., @value)) |
pattern-UnsignedShortSimpleTypePattern | .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:unsignedShort')]/xs:pattern[@value]/ (.., ../@base, ., @value) |
pattern-XmlLang | .[@xml:lang] / (@xml:lang) |
Id | Assertion |
---|---|
assert-BOM | MAY include the [Unicode] Byte Order Mark ([BOM]). |
assert-BasicPatterns | MUST only contain [XML 1.0] element nodes and attribute nodes which form a part of one or more complete patterns contained in this and the [Basic Patterns] specifications. |
assert-CommentsAndPIs | MAY contain additional [XML 1.0] comment nodes and processing instruction nodes. |
assert-Unicode | MUST use either the UTF-8 or UTF-16 [Unicode] encoding. |
assert-XML10 | MUST be a Well-formed [XML 1.0] document |
assert-XMLSchema10 | MUST conform to the [XML Schema 1.0] Recommendation |
Id | Assertion |
---|---|
assert-AnySchema | MUST be able to consume any valid [XML Schema 1.0] Document. |
assert-ConsumeInvalidAllowed | MAY consume Well-formed [XML 1.0] instance documents which do not satisfy local-schema validity against the originating [XML Schema 1.0] Document. |
assert-ConsumeXML | MUST be able to consume any Well-formed [XML 1.0] Document which satisfies local-schema validity against the originating [XML Schema 1.0] Document exposing all of the [XML 1.0] element node and attribute node content in the data model. |
assert-DataModel | MUST produce a data model exposing all of the [XML 1.0] element node and attribute node content described by the originating [XML Schema 1.0] Document. |
assert-ProduceInvalidAllowed | MAY allow the production of Well-formed [XML 1.0] instance documents containing values exposed in the data model which do not satisfy local-schema validity against the originating [XML Schema 1.0] Document. |
assert-ProduceXML | MUST be able to produce Well-formed [XML 1.0] instance documents which satisfy local-schema validity against the originating [XML Schema 1.0] Document containing values exposed in the data model. |
assert-SchemaValid | MUST be able to process any [XML Schema 1.0] Document conforming to this specification |
This section lists all the elements, attributes and simple types defined by the XML Schema specifications and indicates if it is referenced from one of the patterns.
[XML Schema 1.0] documents conforming to this specification are intended to be compatible with the [WS-I Basic Profile 1.1] and may be imported, included or embedded inside a [WS-I Basic Profile 1.1] conformant [WSDL 1.1] document.
[WS-I Basic Profile 1.1] Conformance Requirements for an [XML Schema 1.0] document known to be more restrictive than this specification:
[WS-I Basic Profile 1.1] Conformance Requirements known to be compatible with this specification include:
[WS-I Basic Profile 1.1] Conformance Requirements known to be less restrictive than this this specification:
This document is the work of the W3C XML Schema Patterns for Databinding Working Group.
Members of the Working Group are (at the time of writing, and by alphabetical order): Vladislav Bezrukov (SAP AG), Jonathan Calladine (BT), George Cowe (Origo Services Limited), Paul Downey (BT), Paul Fremantle (WSO2), Anthony Julian (Health Level Seven, Inc.), Yves Lafon (W3C/ERCIM), Ajith Ranabahu (WSO2), Adrian Smith (BT), Amila Suriarachchi (WSO2), Priscilla Walmsley (W3C Invited Experts), Scott Wood (National Association of Convenience Stores (NACS)).
Previous members of the Working Group were: Paul Biron (Health Level Seven, Inc.), Otu Ekanem (BT), Sekhar Vajjhala (Sun Microsystems).
The people who have contributed to discussions on [email protected] are also gratefully acknowledged.