
<!--
DTD Generated 2006-05-11T11:31:16+09:00. This schema has been developed using the ODD (One Document Does it
            all) language of the Text Encoding Initiative (). This is a literate programming language for writing XML schemas, with three
            characteristics: (1) The element and attribute set is specified using
              an XML vocabulary which includes support for macros
              (like DTD entities, or schema patterns), a hierarchical
              class system for attributes and elements, and creation
              of modules. (2) The content models for elements and attributes is
              written using embedded RELAX NG XML notation. (3) Documentation for elements, attributes, value
              lists etc. is written inline, along with examples and
              other supporting material. XSLT transformations
              are provided by the TEI to extract documentation in
              HTML, XSL FO or LaTeX forms, and to generate RELAX NG
              documents and DTD. From the RELAX NG documents, James
              Clark's trang
              can be used to create XML Schema documents.
-->
<!ENTITY % NS 'its:' >
<!ENTITY % n.dirRule "%NS;dirRule">
<!ENTITY % n.langRule "%NS;langRule">
<!ENTITY % n.locInfo "%NS;locInfo">
<!ENTITY % n.locInfoRule "%NS;locInfoRule">
<!ENTITY % n.ns "%NS;ns">
<!ENTITY % n.rb "%NS;rb">
<!ENTITY % n.rbc "%NS;rbc">
<!ENTITY % n.rp "%NS;rp">
<!ENTITY % n.rt "%NS;rt">
<!ENTITY % n.rtc "%NS;rtc">
<!ENTITY % n.ruby "%NS;ruby">
<!ENTITY % n.rubyRule "%NS;rubyRule">
<!ENTITY % n.rules "%NS;rules">
<!ENTITY % n.span "%NS;span">
<!ENTITY % n.termRule "%NS;termRule">
<!ENTITY % n.translateRule "%NS;translateRule">
<!ENTITY % n.withinTextRule "%NS;withinTextRule">

<!-- start datatypes -->

<!-- end datatypes -->

<!-- start predeclared patterns -->

<!-- start rest of patterns -->

<!-- end patterns -->

<!-- start classes -->

<!ENTITY % att.selector.attributes '
selector CDATA #REQUIRED'> 
<!ENTITY % att.version.attributes '
%NS;version CDATA "1.0" '> 
<!ENTITY % att.translate.attributes '
%NS;translate (yes|no) #IMPLIED'> 
<!ENTITY % att.locInfo.attributes '
%NS;locInfo CDATA #IMPLIED
%NS;locInfoType (alert|description) #IMPLIED
%NS;locInfoRef CDATA #IMPLIED'> 
<!ENTITY % att.term.attributes '
%NS;termInfoRef CDATA #IMPLIED
%NS;term (yes) #IMPLIED'> 
<!ENTITY % att.dir.attributes '
%NS;dir (ltr|rtl|lro|rlo) #IMPLIED'> 
<!-- stop classes -->

<!-- start elements -->

<!--doc:Rule about directionality. -->
<!ELEMENT %n.dirRule; EMPTY>
<!ATTLIST %n.dirRule;
 %att.selector.attributes;
dir (ltr|rtl|lro|rlo) #REQUIRED >
<!--doc:Rule about language identification markup. -->
<!ELEMENT %n.langRule; EMPTY>
<!ATTLIST %n.langRule;
 %att.selector.attributes;
langPointer CDATA #REQUIRED >
<!--doc:Contains localization information. -->
<!ELEMENT %n.locInfo;  (#PCDATA)>
<!ATTLIST %n.locInfo;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes; >
<!--doc:Rule about localization information. -->
<!ELEMENT %n.locInfoRule; (%n.locInfo;)?>
<!ATTLIST %n.locInfoRule;
 %att.selector.attributes;
locInfoPointer CDATA #IMPLIED
locInfoType (alert|description) #REQUIRED
locInfoRef CDATA #IMPLIED
locInfoRefPointer CDATA #IMPLIED >
<!--doc:An element to describe namespace URIs and prefixes within XPath expressions in
                    rules elements. -->
<!ELEMENT %n.ns; EMPTY>
<!ATTLIST %n.ns;
prefix CDATA #REQUIRED
uri CDATA #REQUIRED >
<!--doc:Ruby base text. -->
<!ELEMENT %n.rb;  (#PCDATA)>
<!ATTLIST %n.rb;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes; >
<!--doc:Container for rb elements in the case of complex ruby markup. -->
<!ELEMENT %n.rbc; (%n.rb;)+>
<!ATTLIST %n.rbc;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes; >
<!--doc:Used in the case of simple ruby markup to specify characters that can denote the beginning and end of ruby text when user agents do not have other ways to present ruby text distinctively from the base text. -->
<!ELEMENT %n.rp;  (#PCDATA)>
<!ATTLIST %n.rp;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes; >
<!--doc:Ruby text. -->
<!ELEMENT %n.rt;  (#PCDATA)>
<!ATTLIST %n.rt;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes;
rbspan CDATA #IMPLIED >
<!--doc:Container for rt elements in the case of complex ruby markup.  -->
<!ELEMENT %n.rtc; (%n.rt;)+>
<!ATTLIST %n.rtc;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes; >
<!--doc:Ruby markup. -->
<!ELEMENT %n.ruby; ((%n.rb;,(%n.rt; | (%n.rp;,%n.rt;,%n.rp;))) | (%n.rbc;,%n.rtc;,(%n.rtc;)?))>
<!ATTLIST %n.ruby;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes;
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its"  >
<!--doc:Rule about Ruby markup. -->
<!ELEMENT %n.rubyRule; EMPTY>
<!ATTLIST %n.rubyRule;
 %att.selector.attributes;
rubyPointer CDATA #IMPLIED
rbPointer CDATA #IMPLIED
rtPointer CDATA #IMPLIED
rpPointer CDATA #IMPLIED
rbcPointer CDATA #IMPLIED
rtcPointer CDATA #IMPLIED
rubyText CDATA #IMPLIED
rbspanPointer CDATA #IMPLIED >
<!--doc:Container for global rules. -->
<!ELEMENT %n.rules; ((%n.ns;)*,(%n.translateRule; | %n.locInfoRule; | %n.termRule; | %n.dirRule; | %n.rubyRule; | %n.langRule; | %n.withinTextRule;)*)>
<!ATTLIST %n.rules;
 %att.version.attributes;
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its" 
xlink:href CDATA #IMPLIED >
<!--doc:Inline element to contain ITS information. -->
<!ELEMENT %n.span; ( #PCDATA | %n.ruby;)*>
<!ATTLIST %n.span;
 %att.translate.attributes;
 %att.locInfo.attributes;
 %att.term.attributes;
 %att.dir.attributes;
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its"  >
<!--doc:Rule about terminological information. -->
<!ELEMENT %n.termRule; EMPTY>
<!ATTLIST %n.termRule;
 %att.selector.attributes;
termInfoRef CDATA #IMPLIED
termInfoRefPointer CDATA #IMPLIED >
<!--doc:Rule about translatability. -->
<!ELEMENT %n.translateRule; EMPTY>
<!ATTLIST %n.translateRule;
 %att.selector.attributes;
translate (yes|no) #REQUIRED >
<!--doc:Rule about markup of "intext" elements. -->
<!ELEMENT %n.withinTextRule; EMPTY>
<!ATTLIST %n.withinTextRule;
 %att.selector.attributes;
withinText (yes|no|nested) #REQUIRED >
<!-- end elements -->
