阅读内容 

XML轻松学习手册(4)XML的术语之二

[日期:2005-04-17] 来源:中国站长学院  作者:郁郁小蝎 [字体: ]
二.DTD的有关术语

什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

DTD文件也是一个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。

为什么要用DTD文件呢?我的理解是它满足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。比如,两个相同行业不同地区的人使用同一个DTD文件来作为文档创建规范,那么他们的数据就很容易交换和共享。网上有其他人想补充数据,也只需要根据公用的DTD规范来建立文档,就立刻可以加入。

目前,已经有数量众多的写好的DTD文件可以利用。针对不同的行业和应用,这些DTD文件已经建立了通用的元素和标签规则。你不需要自己重新创建,只要在他们的基础上加入你需要的新标识。

当然,如果愿意,你可以创建自己的DTD,它可能和你的文档配合的更加完美。建立自己的DTD也是很简单的一件事,一般只需要定义4-5个元素就可以了。

调用DTD文件的方法有两种:

1.直接包含在XML文档内的DTD

你只要在DOCTYPE声明中插入一些特别的说明就可以了,象这样:

我们有一个XML文档:





<a href="http://www.blue1000.com/bkhtml/c21/" title="XML教程">XML</a>轻松学习手册

ajie



我们在第一行后面插入下面代码就可以:








]>


2.调用独立的DTD文件

将DTD文档存为.dtd的文件,然后在DOCTYPE声明行中调用,例如,将下面的代码存为myfile.dtd






然后在XML文档中调用,在第一行后插入:


我们可以看到DTD文档和HTML中js的调用是差不多的,关于DTD文档具体如何写,我们将在下一章和XML文档的语法一起介绍。


下面我们来了解DTD有关的术语:


1.Schema(规划)

schema是数据规则的描述。schema做两件事:

a.它定义元素数据类型和元素之间的关系;

b.它定义元素所能包含的内容类型。

DTD就是关于XML文档的一个schema。


2.Document Tree(文档树)

"文档树"在前面第二章我们已经提到过,它是文档元素分级结构的象表示。一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第一个元素)。看例子:







...

...





上面的例子分三级结构排列成"树"状,其中的就是根元素。在XML和DTD文件中,第一个定义的都是根元素。


3.Parent Element(父元素)/Child Element(子元素)

