<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.daisy.org/z3986/2005/dtbook/" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <define name="dtb.smilref.attr" combine="interleave"> <attribute name="smilref"/> </define> <define name="dtb.id.type"> <data type="ID"/> </define> <define name="dtb.idrefs.type"> <data type="IDREFS"/> </define> <start> <element name="dtbook"> <ref name="dtb.attlist.dtbook"/> <ref name="dtb.dtbookcontent"/> </element> </start> <define name="dtb.Character"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.Charset"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.ContentType"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.LanguageCode"> <data type="NMTOKEN"/> </define> <define name="dtb.Number"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.LinkTypes"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.MediaDesc"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.Text"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.URI"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.externalblock"> <notAllowed/> </define> <define name="dtb.externalinline"> <notAllowed/> </define> <define name="dtb.externalFlow"> <notAllowed/> </define> <define name="dtb.externalNamespaces"> <empty/> </define> <define name="dtb.dtbookblocknoimggroup"> <choice> <ref name="dtb.author"/> <ref name="dtb.prodnote"/> <ref name="dtb.sidebar"/> <ref name="dtb.note"/> <ref name="dtb.annotation"/> <ref name="dtb.externalblock"/> </choice> </define> <define name="dtb.inlineinblock"> <choice> <ref name="dtb.a"/> <ref name="dtb.cite"/> <ref name="dtb.samp"/> <ref name="dtb.kbd"/> <ref name="dtb.pagenum"/> </choice> </define> <define name="dtb.block"> <choice> <ref name="dtb.p"/> <ref name="dtb.list"/> <ref name="dtb.dl"/> <ref name="dtb.div"/> <ref name="dtb.blockquote"/> <ref name="dtb.img"/> <ref name="dtb.imggroup"/> <ref name="dtb.poem"/> <ref name="dtb.linegroup"/> <ref name="dtb.byline"/> <ref name="dtb.dateline"/> <ref name="dtb.epigraph"/> <ref name="dtb.table"/> <ref name="dtb.address"/> <ref name="dtb.line"/> <ref name="dtb.dtbookblocknoimggroup"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.blocknoimggroup"> <choice> <ref name="dtb.p"/> <ref name="dtb.list"/> <ref name="dtb.dl"/> <ref name="dtb.div"/> <ref name="dtb.blockquote"/> <ref name="dtb.poem"/> <ref name="dtb.linegroup"/> <ref name="dtb.byline"/> <ref name="dtb.dateline"/> <ref name="dtb.epigraph"/> <ref name="dtb.table"/> <ref name="dtb.address"/> <ref name="dtb.line"/> <ref name="dtb.dtbookblocknoimggroup"/> </choice> </define> <define name="dtb.docblockorinline"> <choice> <ref name="dtb.doctitle"/> <ref name="dtb.docauthor"/> <ref name="dtb.covertitle"/> <ref name="dtb.bridgehead"/> <ref name="dtb.block"/> <ref name="dtb.inlineinblock"/> </choice> </define> <define name="dtb.coreattrs"> <optional> <attribute name="id"> <ref name="dtb.id.type"/> </attribute> </optional> <optional> <attribute name="class"/> </optional> <optional> <attribute name="title"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="xml:space"> <choice> <value>default</value> <value>preserve</value> </choice> </attribute> </optional> <ref name="dtb.externalNamespaces"/> </define> <define name="dtb.i18n"> <optional> <attribute name="xml:lang"> <ref name="dtb.LanguageCode"/> </attribute> </optional> <optional> <attribute name="dir"> <choice> <value>ltr</value> <value>rtl</value> </choice> </attribute> </optional> </define> <define name="dtb.showin"> <optional> <attribute name="showin"> <choice> <value>xxx</value> <value>xxp</value> <value>xlx</value> <value>xlp</value> <value>bxx</value> <value>bxp</value> <value>blx</value> <value>blp</value> </choice> </attribute> </optional> </define> <define name="dtb.attrs"> <ref name="dtb.coreattrs"/> <ref name="dtb.i18n"/> <optional> <ref name="dtb.smilref.attr"/> </optional> <ref name="dtb.showin"/> </define> <define name="dtb.attrsrqd"> <attribute name="id"> <ref name="dtb.id.type"/> </attribute> <optional> <attribute name="class"/> </optional> <optional> <attribute name="title"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="xml:space"> <choice> <value>default</value> <value>preserve</value> </choice> </attribute> </optional> <optional> <ref name="dtb.smilref.attr"/> </optional> <ref name="dtb.i18n"/> <ref name="dtb.showin"/> <ref name="dtb.externalNamespaces"/> </define> <define name="dtb.dtbookcontent"> <ref name="dtb.head"/> <ref name="dtb.book"/> </define> <define name="dtb.attlist.dtbook" combine="interleave"> <attribute name="version" a:defaultValue="2005-3"> <value type="string" datatypeLibrary="">2005-3</value> </attribute> <ref name="dtb.i18n"/> <ref name="dtb.externalNamespaces"/> </define> <define name="dtb.headmisc"> <choice> <ref name="dtb.meta"/> <ref name="dtb.link"/> </choice> </define> <define name="dtb.head"> <element name="head"> <ref name="dtb.attlist.head"/> <zeroOrMore> <ref name="dtb.headmisc"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.head" combine="interleave"> <ref name="dtb.i18n"/> <optional> <attribute name="profile"> <ref name="dtb.URI"/> </attribute> </optional> </define> <define name="dtb.link"> <element name="link"> <ref name="dtb.attlist.link"/> <empty/> </element> </define> <define name="dtb.attlist.link" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="charset"> <ref name="dtb.Charset"/> </attribute> </optional> <optional> <attribute name="href"> <ref name="dtb.URI"/> </attribute> </optional> <optional> <attribute name="hreflang"> <ref name="dtb.LanguageCode"/> </attribute> </optional> <optional> <attribute name="type"> <ref name="dtb.ContentType"/> </attribute> </optional> <optional> <attribute name="rel"> <ref name="dtb.LinkTypes"/> </attribute> </optional> <optional> <attribute name="rev"> <ref name="dtb.LinkTypes"/> </attribute> </optional> <optional> <attribute name="media"> <ref name="dtb.MediaDesc"/> </attribute> </optional> </define> <define name="dtb.meta"> <element name="meta"> <ref name="dtb.attlist.meta"/> <empty/> </element> </define> <define name="dtb.attlist.meta" combine="interleave"> <ref name="dtb.i18n"/> <optional> <attribute name="http-equiv"> <data type="NMTOKEN"/> </attribute> </optional> <optional> <attribute name="name"> <data type="NMTOKEN"/> </attribute> </optional> <attribute name="content"/> <optional> <attribute name="scheme"/> </optional> </define> <define name="dtb.book"> <element name="book"> <ref name="dtb.attlist.book"/> <optional> <ref name="dtb.frontmatter"/> </optional> <optional> <ref name="dtb.bodymatter"/> </optional> <optional> <ref name="dtb.rearmatter"/> </optional> </element> </define> <define name="dtb.attlist.book" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.frontmatter"> <element name="frontmatter"> <ref name="dtb.attlist.frontmatter"/> <ref name="dtb.doctitle"/> <optional> <ref name="dtb.covertitle"/> </optional> <zeroOrMore> <ref name="dtb.docauthor"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="dtb.level"/> <ref name="dtb.level1"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.frontmatter" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.bodymatter"> <element name="bodymatter"> <ref name="dtb.attlist.bodymatter"/> <oneOrMore> <choice> <ref name="dtb.level"/> <ref name="dtb.level1"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.bodymatter" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.rearmatter"> <element name="rearmatter"> <ref name="dtb.attlist.rearmatter"/> <oneOrMore> <choice> <ref name="dtb.level"/> <ref name="dtb.level1"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.rearmatter" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level"> <element name="level"> <ref name="dtb.attlist.level"/> <choice> <group> <ref name="dtb.hd"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level"/> </choice> </oneOrMore> <optional> <ref name="dtb.hd"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="depth"/> </optional> </define> <define name="dtb.level1"> <element name="level1"> <ref name="dtb.attlist.level1"/> <choice> <group> <ref name="dtb.h1"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level2"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level2"/> </choice> </oneOrMore> <optional> <ref name="dtb.h1"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level2"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level1" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level2"> <element name="level2"> <ref name="dtb.attlist.level2"/> <choice> <group> <ref name="dtb.h2"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level3"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level3"/> </choice> </oneOrMore> <optional> <ref name="dtb.h2"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level3"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level2" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level3"> <element name="level3"> <ref name="dtb.attlist.level3"/> <choice> <group> <ref name="dtb.h3"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level4"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level4"/> </choice> </oneOrMore> <optional> <ref name="dtb.h3"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level4"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level3" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level4"> <element name="level4"> <ref name="dtb.attlist.level4"/> <choice> <group> <ref name="dtb.h4"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level5"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level5"/> </choice> </oneOrMore> <optional> <ref name="dtb.h4"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level5"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level4" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level5"> <element name="level5"> <ref name="dtb.attlist.level5"/> <choice> <group> <ref name="dtb.h5"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level6"/> </choice> </oneOrMore> </group> <group> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level6"/> </choice> </oneOrMore> <optional> <ref name="dtb.h5"/> <oneOrMore> <choice> <ref name="dtb.docblockorinline"/> <ref name="dtb.level6"/> </choice> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level5" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.level6"> <element name="level6"> <ref name="dtb.attlist.level6"/> <choice> <group> <ref name="dtb.h6"/> <oneOrMore> <ref name="dtb.docblockorinline"/> </oneOrMore> </group> <group> <oneOrMore> <ref name="dtb.docblockorinline"/> </oneOrMore> <optional> <ref name="dtb.h6"/> <oneOrMore> <ref name="dtb.docblockorinline"/> </oneOrMore> </optional> </group> </choice> </element> </define> <define name="dtb.attlist.level6" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.phrase"> <choice> <ref name="dtb.em"/> <ref name="dtb.strong"/> <ref name="dtb.dfn"/> <ref name="dtb.code"/> <ref name="dtb.samp"/> <ref name="dtb.kbd"/> <ref name="dtb.cite"/> <ref name="dtb.abbr"/> <ref name="dtb.acronym"/> </choice> </define> <define name="dtb.special"> <choice> <ref name="dtb.a"/> <ref name="dtb.img"/> <ref name="dtb.imggroup"/> <ref name="dtb.br"/> <ref name="dtb.q"/> <ref name="dtb.sub"/> <ref name="dtb.sup"/> <ref name="dtb.span"/> <ref name="dtb.bdo"/> </choice> </define> <define name="dtb.specialnoa"> <choice> <ref name="dtb.img"/> <ref name="dtb.imggroup"/> <ref name="dtb.br"/> <ref name="dtb.q"/> <ref name="dtb.sub"/> <ref name="dtb.sup"/> <ref name="dtb.span"/> <ref name="dtb.bdo"/> </choice> </define> <define name="dtb.dtbookinline"> <choice> <ref name="dtb.sent"/> <ref name="dtb.w"/> <ref name="dtb.pagenum"/> <ref name="dtb.prodnote"/> <ref name="dtb.annoref"/> <ref name="dtb.noteref"/> <ref name="dtb.externalinline"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.inline"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.special"/> <ref name="dtb.dtbookinline"/> </choice> </define> <define name="dtb.inlinenoa"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.specialnoa"/> <ref name="dtb.dtbookinline"/> </choice> </define> <define name="dtb.inlines"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.special"/> <ref name="dtb.pagenum"/> <ref name="dtb.w"/> <ref name="dtb.prodnote"/> <ref name="dtb.annoref"/> <ref name="dtb.noteref"/> <ref name="dtb.externalinline"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.inlinew"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.special"/> <ref name="dtb.externalinline"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.inlinenopagenum"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.special"/> <ref name="dtb.sent"/> <ref name="dtb.w"/> <ref name="dtb.annoref"/> <ref name="dtb.noteref"/> <ref name="dtb.externalinline"/> </choice> </define> <define name="dtb.inlinenoprodnote"> <choice> <text/> <ref name="dtb.phrase"/> <ref name="dtb.special"/> <ref name="dtb.sent"/> <ref name="dtb.w"/> <ref name="dtb.pagenum"/> <ref name="dtb.annoref"/> <ref name="dtb.noteref"/> <ref name="dtb.externalinline"/> </choice> </define> <define name="dtb.flow"> <choice> <ref name="dtb.inlinenoprodnote"/> <ref name="dtb.blocknoimggroup"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.flownopagenum"> <choice> <ref name="dtb.inlinenopagenum"/> <ref name="dtb.blocknoimggroup"/> <ref name="dtb.externalFlow"/> </choice> </define> <define name="dtb.br"> <element name="br"> <ref name="dtb.attlist.br"/> <empty/> </element> </define> <define name="dtb.attlist.br" combine="interleave"> <ref name="dtb.coreattrs"/> </define> <define name="dtb.line"> <element name="line"> <ref name="dtb.attlist.line"/> <zeroOrMore> <choice> <ref name="dtb.inline"/> <ref name="dtb.linenum"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.line" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.linenum"> <element name="linenum"> <ref name="dtb.attlist.linenum"/> <text/> </element> </define> <define name="dtb.attlist.linenum" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.address"> <element name="address"> <ref name="dtb.attlist.address"/> <zeroOrMore> <choice> <ref name="dtb.inline"/> <ref name="dtb.line"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.address" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.div"> <element name="div"> <ref name="dtb.attlist.div"/> <oneOrMore> <ref name="dtb.docblockorinline"/> </oneOrMore> </element> </define> <define name="dtb.attlist.div" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.title"> <element name="title"> <ref name="dtb.attlist.title"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.title" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.author"> <element name="author"> <ref name="dtb.attlist.author"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.author" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.prodnote"> <element name="prodnote"> <ref name="dtb.attlist.prodnote"/> <zeroOrMore> <ref name="dtb.flow"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.prodnote" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="imgref"> <ref name="dtb.idrefs.type"/> </attribute> </optional> <attribute name="render"> <choice> <value>required</value> <value>optional</value> </choice> </attribute> </define> <define name="dtb.sidebar"> <element name="sidebar"> <ref name="dtb.attlist.sidebar"/> <zeroOrMore> <choice> <ref name="dtb.flow"/> <ref name="dtb.hd"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.sidebar" combine="interleave"> <ref name="dtb.attrs"/> <attribute name="render"> <choice> <value>required</value> <value>optional</value> </choice> </attribute> </define> <define name="dtb.note"> <element name="note"> <ref name="dtb.attlist.note"/> <oneOrMore> <choice> <ref name="dtb.block"/> <ref name="dtb.inlineinblock"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.note" combine="interleave"> <ref name="dtb.attrsrqd"/> </define> <define name="dtb.annotation"> <element name="annotation"> <ref name="dtb.attlist.annotation"/> <oneOrMore> <choice> <ref name="dtb.block"/> <ref name="dtb.inlineinblock"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.annotation" combine="interleave"> <ref name="dtb.attrsrqd"/> </define> <define name="dtb.epigraph"> <element name="epigraph"> <ref name="dtb.attlist.epigraph"/> <zeroOrMore> <ref name="dtb.flow"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.epigraph" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.byline"> <element name="byline"> <ref name="dtb.attlist.byline"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.byline" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.dateline"> <element name="dateline"> <ref name="dtb.attlist.dateline"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.dateline" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.linegroup"> <element name="linegroup"> <ref name="dtb.attlist.linegroup"/> <zeroOrMore> <choice> <ref name="dtb.hd"/> <ref name="dtb.dateline"/> <ref name="dtb.epigraph"/> <ref name="dtb.byline"/> <ref name="dtb.linegroup"/> <ref name="dtb.line"/> <ref name="dtb.pagenum"/> <ref name="dtb.prodnote"/> <ref name="dtb.noteref"/> <ref name="dtb.annoref"/> <ref name="dtb.note"/> <ref name="dtb.annotation"/> <ref name="dtb.p"/> <ref name="dtb.blockquote"/> <ref name="dtb.img"/> <ref name="dtb.imggroup"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.linegroup" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.poem"> <element name="poem"> <ref name="dtb.attlist.poem"/> <zeroOrMore> <choice> <ref name="dtb.title"/> <ref name="dtb.author"/> <ref name="dtb.hd"/> <ref name="dtb.dateline"/> <ref name="dtb.epigraph"/> <ref name="dtb.byline"/> <ref name="dtb.linegroup"/> <ref name="dtb.line"/> <ref name="dtb.pagenum"/> <ref name="dtb.img"/> <ref name="dtb.imggroup"/> <ref name="dtb.sidebar"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.poem" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.a"> <element name="a"> <ref name="dtb.attlist.a"/> <zeroOrMore> <ref name="dtb.inlinenoa"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.a" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="type"> <ref name="dtb.ContentType"/> </attribute> </optional> <optional> <attribute name="href"> <ref name="dtb.URI"/> </attribute> </optional> <optional> <attribute name="hreflang"> <ref name="dtb.LanguageCode"/> </attribute> </optional> <optional> <attribute name="rel"> <ref name="dtb.LinkTypes"/> </attribute> </optional> <optional> <attribute name="rev"> <ref name="dtb.LinkTypes"/> </attribute> </optional> <optional> <attribute name="accesskey"> <ref name="dtb.Character"/> </attribute> </optional> <optional> <attribute name="tabindex"> <ref name="dtb.Number"/> </attribute> </optional> <optional> <attribute name="external" a:defaultValue="false"> <choice> <value>true</value> <value>false</value> </choice> </attribute> </optional> </define> <define name="dtb.em"> <element name="em"> <ref name="dtb.attlist.em"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.em" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.strong"> <element name="strong"> <ref name="dtb.attlist.strong"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.strong" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.dfn"> <element name="dfn"> <ref name="dtb.attlist.dfn"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.dfn" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.kbd"> <element name="kbd"> <ref name="dtb.attlist.kbd"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.kbd" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.code"> <element name="code"> <ref name="dtb.attlist.code"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.code" combine="interleave"> <optional> <attribute name="id"> <ref name="dtb.id.type"/> </attribute> </optional> <optional> <attribute name="class"/> </optional> <optional> <attribute name="title"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="xml:space" a:defaultValue="preserve"> <choice> <value>default</value> <value>preserve</value> </choice> </attribute> </optional> <ref name="dtb.externalNamespaces"/> <ref name="dtb.i18n"/> <optional> <ref name="dtb.smilref.attr"/> </optional> <ref name="dtb.showin"/> </define> <define name="dtb.samp"> <element name="samp"> <ref name="dtb.attlist.samp"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.samp" combine="interleave"> <optional> <attribute name="id"> <ref name="dtb.id.type"/> </attribute> </optional> <optional> <attribute name="class"/> </optional> <optional> <attribute name="title"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="xml:space" a:defaultValue="preserve"> <choice> <value>default</value> <value>preserve</value> </choice> </attribute> </optional> <ref name="dtb.externalNamespaces"/> <ref name="dtb.i18n"/> <optional> <ref name="dtb.smilref.attr"/> </optional> <ref name="dtb.showin"/> </define> <define name="dtb.cite"> <element name="cite"> <ref name="dtb.attlist.cite"/> <zeroOrMore> <choice> <ref name="dtb.inline"/> <ref name="dtb.title"/> <ref name="dtb.author"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.cite" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.abbr"> <element name="abbr"> <ref name="dtb.attlist.abbr"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.abbr" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.acronym"> <element name="acronym"> <ref name="dtb.attlist.acronym"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.acronym" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="pronounce"> <choice> <value>yes</value> <value>no</value> </choice> </attribute> </optional> </define> <define name="dtb.sub"> <element name="sub"> <ref name="dtb.attlist.sub"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.sub" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.sup"> <element name="sup"> <ref name="dtb.attlist.sup"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.sup" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.span"> <element name="span"> <ref name="dtb.attlist.span"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.span" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.bdo"> <element name="bdo"> <ref name="dtb.attlist.bdo"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.bdo" combine="interleave"> <ref name="dtb.coreattrs"/> <optional> <attribute name="xml:lang"> <ref name="dtb.LanguageCode"/> </attribute> </optional> <attribute name="dir"> <choice> <value>ltr</value> <value>rtl</value> </choice> </attribute> <optional> <ref name="dtb.smilref.attr"/> </optional> <ref name="dtb.showin"/> </define> <define name="dtb.sent"> <element name="sent"> <ref name="dtb.attlist.sent"/> <zeroOrMore> <ref name="dtb.inlines"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.sent" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.w"> <element name="w"> <ref name="dtb.attlist.w"/> <zeroOrMore> <ref name="dtb.inlinew"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.w" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.pagenum" combine="choice"> <element name="pagenum"> <ref name="dtb.attrsrqd"/> <choice> <group> <attribute name="page"> <value type="string">front</value> </attribute> <choice> <ref name="dtb.datatype.romannumeral"/> <ref name="dtb.datatype.positiveInteger"/> </choice> </group> <group> <attribute name="page"> <value type="string">normal</value> </attribute> <ref name="dtb.datatype.positiveInteger"/> </group> <group> <attribute name="page"> <value type="string">special</value> </attribute> <text/> </group> <ref name="dtb.datatype.positiveInteger"/> </choice> </element> </define> <define name="dtb.datatype.romannumeral"> <data type="string"> <param name="pattern">\s*[Mm]*([Dd]?[Cc]{0,3}|[Cc][DdMm])([Ll]?[Xx]{0,3}|[Xx][LlCc])([Vv]?[Ii]{0,3}|[Ii][VvXx])\s*</param> </data> </define> <define name="dtb.datatype.positiveInteger"> <data type="positiveInteger"/> </define> <define name="dtb.noteref"> <element name="noteref"> <ref name="dtb.attlist.noteref"/> <text/> </element> </define> <define name="dtb.attlist.noteref" combine="interleave"> <ref name="dtb.attrs"/> <attribute name="idref"> <ref name="dtb.URI"/> </attribute> <optional> <attribute name="type"> <ref name="dtb.ContentType"/> </attribute> </optional> </define> <define name="dtb.annoref"> <element name="annoref"> <ref name="dtb.attlist.annoref"/> <text/> </element> </define> <define name="dtb.attlist.annoref" combine="interleave"> <ref name="dtb.attrs"/> <attribute name="idref"> <ref name="dtb.URI"/> </attribute> <optional> <attribute name="type"> <ref name="dtb.ContentType"/> </attribute> </optional> </define> <define name="dtb.q"> <element name="q"> <ref name="dtb.attlist.q"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.q" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="cite"> <ref name="dtb.URI"/> </attribute> </optional> </define> <define name="dtb.Length"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.MultiLength"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.Pixels"> <data type="string" datatypeLibrary=""/> </define> <define name="dtb.img"> <element name="img"> <ref name="dtb.attlist.img"/> <empty/> </element> </define> <define name="dtb.attlist.img" combine="interleave"> <ref name="dtb.attrs"/> <attribute name="src"> <ref name="dtb.URI"/> </attribute> <attribute name="alt"> <ref name="dtb.Text"/> </attribute> <optional> <attribute name="longdesc"> <ref name="dtb.URI"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="dtb.Length"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="dtb.Length"/> </attribute> </optional> </define> <define name="dtb.imggroup"> <element name="imggroup"> <ref name="dtb.attlist.imggroup"/> <oneOrMore> <choice> <ref name="dtb.prodnote"/> <ref name="dtb.img"/> <ref name="dtb.caption"/> <ref name="dtb.pagenum"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.imggroup" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.p"> <element name="p"> <ref name="dtb.attlist.p"/> <zeroOrMore> <choice> <ref name="dtb.inline"/> <ref name="dtb.list"/> <ref name="dtb.dl"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.p" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.doctitle"> <element name="doctitle"> <ref name="dtb.attlist.doctitle"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.doctitle" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.docauthor"> <element name="docauthor"> <ref name="dtb.attlist.docauthor"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.docauthor" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.covertitle"> <element name="covertitle"> <ref name="dtb.attlist.covertitle"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.covertitle" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h1"> <element name="h1"> <ref name="dtb.attlist.h1"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h1" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h2"> <element name="h2"> <ref name="dtb.attlist.h2"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h2" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h3"> <element name="h3"> <ref name="dtb.attlist.h3"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h3" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h4"> <element name="h4"> <ref name="dtb.attlist.h4"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h4" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h5"> <element name="h5"> <ref name="dtb.attlist.h5"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h5" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.h6"> <element name="h6"> <ref name="dtb.attlist.h6"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.h6" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.bridgehead"> <element name="bridgehead"> <ref name="dtb.attlist.bridgehead"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.bridgehead" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.hd"> <element name="hd"> <ref name="dtb.attlist.hd"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.hd" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.blockquote"> <element name="blockquote"> <ref name="dtb.attlist.blockquote"/> <zeroOrMore> <choice> <ref name="dtb.pagenum"/> <ref name="dtb.block"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.blockquote" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="cite"> <ref name="dtb.URI"/> </attribute> </optional> </define> <define name="dtb.dl"> <element name="dl"> <ref name="dtb.attlist.dl"/> <oneOrMore> <choice> <ref name="dtb.dt"/> <ref name="dtb.dd"/> <ref name="dtb.pagenum"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.dl" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.dt"> <element name="dt"> <ref name="dtb.attlist.dt"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.dt" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.dd"> <element name="dd"> <ref name="dtb.attlist.dd"/> <zeroOrMore> <ref name="dtb.flow"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.dd" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.list"> <element name="list"> <ref name="dtb.attlist.list"/> <oneOrMore> <choice> <ref name="dtb.hd"/> <ref name="dtb.prodnote"/> <ref name="dtb.li"/> <ref name="dtb.pagenum"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.list" combine="interleave"> <ref name="dtb.attrs"/> <attribute name="type"> <choice> <value>ol</value> <value>ul</value> <value>pl</value> </choice> </attribute> <optional> <attribute name="depth"/> </optional> <optional> <attribute name="enum"> <choice> <value>1</value> <value>a</value> <value>A</value> <value>i</value> <value>I</value> </choice> </attribute> </optional> <optional> <attribute name="start"/> </optional> </define> <define name="dtb.li"> <element name="li"> <ref name="dtb.attlist.li"/> <zeroOrMore> <choice> <ref name="dtb.flow"/> <ref name="dtb.lic"/> </choice> </zeroOrMore> </element> </define> <define name="dtb.attlist.li" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.lic"> <element name="lic"> <ref name="dtb.attlist.lic"/> <zeroOrMore> <ref name="dtb.inline"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.lic" combine="interleave"> <ref name="dtb.attrs"/> </define> <define name="dtb.Scope"> <choice> <value>row</value> <value>col</value> <value>rowgroup</value> <value>colgroup</value> </choice> </define> <define name="dtb.TFrame"> <choice> <value>void</value> <value>above</value> <value>below</value> <value>hsides</value> <value>lhs</value> <value>rhs</value> <value>vsides</value> <value>box</value> <value>border</value> </choice> </define> <define name="dtb.TRules"> <choice> <value>none</value> <value>groups</value> <value>rows</value> <value>cols</value> <value>all</value> </choice> </define> <define name="dtb.cellhalign"> <optional> <attribute name="align"> <choice> <value>left</value> <value>center</value> <value>right</value> <value>justify</value> <value>char</value> </choice> </attribute> </optional> <optional> <attribute name="char"> <ref name="dtb.Character"/> </attribute> </optional> <optional> <attribute name="charoff"> <ref name="dtb.Length"/> </attribute> </optional> </define> <define name="dtb.cellvalign"> <optional> <attribute name="valign"> <choice> <value>top</value> <value>middle</value> <value>bottom</value> <value>baseline</value> </choice> </attribute> </optional> </define> <define name="dtb.table"> <element name="table"> <ref name="dtb.attlist.table"/> <optional> <ref name="dtb.caption"/> </optional> <choice> <zeroOrMore> <ref name="dtb.col"/> </zeroOrMore> <zeroOrMore> <ref name="dtb.colgroup"/> </zeroOrMore> </choice> <optional> <ref name="dtb.thead"/> </optional> <optional> <ref name="dtb.tfoot"/> </optional> <choice> <oneOrMore> <ref name="dtb.tbody"/> </oneOrMore> <oneOrMore> <choice> <ref name="dtb.tr"/> <ref name="dtb.pagenum"/> </choice> </oneOrMore> </choice> </element> </define> <define name="dtb.attlist.table" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="summary"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="dtb.Length"/> </attribute> </optional> <optional> <attribute name="border"> <ref name="dtb.Pixels"/> </attribute> </optional> <optional> <attribute name="frame"> <ref name="dtb.TFrame"/> </attribute> </optional> <optional> <attribute name="rules"> <ref name="dtb.TRules"/> </attribute> </optional> <optional> <attribute name="cellspacing"> <ref name="dtb.Length"/> </attribute> </optional> <optional> <attribute name="cellpadding"> <ref name="dtb.Length"/> </attribute> </optional> </define> <define name="dtb.caption"> <element name="caption"> <ref name="dtb.attlist.caption"/> <zeroOrMore> <ref name="dtb.flow"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.caption" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="imgref"> <ref name="dtb.idrefs.type"/> </attribute> </optional> </define> <define name="dtb.thead"> <element name="thead"> <ref name="dtb.attlist.thead"/> <oneOrMore> <ref name="dtb.tr"/> </oneOrMore> </element> </define> <define name="dtb.attlist.thead" combine="interleave"> <ref name="dtb.attrs"/> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.tfoot"> <element name="tfoot"> <ref name="dtb.attlist.tfoot"/> <oneOrMore> <ref name="dtb.tr"/> </oneOrMore> </element> </define> <define name="dtb.attlist.tfoot" combine="interleave"> <ref name="dtb.attrs"/> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.tbody"> <element name="tbody"> <ref name="dtb.attlist.tbody"/> <oneOrMore> <choice> <ref name="dtb.tr"/> <ref name="dtb.pagenum"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.tbody" combine="interleave"> <ref name="dtb.attrs"/> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.colgroup"> <element name="colgroup"> <ref name="dtb.attlist.colgroup"/> <zeroOrMore> <ref name="dtb.col"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.colgroup" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="span" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="dtb.MultiLength"/> </attribute> </optional> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.col"> <element name="col"> <ref name="dtb.attlist.col"/> <empty/> </element> </define> <define name="dtb.attlist.col" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="span" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="dtb.MultiLength"/> </attribute> </optional> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.tr"> <element name="tr"> <ref name="dtb.attlist.tr"/> <oneOrMore> <choice> <ref name="dtb.th"/> <ref name="dtb.td"/> </choice> </oneOrMore> </element> </define> <define name="dtb.attlist.tr" combine="interleave"> <ref name="dtb.attrs"/> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.th"> <element name="th"> <ref name="dtb.attlist.th"/> <zeroOrMore> <ref name="dtb.flownopagenum"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.th" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="abbr"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="axis"/> </optional> <optional> <attribute name="headers"> <ref name="dtb.idrefs.type"/> </attribute> </optional> <optional> <attribute name="scope"> <ref name="dtb.Scope"/> </attribute> </optional> <optional> <attribute name="rowspan" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <optional> <attribute name="colspan" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> <define name="dtb.td"> <element name="td"> <ref name="dtb.attlist.td"/> <zeroOrMore> <ref name="dtb.flownopagenum"/> </zeroOrMore> </element> </define> <define name="dtb.attlist.td" combine="interleave"> <ref name="dtb.attrs"/> <optional> <attribute name="abbr"> <ref name="dtb.Text"/> </attribute> </optional> <optional> <attribute name="axis"/> </optional> <optional> <attribute name="headers"> <ref name="dtb.idrefs.type"/> </attribute> </optional> <optional> <attribute name="scope"> <ref name="dtb.Scope"/> </attribute> </optional> <optional> <attribute name="rowspan" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <optional> <attribute name="colspan" a:defaultValue="1"> <data type="NMTOKEN"/> </attribute> </optional> <ref name="dtb.cellhalign"/> <ref name="dtb.cellvalign"/> </define> </grammar>