| <?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> |