zoukankan      html  css  js  c++  java
  • XML简介

    1、XML概述

    1.1、什么是XML

    XML全称为Extensible Markup Language,意思是可扩展的标记语言,它是SGML(标准通用标记语言)的一个子集。

    XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的。

    XML 的设计宗旨是传输数据,而非显示数据;

    W3C在1998年2月发布了1.0版本;

    W3C在2004年2月发布了1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有人用。同时,在2004年2月W3C又发布了1.0版本的第三版。我们学习的还是1.0版本!

    1.2、W3C组织

    W3C是万维网联盟(World Widle Web Consortium)英文的缩写,它成立于1994年10月,以开放论坛的方式来促进开发互通技术(包括规格、指南、软件和工具),开发网络的全部潜能。

    W3C认为自身不是官方组织,因此将它正式发布的规范称为推荐(建议)标准,意思是进一步标准化建议,但是由于组织自身的权威性往往成为事实上的标准。

    1.3、XML的作用

    • 程序的配置文件(这也是最后大家使用XML最常见的目的);
    • 数据交换:不同语言之间用来交换数据;
    • 小型数据库:用来当数据库存储数据。

    1.4、XML与HTML比较

    HTML的元素都是固定的,而XML可以自定义元素;

    HTML用浏览器来执行解析,XML的解析器通常需要自己来写(因为元素是自定义的);

    HTML只能用来表示网页,而XML可以做的事情很多。

    1.5、XML和properties(属性文件)比较

    属性文件只能存储平面信息,而XML可以存储结构化信息;

    解析属性文件只需要使用Properties类就可以了,而解析XML文档是很复杂的。

    2、XML语法概述

    2.1、XML文档展示

    <?xml version=”1.0” encoding=”utf-8” standalone=”no” ?>
    <students>
        <student stunum=”01”>
            <name>张三</name>
            <age>20</age>
            <genser></gender>
        </student>
        <student stunum=”02”>
            <name>李四</name>
            <age>20</age>
            <genser></gender>
        </student>
    </students>

    2.2、XML文档的组成部分

    • XML文档声明;
    • XML处理指令;
    • XML元素;
    • XML特殊字符和CDATA区;
    • XML注释。

    3、XML文档声明

    3.1、什么是XML文档声明

    可以把XML文档声明看成是XML文档说明。

    最简单的XML文档声明:<?xml version=”1.0” ?>

    注意,XML区分大小写,这一点不同于HTML!

    3.2、XML文档声明结构

    • version属性:用于说明当前xml文档的版本,因为都是在用1.0,所以这个属性大家都写1.0,version属性是必须的;
    • encoding属性:用于说明当前xml文档使用的字符编码集,xml解析器会使用这个编码来解析xml文档。encoding属性是可选的,默认为UTF-8。注意,如果当前xml文档使用的字符编码是gb2312,而encoding属性的值为UTF-8,那么一定会出错;
    • standalone属性:用于说明当前xml文档是否为独立文档,如果该属性值为yes,表示当前xml文档是独立的,如果为no表示当前xml文档不是独立的,即依外部的约束条件。默认是yes。

    没有xml文档声明的xml文档,不是格式良好的xml文档;

    xml文档声明必须从xml文档的1行1列开始。

    4、XML元素

    4.1、XML元素的格式1

    xml元素包括:开始标签、元素体(内容)、结束标签。例如:<hello>大家好</hello>

    空元素:空元素只有开始标签,没有元素体和结束标签,但空元素一定要闭合。

    4.2、XML元素的格式2

    xml元素可以包含子元素或文本数据。例如:<a> <b> hello </b> </a>,a元素的元素体内容是b元素,而b元素的元素体内容是文本数据hello。

    xml元素可以嵌套,但必须是合法嵌套。例如: <a> <b> hello </a> </b> 就是错误的嵌套。

    4.3、XML文档的根元素

    格式良好的xml文档必须仅有一个根元素!

    4.4、元素中的空白

    xml元素的元素体可以包含文本数据和子元素。

    a.xml

    <a> <b>hello</b> </a>

    b.xml

    <a>
        <b>
            hello
        </b>
    </a>

    a.xml中,<a>元素只有一个子元素,即<b>元素。<b>元素只有一个文本数据,即hello。

    b.xml中,<a>元素中第一部分为换行缩进,第二部分为<b>元素,第三部分为换行。<b>元素的文本数据为换行、缩进、hello、缩进。

    其中换行和缩进都是空白,这些空白是为了增强xml文档的可读性。但xml解析器可能会因为空白出现错误的解读,这说明在将来编写解析xml程序时,一定要小心空白。

    4.5、元素命名规范

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

    • 区分大小写:<a>和<A>是两个元素;
    • 名称不能以数字或者标点符号开始:是错误的;
    • 名称不能包含空格;
    • 最好不要以xml开头:<xml>、<Xml>、<XML>。

    4.6、元素属性

    属性由属性名与属性值构成,中间用等号连接;

    属性值必须使用引号括起来,单引或双引;

    如果属性值本身包含双引号,那么就使用单引号:
    <gangster name='George "Shotgun" Ziegler'>

    定义属性必须遵循与标签名相同的命名规范;

    属性必须定义在元素的开始标签中;

    一个元素中不能包含相同的属性名;

    4.7、注释

    注释以<!—开头,以-->结束;

    注释中不能包含 -- ;

    4.8、转义字符和CDATA区

    因为在xml文档中有些字符是特殊的,不能使用它们作为文本数据。例如:不能使用“<”或“>”等字符作为文本数据,所以需要使用转义字符来表示。

    例如<a><a></a>,你可能会说,其中第二个<a>是a元素的文本内容,而不是一个元素的开始标签,但xml解析器是不会明白你的意思的。

    把<a><a></a>修饰为<a>&it;a&gt;</a>,这就OK了。

    字符字符引用(十进制代码)字符引用(十六进制代码)预定义实体引用
     <  &#60;  &#x3c;  &lt;
     &#62;  &#x3e;  &gt;
     &#34;  &#x22;  &quot;
     &#39;  &#x27;  &apos;
     &#38;  &#x26;  &amp;

    转义字符都是以“&”开头,以“;”结束。这与后面我们学习的实体是相同的。

    4.9、CDATA区(CDATA段)

    PCDATA 指的是被解析的字符数据(Parsed Character Data)。

    所有XML文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。

    当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低。这时如果使用CDATA段就会好一些。

    在CDATA段中出现的“<”、“>”、“””、“’”、“&”,都无需使用转义字符。这可以提高哦xml文档的可读性。

    CDATA 部分由" <![CDATA[ "开始,由" ]]> "结束:

    <a><![CDATA[<a>]]></a>

    在CDATA段中不能包含“]]>”,即CDATA段的结束界定符。

  • 相关阅读:
    dede list调用 内容模型 附件
    dedecms list标签调用附加表字段--绝对成功
    织梦系统站点首页、列表、文章页等页面点击数调用方法
    apache include 文件包含引用的方法 报错 [an error occurred while processing this directive]
    windows 2008 中IIS7.0以上如何设置404错误页面
    织梦Fatal error: Call to a member function GetInnerText()
    dedecms清空栏目后,新建ID不从1开始的解决方法
    js禁止
    AngularJs表单验证
    submile 安装,汉化,插件
  • 原文地址:https://www.cnblogs.com/yan-lei/p/9735113.html
Copyright © 2011-2022 走看看