zoukankan      html  css  js  c++  java
  • XML再深入

    XML 命名空间


    XML 命名空间提供避免元素命名冲突的方法。


    使用前缀来避免命名冲突

    在 XML 中的命名冲突可以通过使用名称前缀从而容易地避免。

    该 XML 携带某个 HTML 表格和某件家具的信息:

    <h:table>
    <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
    </h:tr>
    </h:table>
    
    <f:table>
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
    </f:table>

    在上面的实例中,不会有冲突,因为两个 <table> 元素有不同的名称。


    XML 命名空间 - xmlns 属性

    当在 XML 中使用前缀时,一个所谓的用于前缀的命名空间必须被定义。

    命名空间是在元素的开始标签的 xmlns 属性中定义的。

    命名空间声明的语法如下。xmlns:前缀="URI"。

    <root>
    
    <h:table xmlns:h="http://www.w3.org/TR/html4/">
    <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
    </h:tr>
    </h:table>
    
    <f:table xmlns:f="http://www.w3cschool.cc/furniture">
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
    </f:table>
    
    </root>

    在上面的实例中,<table> 标签的 xmlns 属性定义了 h: 和 f: 前缀的合格命名空间。

    当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。

    命名空间,可以在他们被使用的元素中或者在 XML 根元素中声明:

    <root xmlns:h="http://www.w3.org/TR/html4/"
    xmlns:f="http://www.w3cschool.cc/furniture">
    
    <h:table>
    <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
    </h:tr>
    </h:table>
    
    <f:table>
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
    </f:table>
    
    </root>

    注释:命名空间 URI 不会被解析器用于查找信息。

    其目的是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。


    统一资源标识符(URI,全称 Uniform Resource Identifier)

    统一资源标识符(URI)是一串可以标识因特网资源的字符。

    最常用的 URI 是用来标识因特网域名地址的统一资源定位器(URL)。另一个不那么常用的 URI 是统一资源命名(URN)。

    在我们的实例中,我们仅使用 URL。

    XML CDATA


    XML 文档中的所有文本均会被解析器解析。

    只有 CDATA 区段中的文本会被解析器忽略。

    PCDATA - 被解析的字符数据

    XML 解析器通常会解析 XML 文档中所有的文本。

    当某个 XML 元素被解析时,其标签之间的文本也会被解析:

    <message>This text is also parsed</message>

    解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个实例中,其中的 <name> 元素包含着另外的两个元素(first 和 last):

    <name><first>Bill</first><last>Gates</last></name>

    而解析器会把它分解为像这样的子元素:

    <name>
    <first>Bill</first>
    <last>Gates</last>
    </name>

    解析字符数据(PCDATA)是 XML 解析器解析的文本数据使用的一个术语。

    CDATA - (未解析)字符数据

    术语 CDATA 是不应该由 XML 解析器解析的文本数据。

    像 "<" 和 "&" 字符在 XML 元素中都是非法的。

    "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

    "&" 会产生错误,因为解析器会把该字符解释为字符实体的开始。

    某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

    CDATA 部分中的所有内容都会被解析器忽略。

    CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

    <script>
    <![CDATA[
    function matchwo(a,b)
    {
    if (a < b && a < 0) then
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    ]]>
    </script>

    在上面的实例中,解析器会忽略 CDATA 部分中的所有内容。

    关于 CDATA 部分的注释:

    CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。

    标记 CDATA 部分结尾的 "]]>" 不能包含空格或换行。

  • 相关阅读:
    浅谈独立使用NDK编译库文件(Android)
    Ubuntu 13.04 安装使用clang
    一道TOPK问题
    exp-00091 oracle错误的解决办法
    win32多线程程序设计笔记(第四章下)
    数据库索引的实现原理 (转)
    [置顶] linux常用命令手册
    ZigBee研究之旅(二)
    java中length,length(),size()区别
    浅谈href=#与href=javascript:void(0)的区别
  • 原文地址:https://www.cnblogs.com/shiboinfo/p/9767830.html
Copyright © 2011-2022 走看看