<!ENTITY % NS 'its:' >
<!ENTITY % its-rules "%NS;rules">

<!ELEMENT LocalizationRules (annotation?, rule+)>
<!ELEMENT rule (annotation?, targetFiles, ITSrules)>
<!ELEMENT targetFiles (pathInICURegex|contentsInXPath)+>
<!ELEMENT ITSrules (%its-rules;)>
<!ELEMENT pathInICURegex (#PCDATA)>
<!ELEMENT contentsInXPath (#PCDATA)>
<!ELEMENT annotation (#PCDATA)>
<!ATTLIST rule use (yes|no) "yes"> 
<!ATTLIST targetFiles operation (or|and) "or"> 


<!-- DTD FOR ITS from http://www.w3.org/TR/its/its.dtd -->

<!ENTITY % its-dirRule "%NS;dirRule">
<!ENTITY % its-langRule "%NS;langRule">
<!ENTITY % its-locNote "%NS;locNote">
<!ENTITY % its-locNoteRule "%NS;locNoteRule">
<!ENTITY % its-rb "%NS;rb">
<!ENTITY % its-rbc "%NS;rbc">
<!ENTITY % its-rp "%NS;rp">
<!ENTITY % its-rt "%NS;rt">
<!ENTITY % its-rtc "%NS;rtc">
<!ENTITY % its-ruby "%NS;ruby">
<!ENTITY % its-rubyRule "%NS;rubyRule">
<!ENTITY % its-rubyText "%NS;rubyText">
<!ENTITY % its-span "%NS;span">
<!ENTITY % its-termRule "%NS;termRule">
<!ENTITY % its-translateRule "%NS;translateRule">
<!ENTITY % its-withinTextRule "%NS;withinTextRule">
<!ENTITY % its-idValueRule "%NS;idValueRule">

<!ENTITY % att.selector.attributes '
selector CDATA #REQUIRED'> 
<!ENTITY % att.version.attributes '
%NS;version CDATA "1.0" '> 
<!ENTITY % att.local.no-ns.attributes '
translate (yes|no) #IMPLIED
locNote CDATA #IMPLIED
locNoteType (alert|description) #IMPLIED
locNoteRef CDATA #IMPLIED
termInfoRef CDATA #IMPLIED
term (yes|no) #IMPLIED
dir (ltr|rtl|lro|rlo) #IMPLIED'> 
<!ENTITY % att.local.with-ns.attributes '
%NS;translate (yes|no) #IMPLIED
%NS;locNote CDATA #IMPLIED
%NS;locNoteType (alert|description) #IMPLIED
%NS;locNoteRef CDATA #IMPLIED
%NS;termInfoRef CDATA #IMPLIED
%NS;term (yes|no) #IMPLIED
%NS;dir (ltr|rtl|lro|rlo) #IMPLIED'> 
<!ENTITY % att.translate.attributes '
%NS;translate (yes|no) #IMPLIED'> 
<!ENTITY % att.locNote.attributes '
%NS;locNote CDATA #IMPLIED
%NS;locNoteType (alert|description) #IMPLIED
%NS;locNoteRef CDATA #IMPLIED'> 
<!ENTITY % att.term.attributes '
%NS;termInfoRef CDATA #IMPLIED
%NS;term (yes|no) #IMPLIED'> 
<!ENTITY % att.dir.attributes '
%NS;dir (ltr|rtl|lro|rlo) #IMPLIED'>
<!ENTITY % att.idValue.attributes '
idValue CDATA #REQUIRED'>
<!-- stop classes -->

<!-- start elements -->

<!--doc:Rule about the Directionality data category. -->
<!ELEMENT %its-dirRule; EMPTY>
<!ATTLIST %its-dirRule;
%att.selector.attributes;
dir (ltr|rtl|lro|rlo) #REQUIRED >
<!--doc:Rule about the Language Information data category. -->
<!ELEMENT %its-langRule; EMPTY>
<!ATTLIST %its-langRule;
%att.selector.attributes;
langPointer CDATA #REQUIRED >
<!--doc:Contains a localization note. -->
<!ELEMENT %its-locNote; ( #PCDATA | %its-ruby; | %its-span;)*>
<!ATTLIST %its-locNote;
%att.local.no-ns.attributes; >
<!--doc:Rule about the Localization Note data category. -->
<!ELEMENT %its-locNoteRule; (%its-locNote;)?>
<!ATTLIST %its-locNoteRule;
%att.selector.attributes;
locNotePointer CDATA #IMPLIED
locNoteType (alert|description) #REQUIRED
locNoteRef CDATA #IMPLIED
locNoteRefPointer CDATA #IMPLIED >
<!--doc:Ruby base text. -->
<!ELEMENT %its-rb; ( #PCDATA | %its-span;)*>
<!ATTLIST %its-rb;
%att.local.no-ns.attributes; >
<!--doc:Container for rb elements in the case of complex ruby markup. -->
<!ELEMENT %its-rbc; (%its-rb;)+>
<!ATTLIST %its-rbc;
%att.local.no-ns.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 %its-rp;  (#PCDATA)>
<!ATTLIST %its-rp;
%att.local.no-ns.attributes; >
<!--doc:Ruby text. -->
<!ELEMENT %its-rt; ( #PCDATA | %its-span;)*>
<!ATTLIST %its-rt;
%att.local.no-ns.attributes;
rbspan CDATA #IMPLIED >
<!--doc:Container for rt elements in the case of complex ruby markup.  -->
<!ELEMENT %its-rtc; (%its-rt;)+>
<!ATTLIST %its-rtc;
%att.local.no-ns.attributes; >
<!--doc:Ruby markup. -->
<!ELEMENT %its-ruby; ((%its-rb;,(%its-rt; | (%its-rp;,%its-rt;,%its-rp;))) | (%its-rbc;,%its-rtc;,(%its-rtc;)?))>
<!ATTLIST %its-ruby;
%att.local.no-ns.attributes;
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its"  >
<!--doc:Rule about the Ruby data category. -->
<!ELEMENT %its-rubyRule; (%its-rubyText;)?>
<!ATTLIST %its-rubyRule;
%att.selector.attributes;
rubyPointer CDATA #IMPLIED
rtPointer CDATA #IMPLIED
rpPointer CDATA #IMPLIED
rbcPointer CDATA #IMPLIED
rtcPointer CDATA #IMPLIED
rbspanPointer CDATA #IMPLIED >
<!--doc:Ruby text. -->
<!ELEMENT %its-rubyText;  (#PCDATA)>
<!ATTLIST %its-rubyText;
%att.local.no-ns.attributes;
rbspan CDATA #IMPLIED >
<!--doc:Container for global rules. -->
<!ELEMENT %its-rules; (%its-translateRule; | %its-locNoteRule; | %its-termRule; | %its-dirRule; | %its-rubyRule; | %its-langRule; | %its-withinTextRule; | %its-idValueRule; )*>
<!ATTLIST %its-rules;
version CDATA "1.0" 
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its" 
xlink:href CDATA #IMPLIED
xlink:type (simple) #IMPLIED >
<!--doc:Inline element to contain ITS information. -->
<!ELEMENT %its-span; ( #PCDATA | %its-ruby; | %its-span;)*>
<!ATTLIST %its-span;
%att.local.no-ns.attributes;
xmlns CDATA "http://www.w3.org/2005/11/its" 
xmlns:its CDATA "http://www.w3.org/2005/11/its"  >
<!--doc:Rule about the Terminology data category. -->
<!ELEMENT %its-termRule; EMPTY>
<!ATTLIST %its-termRule;
%att.selector.attributes;
term (yes|no) #REQUIRED
termInfoRef CDATA #IMPLIED
termInfoRefPointer CDATA #IMPLIED
termInfoPointer CDATA #IMPLIED >
<!--doc:Rule about the Translate data category. -->
<!ELEMENT %its-translateRule; EMPTY>
<!ATTLIST %its-translateRule;
%att.selector.attributes;
translate (yes|no) #REQUIRED >
<!--doc:Rule about the Elements Within Text data category. -->
<!ELEMENT %its-withinTextRule; EMPTY>
<!ATTLIST %its-withinTextRule;
%att.selector.attributes;
withinText (yes|no|nested) #REQUIRED >
<!--doc:Rule about the idValue data category. -->
<!ELEMENT %its-idValueRule; EMPTY>
<!ATTLIST %its-idValueRule;
%att.selector.attributes;
idValue CDATA #REQUIRED >
<!-- end elements -->
