| <grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" |
| ns="http://relaxng.org/ns/structure/1.0" |
| xmlns="http://relaxng.org/ns/structure/1.0"> |
| |
| <start> |
| <ref name="pattern"/> |
| </start> |
| |
| <define name="pattern"> |
| <choice> |
| <element name="element"> |
| <choice> |
| <attribute name="name"> |
| <data type="QName"/> |
| </attribute> |
| <ref name="open-name-class"/> |
| </choice> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="attribute"> |
| <ref name="common-atts"/> |
| <choice> |
| <attribute name="name"> |
| <data type="QName"/> |
| </attribute> |
| <ref name="open-name-class"/> |
| </choice> |
| <interleave> |
| <ref name="other"/> |
| <optional> |
| <ref name="pattern"/> |
| </optional> |
| </interleave> |
| </element> |
| <element name="group"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="interleave"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="choice"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="optional"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="zeroOrMore"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="oneOrMore"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="list"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="mixed"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| <element name="ref"> |
| <attribute name="name"> |
| <data type="NCName"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="parentRef"> |
| <attribute name="name"> |
| <data type="NCName"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="empty"> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="text"> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="value"> |
| <optional> |
| <attribute name="type"> |
| <data type="NCName"/> |
| </attribute> |
| </optional> |
| <ref name="common-atts"/> |
| <text/> |
| </element> |
| <element name="data"> |
| <attribute name="type"> |
| <data type="NCName"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <interleave> |
| <ref name="other"/> |
| <group> |
| <zeroOrMore> |
| <element name="param"> |
| <attribute name="name"> |
| <data type="NCName"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <text/> |
| </element> |
| </zeroOrMore> |
| <optional> |
| <element name="except"> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| </optional> |
| </group> |
| </interleave> |
| </element> |
| <element name="notAllowed"> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="externalRef"> |
| <attribute name="href"> |
| <data type="anyURI"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <ref name="other"/> |
| </element> |
| <element name="grammar"> |
| <ref name="common-atts"/> |
| <ref name="grammar-content"/> |
| </element> |
| </choice> |
| </define> |
| |
| <define name="grammar-content"> |
| <interleave> |
| <ref name="other"/> |
| <zeroOrMore> |
| <choice> |
| <ref name="start-element"/> |
| <ref name="define-element"/> |
| <element name="div"> |
| <ref name="common-atts"/> |
| <ref name="grammar-content"/> |
| </element> |
| <element name="include"> |
| <attribute name="href"> |
| <data type="anyURI"/> |
| </attribute> |
| <ref name="common-atts"/> |
| <ref name="include-content"/> |
| </element> |
| </choice> |
| </zeroOrMore> |
| </interleave> |
| </define> |
| |
| <define name="include-content"> |
| <interleave> |
| <ref name="other"/> |
| <zeroOrMore> |
| <choice> |
| <ref name="start-element"/> |
| <ref name="define-element"/> |
| <element name="div"> |
| <ref name="common-atts"/> |
| <ref name="include-content"/> |
| </element> |
| </choice> |
| </zeroOrMore> |
| </interleave> |
| </define> |
| |
| <define name="start-element"> |
| <element name="start"> |
| <ref name="combine-att"/> |
| <ref name="common-atts"/> |
| <ref name="open-pattern"/> |
| </element> |
| </define> |
| |
| <define name="define-element"> |
| <element name="define"> |
| <attribute name="name"> |
| <data type="NCName"/> |
| </attribute> |
| <ref name="combine-att"/> |
| <ref name="common-atts"/> |
| <ref name="open-patterns"/> |
| </element> |
| </define> |
| |
| <define name="combine-att"> |
| <optional> |
| <attribute name="combine"> |
| <choice> |
| <value>choice</value> |
| <value>interleave</value> |
| </choice> |
| </attribute> |
| </optional> |
| </define> |
| |
| <define name="open-patterns"> |
| <interleave> |
| <ref name="other"/> |
| <oneOrMore> |
| <ref name="pattern"/> |
| </oneOrMore> |
| </interleave> |
| </define> |
| |
| <define name="open-pattern"> |
| <interleave> |
| <ref name="other"/> |
| <ref name="pattern"/> |
| </interleave> |
| </define> |
| |
| <define name="name-class"> |
| <choice> |
| <element name="name"> |
| <ref name="common-atts"/> |
| <data type="QName"/> |
| </element> |
| <element name="anyName"> |
| <ref name="common-atts"/> |
| <ref name="except-name-class"/> |
| </element> |
| <element name="nsName"> |
| <ref name="common-atts"/> |
| <ref name="except-name-class"/> |
| </element> |
| <element name="choice"> |
| <ref name="common-atts"/> |
| <ref name="open-name-classes"/> |
| </element> |
| </choice> |
| </define> |
| |
| <define name="except-name-class"> |
| <interleave> |
| <ref name="other"/> |
| <optional> |
| <element name="except"> |
| <ref name="open-name-classes"/> |
| </element> |
| </optional> |
| </interleave> |
| </define> |
| |
| <define name="open-name-classes"> |
| <interleave> |
| <ref name="other"/> |
| <oneOrMore> |
| <ref name="name-class"/> |
| </oneOrMore> |
| </interleave> |
| </define> |
| |
| <define name="open-name-class"> |
| <interleave> |
| <ref name="other"/> |
| <ref name="name-class"/> |
| </interleave> |
| </define> |
| |
| <define name="common-atts"> |
| <optional> |
| <attribute name="ns"/> |
| </optional> |
| <optional> |
| <attribute name="datatypeLibrary"> |
| <data type="anyURI"/> |
| </attribute> |
| </optional> |
| <zeroOrMore> |
| <attribute> |
| <anyName> |
| <except> |
| <nsName/> |
| <nsName ns=""/> |
| </except> |
| </anyName> |
| </attribute> |
| </zeroOrMore> |
| </define> |
| |
| <define name="other"> |
| <zeroOrMore> |
| <element> |
| <anyName> |
| <except> |
| <nsName/> |
| </except> |
| </anyName> |
| <zeroOrMore> |
| <choice> |
| <attribute> |
| <anyName/> |
| </attribute> |
| <text/> |
| <ref name="any"/> |
| </choice> |
| </zeroOrMore> |
| </element> |
| </zeroOrMore> |
| </define> |
| |
| <define name="any"> |
| <element> |
| <anyName/> |
| <zeroOrMore> |
| <choice> |
| <attribute> |
| <anyName/> |
| </attribute> |
| <text/> |
| <ref name="any"/> |
| </choice> |
| </zeroOrMore> |
| </element> |
| </define> |
| |
| </grammar> |
| |