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

📄 0303-0201.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=0303-0201 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 3.3.2.1 前缀标识法</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=50 rowSpan=2></TD>
    <TD vAlign=center width="605" >
    <p align="center"><IMG height=33 
      src="image/title_learner.gif" width=226></TD>
    <TD width=52 rowSpan=2></TD>
    </TR>
  <TR vAlign=top>
    <TD width="605" ><!-- 正文内容 -->
      <DIV class=pt10><B>3.3.2.1 前缀标识法</B></DIV>
  &nbsp;&nbsp;&nbsp;
      <DIV></DIV><BR>
      <DIV class=pt9>
      <P>命名冲突问题是XML文档中引入多DTD的老大难问题,那么,命名空间标准又是如何解决这一问题的呢?</P>
      <P>一个直接的想法是保证所引用到的DTD没有重名的元素。可是,你所引用的DTD可能来自世界上各个地方,由不同的人制定,要求这成千上万的DTD没有重名现象似乎有些异想天开,且想想你身边重名的人还有多少呢!再有一个想法就是要求所引用到的DTD改名字,把“联系人列表”中的元素“姓名”改为“联系人姓名”,“电话”改为“联系人电话”;相应地,“企业经理”中的“姓名”改为“经理姓名”,“电话”改为“经理电话”。但是,如果出现了大量重名元素,这个修改的工作量就很大了,如此麻烦,多DTD的优势消失殆尽,还不如自己重新定义一个呢。</P>
      <P>命名空间标准提供了一个很聪明的方法,就是所谓前缀标识法,即在元素名和属性名前面增加一个标识,以唯一区分当前元素或属性来自哪一个DTD。使用了命名空间后,上节那个"联系人列表"的例子就变成下面的样子。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;联系人:联系人列表 xmlns:联系人 ="联系人列表.dtd" xmlns:企业经理 
            ="企业经理.dtd"&gt;<BR>&nbsp; &lt;联系人:联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:姓名&gt;张三&lt;/联系人:姓名&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:ID&gt;001&lt;/联系人:ID&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:公司&gt;A公司&lt;/联系人:公司&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:EMAIL&gt;zhang@aaa.com&lt;/联系人:EMAIL&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:电话&gt;(010)62345678&lt;/联系人:电话&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:地址&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;联系人:街道&gt;五街1234号&lt;/联系人:街道&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;联系人:城市&gt;北京市&lt;/联系人:城市&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;联系人:省份&gt;北京&lt;/联系人:省份&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;/联系人:地址&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;联系人:直接上级&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;企业经理:姓名&gt;王五&lt;/企业经理:姓名&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;企业经理:电话&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            &lt;企业经理:秘书电话&gt;(010)62345678&lt;/企业经理:秘书电话&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;企业经理:手机&gt;13601234567&lt;/企业经理:手机&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/企业经理:电话&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;/联系人:直接上级&gt;<BR>&nbsp; 
        &lt;/联系人:联系人&gt;<BR>&lt;/联系人:联系人列表&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>现在,由于在"直接上级"的"姓名"元素前增加了标识——"企业经理",而"联系人"的"姓名"元素前增加了标识——"联系人",这两个"姓名"在元素名称上的冲突被化解了。同样,语法分析器也会对两个“电话”元素识得庐山真面目,分别作不同的处理。<BR><BR>要实现元素、属性的前缀标识命名法,我们需要解决以下几个问题: 

      <OL>
        <LI>如何声明命名空间,即如何定义上例中的"联系人"、"企业经理"这样的前缀标识? 
        <LI>什么是合法名称,即标记中带有前缀标识的元素和属性应该是什么样子? 
        <LI>怎样使用合法名称,即在XML文档中应该如何发挥命名空间的威力? </LI></OL>
      <P>下面的章节中,我们就来详细地讨论这几个问题。<BR></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 + -