一、XML
● XML是一种通用的数据交换格式css
● 许多系统的配置文件搜使用XML格式数据库
● JSP文档也逐步向XML愈发格式过渡浏览器
● 许多项目都采用XML做为数据交换格式网络
● 在平常应用中会常常看到XML格式的文件dom
● 掌握XML是软件开发人员的一项基本技能this
二、什么是配置文件
● 配置文件就是记录应用程序的配置信息的文件编码
● 传统配置文件的格式:spa
#Db.Properties翻译
DBServer=192.168.0.100code
Database=emp
Port=1443
Username=zxx
Password=123
3、XML的起源与做用
● 在线电子商务活动交换的电子文档必须采用某种标准格式,统一电子文档的标准规范是电子商务的基础。
● HTML不适合做为电子商务的文档标准。
● SGML(Standard Generalized Markup Language)国语复杂,没法适应网络上的平常应用。
● W3C于1998年2月批准了XML(Extensible Markup Language)的1.0版本。XML是SGML的建华,语法与HTML很是类似。
● XML具备SGML的强大功能和可扩展性,同时又具备HTML的简单性。
● XML文档很容易建立,并结构清晰,不只让人可以明白,还然计算机也可以明白。
● XML做为一种公订的,开放 的标准,不受知识产权的限制。
4、XML与HTML的比较
● HTML将数据和显示效果混在一块儿,它是一种表现技术;XML文档只是存储了数据和描述了数据之间的关系,没有规定该如何显示数据。
● HTML的格式要求比较松散;而XML是很是严格的标记语言。
● HTML的标记集合是固定的;而XML只是提供了一个标准,人们能够按照这个标准来定义本身专用的标记。
● XML容许粒度更新,HTML不支持相似功能。
● XML不是HTML的升级,也不是HTML的替代产品。
● HTML目前已经再也不是WEB标记的标准,它是已经被XHTML所取代,XHTML是HTML和XMl的混合物,是XML在WEB领域的一种应用。
五、XML与数据库的比较
● 一个XML文档就像数据库中的一个表,具备三个要素:文档结构、文档数据和文档样式。
● XML文档的结构至关与数据库的表结构。
● XML标签内嵌套的数据就至关于数据库表中的某个字段内的数据。
● 数据库表中的数据能够采用表格、表单或其余形式显示,还能够用程序来查询、运算、修改。XML文档中的数据也能够被其余应用程序查询、运算、修改和以多种方式显示。
● 多个XML文档的元素之间还能够想数据库的表字段同样定义主外键关系,能够把XML文档当作是一个很是小型的数据库。
● XML很是适合信息交换,但不适合于大量数据处理。
一、文档声明
● 最简单的声明语法:
<?xml version=”1.0” ?>
● 用encoding属性说明文档的字符编码:
<?xml version=”1.0”encoding=”GB2312”?>(未设置默认为UTF-8或UTF-16)
● 用standalone属性说明文档是否独立:
<?xml vesion=”1.0”encoding=”GB2312”standalone=”yes”?>(须要配合其余文件,standalone设置为“no”,encoding和standalone同时设置时,standalone必须在encoding后面)
二、元素定义
● 一个XML元素由一个标记来定义,包括开始和借宿标记以及其中的内容,例如:
<书名>JavaWeb</书名>
● 一个元素中能够嵌套若干子元素。
● 格式良好的XML文档必须有且仅有一个根元素,其余元素都是这个根元素的子孙元素。
● 空元素能够不实用借宿标记,但必须在起始标记的借宿定界符(>)前面增长一个正斜杠(/)字符,例如:
<img src=”log.gif” />
● 全部的元素都必须况且i的嵌套,绝对不容许标签交叉,c错例:
<b>welcome to<i>www.baidu.com<b><i>
元素的标记名称规范
能够包含自摸、数字以及其余一些可见字符,但必须遵照下面的一些规范:
● 区分大小写,例如<P><p>是两个不一样的标签。
● 不能以数字或“_”(下划线)开头。
● 不能以字符组合xml(或XML、Xml等)开头。
● 不能包含空格。
● 名称中间不能包含冒号:。
元素的标记名称建议
● 不要使用“.”,由于在不少程序语言中,“.”用于引用对象的属性。
● 最好不要用减号(-),而如下划线(_)代替,以免与表达式中的减号(-)运算符发生冲突。
● 名称尽可能简短,以减小XML文档的大小。
● 名称的大小写尽可能采用同一标准,要么所有大写,要么所有小写。
● 名称可使用非英文字符,例如中文,可是有些软件可能不支持英文字符之外的字符,在使用时应考虑这种状况。
三、属性定义
● 一个标签能够有多个属性,每一个属性都有它本身的名称和取值,例如:
<售价 单位=”元“>58</售价>
● 属性值必定要用双引号(””)或单引号(’’)引发来
● 属性遵循与标签相同呃命名规范
● 属性能够被改为用子元素来描述一样的信息,例如:
<售价>
<单位>元</单位>
<价格>58</价格>
</售价>
四、注释
● 用”<!--注释—>“这种格式加入注释
● XML声明以前不能有注释
● 一对注释符号之中不能包含另外一对注释符号,错例:
<!--大段注释
……
<!--局部注释-->
……
-->
五、空格和换行的处理
● 对于XML中的标签之外的全部空格和换行,XML解析程序都要一个个如是地交割下游程序去处理。
● 下面两段内容的意义是不同的
第一段: 第二段:
<网址>
<网址>www.baidu.com</网址> www.baidu.com
</网址>
● 因为在XML中,空格和换行都做为原始内容被处理,因此在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的”良好“书写习惯可能要被迫改变。
六、CDATA区
● 问题:
XML文档中包含相似”Elements look like <this>“的文本,其中的”<this>“将被解析程序解释成一个元素,而人们实际想要的是”<this>”所表示的愿意文本。
● CDATA区全称为character data,以”<![CDATA[“开始,以”]]>“结束,在二者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序去处理。
● CDATA区中的起始和结束处有没有空格和换行字符是有区别的,例如:
<![CDATA[www.baidu.com]]>
和
<![CDATA[
www.baidu.com
]]>
● ”<![CDATA[“不能写成”<![cdata[“或”<![Cdata[“。
● CDATA区内部不能出现字符串”]]>“,该如何解决?
在CDATA内部的全部内容都会被解析器忽略。一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束。可是要记住,CDATA是不可以嵌套的。可是如今,就是有人要求实现CDATA的嵌套。
好比,将下面这段XML加到另一个XML的某个元素里面:
<?xml version="1.0" encoding="UTF-8" ?>
<System><id>library</id>
<name>Library Management</name>
<description><![CDATA[This is a sample library management subsystem for Signet.]]></description>
<Categories>
<System/>将内部的CDATA的结尾转义?那就变成了"<![CDATA[" 和"]]>amp;",这样很差,接收XML的那一方怎么会知道你在里面加上了转义?
那么,能够把CDATA的结尾的"]]>"破坏掉,把它分到两个CDATA中,而后调用Java的API读取该元素的数据时,实际上API同时读取两个CDATA块,而后合成一个。
那么,把上面的XML做为一个字符串来处理,将"]]>"替换为"]]]]><![CDATA[",千万要记住,不要包含空格进去。这样,结果应该是
<?xml version="1.0" encoding="UTF-8"?>
<Messages>
<Message type="data">
<code>1199242678515-176590595</code>
<date>2008/01/02</date>
<time>10:57:58</time>
<content><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
<System><id>library</id>
<name>Library Management</name>
<description><![CDATA[This is a sample library management subsystem for Signet.]]]]><![CDATA[></description>
<Categories>
<System/>]]></content>
</Message></Messages>
这样,利用Object org.dom4j.Element.getData()方法获得的数据才是原始的XML片断。
七、特殊字符
特殊字符 替代符号 & & < < > > “ " ‘ ' 八、处理指令(processing instruction)
● 处理指令是processing instruction 的中文翻译,一般简称PI,用来为处理XML文档的应用程序提供指示信息。
● 处理指令以“<?”做为开头,以“?>”做为结尾,XML声明语句就是最多见的一种处理指令。
● XML分析器把处理指令原封不动的传给应用程序,由应用程序来解析这个指令,按照它所提供的信息进行处理。例如,在某个XML文档中能够包含下面的语句来告诉浏览器使用book.css控制起显示效果:
<?xml-stylesheet type=”text/css”href=”book.css”?>