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

📄 0301-0103.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-0103 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 3.1.1.3 外部DTD</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 width=51 rowSpan=2></TD>
    <TD vAlign=center width=650>
    <p align="center"><IMG height=33 
      src="image/title_learner.gif" width=226></TD>
    <TD width=51 rowSpan=2></TD>
    </TR>
  <TR vAlign=top>
    <TD width="650" ><!-- 正文内容 -->
      <DIV class=pt10><B>3.1.1.3 外部DTD</B></DIV>
    &nbsp;&nbsp;&nbsp;
      <DIV></DIV><BR>
      <DIV class=pt9>
      <P>一个DTD既可以是内部的,包含在一个“形式良好的”XML文件中(standalone=“yes”),采用前面一节中的形式;也可以是外部的,作为一个外部文件被引用(standalone=“no”)。</P>
      <P>外部DTD的好处是:它可以方便高效地被多个XML文件所共享。你只要写一个DTD文件,就可以被多个XML文件所引用。事实上,当许多组织需要统一它们的数据交换格式时,它们就是通过外部DTD来完成的。这样做不仅简化了输入工作,还保证当你需要对DTD做出改动时,不用一一去改每个引用了它的XML文件,只要改一个公用的DTD文件就足够了。不过需要注意,如果DTD的改动不是“向后兼容”的,这时原先写的那些XML文件可能就会出问题了!</P>
      <P>为了引用一个外部DTD,必须修改XML声明和DOCTYPE声明。</P>
      <P>XML声明中必须说明这个文件不是自成一体的,即standalone属性的属性值不再是yes了。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;?xml version = "1.0" 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encoding="GB2312" 
            <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; standalone = 
        "no"?&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>在DOCTYPE声明中,应该加入SYSTEM属性:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;!DOCTYPE 根元素名<BR>SYSTEM 
        "外部DTD文件的URL"&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>例如:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;!DOCTYPE 联系人列表<BR>SYSTEM 
            "http://www.mydomain.com/dtds/fclml.dtd<BR>"&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>上面的URL是一个绝对路径,除此以外,它还可以是一个相对路径,如:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;!DOCTYPE 联系人列表<BR>SYSTEM 
        "fclml.dtd"&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>它说明这个DTD文件和引用它的XML文件在同一个目录下。或者,这个DTD文件还可能在XML文件的父目录的子目录DTD下,表示为:<BR></P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;!DOCTYPE 联系人列表<BR>SYSTEM 
          "../dtds/fclml.dtd"&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>使用这种方法,你可以方便地把DTD文件从你的XML文件中分离出来,粘贴到另一个文件fclml.dtd中。这样,你就得到一个DTD文件和一个有效的XML文件。</P>
      <P>仍然回到前面那个包含客户联系方式信息的XML文件,如果使用外部DTD,其形式应该变为下面这个样子。</P>
      <P>DTD文件fclml.dtd:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;?xml version="1.0" 
            encoding="GB2312"?&gt;<BR><BR>&lt;!ELEMENT 联系人列表 
            (联系人)*&gt;<BR>&lt;!ELEMENT 联系人 
            (姓名,ID,公司,EMAIL,电话,地址)&gt;<BR>&lt;!ELEMENT 地址 
            (街道,城市,省份)&gt;<BR>&lt;!ELEMENT 姓名 (#PCDATA)&gt;<BR>&lt;!ELEMENT ID 
            (#PCDATA)&gt;<BR>&lt;!ELEMENT 公司 (#PCDATA)&gt;<BR>&lt;!ELEMENT EMAIL 
            (#PCDATA)&gt;<BR>&lt;!ELEMENT 电话 (#PCDATA)&gt;<BR>&lt;!ELEMENT 街道 
            (#PCDATA)&gt;<BR>&lt;!ELEMENT 城市 (#PCDATA)&gt;<BR>&lt;!ELEMENT 省份 
            (#PCDATA)&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>XML文件client.xml:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;?xml version = "1.0" encoding="GB2312" 
            standalone = "no"?&gt;<BR>&lt;!DOCTYPE 联系人列表<BR>&nbsp;&nbsp;&nbsp; 
            SYSTEM "fclml.dtd"&gt;<BR>&lt;?xml-stylesheet type="text/xsl" 
            href="mystyle.xsl"?&gt;<BR><BR>&lt;联系人列表&gt;<BR>&lt;联系人&gt;<BR>&lt;姓名&gt;张三&lt;/姓名&gt;<BR>&lt;ID&gt;001&lt;/ID&gt;<BR>&lt;公司&gt;A公司&lt;/公司&gt;<BR>&lt;EMAIL&gt;zhang@aaa.com&lt;/EMAIL&gt;<BR>&lt;电话&gt;(010)62345678&lt;/电话&gt;<BR>&lt;地址&gt;<BR>&lt;街道&gt;五街1234号&lt;/街道&gt;<BR>&lt;城市&gt;北京市&lt;/城市&gt;<BR>&lt;省份&gt;北京&lt;/省份&gt;<BR>&lt;ZIP&gt;100001&lt;/ZIP&gt;<BR>&lt;/地址&gt;<BR>&lt;/联系人&gt;<BR><BR>&lt;联系人&gt;<BR>&lt;姓名&gt;李四&lt;/姓名&gt;<BR>&lt;ID&gt;002&lt;/ID&gt;<BR>&lt;公司&gt;B公司&lt;/公司&gt;<BR>&lt;EMAIL&gt;li@bbb.org&lt;/EMAIL&gt;<BR>&lt;电话&gt;(021)87654321&lt;/电话&gt;<BR>&lt;地址&gt;<BR>&lt;街道&gt;南京路9876号&lt;/街道&gt;<BR>&lt;城市&gt;上海&lt;/城市&gt;<BR>&lt;省份&gt;上海&lt;/省份&gt;<BR>&lt;ZIP&gt;200002&lt;/ZIP&gt;<BR>&lt;/地址&gt;<BR>&lt;/联系人&gt;<BR>&lt;/联系人列表&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>在这一节里,我们将为每个XML文件定义的DTD推广到一个系统内可共享的DTD。在下一节里,我们还可以将这个推广进一步推而广之,扩大到行业内甚至公众使用的公用DTD。</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 + -