• 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 文件:

  • 相关阅读:
    透视分析
    仪表分析
    sql查询和预览界面,在预览界面选择图表最后进行导出数据和图表到excel
    可视化查询
    创建数据源
    Smartbi使用Oracle RAC数据库做知识库
    反应器(Reactor)模式
    Netty:EventLoopGroup
    ShuffleTest java 使用集合的方式进行排序
    MapTest java 核心编程
  • 原文地址:https://www.cnblogs.com/niujifei/p/15092036.html
Copyright © 2020-2023  润新知