XML 基础

一、XML 简介

  1、XML 介绍

    XML:Extensible Markup Language 可扩展的标记性语言

  2、XML 概述

    (1)XML 是由 W3C 组织发布,目前推荐遵守的是 W3C组织与2000年发布的 XML1.0 规范;

    (2)XML 的使命就是以一个统一的格式,组织有关系的数据,为不同平台下的应用程序服务;

    (3)XML用来传输和存储数据,HTML 用来显示数据;

    (4)XML 没有预定义标签,均为自定义标签,此处也是体现了 XML 的扩展性。

  3、XML 与 HTML 的主要差异

    (1)xml 标签都是自定义的,HTML 标签是预定义好的;

    (2)xml 的语法非常严格,HTML 语法松散;

    (3)xml 是存储或传输数据的,HTML是展示数据的; 

    (4)XML 被设计为传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观。

  4、

二、XML 用途

  XML 主要作用有

    1. 用来保存数据,而且这些数据具有自我描述性;

    2. 作为项目或工程的配置文件;

    3. 作为网络传输数据的格式(目前以 JSON 为主)

三、XML 树结构

  XML 文档形成一种树结构

  XML 文档必须包含根元素。该元素是所有其他元素的父元素。

  XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

  所有元素均可拥有子元素:

1 <root>
2   <child>
3     <subchild>.....</subchild>
4   </child>
5 </root>

  父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。

  所有元素均可拥有文本内容和属性(类似 HTML 中)。

  

  上图表示下面的 XML 中的一本书:

 1 <bookstore>
 2     <book category="COOKING">
 3         <title lang="en">Everyday Italian</title>
 4         <author>Giada De Laurentiis</author>
 5         <year>2005</year>
 6         <price>30.00</price>
 7     </book>
 8     <book category="CHILDREN">
 9         <title lang="en">Harry Potter</title>
10         <author>J K. Rowling</author>
11         <year>2005</year>
12         <price>29.99</price>
13     </book>
14     <book category="WEB">
15         <title lang="en">Learning XML</title>
16         <author>Erik T. Ray</author>
17         <year>2003</year>
18         <price>39.95</price>
19     </book>
20 </bookstore>

  例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中。

  <book> 元素有 4 个子元素:<title>、< author>、<year>、<price>。

四、XML 语法

  1、基本语法

  (1)xml 文档的后缀名必须为 .xml;

  (2)xml 第一行必须定义为文档声明,并且前面没有任何其他字符;

  (3)xml 文档中有且仅有一个根标签,根元素就是顶级元素,没有父标签的元素,叫顶级元素,而且是唯一一个;

  (4)属性值必须使用引号(单双都可以)引起来

  (5)标签必须正确关闭,不能交叉嵌套

  (6)xml 标签名称严格区分大小写

  (7)标签不能以数字开头;

  (8)在 XMl 中,空格会被保留(不会对多余空格删减)

  (9)xml 注释:<!-- xml注释内容 -->

    Demo:

 1 <?xml version="1.0" encoding="utf-8" ?>       <!-- XML 声明 -->
 2 
 3 <students>                                    <!-- 根元素 -->
 4 
 5    <student id="1">
 6        <name>张三</name>
 7        <age>19</age>
 8        <sex></sex>
 9    </student>
10 
11     <student id="2">
12         <name>张三</name>
13         <age>19</age>
14         <sex></sex>
15     </student>
16 
17 </students>

  2、文档声明

    格式:<?xml 属性列表 ?>

    属性列表:

      •   version:版本号,必须有的属性
      •   encoding:编码方式,告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
      •   standalone:是否独立,取值:yes:不依赖其他文件;no:依赖其他文件

    Demo:

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

    其中:

<?xml version="1.0" encoding="UTF-8"?> xml 声明。
<!-- xml 声明 version 是版本的意思 encoding 是编码 -->
而且这个<?xml 要连在一起写, 否则会有报错

    属性:

version        是版本号
encoding     是 xml 的文件编码
standalone="yes/no" 表示这个 xml 文件是否是独立的 xml 文件        

    案例:图书有 id 属性 表示唯一 标识, 书名, 有作者, 价格的信息

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- xml 声明 version 是版本的意思 encoding 是编码 -->
 3 <books> <!-- 这是 xml 注释 -->
 4     <book id="SN123123413241"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 -->
 5         <name>java 编程思想</name> <!-- name 标签描述 的是图书 的信息 -->
 6         <author>华仔</author> <!-- author 单词是作者的意思 , 描述图书作者 -->
 7         <price>9.9</price> <!-- price 单词是价格, 描述的是图书 的价格 -->
 8     </book>
 9     
10     <book id="SN12341235123"> <!-- book 标签描述一本图书 id 属性描述 的是图书 的编号 -->
11         <name>葵花宝典</name> <!-- name 标签描述 的是图书 的信息 -->
12         <author>班长</author> <!-- author 单词是作者的意思 , 描述图书作者 -->
13         <price>5.5</price><!-- price 单词是价格, 描述的是图书 的价格 -->
14     </book>
15 </books>

     在浏览器中可以查看到文档
    

五、XML 元素

  1、什么是 XMl 元素 

      

     元素是指从开始标签到结束标签的内容。

     例如: <title>java 编程思想</title>

     元素 我们可以简单的理解为是 标签

  2、XML 命名规则

    XML 元素必须遵循以下命名规则:

    (1)名称可以包含字母、数字以及其他的字符

