<!ENTITY % NS 'its:' >
<!ENTITY % n.documentRule "%NS;documentRule">
<!ENTITY % n.documentRules "%NS;documentRules">
<!ENTITY % n.ns "%NS;ns">
<!ENTITY % n.ruby "%NS;ruby">
<!ENTITY % n.rubyBase "%NS;rubyBase">
<!ENTITY % n.rubyText "%NS;rubyText">
<!ENTITY % n.schemaRule "%NS;schemaRule">
<!ENTITY % n.span "%NS;span">

<!-- start datatypes -->

<!ENTITY % data.selector ' CDATA' >

<!ENTITY % data.itsBoolean '(yes|no)' >

<!ENTITY % data.dirValues '(ltr|rtl|lro|rlo)' >

<!ENTITY % data.locInfoType '(alert|description)' >

<!ENTITY % data.itsBooleanTrue '(yes)' >

<!-- end datatypes -->

<!-- start predeclared patterns -->

<!-- start rest of patterns -->

<!-- end patterns -->

<!-- start classes -->

<!ENTITY % att.datacats.attributes '
 %NS;translate %data.itsBoolean;  #IMPLIED
 %NS;locInfo CDATA #IMPLIED
 %NS;locInfoType %data.locInfoType;  #IMPLIED
 %NS;term %data.itsBooleanTrue;  #IMPLIED
 %NS;termRef CDATA #IMPLIED
 %NS;dir %data.dirValues;  #IMPLIED
 %NS;rubyText CDATA #IMPLIED
 xmlns CDATA "http://www.w3.org/2005/11/its" '> 
<!ENTITY % att.selector.attributes '
 %NS;translateSelector %data.selector;  #IMPLIED
 %NS;locInfoSelector %data.selector;  #IMPLIED
 %NS;termSelector %data.selector;  #IMPLIED
 %NS;dirSelector %data.selector;  #IMPLIED
 %NS;rubySelector %data.selector;  #IMPLIED'> 
<!ENTITY % att.nsident.attributes '
 %NS;prefix CDATA #REQUIRED
 %NS;uri CDATA #REQUIRED'> 
<!-- stop classes -->

<!-- start elements -->

<!--doc:A rule to express ITS information and select parts of a document respectively.
                documentRule is to be used in a in rule context only. -->
<!ELEMENT %n.documentRule; EMPTY>
<!ATTLIST %n.documentRule;
 %att.selector.attributes;
 %att.datacats.attributes; >
<!--doc:This element contains rules for ITS information, to be used in documents. -->
<!ELEMENT %n.documentRules; ((%n.ns;)*,(%n.documentRule;)+)>
<!ATTLIST %n.documentRules;
 xmlns CDATA "http://www.w3.org/2005/11/its" 
 xmlns:its CDATA "http://www.w3.org/2005/11/its"  >
<!--doc:An element to describe namespace URIs and prefixes within XPath expressions in
                selector attributes. -->
<!ELEMENT %n.ns; EMPTY>
<!ATTLIST %n.ns;
 %att.nsident.attributes; >
<!--doc: -->
<!ELEMENT %n.ruby; (%n.rubyBase;,%n.rubyText;)>
<!ATTLIST %n.ruby; >
<!--doc: -->
<!ELEMENT %n.rubyBase;  (#PCDATA)>
<!ATTLIST %n.rubyBase; >
<!--doc: -->
<!ELEMENT %n.rubyText;  (#PCDATA)>
<!ATTLIST %n.rubyText; >
<!--doc:A rule to express ITS information about the element declaration to which the
                schemaRule element is attached as schema annotation. -->
<!ELEMENT %n.schemaRule; EMPTY>
<!ATTLIST %n.schemaRule;
 %att.datacats.attributes; >
<!--doc:An element used as a general container for ITS data category attributes. -->
<!ELEMENT %n.span;  (#PCDATA)>
<!ATTLIST %n.span;
 %att.datacats.attributes; >
<!-- end elements -->
