<!-- ...................................................................... -->
<!-- XJDCM (Based on JIS X 4052:2000) Document Model Module ............... -->
<!-- file: jdcm-model.mod
     
     This is XJDCM, an XML representation of JDCM
     ("Exchange format for Japanese documents with composition markup").
     
     Copyright 2010 Wakaba <wakaba@suikawiki.org>, All Rights Reserved.
     
     Permission to use, copy, modify and distribute this DTD and its
     accompanying documentation for any purpose and without fee is hereby
     granted in perpetuity, provided that the above copyright notice and
     this paragraph appear in all copies.  The copyright holders make no
     representation about the suitability of the DTD for any purpose.
     
     It is provided "as is" without expressed or implied warranty.
     
     Revision: 2010-06-20T04:48:52+00:00 (Generated by mkdtds/1.7)
     
     R4.9.18  URLs updated.

     This DTD module is identified by the SYSTEM identifier:
     
       SYSTEM "https://suika.suikawiki.org/gate/cvs/*checkout*/markup/jdcm/dtd/jdcm-model.mod"
     
     ...................................................................... -->

<!-- Document Model

     This model describes the groupings of element types that
     make up common content models.
-->

<!ENTITY % jdcm.head-optional.mix "%jdcm.style.qname;|%jdcm.link.qname;">

<!-- Optional Elements in head -->
<!ENTITY % HeadOpts.mix "(%jdcm.head-optional.mix;)*">

<!ENTITY % Edit.class "">

<!-- scripts and alternative content -->
<!ENTITY % Script.class "">

<!ENTITY % Misc.extra.class "">

<!-- neither block nor inline, and can
     essentially be used anywhere in the document body -->
<!ENTITY % Misc.class "%Edit.class;%Script.class;%Misc.extra.class;">

<!ENTITY % InlStruct.class "%jdcm.span.qname;|%jdcm.br.qname;">

<!ENTITY % jdcm.emphasis.class "%jdcm.em.qname;|%jdcm.strong.qname;|%jdcm.u.qname;|%jdcm.strike.qname;">

<!ENTITY % InlPhras.class "|%jdcm.emphasis.class;">

<!ENTITY % jdcm.vertical-align.class "%jdcm.sup.qname;|%jdcm.sub.qname;">

<!ENTITY % InlPres.class "|%jdcm.vertical-align.class;">

<!ENTITY % jdcm.writing-mode.class "%jdcm.yoko.qname;|%jdcm.tate.qname;">

<!ENTITY % I18n.class "|%jdcm.writing-mode.class;">

<!ENTITY % Anchor.class "">

<!-- Character level structure -->
<!ENTITY % jdcm.character.class "%jdcm.ch.qname;">

<!ENTITY % InlSpecial.class "|%jdcm.tabset.qname;">

<!ENTITY % InlForm.class "">

<!ENTITY % Ruby.class "|%jdcm.ruby.qname;|%jdcm.mlg.qname;">

<!ENTITY % Inline.extra.class "">

<!ENTITY % InlNoRuby.class "%InlStruct.class;%InlPhras.class;%InlPres.class;%I18n.class;%Anchor.class;%InlSpecial.class;%InlForm.class;%Inline.extra.class;">

<!-- includes all inline elements -->
<!ENTITY % Inline.class "%InlNoRuby.class;%Ruby.class;">

<!-- all inline elements, including %Misc.class; -->
<!ENTITY % Inline.mix "%Inline.class;%Misc.class;">

<!ENTITY % InlNoAnchor.class "%Inline.class;">

<!ENTITY % InlNoAnchor.mix "%InlNoAnchor.class;%Misc.class;">

<!ENTITY % NoRuby.content "(#PCDATA|%InlNoRuby.class;%Misc.class;)*">

<!ENTITY % jdcm.inline-onedir-noem.class "%jdcm.vertical-align.class;|%jdcm.span.qname;|%jdcm.character.class;">

<!ENTITY % jdcm.inoneline-noem.class "%jdcm.inline-onedir-noem.class;|%jdcm.writing-mode.class;">

<!ENTITY % jdcm.inoneline.class "%jdcm.inoneline-noem.class;|%jdcm.emphasis.class;">

<!ENTITY % List.class "%jdcm.ul.qname;|%jdcm.ol.qname;|%jdcm.dl.qname;">

<!ENTITY % Heading.class "%jdcm.h1.qname;|%jdcm.h2.qname;|%jdcm.h3.qname;">

<!ENTITY % Table.class "|%jdcm.table.qname;">

<!ENTITY % Form.class "">

<!ENTITY % Fieldset.class "">

<!ENTITY % BlkStruct.class "%jdcm.p.qname;|%jdcm.div.qname;">

<!ENTITY % BlkPhras.class "|%jdcm.zu.qname;">

<!ENTITY % BlkPres.class "">

<!ENTITY % BlkSpecial.class "%Table.class;%Form.class;%Fieldset.class;">

<!ENTITY % Block.extra.class "">

<!-- includes all block elements -->
<!ENTITY % Block.class "%BlkStruct.class;%BlkPhras.class;%BlkPres.class;%BlkSpecial.class;%Block.extra.class;">

<!-- includes all block elements plus %Misc.class; -->
<!ENTITY % Block.mix "%Heading.class;|%List.class;|%Block.class;%Misc.class;">

<!-- includes all text content, block and inline -->
<!ENTITY % Flow.mix "%List.class;|%Block.class;|%Inline.class;%Misc.class;">

<!ENTITY % jdcm.semiflow.extra.class "">

<!-- Content of dd, li -->
<!ENTITY % jdcm.semiflow.mix "%Inline.mix;|%List.class;|%jdcm.p.qname;%Misc.class;">


<!-- end of jdcm-model.mod -->