1 <book id="SN213412341"> <!-- 描述一本书 -->
2     <author>班导</author> <!-- 描述书的作者信息 -->
3     <name>java 编程思想</name> <!-- 书名 -->
4     <price>9.9</price> <!-- 价格 -->
5 </book>

    (2)名称不以数字或者标点符号开始

    (3)名称不能以字符 "xml"(或者XML、Xml)开始【其实是可以滴!

    (4)名称不能包含空格

  3、XML 中的元素(标签)也分为 单标签和双标签

    单标签:

格式: <标签名 属性=”值” 属性=”值” ...... />

  

    双标签:

格式: < 标签名 属性=”值” 属性=”值” ......>文本数据或子标签</标签名>

六、XML 属性

  1、XML 属性信息

    xml 的标签属性和 html 的标签属性是非常类似的, 属性可以提供元素的额外信息

    在标签上可以书写属性:

      一个标签上可以书写多个属性。 每个属性的值必须使用 引号 引起来

      属性的规则和标签的书写规则一致。

    

    注意:属性必须使用引号引起来,不引会报错示例代码:

    使用属性理念:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

  2、

七、语法规则

  1、所有 XML 元素都须有关闭标签(也就是闭合)

  2、XML 标签对大小写敏感

  3、XML 必须正确地嵌套

  4、XML 文档必须有根元素

    根元素就是顶级元素,没有父标签的元素, 叫顶级元素。
    根元素是没有父标签的顶级元素, 而且是唯一一个才行。

  5、XML 的属性值须加引号

  6、XML 中的特殊字符

    XML 中的特殊字符与 HTML 中的特殊字符书写一样,请参考这里:特殊字符

    

    

  7、文本区域( CDATA 区)

    CDATA 区:在该区域中的数据会被原样展示

    CDATA 语法可以告诉 xml 解析器, 我 CDATA 里的文本内容, 只是纯文本, 不需要 xml 语法解析

    CDATA 格式:

<![CDATA[ 这里可以把你输入的字符原样显示, 不会解析 xml ]]>

     Demo:

1  <![CDATA[
2     if(a > 5 && b < 8) {
3         return 30;
4     }
5  ]]>

 

八、XML 验证

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

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

  1、良好的 XML 文档

    “形式良好”或“结构良好”的 XML 文档拥有正确的语法。

    “形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则:

      ① XML 文档必须有根元素
      ② XML 文档必须有关闭标签
      ③ XML 标签对大小写敏感
      ④ XML 元素必须被正确的嵌套
      ⑤ XML 属性必须加引号

     Demo:

1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <note>
3     <to>George</to>
4     <from>John</from>
5     <heading>Reminder</heading>
6     <body>Don't forget the meeting!</body>
7 </note>

  2、验证的 XML 文档

    合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则:

1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE note SYSTEM "Note.dtd">
3 <note>
4     <to>George</to>
5     <from>John</from>
6     <heading>Reminder</heading>
7     <body>Don't forget the meeting!</body>
8 </note>

    在上例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。

  3、XML DTD

    DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:

1 <!DOCTYPE note [
2   <!ELEMENT note (to,from,heading,body)>
3   <!ELEMENT to      (#PCDATA)>
4   <!ELEMENT from    (#PCDATA)>
5   <!ELEMENT heading (#PCDATA)>
6   <!ELEMENT body    (#PCDATA)>
7 ]>

  4、XML Schema

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

 1 <xs:element name="note">
 2 
 3 <xs:complexType>
 4   <xs:sequence>
 5     <xs:element name="to"      type="xs:string"/>
 6     <xs:element name="from"    type="xs:string"/>
 7     <xs:element name="heading" type="xs:string"/>
 8     <xs:element name="body"    type="xs:string"/>
 9   </xs:sequence>
10 </xs:complexType>
11 
12 </xs:element> 

九、XML 浏览器

  几乎所有的主流浏览器均支持 XML 和 XSLT。

 

十、XML 查看

  1、通过浏览器查看某个 xml 文件

  打开 XML 文件 - XML 文档将显示为代码颜色化的根以及子元素。通过点击元素左侧的加号或减号,可以展开或收起元素的结构。如需查看不带有 + 和 - 符号的源代码,请从浏览器菜单中选择“查看源代码”。

  注释:在 Netscape, Opera 以及 Safari 中,仅仅会显示元素文本!要查看原始的 XML,请右击页面,然后选择“查看源代码”。

  2、查看某个无效的xml 文件

    如果浏览器打开了某个有错误的 XML 文件,那么它会报告这个错误。

十一、XML CSS

  使用 CSS 来格式化 XML 文档是有可能的。 

  指令:用来结合 CSS的

      Demo:

<?xml-stylesheet type="text/css" href="student.css" ?>

   案例:

  注意:使用 CSS 格式化 XML 不是常用的方法,更不能代表 XML 文档样式化的未来。W3C 推荐使用 XSLT。

十二、XML XSLT

  XSLT 是首选的 XML 样式表语言。

  XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善。

  使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML,正如以下的这些例子演示的那样:

查看 XML 文件XSLT 样式表查看结果

  下面是此 XML 文件的一个片断。 第二行,<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把这个 XML 文件链接到 XSL 文件:

原文地址:https://www.cnblogs.com/niujifei/p/15092036.html