首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页制作XML/XSLT

XML入门教程:XML名称空间

来源: 互联网    日期:2009-2-22
 
网页教学网核心提示:XML名称空间表示XML名称的使用范围,因为XML可自定义元素标签,所以有不同XML应用间XML名称重名的机会是很大的。如果没有一种方法来区分不应用的名称,就会造成混乱。XML名称空间就是为了解决这个问题而设计的。通过XML名称空间,我们可以区分来自不同的XML应用的具有相
  • XML名称空间表示XML名称的使用范围,因为XML可自定义元素标签,所以有不同XML应用间XML名称重名的机会是很大的。如果没有一种方法来区分不应用的名称,就会造成混乱。XML名称空间就是为了解决这个问题而设计的。通过XML名称空间,我们可以区分来自不同的XML应用的具有相同名称的元素和属性。可以将来自单一XML应用的相关元素和属性集合在一起,方便软件识别和处理。

  • 名称空间由前缀和本地部分组成,中间用冒号分隔。前缀标识元素或属性的所在名称空间,本地部分标识名称空间中的某个元素或属性。整个名称也称为限定名称(qualified name)。前缀可以用除XML(大小写任意组合)三个字母外的任何合法的XML名称字符组成。每个限定名称中的前缀都必须与唯一的一个URI关联。带有相同URI关联的前缀的名称属于同一名称空间。

    <rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#">
     <rdf:Description about="http://www.example.com/test.xml">
       <title>example</title>
       <author>linuxsir</author>
       ...
     </rdf:Description>
    </rdf:RDF>
    

    上例rdf:RDF元素的xmlns:rdf属性将前缀rdf绑定到名称空间http://www.w3.org/TR/REC-rdf-syntax#。属性xmlns:rdf为rdf:RDF元素及其子元素声明了前缀rdf。RDF处理器将把rdf:RDF和rdf:Description作为RDF元素,因为两个元素都具有与RDF规范定义的某个URI相绑定的前缀。处理器不会认为title,author等元素为RDF元素,因为它没有绑定到相同URI的rdf前缀。

    前缀一般在使用该前缀的最上层元素中定义。在下层元素中也可定义不同的前缀:

    <rdf:RDF xmlns:rdf="http://www.w3.org/TR/REC-rdf-syntax#">
     <rdf:Description xmlns:dc="http://www.w3.org/dc/"
                      about="http://www.example.com/test.xml">
       <dc:title>example</dc:title>
       <dc:author>linuxsir</dc:author>
       ...
     </rdf:Description>
    </rdf:RDF>
    

    不带前缀的属性,如about,不属于任何的名称空间。如xlink:type和xlink:href属性属于xlink名称空间,当然,前提是你要先把xlink绑定到一个URI。URI不必须是一定存在的http链接,它只是一种表示的方法,以区分不同的名称空间。

  • 通过将无前缀的xmlns属性附加到根元素中,可以指定不带前缀的元素及所有不带前缀的子元素属于某个名称空间。

    <svg xmlns="http://www.w3.org/2000/svg">
       <ellipse rx="110" ry="130" />
       <rect x="4cm" y="1cm" />
    </svg>
    

    这里,虽然所有元素都没有前缀,但它都同属一个名称空间。但属性属不同名称空间,因为默认名称空间只应用于元素。默认名称空间在子元素中也用相同的方法重新设置。

  • 如果名称空间只用来识别来自某种XML应用的元素和属性,而不是用来区分具有相同名称的不同元素,则可在DTD的元素中定义一个固定的xmlns属性,而不需要文档中定义。定义方法如下:

    <!ATTLIST svg xmlns CDATA #FIXED "http://www.w3.org/svg/">
    
  • 在定义DTD时,需要使用名称空间前缀的在定义时也要把前缀写到DTD定义里,如:

    <!ELEMENT xlink:name (#PCDATA)>
    
  • 使用参数实体引用来定义名称空间前缀可方便DTD文档的维护,如:

    <!ENTITY % prefix "xlink">
    <!ENTITY % colon ":">
    

    接着,利用该参数实体名称定义更多的参数实体引用,如:

    <!ENTITY % xlink-title "%prefix;%colon;title">
    <!ENTITY % xlink-author "%prefix;%colon;author">
    

    这样,如果需更改前缀,只需修改一个地方就可以了,不用整篇文档修改。

    <!ELEMENT %xlink-title;  (#PCDATA)>
    <!ELEMENT %xlink-author; (#PCDATA)>
    
       
    不能在ATTLIST和ELEMENT声明中直接使用%prefix;和%colon;,因为在另一个实体的外部使用这些参数实体时,XML解析器会在实体替换文本的两边添加额外的空格。


  • 更多的XML入门教程:XML名称空间请到论坛查看: http://BBS.TC711.COM



    【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2009-2-22   

    发 表 评 论
    查看评论

      您的大名:
    • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
    • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
    • 本站管理人员有权保留或删除其管辖留言中的任意内容
    • 本站有权在网站内转载或引用您的评论
    • 参与本评论即表明您已经阅读并接受上述条款
    认证编码: 刷新验证码
    点评内容: 字数0
      精品推荐  
      本月推荐  
      友情赞助  

    关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
    本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
    Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
    110网监备案 信息产业备案 不良信息举报