父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的"结构树",其中是父元素,,<author>是它的子元素,而<myfile>又是<filelist>的子元素。象<title>这样没有包含任何子元素的最后一级元素我们也称之为"页元素"。</P><BR> <P>4.Parser(解析软件) <BR><BR>Parser是一种检查<a href="http://www.blue1000.com/bkhtml/c21/" title="XML教程">XML</a>文档是否遵循DTD规范的工具软件。<BR><BR><a href="http://www.blue1000.com/bkhtml/c21/" title="XML教程">XML</a>的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守XML语法规则,是否用元素标识建立了文档树。另一种是"确认类paeser",它不但检测文档语法,结构树,而且比较解析你使用的元素标识是否遵守了相应DTD文件的规范。<BR><BR>Parser能独立使用,也可以成为编辑软件或浏览器的一部分。在后面的相关资源列表里,我列出了当前比较流行的一些parsers。</P><BR> <P>  好了,通过第三章的学习,我们已经了解了一些<a href="http://www.blue1000.com/bkhtml/c21/" title="XML教程">XML</a>和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。请继续浏览,谢谢!</P> </div> <div><script type="text/javascript" src="../../bkad/undercontent.js"></script></div> </div> <div style="padding-right:20px;text-align:right;clear:both"> 阅读:<span id="news_hits"></span> 次<br/> 录入:<br/><br/> 【 <a href="../../mail.aspx?ID=6854" target="_blank">推荐</a> 】 【 <a href="javascript:doPrint()">打印</a> 】 </div> <div style="padding-left:20px;clear:both"> 上一篇:<a href="../../bkhtml/2005-04/6853.htm">XML轻松学习手册(4)XML的术语之一</a><br/> 下一篇:<a href="../../bkhtml/2005-04/6855.htm">XML轻松学习手册(5)XML语法之一</a><br/> <script type="text/javascript" src="../../bkad/underpreandnext.js"></script> </div> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="mframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">相关新闻</span>       </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="mframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">本文评论</span>       <a href="../../remark.aspx?id=6854" target="_blank" style="cursor:hand">全部评论</a> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="mframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">发表评论</span> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> <form id="remarkForm" action="../../remark.aspx?id=6854" method="post" onsubmit="return checkRemark();" style="padding:5px"> <div style="width:220px;float:right;height:140px;overflow:auto"> <ul style="list-style-type:square;;margin-left:1em;line-height:150%"> <li>尊重网上道德,遵守中华人民共和国的各项有关法律法规</li> <li>承担一切因您的行为而直接或间接导致的民事或刑事法律责任</li> <li>本站管理人员有权保留或删除其管辖留言中的任意内容</li> <li>本站有权在网站内转载或引用您的评论</li> <li>参与本评论即表明您已经阅读并接受上述条款</li> </ul> </div> <script type="text/javascript" language="javascript"> function checkRemark() { var form=document.getElementById("remarkForm"); var remarkSize = 200; if (form.body.value=="") { alert("请填写评论内容"); form.body.focus(); return false; } if (form.username.value=="") { alert("请填写姓名"); form.username.focus(); return false; } if (form.body.value.length>remarkSize) { form.body.value = form.body.value.substr(0,remarkSize); showLen(form.body); form.body.focus(); alert("评论内容不可以超过"+remarkSize+"字,已帮你删除多余部分"); return false; } if (form.username.value.length>10) { alert("姓名不可以超过10个字"); form.username.focus(); return false; } form.submit.disabled=true; form.vcode.value = VCode("XML轻松学习手册(4)XML的术语之二"); return true; } function showLen(obj) { document.getElementById("bodyLen").value=obj.value.length; } </script> <input type="radio" name="face" value="1" checked="checked"/><img src="../../pic/face1.gif" alt=""/><input type="radio" name="face" value="2"/><img src="../../pic/face2.gif" alt=""/><input type="radio" name="face" value="3"/><img src="../../pic/face3.gif" alt=""/><input type="radio" name="face" value="4"/><img src="../../pic/face4.gif" alt=""/><input type="radio" name="face" value="5"/><img src="../../pic/face5.gif" alt=""/><input type="radio" name="face" value="6"/><img src="../../pic/face6.gif" alt=""/><input type="radio" name="face" value="7"/><img src="../../pic/face7.gif" alt=""/><input type="radio" name="face" value="8"/><img src="../../pic/face8.gif" alt=""/><input type="radio" name="face" value="9"/><img src="../../pic/face9.gif" alt=""/><br/> <input type="radio" name="face" value="10"/><img src="../../pic/face10.gif" alt=""/><input type="radio" name="face" value="11"/><img src="../../pic/face11.gif" alt=""/><input type="radio" name="face" value="12"/><img src="../../pic/face12.gif" alt=""/><input type="radio" name="face" value="13"/><img src="../../pic/face13.gif" alt=""/><input type="radio" name="face" value="14"/><img src="../../pic/face14.gif" alt=""/><input type="radio" name="face" value="15"/><img src="../../pic/face15.gif" alt=""/><input type="radio" name="face" value="16"/><img src="../../pic/face16.gif" alt=""/><input type="radio" name="face" value="17"/><img src="../../pic/face17.gif" alt=""/><input type="radio" name="face" value="18"/><img src="../../pic/face18.gif" alt=""/><br/> <div style="padding-top:5px"> 点评: <textarea name="body" cols="36" rows="4" onkeydown="showLen(this)" onkeyup="showLen(this)"></textarea> 字数<input type="text" id="bodyLen" size="3" readonly="readonly" style="border-width:0;background:transparent;"/> </div> <div style="padding-top:5px"> 姓名: <input type="text" id="i_username" name="username" value="" maxlength="15" size="10"/> <input type="submit" name="submit" id="i_submit" value=" 发 表 "/> </div> <script type="text/javascript"> var remarkmember = false; var allowremark = true; if (remarkmember){ document.getElementById("i_username").readonly=true; document.write("(限会员登录后发表评论)"); } if (!allowremark){ document.getElementById("i_submit").disabled=true; } </script> <script type="text/javascript" src="../../inc/clientDate.js"></script> <input type="hidden" name="vcode" value=""/> </form> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <iframe src="../../frm_hit.aspx?id=6854&disp=1" style="visibility:hidden;height:0;width:0"></iframe> </td><td width="230" style="padding-left:5px" valign="top"> <div class="lframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">Advertisement</span> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> <script type="text/javascript" src="../../bkad/contentrighttop.js"></script> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="lframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">内容查询</span> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm" style="text-align:center; padding:10px;"> <form method="get" action="../../search.aspx" name="frmSearch" style="display:inline;"> <input type="text" name="keyword" class="inputbg" size="20" style="margin-bottom:5px"/><br/> <select name="where"> <option value="title">标题</option> <option value="content">内容</option> <option value="writer">作者</option> </select> <script type="text/javascript" src="../../inc/clientDate.js"></script> <input type="submit" value="搜索"/><br/> </form> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="lframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">Advertisement</span> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> <script type="text/javascript" src="../../bkad/contentrightmid.js"></script> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> <div class="lframe"> <div class="tl"></div> <div class="tr"></div> <div class="tm"> <span class="tt">本周热门内容</span> </div> <div class="wrapper"> <div class="ml"></div> <div class="mr"></div> <div class="mm"> <ul class="nl"> <li><a href="../../bkhtml/2006-05/45068.htm" target="_blank">XML轻松学习手册</a></li> <li><a href="../../bkhtml/2007-01/50101.htm" target="_blank">如何生成XML数据</a></li> <li><a href="../../bkhtml/2006-07/45435.htm" target="_blank">XML语法概述</a></li> <li><a href="../../bkhtml/2005-05/9093.htm" target="_blank">XML 中的常见问题(1)</a></li> <li><a href="../../bkhtml/2005-05/9095.htm" target="_blank">XML 中的常见问题(3)</a></li> <li><a href="../../bkhtml/2005-04/6929.htm" target="_blank" title="在.NET Framework中轻松处理XML数据(1-1)">在.NET Framework中轻松处理XML数</a></li> <li><a href="../../bkhtml/2005-04/6913.htm" target="_blank">Web设计中如何使用XML数据1</a></li> <li><a href="../../bkhtml/2005-04/6942.htm" target="_blank">将改变我们生活的这些XML应用之一</a></li> <li><a href="../../bkhtml/2005-05/9094.htm" target="_blank">XML 中的常见问题(2)</a></li> <li><a href="../../bkhtml/2005-05/9091.htm" target="_blank">用XSLT生成网页菜单(1)</a></li> </ul> </div> </div> <div class="bl"></div> <div class="br"></div> <div class="bm"></div> </div> </td></tr> </tbody> </table> <div id="footer"> <br /><font color="#005c96"><strong>BK网络学院</strong>主要内容:<strong>平面设计教程,网站开发在线教程,网页制作教程,服务器教程,网络编程,数据库教程</strong>等。<br />产业部:</font><a href="http://www.miibeian.gov.cn/"><font color="#0000ff">沪ICP备05019380号 陇ICP备05004709号</font></a><font color="#0000ff"> 公安局:GR6201030003<br />Copyright © </font><a href="/"><font color="#0000ff">BK设计</font></a><font color="#0000ff"> Powered by <a href="/">BK网络学院</a></font> <script src="http://s15.cnzz.com/stat.php?id=54594&web_id=54594" language="JavaScript"></script> <script type="text/javascript">setTimeout("ImgLoad(document.getElementById('content'));",500);</script> <div class="menuskin" id="popmenu" onmouseover="clearhidemenu();highlightmenu(event,'on')" onmouseout="highlightmenu(event,'off');dynamichide(event)" style="Z-index:100"></div> <script type="text/javascript" src="../../inc/menu.js" charset="gb2312"></script> <script type="text/javascript"> jsdone=true; </script> </div> </div> </body> </html>