<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>Modularization of XHTML - Developing DTDs with defined and extended modules</title>
<link rel="prev" type="text/html" href="dtd_module_rules.html" />
<link rel="next" type="text/html" href="dtd_module_defs.html" />
<link rel="stylesheet" type="text/css" media="screen" href="xhtml.css" />
<link rel="stylesheet" type="text/css" media="screen" href="W3C-REC.css" /><?xml-stylesheet href="xhtml.css" type="text/css" media="screen" ?><?xml-stylesheet
href="W3C-REC.css" type="text/css" media="screen" ?>
</head>
<body>
<div class="navbar">[<a href="dtd_module_rules.html">Oy[W</a>]   [<a href="dtd_module_defs.html">y[W</a>]   [<a href="Overview.html#toc">Ú</a>]
<!-- File: simpleml-model-1.mod -->
<hr />
</div>
<!-- Declare a Parameter Entity (PE) that defines any external namespaces
that are used by this module -->
<h1><a name="s_developingdtds" id="s_developingdtds">E.</a> è`W
[yÑg£W
[ðàÂDTDÌJ</h1>
<!--
<div class='subtoc'>
<p><strong>Ú</strong></p>
<ul class='toc'>
<li class='tocline'>E.1. <a href="#s_dev_attrs" class="tocxref">ÇÁ®«Ìè`</a></li>
<li class='tocline'>E.2. <a href="#s_dev_elems" class="tocxref">ÇÁvfÌè`</a></li>
<li class='tocline'>E.3. <a href="#s_dev_contentmodel" class="tocxref">W
[ÌWÉÖ·éàefÌè`</a>
<ul class="toc">
<li class='tocline'>E.3.1. <a href="#sec_E.3.1." class="tocxref">ƧW
[ÌXHTMLÖÌ</a></li>
<li class='tocline'>E.3.2. <a href="#sec_E.3.2." class="tocxref">XHTMLÌSW
[ÅÌVW
[̬</a></li>
</ul>
</li>
<li class='tocline'>E.4. <a href="#sec_E.4." class="tocxref">Vµ¢DTD̶¬</a>
<ul class="toc">
<li class='tocline'>E.4.1. <a href="#sec_E.4.1." class="tocxref">ÈPÈDTD̶¬</a></li>
<li class='tocline'>E.4.2. <a href="#sec_E.4.2." class="tocxref">XHTMLÌg£ÉæéDTD̶¬</a></li>
<li class='tocline'>E.4.3. <a href="#sec_E.4.3." class="tocxref">XHTMLW
[ÌyÑu·ÉæéDTD̶¬</a></li>
<li class='tocline'>E.4.4. <a href="#sec_E.4.4." class="tocxref">Vµ¢DTD̶¬</a></li>
</ul>
</li>
<li class='tocline'>E.5. <a href="#sec_E.5." class="tocxref">Vµ¢DTDÌgp</a></li>
</ul>
</div>
<p>{ßÍ<b>îññp</b>Å éB</p>
-->
<p>XHTMLW
[yÑêÊIÈW
[»Ìû@_ðè`·éæêÌÚIÍCXHTMLÉîö^ÌJðeÕÉ·é±ÆÅ éB±êç̶^ÍC<a href="references.html#ref_smil">[SMIL]</a>ÈÇÌÇÁIÈ«\ð·é±ÆÉæÁÄXHTMLðg£µÄà梵CÍCÁèÌuÅgp·é½ßÉXHTMLÌTuZbgðè`µÄàæ¢B±±ÅÍC¶^ÝvÒª±ÌW
[»ÌnÌXML DTDÀðp·é½ßÉgpµÈ¯êÎÈçÈ¢Zpð¦·B±êÍCiKIÉ¡GÈû@ÅCXHTMLW
[»ZpðKpµCíXÌW
[©ç®S¶^𶬷éÛÉÅà¡GÈû@ðgp·é±ÆÉæÁÄCÀs·éB</p>
<p>±êçÌáªXHTMLñÌW
[<em>t@CÀÌ</em>©ÌÌÏXðK{Æ͵Ȣ_ÉÓ·é±ÆBXHTMLW
[t@CÀÌÍC®SÉp^»³êÄ¢é½ßCÂXÌW
[è`yÑ<em>hCot@C</em>ðʵÄCevfyÑ»ÌKwÉ¢ÄCè`yÑàefðJX^»Å«éB</p>
<p>ÅãÉ, XHTMLÌpÒÌÙÆñǪDTDì¬ÒÅ é±ÆÍúÒ³êÄ<em>¢È¢</em>±ÆðOªÉ¨±ÆBDTDì¬ÒÍCêÊÉCÂÇ«ðüPµ½èC¶Ì_OðÈP»µ½èC¶Ì@BðeÕÉ·éÁêÈ}[Nt¯ðè`µÄ¢é©CÍÅLÌNCAgÉêpÌDTDðè`·éKvÌ éNCAgÝvÒÅ éBÌêðl¦éB </p>
<ul>
<li>
<p> égDª, ÁüÒÌîñðEFuC^tF[XoRÅñµÄ¢éB±ÌgDÍ, »ÌÁüÒîñðXMLx[XÌf[^x[XÉi[·éB»Ìîñðf[^y[X©çEFuÉñ·éû@ÌêÂÉCXHTML¶ÉCf[^x[X©ç¼ÚXMLR[hðßޱƪ éBR[hðÙÆñÇßޱƪūȢêÍCgDÍ, »ÌR[hðLq·éDTDW
[ðè`µCXHTML DTDÉ»ÌW
[ðÇÁµC»êÉæÁÄy[WÉ®SDTD𶬷é±ÆªÅ«éB»ÌãCgDÍC¶IuWFNgf<a href="references.html#ref_dom">[DOM]</a>ðîµÄVµ¢vfàÌf[^ÉANZXµC¶ÌëðصCiKX^CV[g<a href="references.html#ref_css2">
[CSS2]</a>ÈÇðgpµÄ, Kw»·évfÉX^Cè`ðñ·é±ÆªÂ\ÆÈéB±±Åè`³ê½ßöðgpµÄCf[^Ì\zðè`µCDTD𶬷é±ÆÉÔðïâ¹ÎC±ÌgDÍ, XMLÌ_ð\ªÉó·é±ÆªÅ«éB</p>
</li>
<li>
<p> éC^lbgNCAgJÒª, êåÌuðÝvµÄ¢éB»ÌuÍXHTMLÌTuZbg¾¯ðT|[gµCíÉ, uÍCNCAgÉn·OÉàeÌëðØ·évLVT[oðîµÄCC^lbgÉANZX·éB±êÍCNCAgÌG[ðŬÀÉ·é½ßÅ éBàeÌëðmÀÉ·é½ßÉCJÒÍC±±Åè`³êéßöðgpµÄXHTMLÌTuZbgÅ éDTD𶬷éB»ÌãCVµ¢DTDðvLVT[oyÑuÅgpµCàeJÒÉàDTDðpÅ«éæ¤É·éB»ÌÊCJÒÍàeÌëðصĩç»êðp·é±ÆªÅ«éæ¤ÉÈéBÈPÈßöð¢Â©Às·é±ÆÉæÁÄCNCAgJÒÍC±Ì¶Åè`³ê½ÌnðgpµÄCñíÉÈPÉDTDJRXgð}¦CæÝðIð·éXHTMLÌTuZbgð®SÉT|[gµÄ¢é±ÆðÛØÅ«éB</p>
</li>
</ul>
<h2><a name="s_dev_attrs" id="s_dev_attrs">E.1.</a> ÇÁ®«Ìè`</h2>
<p>XHTMLÖÌg£ª, ÇÁ®«Æ¯¶öxÉÈPÉ·é±ÆªÂ\Èêà éBvfÉÇÁÌATTLISTðwè·é¾¯ÅC»ÌvfÉ®«ðÇÁ·é±ÆªÅ«éBáðɦ·B</p>
<pre class="example">
<!ATTLIST %a.qname;
%MyModule.pfx;myattr CDATA #IMPLIED
%MyModule.xmlns.extras.attrib;
>
</pre>
<p>±ÌáÍC"%MyModule.pfx"ÉæÁÄè`³êéCÓÌÚª«ðà¿C®«lªCDATAÅ é"myattr"®«ð"a"vfÉÇÁµÄ¢éBXMLªDTDÌÇÌ_ÅàvfÌ®«Xgðè`µ½èCg£·é±ÆªÅ«é½ßC±êªLøÆÈéB<em>Cü¼yѼOóÔÚª«Ìc_É¢ÄÍC<a href="dtd_module_rules.html#s_module_namespace">W
[̼OóÔÌè`</a>ðQƳ꽢B</em></p>
<p>Êí, ®«ðDTDÉÇÁ·é±ÆÍCCÓÌNCAgÉ çäéVµ¢Ué¢ðè`·éÆ¢¤Ó¡ÅÍÈ¢Bµ©µCàeJÒÍCÁÊÈ®«ðgpµÄCá¦Î¶IuWFNgfÈÇÉæÁÄCÖAXNvgªANZX·éîñði[·é±ÆªÅ«éB</p>
<h2><a name="s_dev_elems" id="s_dev_elems">E.2.</a> ÇÁvfÌè`</h2>
<p>ÇÁvfÌè`ÍCÇÁ®«Ìè`æèᱡGÉÈéÉ·¬È¢Bî{IÉCDTDì¬ÒÍCevfÉvfé¾ð«Þ̪]ܵ¢B</p>
<pre class="example">
<!-- In the qname sub-module -->
<!ENTITY % MyModule.myelement.qname "%MyModule.pfx;myelement" >
<!ENTITY % MyModule.myotherelement.qname "%MyModule.pfx;myotherelement" >
<!-- In the declaration sub-module -->
<!ELEMENT %MyModule.myelement.qname;
( #PCDATA | %MyModule.myotherelement.qname; )* >
<!ATTLIST %MyModule.myelement.qname;
myattribute CDATA #IMPLIED
>
<!ELEMENT %MyModule.myotherelement.qname; EMPTY >
</pre>
<p>vfÌè`ÌãCvfðàefÉ·éKvª éBVµ¢vfÍvfÌWðàefÉ·éû@ÍCÉðà³êéB</p>
<h2><a name="s_dev_contentmodel" id="s_dev_contentmodel">E.3.</a> W
[ÌWÉÖ·éàefÌè`</h2>
<p>XHTMLW
[ÌàefÍ®SÉp^»³êÄ¢é½ßCDTDì¬ÒÍ çäéW
[Ì·×ÄÌvfÌàefðÏXµÄàæ¢B
DTDW
[C^tF[XÌÚ×É¢ÄÍC<a href="dtd_module_rules.html#s_dtd_module_rules">DTDW
[Ì\z</a>Åè`³êÄ¢éBî{IÉC±ÌÏXÖÌAv[`û@Í, ñ¶ݷéB</p>
<ol>
<li>evfÉ".content"p^ÀÌðÄè`·éB</li>
<li>åæIàefÀÌðêÂÈãÄè`·éBÊíÍ ".extras"p^ÀÌðîµÄs¤B</li>
</ol>
<p>Ið³ê½û@ÍC³êéW
[Ì«¿yѳêéW
[Ì«¿É˶·é±ÆÉÈéB̪ÅÍCW
[ÌñÂÌÙÈéNXð·éZpð¦·B</p>
<h3><a name="sec_E.3.1." id="sec_E.3.1.">E.3.1.</a> ƧW
[ÌXHTMLÖÌ</h3>
<p>W
[(¼ÌW
[ÌWÅ é±ÆàÂ\)ª»ÌàefÅÝ¢ÉQƳê龯Ìvfµ©ÜÜÈ¢êC"àIÉ®S"Å éÆ¢¤BW
[ÍCPÆÅCW
[ƵÄgp·é±ÆªÅ«éBá¦ÎC»ÌW
[»ÌàÌÅ èC»ÌvfÌêÂðªvfƵÄgp·éDTDðè`·é±ÆªÅ«éB±Ìæ¤ÈW
[ÌXHTMLÖÌÍCÌOÂÌßöÅs¤B</p>
<ol>
<li>ÇÌvfðVµ¢W
[̪ƵÄl¦é©ðè·éB</li>
<li>±êçÌvfðXHTMLàeØÌDZÅÚ±·éKvª é©ðè·éB</li>
<li>»ÌãCàeØÌeÚ±_ÅCªvfðXHTMLvfÌàeè`ÉÇÁ·éB</li>
</ol>
<p><a href="#s_dev_elems">±±</a>Åè`·évfÌÚ±ð¢µÄÝéB±ÌáÅÍCvf<tt>myelement</tt>ªªÅ éB±Ìvfð<tt>img</tt>vf̺C·Èí¿CXHTMLÌ<tt>img</tt>vf¾¯ÉÚ±·é½ßÉÍCðÀs·é±ÆÉÈéB</p>
<pre class="example">
<!ENTITY % img.content "( %MyModule.myelement.qname; )*">
</pre>
<p>±ÌàefÅè`³êéDTDÉæèCÌfÐÉÞ·é¶ðp·é±ÆªÅ«éB</p>
<pre class="example">
<img src="...">
<myml:myelement >This is content of a locally defined element</myml:myelement>
</img>
</pre>
<p>ÊíC<code>img</code>vfÉÍ<code>EMPTY</code>Ìàefª¶Ý·é_ÉÓ·é±ÆªdvÅ éBmyelementð»ÌàefÉÇÁ·éÌÍ<code>EMPTY</code>ð<code>myelement</code>Åu·µÄ¢éÌƯ¶Å éB»Ì¼Ìvfª·ÅÉàefðè`µÄ¢éêÉCvfðÇÁ·éÆ«ÍC<code>myelement</code>̼ÉCù¶ÌàefÌÄLqªK{ÆÈéB</p>
<h3><a name="sec_E.3.2." id="sec_E.3.2.">E.3.2.</a> XHTMLÌSW
[ÅÌVW
[̬</h3>
<p><tt>%Flow.mix</tt>àefO[vªgpÅ«é·×ÄÌêűÌW
[ðÚ±·é½ßÉÍCOqÌáðg£·é±ÆªK{ÆÈéB»Ìáðɦ·B</p>
<pre class="example">
<!ENTITY % Misc.extra
"| %MyModule.myelement.qname;" >
</pre>
<p>%Misc.extraàefNXª%Misc.classp^ÀÌÅgp³êC»Ìp^À̪XHTMLW
[ÌSÌÉnÁÄgp³êé½ßCg£³ê½XHTML¶^ÌSÌðʵÄVµ¢W
[ªpÅ«éæ¤ÉÈéB</p>
<h2><a name="sec_E.4." id="sec_E.4.">E.4.</a> Vµ¢DTD̶¬</h2>
<p>±±Å̱êÜÅÌáÍCXHTMLyÑXHTMLÌàefðg£·éû@ðLqµÄ¢½Bêx±êðÀs·éÆCÌiKÍCDTDðPêÌDTDhCoÉ\¬·éW
[ðûWµCVµ¢è`ðgÝÞ±ÆÉæÁÄCKØÈàÌƵÄî{ÌXHTMLè`ð㫵CÁ³¹é±ÆÉÈéB</p>
<h3><a name="sec_E.4.1." id="sec_E.4.1.">E.4.1.</a> ÈPÈDTD̶¬</h3>
<p>Oq̲ÈPÈáðgp·éÆCñíÉÈPÉXHTMLW
[ðgpµCg£·éVµ¢DTDðè`·é±ÆªÅ«éBܸCW
[àÉ éVµ¢vfyÑ»Ìàefðè`·éB</p>
<pre class="dtd">
<!-- File: simpleml-model-1.mod -->
<!-- Declare a Parameter Entity (PE) that defines any external namespaces
that are used by this module -->
<!-- Set the PE that is used in every ATTLIST in this module
<!-- Set the PE that is used in every ATTLIST in this module
NS.prefixed.attrib is initialized in the xhtml-qname module, and
SimpleML.ns.noprefix.attrib is initialized in the SimpleML DTD driver
file.-->
<!ENTITY % SimpleML.xmlns.attrib
file.-->
<!ENTITY % SimpleML.xmlns.attrib
"%NS.decl.attrib;"
>
>
<!ENTITY % SimpleML.Common.attrib
<!ENTITY % SimpleML.Common.attrib
"%SimpleML.xmlns.attrib;
id ID #IMPLIED"
>
>
<!ENTITY % SimpleML.element.qname "%SimpleML.pfx;element" >
<!ENTITY % SimpleML.otherelement.qname "%SimpleML.pfx;otherelement" >
<!ENTITY % SimpleML.element.qname "%SimpleML.pfx;element" >
<!ENTITY % SimpleML.otherelement.qname "%SimpleML.pfx;otherelement" >
<!ELEMENT %SimpleML.element.qname;
( #PCDATA | %SimpleML.otherelement.qname; )* >
<!ATTLIST %SimpleML.element.qname;
<!ELEMENT %SimpleML.element.qname;
( #PCDATA | %SimpleML.otherelement.qname; )* >
<!ATTLIST %SimpleML.element.qname;
myattribute CDATA #IMPLIED
%SimpleML.Common.attrib;
>
<!ELEMENT %SimpleML.otherelement.qname; EMPTY >
<!ATTLIST %SimpleML.otherelement.qname;
>
<!ELEMENT %SimpleML.otherelement.qname; EMPTY >
<!ATTLIST %SimpleML.otherelement.qname;
%SimpleML.Common.attrib;
>
>
<!ENTITY % SimpleML.img.myattr.qname "%SimpleML.pfx;myattr" >
<!ATTLIST %img.qname;
<!ENTITY % SimpleML.img.myattr.qname "%SimpleML.pfx;myattr" >
<!ATTLIST %img.qname;
%SimpleML.img.myattr.qname; CDATA #IMPLIED
>
>
<!-- Add our elements to the XHTML content model -->
<!ENTITY % Misc.class
"| %SimpleML.element.qname;" >
<!-- Add our elements to the XHTML content model -->
<!ENTITY % Misc.class
"| %SimpleML.element.qname;" >
<!-- Now bring in the XHTML Basic content model -->
<!ENTITY % xhtml-basic-model.mod
<!-- Now bring in the XHTML Basic content model -->
<!ENTITY % xhtml-basic-model.mod
PUBLIC "-//W3C//ENTITIES XHTML Basic 1.0 Document Model 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10-model-1.mod" >
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10-model-1.mod" >
%xhtml-basic-model.mod;
</pre>
<p>ÉCVµ¢¾êÉDTDhCoðè`·éB</p>
<pre class="dtd">
<!-- file: simpleml-1_0.dtd -->
<!-- Bring in the XHTML datatypes -->
<!ENTITY % xhtml-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%xhtml-datatypes.mod;
<!-- Declare the actual namespace of this module -->
<!ENTITY % SimpleML.xmlns "http://www.example.com/xmlns/simpleml1" >
<!-- By default, disable prefixing of new module -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % SimpleML.prefixed "%NS.prefixed;" >
<!-- Default prefix for module elements and attributes -->
<!ENTITY % SimpleML.prefix "simpleml" >
<!-- If this module's namespace is prefixed -->
<![%SimpleML.prefixed;[
<!ENTITY % SimpleML.pfx "%SimpleML.prefix;:" >
]]>
<!ENTITY % SimpleML.pfx "" >
<![%SimpleML.prefixed;[
<!ENTITY % SimpleML.xmlns.extra.attrib
"xmlns:%SimpleML.prefix; %URI.datatype; #FIXED '%SimpleML.xmlns;'" >
]]>
<!ENTITY % SimpleML.xmlns.extra.attrib "" >
<!ENTITY % XHTML.xmlns.extra.attrib
"%SimpleML.xmlns.extra.attrib;"
>
<!-- Set the content model for our language -->
<!ENTITY % xhtml-model.mod
SYSTEM "simpleml-model-1.mod" >
<!-- Instantiate xhtml basic's DTD to do all the work -->
<!ENTITY % xhtml-basic.dtd
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" >
%xhtml-basic.dtd;
</pre>
<p>±ÌDTDðgp·éÆCXML¼OóÔÚª«ðgp·é±ÆªÅ«éBXML¼OóÔÚª«ðgp·éÛÍC±ÌVµ¢DTDðgp·é¶Ì`ªÍ, ÉÞ·éB</p>
<pre class="dtd">
<!DOCTYPE html SYSTEM "simpleml-1_0.dtd" [
<!ENTITY % SimpleML.prefixed "INCLUDE">
]>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:simpleml="http://www.example.com/xmlns/simpleml1" >
<head>
<title>An example using defaults</title>
</head>
<body>
<p>This is content in the XHTML namespace</p>
<simpleml:element>
This is content in the SimpleML namespace.
<simpleml:otherelement />
</simpleml:element>
<p><img src="missing" alt="Missing image" simpleml:myattr="value"/></p>
</body>
</html>
</pre>
<h3><a name="sec_E.4.2." id="sec_E.4.2.">E.4.2.</a> XHTMLÌg£ÉæéDTD̶¬</h3>
<p>ÉC®SÅtÁI©Â¡GÈW
[ðXHTMLÍXHTMLÌTuZbgÉÇÁ·éêð¦·B{¿IÉÍC±êÍOq̲ÈPÈáƯ¶Å èCBêÌá¢ÍCÇÁ³êéW
[ªDTDÌVµ¢è`ð¾¦IÉÜÞÌÅÍÈCQÆÉæÁÄDTDÉæèÜêé_Å éB</p>
<p>±Ì¡GÈW
[ÌêÂÍC<a href="references.html#ref_mathml">[MATHML]</a>ÌDTDÅ éBMathMLyÑXHTMLðPêÌDTDÉ·é½ßÉCì¬ÒÍC¶ÅMathMLÌàeª@Å é̪]ܵ¢êðèµC»Ì_ÅCMathMLªvfðàefÉÇÁ·é±ÆÉÈéBÅÉCMathML DTDðCX^X»µC»êðàefÉ·éàefW
[ðè`·éB</p>
<pre class="example">
<!-- File: mathml-model.mod -->
<!ENTITY % XHTML1-math
PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" >
%XHTML1-math;
<!ENTITY % Inlspecial.extra
"%a.qname; | %img.qname; | %object.qname; | %map.qname;
| %Mathml.Math.qname;" >
</pre>
<p>ÉCVµ¢àefW
[ðDTDÌàefƵįʵCXHTML1.1hCoÈÇÉðn·DTDhCoðè`·éB</p>
<pre class="example">
<!-- File: xhtml-mathml.dtd -->
<!ENTITY % xhtml-model.mod
SYSTEM "mathml-model.mod" >
<!ENTITY % xhtml11.dtd
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
%xhtml11.dtd;
</pre>
<h3><a name="sec_E.4.3." id="sec_E.4.3.">E.4.3.</a> XHTMLW
[ÌyÑu·ÉæéDTD̶¬</h3>
<p>DTDì¬ÒªXHTMLW
[ðgp·éà¤êÂÌû@ÉCXHTMLt@~¶^ÌTuZbgÅ éDTDðè`·é±Æª éB±êÍCì¬ÒªXHTMLÌTuZbg¾¯ðT|[g·éuÍ\tgEFAð\zµÄ¢éêÈÇÅ éBXHTMLt@~¶^ÌTuZbgÅ éDTDðè`·éÌÍCOqÌáÉä×éÆᱡGÅ éÉ·¬È¢Bî{IÈßöðɦ·B</p>
<ol>
<li>XHTMLt@~DTDðVµ¢¶^ÌîbƵÄF¯·éBXHTML1.1ðgp·é±ÆÉÈéB</li>
<li>W
[ðIðµÄC»ÌDTD©ç·éB</li>
<li>W
[ð"³·é"Vµ¢DTDðè`·éB</li>
<li>Vµ¢W
[ð¢Â©±ü·éB</li>
</ol>
<p>á¦ÎCXHTMLW
[ðgp·éªCtH[Í\Íuð¢·éB±ÌuÌDTDÍ, ÉÞ·éB</p>
<pre class="example">
<!-- File: xhtml-simple.dtd -->
<!ENTITY % xhtml-form.module "IGNORE" >
<!ENTITY % xhtml-table.module "IGNORE" >
<!ENTITY % xhtml-table.module "IGNORE" >
<!-- Bring in the basic tables module -->
<!ENTITY % xhtml-basic-table.mod
PUBLIC "-//W3C//ELEMENTS XHTML Basic Tables 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-basic-table-1.mod"
>
%xhtml-basic-table.mod;
<!ENTITY % xhtml11.mod
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
%xhtml11.mod;
</pre>
<p>±êÍCÀÛÉÍCXHTML1.1DTDÌàefðÏXµÈ¢_ÉÓ·é±ÆBµ©µCXMLªè`³êĢȢàefÌvfð³·é½ßCformvfyÑtablevfÍC©®IÉf©çÁ³êéB</p>
<h3><a name="sec_E.4.4." id="sec_E.4.4.">E.4.4.</a> Vµ¢DTD̶¬</h3>
<p>ÅãÉCVµ¢}[Nt¯¾êð\z·é½ßÉCXHTMLW
[»ggÝðc[LbgƵÄgpµÄCXNb`ðJnµ½¢Æl¦éDTDì¬Òà¢éB±Ì¾êÍCXHTMLðîbƵ½Å¬ÅK{ÌW
[©ç쬳êȯêÎÈçÈ¢B¯lÉCì¬ÒªÌpµ½¢Æl¦é¼ÌXHTMLè`ÌW
[CÍC»Ì¼·×ÄÌW
[ðÜñÅàæ¢B±ÌáÅÍCXHTMLK{W
[ðÌpµCXHTMLè`ÌW
[ð¢Â©ÇÁµC±±Åè`µ½W
[àÉàÇÁ·éB</p>
<p>ÅÌßöÍCXHTMLñÌ<a href="DTD/templates/template-qname-1.mod">template</a>ðVµ¢Cü¼W
[Égp·é±ÆÆ·éB±ÌCü¼W
[ÍCCü¼yѼOóÔðVµ¢vfÉè`·é½ßÉÏX³êéB </p>
<pre class="dtd">
<!-- file: myml-qname-1.mod -->
<!-- Bring in the datatypes - we use the URI.datatype PE for declaring the
xmlns attributes. -->
<!ENTITY % MyML-datatypes.mod
PUBLIC "-//W3C//ENTITIES XHTML Datatypes 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-datatypes-1.mod" >
%MyML-datatypes.mod;
<!-- By default, disable prefixing of this module -->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % MyML.prefixed "%NS.prefixed;" >
<!-- Declare the actual namespace of this module -->
<!ENTITY % MyML.xmlns "http://www.example.com/xmlns/myml" >
<!-- Declare the default prefix for this module -->
<!ENTITY % MyML.prefix "myml" >
<!-- If this module's namespace is prefixed -->
<![%MyML.prefixed;[
<!ENTITY % MyML.pfx "%MyML.prefix;:" >
]]>
<!ENTITY % MyML.pfx "" >
<!-- Declare a Parameter Entity (PE) that defines any external namespaces
that are used by this module -->
<!ENTITY % MyML.xmlns.extra.attrib "" >
<!-- Declare a PE that defines the xmlns attributes for use by MyML. -->
<![%MyML.prefixed;[
<!ENTITY % MyML.xmlns.attrib
"xmlns:%MyML.prefix; %URI.datatype; #FIXED '%MyML.xmlns;'
%MyML.xmlns.extra.attrib;"
>
]]>
<!ENTITY % MyML.xmlns.attrib
"xmlns %URI.datatype; #FIXED '%MyML.xmlns;'
%MyML.xmlns.extra.attrib;"
>
<!-- Make sure that the MyML namespace attributes are included on the XHTML
attribute set -->
<![%NS.prefixed;[
<!ENTITY % XHTML.xmlns.extra.attrib
"%MyML.xmlns.attrib;" >
]]>
<!ENTITY % XHTML.xmlns.extra.attrib
""
>
<!-- Now declare the element names -->
<!ENTITY % MyML.myelement.qname "%MyML.pfx;myelement" >
<!ENTITY % MyML.myotherelement.qname "%MyML.pfx;myotherelement" >
</pre>
<p>ÉCXHTMLñÌ<a href="DTD/templates/template-1.mod">template</a>ðgpµÄCvfyÑ®«ðè`·éW
[ðè`·éB</p>
<pre class="dtd">
<!-- ...................................................................... -->
<!-- My Elements Module ................................................... -->
<!-- file: myml-elements-1_0.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML MyML Elements 1.0//EN"
SYSTEM "http://example.com/DTDs/myml-elements-1_0.mod"
xmlns:myml="http://example.com/DTDs/myml-1_0.dtd"
...................................................................... -->
<!-- My Elements Module
myelement
myotherelement
This module has no purpose other than to provide structure for some
PCDATA content.
-->
<!ELEMENT %MyML.myelement.qname;
( #PCDATA | %MyML.myotherelement.qname; )* >
<!ATTLIST %MyML.myelement.qname;
myattribute CDATA #IMPLIED
%MyML.xmlns.attrib;
>
<!ELEMENT %MyML.myotherelement.qname; EMPTY >
<!ATTLIST %MyML.myotherelement.qname;
%MyML.xmlns.attrib;
>
<!ENTITY % MyML.img.myattr.qname "%MyML.pfx;myattr" >
<!ATTLIST %img.qname;
%MyML.img.myattr.qname; CDATA #IMPLIED
%MyML.xmlns.attrib;
>
<!-- end of myml-elements-1_0.mod -->
</pre>
<p>ÉCVµ¢vfyÑ®«ð¼ÌXHTMLvfÉtbN·éàefLqð\z·éBÌáÍCXHTMLBasicàefÌãÉp^»³êéªC®SÅ©§^ÌàefW
[Å éB</p>
<pre class="dtd">
<!-- ...................................................................... -->
<!-- MyML Model Module ................................................... -->
<!-- file: myml-model-1.mod
PUBLIC "-//MY COMPANY//ELEMENTS XHTML MyML Model 1.0//EN"
SYSTEM "http://example.com/DTDs/myml-model-1_0.mod"
xmlns:myml="http://www.example.com/xmlns/myml"
...................................................................... -->
<!-- Define the content model for Misc.extra -->
<!ENTITY % Misc.class
"| %MyML.myelement.qname; ">
<!-- .................... Inline Elements ...................... -->
<!ENTITY % HeadOpts.mix
"( %meta.qname; )*" >
<!ENTITY % I18n.class "" >
<!ENTITY % InlStruct.class "%br.qname; | %span.qname;" >
<!ENTITY % InlPhras.class
"| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname;
| %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname;
| %abbr.qname; | %acronym.qname; | %q.qname;" >
<!ENTITY % InlPres.class
"" >
<!ENTITY % Anchor.class "| %a.qname;" >
<!ENTITY % InlSpecial.class "| %img.qname; " >
<!ENTITY % Inline.extra "" >
<!-- %Inline.class; includes all inline elements,
used as a component in mixes
-->
<!ENTITY % Inline.class
"%InlStruct.class;
%InlPhras.class;
%InlPres.class;
%Anchor.class;
%InlSpecial.class;"
>
<!-- %InlNoAnchor.class; includes all non-anchor inlines,
used as a component in mixes
-->
<!ENTITY % InlNoAnchor.class
"%InlStruct.class;
%InlPhras.class;
%InlPres.class;
%InlSpecial.class;"
>
<!-- %InlNoAnchor.mix; includes all non-anchor inlines
-->
<!ENTITY % InlNoAnchor.mix
"%InlNoAnchor.class;
%Misc.class;"
>
<!-- %Inline.mix; includes all inline elements, including %Misc.class;
-->
<!ENTITY % Inline.mix
"%Inline.class;
%Misc.class;"
>
<!-- ..................... Block Elements ...................... -->
<!ENTITY % Heading.class
"%h1.qname; | %h2.qname; | %h3.qname;
| %h4.qname; | %h5.qname; | %h6.qname;" >
<!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" >
<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" >
<!ENTITY % BlkPhras.class
"| %pre.qname; | %blockquote.qname; | %address.qname;" >
<!ENTITY % BlkPres.class "" >
<!ENTITY % Block.extra "" >
<!-- %Block.class; includes all block elements,
used as an component in mixes
-->
<!ENTITY % Block.class
"%BlkStruct.class;
%BlkPhras.class;
%BlkPres.class;
%Block.extra;"
>
<!-- %Block.mix; includes all block elements plus %Misc.class;
-->
<!ENTITY % Block.mix
"%Heading.class;
| %List.class;
| %Block.class;
%Misc.class;"
>
<!-- ................ All Content Elements .................. -->
<!-- %Flow.mix; includes all text content, block and inline
-->
<!ENTITY % Flow.mix
"%Heading.class;
| %List.class;
| %Block.class;
| %Inline.class;
%Misc.class;"
>
<!-- special content model for pre element -->
<!ENTITY % pre.content
"( #PCDATA
| %Inline.class; )*"
>
<!-- end of myml-model-1.mod -->
</pre>
<p>ÅãÉCXHTMLñÌ<a href="DTD/templates/template.dtd">template</a>ðVµ¢DTDÉgp·éB±ÌVµ¢DTDÍCVµ¢}[Nt¯¾êpÉKØÉÏX³êÄ¢éB</p>
<pre class="dtd">
<!-- ....................................................................... -->
<!-- MYML DTD ............................................................. -->
<!-- file: myml-1_0.dtd -->
<!-- This is the DTD driver for myml 1.0.
Please use this formal public identifier to identify it:
"-//MY COMPANY//DTD XHTML MYML 1.0//EN"
And this namespace for myml-unique elements:
xmlns:myml="http://www.example.com/xmlns/myml"
-->
<!ENTITY % XHTML.version "-//MY COMPANY//DTD XHTML MYML 1.0//EN" >
<!-- reserved for use with document profiles -->
<!ENTITY % XHTML.profile "" >
<!-- Tell the framework to use our qualified names module as an extra qname
driver -->
<!ENTITY % xhtml-qname-extra.mod
SYSTEM "myml-qname-1.mod" >
<!-- Define the Content Model for the framework to use -->
<!ENTITY % xhtml-model.mod
SYSTEM "myml-model-1.mod" >
<!-- Disable bidirectional text support -->
<!ENTITY % XHTML.bidi "IGNORE" >
<!-- Bring in the XHTML Framework -->
<!ENTITY % xhtml-framework.mod
PUBLIC "-//W3C//ENTITIES XHTML Modular Framework 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-framework-1.mod" >
%xhtml-framework.mod;
<!-- Basic Text Module (Required) ............................... -->
<!ENTITY % xhtml-text.mod
PUBLIC "-//W3C//ELEMENTS XHTML Basic Text 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-text-1.mod" >
%xhtml-text.mod;
<!-- Hypertext Module (required) ................................. -->
<!ENTITY % xhtml-hypertext.mod
PUBLIC "-//W3C//ELEMENTS XHTML Hypertext 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-hypertext-1.mod" >
%xhtml-hypertext.mod;
<!-- Lists Module (required) .................................... -->
<!ENTITY % xhtml-list.mod
PUBLIC "-//W3C//ELEMENTS XHTML Lists 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-list-1.mod" >
%xhtml-list.mod;
<!-- My Elements Module ........................................ -->
<!ENTITY % MyML-elements.mod
SYSTEM "myml-elements-1.mod" >
%MyML-elements.mod;
<!-- XHTML Images module ........................................ -->
<!ENTITY % xhtml-image.mod
PUBLIC "-//W3C//ELEMENTS XHTML Images 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-image-1.mod" >
%xhtml-image.mod;
<!-- Document Metainformation Module ............................ -->
<!ENTITY % xhtml-meta.mod
PUBLIC "-//W3C//ELEMENTS XHTML Metainformation 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-meta-1.mod" >
%xhtml-meta.mod;
<!-- Document Structure Module (required) ....................... -->
<!ENTITY % xhtml-struct.mod
PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
"http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod" >
%xhtml-struct.mod;
</pre>
<h2><a name="sec_E.5." id="sec_E.5.">E.5.</a> Vµ¢DTDÌgp</h2>
<p>êxVµ¢DTDðJ·éÆC·×Ä̶Żêðgp·é±ÆªÅ«éBDTDðgp·éÌÍÈPÅ èC¶ÌDOCTYPEé¾Å»êðQÆ·éÌÆÏíçÈ¢B</p>
<pre class="dtd">
<!DOCTYPE html SYSTEM "myml-1_0.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>An example using defaults</title>
</head>
<body>
<p>This is content in the XHTML namespace</p>
<myelement>
This is content in the SimpleML namespace.
<myotherelement />
</myelement>
<p><img src="missing" alt="Missing image" myattr="value"/></p>
</body>
</html>
</pre>
<p>¶ÍCXHTML¼OóÔOÌvfàC»êçðÚª«Æ·é±ÆÉæÁÄgp·é±ªÅ«éB</p>
<pre class="dtd">
<!DOCTYPE html SYSTEM "myml-1_0.dtd" [
<!ENTITY % MyML.prefixed "INCLUDE" >
]>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>An example using defaults</title>
</head>
<body>
<p>This is content in the XHTML namespace</p>
<myml:myelement>
This is content in the myml namespace.
<myml:myotherelement />
</myml:myelement>
<p><img src="missing" alt="Missing image" myml:myattr="value" /></p>
</body>
</html>
</pre>
<hr />
<div class="navbar">[<a href="dtd_module_rules.html">Oy[W</a>]   [<a href="dtd_module_defs.html">y[W</a>]   [<a href="Overview.html#toc">Ú</a>]</div>
</body>
</html>