Xml知识温习笔记之一一基本概念

Xml其实经常用到,但是对于它却没有系统的学习过。只是知道大概是怎么回事。国庆假期参照W3School系统的温习了一下,

将笔记记于此,以免过一段时间不用又忘记了。

我画了一幅图可以简要的概括一下Xml的基本概念:

Xml知识温习笔记之一一基本概念

这里面有两点是我之前比较疑惑或者不知道的,图中也有用数字进行标识:

(1)Xml命名空间

    Xml文档中每一个元素,属性都会有一个名字。比如图中的Name元素的名字就是Name.它的语义是Person的姓名。

但是如果要用Xml元素来描述Car的名字(比如:“法拉利”),最直观的元素名字也是Name.如果这两从此Name元素出现在一个Xml文档中,则会导致混乱,相同名字的Xml元素会有不一样的语义。

    其实导致这种结果的原因是Xml元素的名称不唯一。Person的Name和Car的Name是两个不同的概念,不应该在Xml文档中用相用的名称的Xml元素去表示。

    解决 Xml元素名称唯一性的方案是引入命名空间,这个和高级编程语言中的命名空间是一个概念。引入命名空间后,xml文档中每一个元素,属性都会有一个由命名空间+名字组成的相对较长的名称。每一个命名空间内所有的元素名称的唯一性需要命名空间的作者来保证。这样的话,文档中每一个元素或者属性的名称都会是唯一的,并且能准确表示元素或者属性的语义。

    但是这样一来xml文档会变得很臃肿,因为每一个元素或者属性名称都会很长,并且不同的元素名称会包含相同的很长的命名空间信息。因此Xml标准中设定了一个保留的Attribute xmlns来定义Xml元素中命名空间前缀与命名空间的映射。

    例如:在上图中定义了前缀v代表了http://schemas.jensen.com/vehicle这个命名空间。在Person的所有子元素中可以用v来代表 http://schemas.jensen.com/vehicle命名空间。

如果在映射中前缀为空,例如上图中:xmlns="http://schemas.jensen.com/person"。则表示该元素范围内默认的命名空间。凡是在此命名空间下的元素或者属性名称都不需要添加命名空间信息。

   通过这样的功能,xml文档的会得到很大的瘦身,达到言简意赅的效果。

   是,Xml的URI息,性。(了Xml已,映射

   其实每个命名空间中拥有哪些元素或是属性是有标准方法来定义的,那就是Xml Schema.有可以在Xml Schema标准可以解答我的问题。下一步再学习Xml Schema.


(2)Xml文档中的有一些字符是有特殊意义的("<","&"),因此在文本元素中不能使用这些字符

,但是如果文档中确实需要表示这些特殊字符的话,可以采用实体引用的方法来表示。(类似于编程语言中的转义字符)

Xml标准中实体引用有如下5种:

1. “<”  xml文档中表示为  &lt;

2. ">"  xml文档中表示为 &gt;

3. "&"  xml文档中表示为 &amp;

4. "'"(单引号) xml文档中表示为 &apos;

5. """(双引号) xml文档中表示为 &quot;


另外在Xml文档中还有几点需要注意:

1. Xml的元素名是大小写敏感的。

2. 元素名不能以xml开头


参考文章:

了解 XML 命名空间( http://bbs.xml.org.cn/dispbbs.asp?boardID=1&ID=6959 )

XML学习笔记(一):XML中的命名空间( http://www.cnblogs.com/martin-chen/archive/2011/02/24/xml-studynote-namespace.html )

你可能感兴趣的:(xml)