⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0301-0101.htm

📁 xml帮助文档
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0301-0101 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 3.1.1.1 将DTD引入“有效的”XML文件中</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
	FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
	FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
	FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
	FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
	FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
	FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>



<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0 
onload=""><!-- 以下为主体内容 -->
<div align="center">
  <center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
  <TBODY>
  <TR vAlign=top>
    <TD  rowSpan=2 width="52"></TD>
    <TD vAlign=center width="647"><IMG height=33 
      src="image/title_learner.gif" width=226></TD>
    <TD width=49 rowSpan=2></TD>
    </TR>
  <TR vAlign=top>
    <TD width="647" ><!-- 正文内容 -->
      <DIV class=pt10><B>3.1.1.1 将DTD引入“有效的”XML文件中</B></DIV>
   &nbsp;&nbsp;&nbsp;
      <DIV></DIV><BR>
      <DIV class=pt9>
      <P>在上一章中,我们详细介绍了一个“形式良好的”XML文件应该满足哪些要求。“形式良好”是对XML文件的基本要求,它使得XML文件结构清晰、完整,便于处理程序对其进行解析,进一步可以简化处理程序的编写工作,并加快浏览的速度、减少浏览所需占用的内存空间。正所谓“没有规矩,不成方圆”。</P>
      <P>然而,即便你已经可以保证写的XML文件是一个“形式良好的”XML文件了,它仍然未必能够体现XML的精髓。XML的精髓是什么呢?对,就是我们前面讲到的基于信息描述的、能够体现数据信息之间逻辑关系的、可以确保文件的易读性和易搜索性的自定义标记!从这一章中你将看到,使得你的XML文件遵循所谓“形式良好”要求的种种语法规则,这只是“万里长征走了第一步”。一个完全意义上的XML文件不仅应该是“形式良好的”,而且还应该是使用了这些自定义标记的“有效”的XML文件。</P>
      <P>一个“有效的”文件首先应该是“形式良好”的。但这还远远不够,它还要往前更进一步。一个XML文件必须遵守文件类型描述DTD(Document 
      Type 
      Definition)中定义的种种规定。DTD实际上是“元标记”这个概念的产物,它描述了一个置标语言的语法和词汇表,也就是定义了文件的整体结构以及文件的语法。简而言之,DTD规定了一个语法分析器为了解释一个“有效的”XML文件所需要知道的所有规则的细节。</P>
      <P>这个“规则”可以非常简单,仅仅列出所有有效的元素,例如元素、标记、属性、实体;也可以非常复杂,不但列出这些元素,还指出这些元素之间的内在联系,例如说明元素X元素中必须还包含元素Y或元素Z,但不能同时包含两个元素。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" bgColor=#ffffc0 border=0>
        <TBODY>
        <TR>
          <TD width="100%">“我们前面强调了XML是大小写敏感的,这对于HTML的老手可能有点麻烦。例如,XML的处理指示
            <P align=center>&lt;?xml version="1.0" ... ?&gt;</P>
            <P 
            align=left>中所有单词必须都是小写的;可是所有DTD中的关键字都必须是大写的,例如ELEMENT、ATTLIST、#REQUIRED、#IMPLIED、NMTOKEN、ID等等。幸运的是,你自己的元素和属性的大小写可以由你任意指定,但一旦指定了,你必须从一而终,在整个文件中使用相同的大小写。例如,如果你给一个元素起名叫“BOOKS”,那么这个元素和“Books”并不相同。</P>
            <P align=right>——Ken Sall”</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>一般习惯里,除非使用中文标记,否则我们或者全部都使用大写字母,或者象在VC中常用的那样,元素名字的第一个字母是大写,后面每个单词的第一个字母为大写,如BookList;属性字母的第一个字母为小写,但后面每个单词的第一个字母仍都采用大写,如listAuthor。请看下面例子:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD align=middle width="100%">
            <P align=left>&lt;!ELEMENT BookList (Book)+ &gt;<BR>&lt;!ATTLIST 
            BookList<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; genre NMTOKEN 
            #IMPLIED<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listAuthor 
            NMTOKEN #REQUIRED<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            lastUpdated NMTOKEN #REQUIRED 
      &gt;</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P><BR>讲到这里,不知各位读者是否已经能够区分“形式良好的”XML文件和“有效的”XML文件。如果大家对采用“有效的”XML文件的必要性还有所怀疑的话,让我们一起考虑一下下面这段中文:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD align=middle width="100%">
            <P align=left>棕色 扑向<BR>那只 一只 狐狸 <BR>动作敏捷的 狗 。<BR>懒惰的 
        </P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>正如你所见,所有的单词和标点都符合中文的词法,甚至说都是有明确语意的词汇,它们代表了“形式良好的”元素。但是,你明白我要表达的意思吗?在这种混乱的顺序之下,可能那些明确的单词和标点对你也失去了应有的意义。连人都难于理解一段“形式良好的”话,更不要说什么计算机了。</P>
      <P>为了使这句话成为能读得懂的话,上面那些词汇的组织必须遵守中文句子的语法规定,譬如符合主、谓、宾的顺序,修饰语放在中心词之前等等。修改一下,上面的句子应该成为下面的形式:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD align=middle width="100%">
            <P 
      align=left>一只动作敏捷的棕色狐狸扑向一只懒惰的狗。</P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>好了,现在知道这句话想表达什么意思了吧?</P>
      <P>在XML所描述的置标语言中,DTD便提供了语法规定,以便给各个语言要素赋予一定的顺序。为了说明特定的语法规则,DTD采用了一系列正则式,语法分析器将这些正则式与XML文件内部的数据模式相匹配,从而判别一个文件是否是有效的。匹配被严格执行,因此,如果XML文件中有任何信息不符合DTD的规定,都不会通过。</P>
      <P>还记得我们曾说过XML脱胎于SGML文件吗?其实,一个“有效的”XML文件就是一个“形式良好的”SGML文件,也就是说,符合DTD中定义的语法是SGML文件的基本要求。从这个意义上说,XML把合法文件的范围扩大了,既包括“有效的”XML,也可包括“形式良好的”XML。</P>
      <P>好了,相信大家现在已经明白什么叫DTD了。下面我们就开始详细学习XML中这个不可或缺、大显身手的部分。</P></DIV>
      <P></P>
      <P></P></TD></TR></TBODY></TABLE>
  </center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -