[
Lists Home |
Date Index |
Thread Index
]
What's supposed to be the problem with it? Xerces and XSV like it.
Bob Foster
David P. Nesbitt wrote:
> I have attempted to validate the XML Schema for
> XQuery, but it does not seem to be valid. I used
> XMLSPY and the gotdotnet website. Any ideas?
>
> The schema is included below. I obtained from this
> schema from:
>
> http://www.w3.org/TR/xqueryx/#Schema
>
> Regards,
> Dave
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema
> targetNamespace="http://www.w3.org/2003/12/XQueryX"
> xmlns="http://www.w3.org/2003/12/XQueryX"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified"
> attributeFormDefault="qualified">
>
> <!--
> Version 1.1 of the XQueryX schema.
> Authors: Jim Melton, S. Muralidhar (Oracle Corp.)
>
> The main data structure in this schema is the set of
> types that describe
> expressions. I've chosen to model expressions as an
> inheritance
> hierarchy, with an "expr" abstract base class.
>
> All expression instances are elements with the name
> "expr" and the
> type attribute set to the most-specific type.
> The different types for expressions correspond to
> the different kinds
> of expressions that we support - constants,
> variables, functions, builtins,
> flwor expressions and so on.
>
> I've tried to avoid attributes as far as possible
> (modulo the "type"
> attribute for expressions), and model these as
> elements - this is a
> perfectly arbitrary decision, and can be reversed.
>
> I've attempted to create an "exprWrapper"
> type/element. In most embedded
> cases, we use this construct, instead of the "expr"
> element itself - just
> because I might want to name the element
> differently.
>
> I've also chosen to model the set of builtin
> operator types as an inheritance
> hierarchy - mainly because it tended to group things
> nicely. I don't
> see a problem with making this simply a large union.
>
> -->
>
> <!-- A few helper declarations -->
> <xsd:complexType name="emptyContent"/>
> <xsd:element name="QName" type="xsd:QName"/>
> <xsd:element name="NCName" type="xsd:NCName"/>
>
> <!-- The base class -->
> <xsd:complexType name="expr"/>
> <xsd:element name="expr" type="expr"/>
> <!-- A list of expressions -->
> <xsd:complexType name="exprList">
> <xsd:sequence>
> <xsd:element ref="expr" minOccurs="0"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="exprList" type="exprList"/>
> <!-- Simple wrapper class -->
> <xsd:complexType name="exprWrapper">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="exprWrapper" type="exprWrapper"/>
> <!-- Kludge for anySimpleType -->
> <xsd:simpleType name="constantValueType">
> <xsd:union memberTypes="xsd:integer xsd:decimal
> xsd:string xsd:double"/>
> </xsd:simpleType>
> <!-- constant expressions. We have 4 different
> subclasses for this -->
> <xsd:complexType name="constantExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="value"
> type="constantValueType"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="integerConstantExpr">
> <xsd:complexContent>
> <xsd:restriction base="constantExpr">
> <xsd:sequence>
> <xsd:element name="value"
> type="xsd:integer"/>
> </xsd:sequence>
> </xsd:restriction>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="decimalConstantExpr">
> <xsd:complexContent>
> <xsd:restriction base="constantExpr">
> <xsd:sequence>
> <xsd:element name="value"
> type="xsd:decimal"/>
> </xsd:sequence>
> </xsd:restriction>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="doubleConstantExpr">
> <xsd:complexContent>
> <xsd:restriction base="constantExpr">
> <xsd:sequence>
> <xsd:element name="value"
> type="xsd:double"/>
> </xsd:sequence>
> </xsd:restriction>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="stringConstantExpr">
> <xsd:complexContent>
> <xsd:restriction base="constantExpr">
> <xsd:sequence>
> <xsd:element name="value"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:restriction>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- Variables -->
> <xsd:complexType name="variable">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="name" type="xsd:QName"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="functionCallExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="functionName"
> type="xsd:QName"/>
> <xsd:element name="parameters"
> type="exprList" minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="sequenceExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr" minOccurs="0"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="rangeSequenceExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr" minOccurs="2"
> maxOccurs="2"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- Inheritance hierarchy for operator types -->
> <xsd:simpleType name="opTypes">
> <xsd:restriction base="xsd:string"/>
> </xsd:simpleType>
> <!-- All comparison operators -->
> <xsd:simpleType name="comparisonOpTypes">
> <xsd:restriction base="opTypes"/>
> </xsd:simpleType>
> <!-- All arithmetic operators -->
> <xsd:simpleType name="arithmeticOpTypes">
> <xsd:restriction base="opTypes">
> <xsd:enumeration value="+"/>
> <xsd:enumeration value="-"/>
> <xsd:enumeration value="unbounded"/>
> <xsd:enumeration value="div"/>
> <xsd:enumeration value="idiv"/>
> <xsd:enumeration value="mod"/>
> <xsd:enumeration value="unaryMinus"/>
> <xsd:enumeration value="unaryPlus"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="valueComparisonOpTypes">
> <xsd:restriction base="comparisonOpTypes">
> <xsd:enumeration value="eq"/>
> <xsd:enumeration value="ne"/>
> <xsd:enumeration value="gt"/>
> <xsd:enumeration value="ge"/>
> <xsd:enumeration value="lt"/>
> <xsd:enumeration value="le"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="generalComparisonOpTypes">
> <xsd:restriction base="comparisonOpTypes">
> <xsd:enumeration value="="/>
> <xsd:enumeration value="!="/>
> <xsd:enumeration value="<"/>
> <xsd:enumeration value="<="/>
> <xsd:enumeration value=">="/>
> <xsd:enumeration value=">="/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="nodeComparisonOpTypes">
> <xsd:restriction base="comparisonOpTypes">
> <xsd:enumeration value="is"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="orderComparisonOpTypes">
> <xsd:restriction base="comparisonOpTypes">
> <xsd:enumeration value="<<"/>
> <xsd:enumeration value=">>"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="logicalOpTypes">
> <xsd:restriction base="opTypes">
> <xsd:enumeration value="and"/>
> <xsd:enumeration value="or"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:simpleType name="miscOpTypes">
> <xsd:restriction base="opTypes">
> <xsd:enumeration value="union"/>
> <xsd:enumeration value="intersect"/>
> <xsd:enumeration value="except"/>
> </xsd:restriction>
> </xsd:simpleType>
> <!-- This class describes all builtin-operators -->
> <xsd:complexType name="operatorExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="infixOp"
> type="emptyContent" minOccurs="0"/>
> <xsd:element name="opType" type="opTypes"/>
> <xsd:element name="parameters"
> type="exprList"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- Basic typenames -->
> <xsd:element name="atomicType" type="xsd:QName"/>
> <!-- Used in castable expression -->
> <xsd:element name="singleType">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="atomicType"/>
> <xsd:element name="optional"
> type="emptyContent" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:group name="itemType">
> <xsd:choice>
> <xsd:element ref="atomicType"/>
> <xsd:group ref="kindTest"/>
> <xsd:element name="anyItemType"
> type="emptyContent"/>
> </xsd:choice>
> </xsd:group>
> <xsd:simpleType name="occurenceIndicator">
> <xsd:restriction base="xsd:string">
> <xsd:enumeration value="?"/>
> <xsd:enumeration value="*"/>
> <xsd:enumeration value="+"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:complexType name="sequenceType">
> <xsd:choice>
> <xsd:element name="emptySequenceType"
> type="emptyContent"/>
> <xsd:sequence>
> <xsd:group ref="itemType"/>
> <xsd:element name="occurenceIndicator"
> type="occurenceIndicator"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:choice>
> </xsd:complexType>
> <xsd:element name="sequenceType"
> type="sequenceType"/>
> <xsd:element name="typeDeclaration"
> type="sequenceType"/>
>
> <!-- Represents a "typed" variable (for clause, let
> clause etc) -->
> <xsd:element name="typedVariableBinding">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="varName" type="xsd:QName"/>
> <xsd:element ref="typeDeclaration"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="positionalVariableBinding"
> type="xsd:QName"/>
> <xsd:element name="variableBinding"
> type="xsd:QName"/>
> <xsd:element name="forClauseItem">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="typedVariableBinding"/>
> <xsd:element name="positionalVariableBinding"
> minOccurs="0"/>
> <xsd:element name="forExpr"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="forClause">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="forClauseItem"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="letClauseItem">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="typedVariableBinding"/>
> <xsd:element name="letExpr"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="letClause">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="letClauseItem"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="whereClause" type="exprWrapper"/>
> <xsd:element name="returnClause"
> type="exprWrapper"/>
> <xsd:element name="orderModifier">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:choice minOccurs="0">
> <xsd:element name="ascending"
> type="emptyContent"/>
> <xsd:element name="descending"
> type="emptyContent"/>
> </xsd:choice>
> <xsd:choice minOccurs="0">
> <xsd:element name="emptyGreatest"
> type="emptyContent"/>
> <xsd:element name="emptyLeast"
> type="emptyContent"/>
> </xsd:choice>
> <xsd:element name="collation"
> type="xsd:string" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="orderBySpec">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="orderByExpr"
> type="exprWrapper"/>
> <xsd:element name="orderModifier"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="orderByClause">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="stable" type="emptyContent"
> minOccurs="0"/>
> <xsd:element name="orderBySpec"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <!-- This is the flwor expression -->
> <xsd:complexType name="flworExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:choice maxOccurs="unbounded">
> <xsd:element ref="forClause"/>
> <xsd:element ref="letClause"/>
> </xsd:choice>
> <xsd:element name="whereClause"
> minOccurs="0"/>
> <xsd:element name="orderByClause"
> minOccurs="0"/>
> <xsd:element name="returnClause"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- The following clauses describe quantified
> expressions -->
> <xsd:simpleType name="quantifier">
> <xsd:restriction base="xsd:NMTOKEN">
> <xsd:enumeration value="some"/>
> <xsd:enumeration value="every"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:element name="qExpr" type="exprWrapper"/>
> <xsd:element name="quantifiedExprInClause">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="typedVariableBinding"/>
> <xsd:element ref="qExpr" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="quantifiedExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="quantifier"
> type="quantifier"/>
> <xsd:element name="quantifiedExprInClause"
> maxOccurs="unbounded"/>
> <xsd:element name="satisfiesExpr"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- handle the typeswitch construct -->
> <xsd:complexType name="typeswitchExprCaseClause">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="variableBinding"
> minOccurs="0"/>
> <xsd:element ref="typeDeclaration"/>
> <xsd:element name="returnExpr"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="typeswitchExprDefaultClause">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="variableBinding"
> minOccurs="0"/>
> <xsd:element name="returnExpr"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="typeswitchExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="treatExpr"
> type="exprWrapper"/>
> <xsd:element name="typeswitchExprCaseClause"
> maxOccurs="unbounded"/>
> <xsd:element
> name="typeswitchExprDefaultClause" />
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="ifThenElseExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="ifClause"
> type="exprWrapper"/>
> <xsd:element name="thenClause"
> type="exprWrapper"/>
> <xsd:element name="elseClause"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- handle the INSTANCE OF construct -->
> <xsd:complexType name="instanceOfExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="treatExpr"
> type="exprWrapper"/>
> <xsd:element ref="sequenceType"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="treatExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> <xsd:element ref="sequenceType"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="castableExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> <xsd:element ref="singleType"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="castExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> <xsd:element ref="singleType"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- Used for the VALIDATE construct -->
> <xsd:simpleType name="validationMode">
> <xsd:restriction base="xsd:NMTOKEN">
> <xsd:enumeration value="lax"/>
> <xsd:enumeration value="strict"/>
> <xsd:enumeration value="skip"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:element name="schemaContextLocation">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="type" type="emptyContent"
> minOccurs="0"/>
> <xsd:element ref="QName"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="validationContext">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="validationMode"
> type="validationMode" minOccurs="0"/>
> <xsd:choice>
> <xsd:element name="globalValidationContext"
> type="emptyContent"/>
> <xsd:element ref="schemaContextLocation"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="validateExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="validationContext"
> minOccurs="0"/>
> <xsd:element ref="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
>
> <!-- attributeConstructor is no longer a subclass of
> expr -->
> <xsd:complexType name="attributeConstructor">
> <xsd:sequence>
> <xsd:element name="attributeName"
> type="xsd:QName"/>
> <xsd:element name="attributeValue"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="elementContent">
> <xsd:complexType>
> <xsd:choice maxOccurs="unbounded">
> <xsd:element ref="expr"/>
> </xsd:choice>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="attributeList">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="attributeConstructor"
> type="attributeConstructor"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="elementConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="tagName"
> type="xsd:QName"/>
> <xsd:element ref="attributeList"
> minOccurs="0"/>
> <xsd:element ref="elementContent"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="computedElementConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:choice>
> <xsd:element name="tagName"
> type="xsd:QName"/>
> <xsd:element name="tagNameExpr"
> type="exprWrapper"/>
> </xsd:choice>
> <xsd:element name="contentExpr"
> type="exprWrapper" minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType
> name="computedAttributeConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:choice>
> <xsd:element name="tagName"
> type="xsd:QName"/>
> <xsd:element name="tagNameExpr"
> type="exprWrapper"/>
> </xsd:choice>
> <xsd:element name="valueExpr"
> type="exprWrapper" minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="computedDocumentConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="computedTextConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr" minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="computedCommentConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="computedPIConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:choice>
> <xsd:element name="piTarget"
> type="xsd:NCName"/>
> <xsd:element name="piTargetExpr"
> type="exprWrapper"/>
> </xsd:choice>
> <xsd:element name="piValueExpr"
> type="exprWrapper" minOccurs="0"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType
> name="computedNamespaceConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="prefix"
> type="xsd:NCName"/>
> <xsd:element name="uri" type="exprWrapper"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="commentConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="comment"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="cdataConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="cdataValue"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="piConstructor">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element name="piTarget"
> type="xsd:NCName"/>
> <xsd:element name="piValue"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
>
> <xsd:complexType name="unorderedExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="simpleWildcard">
> <xsd:choice>
> <xsd:element name="QName" type="xsd:QName"/>
> <xsd:element name="star" type="emptyContent"/>
> </xsd:choice>
> </xsd:complexType>
> <xsd:element name="Wildcard">
> <xsd:complexType>
> <xsd:all>
> <xsd:element name="star" type="emptyContent"
> minOccurs="0"/>
> <xsd:element ref="NCName" minOccurs="0"/>
> </xsd:all>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="nameTest">
> <xsd:complexType>
> <xsd:choice>
> <xsd:element ref="QName"/>
> <xsd:element ref="Wildcard"/>
> </xsd:choice>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="attributeTest">
> <xsd:complexType>
> <xsd:choice minOccurs="0">
> <xsd:sequence>
> <xsd:element ref="schemaContextLocation"/>
> <xsd:element ref="QName"/>
> </xsd:sequence>
> <xsd:sequence>
> <xsd:element name="nodeName"
> type="simpleWildcard"/>
> <xsd:element name="typeName"
> type="simpleWildcard" minOccurs="0"/>
> </xsd:sequence>
> </xsd:choice>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="elementTest">
> <xsd:complexType>
> <xsd:choice minOccurs="0">
> <xsd:sequence>
> <xsd:element ref="schemaContextLocation"/>
> <xsd:element ref="QName"/>
> </xsd:sequence>
> <xsd:sequence>
> <xsd:element name="nodeName"
> type="simpleWildcard"/>
> <xsd:sequence minOccurs="0">
> <xsd:element name="typeName"
> type="simpleWildcard"/>
> <xsd:element name="nillable"
> type="emptyContent" minOccurs="0"/>
> </xsd:sequence>
> </xsd:sequence>
> </xsd:choice>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="documentTest">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="elementTest" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="piTest">
> <xsd:complexType>
> <xsd:choice minOccurs="0">
> <xsd:element name="piTarget"
> type="xsd:NCName"/>
> <xsd:element name="piValue"
> type="xsd:string"/>
> </xsd:choice>
> </xsd:complexType>
> </xsd:element>
> <xsd:group name="kindTest">
> <xsd:choice>
> <xsd:element ref="elementTest"/>
> <xsd:element ref="attributeTest"/>
> <xsd:element name="textTest"
> type="emptyContent"/>
> <xsd:element name="commentTest"
> type="emptyContent"/>
> <xsd:element name="anyKindTest"
> type="emptyContent"/>
> <xsd:element ref="documentTest"/>
> <xsd:element ref="piTest" />
> </xsd:choice>
> </xsd:group>
> <xsd:element name="xpathAxis">
> <xsd:simpleType>
> <xsd:restriction base="xsd:NMTOKEN">
> <xsd:enumeration value="child"/>
> <xsd:enumeration value="attribute"/>
> <xsd:enumeration value="self"/>
> <xsd:enumeration value="descendant-or-self"/>
> <xsd:enumeration value="parent"/>
> </xsd:restriction>
> </xsd:simpleType>
> </xsd:element>
> <xsd:element name="stepExpr">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="xpathAxis"/>
> <xsd:choice>
> <xsd:group ref="kindTest"/>
> <xsd:element ref="QName"/>
> <xsd:element ref="Wildcard"/>
> </xsd:choice>
> <xsd:element name="predicates" type="exprList"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="pathExpr">
> <xsd:complexContent>
> <xsd:extension base="expr">
> <xsd:sequence>
> <xsd:element ref="expr"/>
> <xsd:element name="predicates"
> type="exprList" minOccurs="0"/>
> <xsd:element ref="stepExpr" minOccurs="0"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:extension>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="rootExpr">
> <xsd:complexContent>
> <xsd:extension base="expr"/>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="contextItemExpr">
> <xsd:complexContent>
> <xsd:extension base="expr"/>
> </xsd:complexContent>
> </xsd:complexType>
> <!-- The following constructs deal with the query
> prolog -->
> <xsd:element name="module">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="version" minOccurs="0"/>
> <xsd:choice>
> <xsd:element ref="mainModule"/>
> <xsd:element ref="libraryModule"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="mainModule">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="prolog" minOccurs="0"/>
> <xsd:element name="queryBody"
> type="exprWrapper"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:complexType name="namespaceDeclType">
> <xsd:sequence>
> <xsd:element name="prefix" type="xsd:NCName"/>
> <xsd:element name="uri" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="moduleDecl"
> type="namespaceDeclType"/>
> <xsd:element name="libraryModule">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="moduleDecl"/>
> <xsd:element ref="prolog" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="version" type="xsd:string"/>
> <xsd:element name="mustUnderstandExtension">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="QName"/>
> <xsd:element name="contents"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="pragma">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="QName"/>
> <xsd:element name="contents"
> type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="xqueryComment"
> type="xsd:string"/>
> <xsd:element name="prolog">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:choice minOccurs="0"
> maxOccurs="unbounded">
> <xsd:element ref="namespaceDecl"/>
> <xsd:element ref="xmlspaceDecl"/>
> <xsd:element ref="defaultNamespaceDecl"/>
> <xsd:element ref="defaultCollationDecl"/>
> <xsd:element ref="baseUriDecl"/>
> <xsd:element ref="schemaImport"/>
> <xsd:element ref="moduleImport"/>
> <xsd:element ref="varDecl"/>
> <xsd:element ref="validationDecl"/>
> <xsd:element ref="functionDecl"/>
> <!-- These two (pragmas and MUEs) have been added here
> temporarily -->
> <xsd:element ref="pragma"/>
> <xsd:element ref="mustUnderstandExtension"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="xmlspaceDecl">
> <xsd:simpleType>
> <xsd:restriction base="xsd:NMTOKEN">
> <xsd:enumeration value="strip"/>
> <xsd:enumeration value="preserve"/>
> </xsd:restriction>
> </xsd:simpleType>
> </xsd:element>
> <xsd:element name="defaultCollationDecl"
> type="xsd:string"/>
> <xsd:element name="baseUriDecl" type="xsd:string"/>
> <xsd:element name="namespaceDecl"
> type="namespaceDeclType"/>
> <xsd:simpleType name="defaultNamespaceCategory">
> <xsd:restriction base="xsd:NMTOKEN">
> <xsd:enumeration value="function"/>
> <xsd:enumeration value="element"/>
> </xsd:restriction>
> </xsd:simpleType>
> <xsd:element name="defaultNamespaceDecl">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="uri" type="xsd:string"/>
> <xsd:element name="defaultNamespaceCategory"
> type="defaultNamespaceCategory"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="varDecl">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="varName" type="xsd:QName"/>
> <xsd:element ref="typeDeclaration"
> minOccurs="0"/>
> <xsd:choice>
> <xsd:element name="varValue"
> type="exprWrapper"/>
> <xsd:element name="external"
> type="emptyContent"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="param">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="varName" type="xsd:QName"/>
> <xsd:element ref="typeDeclaration"
> minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="paramList">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element ref="param" minOccurs="0"
> maxOccurs="unbounded"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="functionDecl">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="functionName"
> type="xsd:QName"/>
> <xsd:element ref="paramList"/>
> <xsd:element ref="typeDeclaration"
> minOccurs="0"/>
> <xsd:choice>
> <xsd:element name="functionBody"
> type="exprWrapper"/>
> <xsd:element name="externalDefinition"
> type="emptyContent"/>
> </xsd:choice>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="validationDecl"
> type="validationMode"/>
> <xsd:element name="moduleImport">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="namespacePrefix"
> type="xsd:NCName" minOccurs="0"/>
> <xsd:element name="targetNamespace"
> type="xsd:string"/>
> <xsd:element name="targetLocation"
> type="xsd:string" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="schemaImport">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:choice minOccurs="0">
> <xsd:element name="namespacePrefix"
> type="xsd:NCName"/>
> <xsd:element name="defaultElementNamespace"
> type="emptyContent"/>
> </xsd:choice>
> <xsd:element name="targetNamespace"
> type="xsd:string"/>
> <xsd:element name="targetLocation"
> type="xsd:string" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:schema>
|