OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XML Syntax for XQuery 1.0 (XQueryX) invalid?

[ 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="&lt;"/>
>       <xsd:enumeration value="&lt;="/>
>       <xsd:enumeration value="&gt;="/>
>       <xsd:enumeration value="&gt;="/>
>     </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="&lt;&lt;"/>
>       <xsd:enumeration value="&gt;&gt;"/>
>     </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>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS