blob: 5a3d36ff7abe796b6d3630b71c6ab23c908ecf61 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://relaxng.org/ns/structure/fake/1.0" xmlns:structure="http://relaxng.org/ns/structure/fake/1.0">
<xs:group name="pattern">
<xs:choice>
<xs:element ref="structure:element"/>
<xs:element ref="structure:attribute"/>
<xs:element ref="structure:group"/>
<xs:element ref="structure:interleave"/>
<xs:element name="choice">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element ref="structure:optional"/>
<xs:element ref="structure:zeroOrMore"/>
<xs:element ref="structure:oneOrMore"/>
<xs:element ref="structure:list"/>
<xs:element ref="structure:mixed"/>
<xs:element ref="structure:ref"/>
<xs:element ref="structure:parentRef"/>
<xs:element ref="structure:empty"/>
<xs:element ref="structure:text"/>
<xs:element ref="structure:value"/>
<xs:element ref="structure:data"/>
<xs:element ref="structure:notAllowed"/>
<xs:element ref="structure:externalRef"/>
<xs:element ref="structure:grammar"/>
</xs:choice>
</xs:group>
<xs:element name="element">
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" ref="structure:open-name-class"/>
<xs:group ref="structure:open-patterns"/>
</xs:sequence>
<xs:attribute name="name" type="xs:QName"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="attribute">
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" ref="structure:open-name-class"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:group ref="structure:pattern"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="structure:common-atts"/>
<xs:attribute name="name" type="xs:QName"/>
</xs:complexType>
</xs:element>
<xs:element name="group">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="interleave">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="optional">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="zeroOrMore">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="oneOrMore">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="list">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="mixed">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="ref">
<xs:complexType>
<xs:attribute name="name" use="required" type="xs:NCName"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="parentRef">
<xs:complexType>
<xs:attribute name="name" use="required" type="xs:NCName"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="empty">
<xs:complexType>
<xs:group ref="structure:other"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="text">
<xs:complexType>
<xs:group ref="structure:other"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="value">
<xs:complexType mixed="true">
<xs:attribute name="type" type="xs:NCName"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:choice>
<xs:element ref="structure:param"/>
<xs:element name="except">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:choice>
<xs:attribute name="type" use="required" type="xs:NCName"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="param">
<xs:complexType mixed="true">
<xs:attribute name="name" use="required" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="notAllowed">
<xs:complexType>
<xs:group ref="structure:other"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="externalRef">
<xs:complexType>
<xs:group ref="structure:other"/>
<xs:attribute name="href" use="required" type="xs:anyURI"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:element name="grammar">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:grammar-content">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="grammar-content">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:choice>
<xs:element ref="structure:start"/>
<xs:element ref="structure:define"/>
<xs:element name="div">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:grammar-content">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element ref="structure:include"/>
</xs:choice>
</xs:choice>
</xs:complexType>
<xs:element name="include">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:include-content">
<xs:attribute name="href" use="required" type="xs:anyURI"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="include-content">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:choice>
<xs:element ref="structure:start"/>
<xs:element ref="structure:define"/>
<xs:element name="div">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:include-content">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:choice>
</xs:complexType>
<xs:element name="start">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:open-pattern">
<xs:attributeGroup ref="structure:combine-att"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="define">
<xs:complexType>
<xs:group ref="structure:open-patterns"/>
<xs:attribute name="name" use="required" type="xs:NCName"/>
<xs:attributeGroup ref="structure:combine-att"/>
<xs:attributeGroup ref="structure:common-atts"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="combine-att">
<xs:attribute name="combine">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="choice"/>
<xs:enumeration value="interleave"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:group name="open-patterns">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:group ref="structure:pattern"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:complexType name="open-pattern">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:group ref="structure:pattern"/>
</xs:choice>
</xs:complexType>
<xs:group name="name-class">
<xs:choice>
<xs:element ref="structure:name"/>
<xs:element ref="structure:anyName"/>
<xs:element ref="structure:nsName"/>
<xs:element name="choice">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:open-name-classes">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:element name="name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:QName">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="anyName">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:except-name-class">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="nsName">
<xs:complexType>
<xs:complexContent>
<xs:extension base="structure:except-name-class">
<xs:attributeGroup ref="structure:common-atts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="except-name-class">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:element ref="structure:except"/>
</xs:choice>
</xs:complexType>
<xs:element name="except" type="structure:open-name-classes"/>
<xs:complexType name="open-name-classes">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:group ref="structure:name-class"/>
</xs:choice>
</xs:complexType>
<xs:group name="open-name-class">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="structure:other"/>
<xs:group ref="structure:name-class"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:attributeGroup name="common-atts">
<xs:attribute name="ns"/>
<xs:attribute name="datatypeLibrary" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="skip"/>
</xs:attributeGroup>
<xs:group name="other">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##other" processContents="skip"/>
<xs:any namespace="##local" processContents="skip"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:group name="any">
<xs:sequence>
<xs:any processContents="skip"/>
</xs:sequence>
</xs:group>
</xs:schema>