认识XML.md

简书迁移

Posted by thrfox on June 29, 2020

1.XML的常见应用

1.保存有关系的数据 2.用作软件的配置文件,以描述程序模块之间的关系 如,启动软件soft。需要启动A、B模块,同时启动A、B时需要a1、a2,b1、b2模块的支持

2.XML语法

1.文档声明

<?xml version="1.0" ?> 1.1设定编码集 <?xml version="1.0" encoding="utf-8" ?> 1.2是否为独立文档(是否依赖于另外一个文档) <?xml version="1.0" standalone="no" ?> ——————————

2.XML元素(指XML标签)

2.1 XML标签中出现的空格和换行会被XML解析程序解析 2.2 命名规范 ——————————-

3. XML属性

一个标签可以有多个属性,一个属性可以有自己的名称和取值,如下

1
2
3
4
5
<input name="text"/>
等同于
<input>
  <name>text</name>
</input>

4.CDATA区

编写XML文件时,如果有内容不希望被XML解析程序解析,当成原始内容输出,可以放入CDATA区

1
2
3
<![CDATA[
  <a>该标签不会被解析,而是被原始数据原始输出</a>
]]>

一般该区域的数据用来交给程序识别


5.处理指令

指令以<?开头,以?>结束 如XML引用css的指令,用xml-stylesheet <?xml-stylesheet type="text/css" href="1.css"?>

3.XML的DTD约束和DTD校验

常用约束技术2种: XML DTD (Document Type Definition) 文档类型定义 和XML Schema 如下DTD文件的定义

1
2
3
4
5
6
book.dtd
<!ELEMENT 书架(书+)>  //限制书架可以放1本或多本书
<!ELEMENT 书 (书名,作者,售价)>  //书中可以放书名,作者,售价
<!ELEMENT 书名 (#PCDATA)>  // (#PCDATA)为限制放入的值
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>

<!DOCTYPE 书架 SYSTEM "book.dtd">

4.XML解析技术

分为两种:dom和sax dom解析: 1.将整个xml变成Document对象 2.xml的每个节点成为element对象 对内存消耗大;对节点的增删改查容易 sax解析:占用内存少,解析速度快,适合读取,不适合增删改 解析开发包:Jaxp、Jdom、dom4j

4.Sax解析

Sax解析器解析xml的一部分内容,并把内容作为参数交给事件处理器处理,我们编写事件处理器来处理XML元素。 image.png

5.XML Schema

XML Schema也是一种XML,可以被DOM,SAX解析 1.对XML的定义约束能力强。(整数,小数,对象,String) 2.自身也是XML文件,扩展名为.xsd 3.XML Schema称为约束文档(模式文档),遵循这个文档书写XML称为实例文档 4.编写约束文档后,需要把文档中的元素绑定到URI上,即绑定到名称空间上。 Schema约束文档样例 image.png

XML实例文档样例 image.png