XML

Posted mjbenkyo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML相关的知识,希望对你有一定的参考价值。

一、XML是什么

  1. XML 指可扩展标记语言(EXtensible Markup Language)。
  2. XML 的设计宗旨是传输数据,而非显示数据。其焦点是数据的内容。

    XML 是不作为的。XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息。它仅仅是纯文本而已。

  3. XML 标签需要自行定义

   通过 XML 您可以发明自己的标签,因为 XML 没有预定义的标签。XML 允许创作者定义自己的标签和自己的文档结构。

4.XML 文档形成一种树结构,它从“根部”开始,然后扩展到“枝叶”。

XML 声明,根元素,子元素,兄弟元素。所有元素均可拥有文本内容和属性。

技术分享图片

 

XML 与 html 的主要差异:

XML 不是 HTML 的替代。XML 是对 HTML 的补充。

XML 和 HTML 为不同的目的而设计:

XML 被设计为传输和存储数据,其焦点是数据的内容

HTML 被设计用来显示数据,其焦点是数据的外观

HTML 旨在显示信息,而 XML 旨在传输信息。

 

XML组成:

  声明;

  元素。XML 元素可以在开始标签中包含属性,属性提供有关元素的额外信息。

XML 语法规则

  1. 必须有关闭标签;注意:声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。
  2. XML 标签对大小写敏感;
  3. XML 必须正确地嵌套;
  4. 必须有一个元素是所有其他元素的父元素。该元素称为根元素;
  5. XML 的属性值须加引号,如果属性值本身包含双引号,那么有必要使用单引号包围它,或者可以使用实体引用。 

  避免 XML 属性,因使用属性而引起的一些问题:

    • 属性无法包含多重的值(元素可以)
    • 属性无法描述树结构(元素可以)
    • 属性不易扩展(为未来的变化)
    • 属性难以阅读和维护

                请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

          6.实体引用;

  技术分享图片

          7.XML 中的注释:

  技术分享图片

          8.空格会被保留,HTML 会把多个连续的空格字符裁减(合并)为一个;

 

          8.XML 元素命名规则:

  • 名称可以含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符 “xml”(或者 XML、Xml)开始
  • 名称不能包含空格

最佳命名习惯:

使名称具有描述性。使用下划线的名称也很不错。

名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。

避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。

避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。

XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。

 

XML 验证

拥有正确语法的 XML 被称为“形式良好”的 XML。

通过 DTD 验证的 XML 是“合法”的 XML。

验证 XML 文档:

DTD 的作用是定义 XML 文档的结构。

W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema

XML 文档中的错误会终止你的 XML 程序。

 

 XML 命名空间

---提供避免元素命名冲突的方法。

命名冲突:在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。

------使用前缀来避免命名冲突:

        技术分享图片

------使用命名空间(Namespaces):前缀与ns结合使用,为前缀赋予了一个与某个命名空间相关联的限定名称。命名空间属性被放置于元素的开始标签之中,所有带有相同前缀的子元素都会与同一个命名空间相关联。

  技术分享图片

 

  技术分享图片

 

-----默认的命名空间(Default Namespaces):可以省去在所有的子元素中使用前缀的工作。

  技术分享图片

 

二、XML的解析

 

??为什么多个xmlns??

技术分享图片

 

以上是关于XML的主要内容,如果未能解决你的问题,请参考以下文章

XML——初识XML

XML教程

PHP XML转数组,对象转数组

Excel导出xml时提示“无法保存或者导出XML数据,此工作薄中XML映射不可导出(xml映射随便导的)请问怎么办

XML 转换为其他 XML

XML验证