[Home] [By Thread] [By Date] [Recent Entries]
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>
|

Cart



