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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   XML Syntax for XQuery 1.0 (XQueryX) invalid?

[ Lists Home | Date Index | Thread Index ]
  • To: xml-dev@lists.xml.org
  • Subject: XML Syntax for XQuery 1.0 (XQueryX) invalid?
  • From: "David P. Nesbitt" <david_p_nesbitt@yahoo.com>
  • Date: Sun, 9 Jan 2005 20:44:52 -0800 (PST)
  • Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; b=4FvqSWOZh92ZtH9HQj0q4L8BdXuNn6BlIvoe+MQT8rzjEqiFTRgSMGE+lBMSOmYcgk/4JeSWvsbw+uIFuOIqknmqK10tH+MOBrU+NylzgUMtHFsn4gOLulkIi7nIoIgOkzcVPlo8fxNOtKX+tQVYPG/PYwqu9McKijV8Ux5wnD8= ;

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>


		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - 250MB free storage. Do more. Manage less. 
http://info.mail.yahoo.com/mail_250




 

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

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