美文网首页
XML(一)使用、命令空间

XML(一)使用、命令空间

作者: 徒手說梦话 | 来源:发表于2020-09-09 19:34 被阅读0次

概念

  • XML(EXtensible Markup Language) ,可拓展标记语言
  • 标记,指的的是标记语言,也称标签语言,可以用一系列的标签来对数据进行描述。例如,<name>tom</name>
  • 拓展,指的是用户可以自定义标签

作用

  1. XML可以作为数据传输的标准
  2. XML可以作为配置文件
  3. XML可以持久化数据
  4. XML 简化平台变更

XML和HTML对比

  1. XML主要是用来描述数据的
  2. HTML主要是用来展现数据的

XML语法

文档声明

XML声明文件的可选部分,如果存在需要放在文档的第一行,如下所示:

<?xml version="1.0" encoding="utf-8"?>

元素

元素:指的就是XML中的标记,这种标记也被称为标签、节点。

一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:

  • 不能以数字或部分标点符号开头
  • 不能包含空格和特定的几个符号
  • 标签必须成对出现,不允许缺省结束标签
  • 根元素有且只有一个
  • 大小写敏感
  • 允许多层嵌套但是不允许交叉嵌套

XML必须包含根元素

根元素有且只能有一个,它是所有其他元素的父元素。

<?xml version="1.0" encoding="utf-8"?>
<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

这里的<root>标签就是根元素

元素是可以包含标签体的,也就是在开始标签和结束标签之间写一些内容

元素也可以不包含标签体,也就是在开始标签和结束标签中间什么也不写

<?xml version="1.0" encoding="utf-8"?>
<root>
    <child></child>
</root>

对于XML标签中出现的空格和换行,在XML解析程序都会当作标签内容进行处理。

例如,以下俩个<a>标签中的内容是有区别的

<?xml version="1.0" encoding="utf-8"?>
<root>
    <child>www.baidu.com</child>
</root>
<?xml version="1.0" encoding="utf-8"?>
<root>
    <child>
     www.baidu.com
    </child>
</root>

XML标签对大小写敏感

标签<Letter>与标签<letter>是不同的。必须使用相同的大小写来编写开始标签和关闭标签。

XML标签允许嵌套但是不允许交叉

例如,

<?xml version="1.0" encoding="utf-8"?>
<root>
    <message>
        <a>这是错误的</message>
        </a>
</root>

属性

属性的功能:提供了元素相关的一些额外信息

一个元素可以有多个属性,它的基本格式为:<元素名 属性名="属性值" 属性名="属性值">

XML 属性写在开始标签中,并且属性值必须加引号,例如,可以是双引用或者也可以是单引用

<?xml version="1.0" encoding="utf-8"?>
<root>
    <personse x="female"></person>
    <personse x='f'></person>
</root>

如果有多个note标签的时候,可以使用 id进行区别:

<?xml version="1.0" encoding="utf-8"?>
<messages>
    <noteid="1">
        <date>
            <day>10</day>
            <month>01</month>
            <year>2008</year>
        </date>
        <to>tom</to>
        <from>mary</from>
        <msg>Together~~~</msg>
        </note>
    <noteid="2">
        <date>
            <day>10</day>
            <month>02</month>
            <year>2008</year>
        </date>
        <to>tom</to>
        <from>mary</from>
        <msg>Together~~~</msg>
        </note>
</messages>

实体

在 XML 中,一些字符拥有特殊的意义,在XML文档中,是不能直接使用的。

例如,如果把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

XML中实体的格式:&实体名;

XML中预定义实体有,任何用到这些字符的地方,都可以使用实体来代替

实体 字符
&lt; <
&gt; >
&amp; &
&apos; '
&quot; "

当然这些预先定义的实体,还支持自定义实体。

定义格式:

<!DOCTYPE 根元素名称[
    <!ENTITY 实体名 实体内容>
]>

注释

XML中的注释,和java程序中的注释一样,都是对当前程序作出解释说明的。

<!-- 这是一个注释 -->

使用注释的时候,需要注意以下几点:

  1. 注释内容中不要出现
  2. 不要把注释放在标签中间
  3. 注释不能嵌套

例如,不要把注释放在标签中间、注释不能嵌套

<?xml version="1.0" encoding="utf-8"?>
<root>
    <name<!-- 这是说明名字的 --> >briup</name>
</root>

CDATA

在xml中

  • 解析器进行解析的内容,称为PCDATA(Parsed CDATA)
  • 解析器不会解析的内容,称为CDATA,(Character Data)

因为在一些情况下,我们在xml中编写的特殊内容,例如特殊字符、代码等,并不希望解析器去解析,而是希望把这些内容按字符串原样输出即可,不需要做额外任何解析处理。

这时候,我们就可以把这些内容,写在指定的CDATA区域内即可。

CDATA区域的格式要求:

<![CDATA[需要原样输出的字符串]]>

注意,XML 文档中的所有文本均会被解析器解析。只有 CDATA 区段中的文本会被解析器忽略

注意,在不同浏览器中,对XML解析显示的结果稍有差异

XML命名空间

因为XML文档中的标签,是用户可以自定义的,所以可能在俩个不同的XML文档中,出现相同名字的标签元素。

这个xml中的table标签,表示的是一个表格

<?xml version="1.0" encoding="utf-8"?>
<table>
    <tr>
        <td>hello</td>
        <td>world</td>
    </tr>
</table>

这个xml中的table标签,表示的是一张桌子

<?xml version="1.0" encoding="utf-8"?>
<table>
    <width>80</width>
    <length>120</length>
</table>

这种情况下,可以使用前缀,来避免这样的冲突

<?xml version="1.0" encoding="utf-8"?>
<x:table>
    <tr>
        <td>hello</td>
        <td>world</td>
    </tr>
</x:table>
<?xml version="1.0" encoding="utf-8"?>
<y:table>
    <width>80</width>
    <length>120</length>
</y:table>

其实,这些做法的目的,就是为了让这个自定义的标签具有唯一性,不会和别人定义的冲突。

相关文章

网友评论

      本文标题:XML(一)使用、命令空间

      本文链接:https://www.haomeiwen.com/subject/prryektx.html