转自新浪微博:
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 无所不在。XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。
XML 与 HTML 的主要差异XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素的写法:元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2008</year>
<price>99.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2008</year>
<price>88.8</price>
</book>
</bookstore>
在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。
在上例中,只有 <book> 元素拥有属性 (category="CHILDREN")。
XML 命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
可使用任何名称,没有保留的字词。
最佳命名规则:
使名称具有描述性。使用下划线的名称也很不错。
名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。
避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。
XML 元素是可扩展的
XML 元素是可扩展,以携带更多的信息。
请看下面这个 XML 例子:
<note>
<to>George</to>
<from>John</from>
<body>Don't forget the meeting!</body>
</note>
关于空标签的写法:
XML的标签和HTML不同必须要关闭。标签的值在开始标签的右三角的的右边。在一些例子中创建了标签由于一些原因没有值或不提供值。例如:
<zhoz></zhoz>
这类标签称为空标签。因为没有值所有可以不提供结束标签但必须关闭。虽然这种在开始标签是就关闭的写法是允许的。这样的做法是在标签名和右三角之间写上反斜杠。
所以下面的写法也是可以的:
<zhoz />
转自博客:
XML文档的的分类:
1.格式不良好的(malformed)的XML文档:完全没有遵循XML文档的基本规范的XML文档。
2.格式良好(well-formed)但无效的XML文档:遵守了XML的基本规范,但没有使用DTD或schema定义语义约束的XML文档。
3.有效(valid)的XML文档:遵守了XML文档的基本规范,并使用了DTD或schema的语义约束,并且遵守定义的语义约束的XML文档。
XML的语法:
一个完整的XML文件应包含以下几个部分:
-文档声明
-元素
-属性
-注释
-CDATA区、特殊字符
-处理指令(processing instruction)
文档声明:
在编写XML文档时,需要先使用文档声明,声明XML文档的类型。
例如:<?xml version=”1.0”?>
用encoding属性说明文档的字符编码:
例如:<?xml version=”1.0” encoding=”GB2312”?>
用standalone属性说明文档是否独立(即是否引用其它资源):
例如:
<?xml version=”1.0” encoding=”GB2312” standalone=”?>
注:常见XML错误
常见错误:
1. <?xml version=1.0 ?>
2. <?xml version=“1.0”?>
3.编码错误
常用的字符集:
简体中文:GBK,GB2312
繁体中文:BIG5
西欧字符:ISO8859-1
通用的国际编码:Unicode,UTF-8
XML本身保存的时候会有默认编码格式,请注意保存时的编码属性,否则会造成访问XML文件时出错。
XML元素的基本规则:
元素是XML文档的基本单元,XML文档就是一个层层元素嵌套的元素组成的。整个XML文档从根元素开始,根元素包含若干个子元素,而每个子元素又可以包含多个子元素,从而可以组织成一个完整的XML文档。
XML的标签分为两类:
单标记:<br/>
双标记:<p></p>
XML标签要求:
1.标签名可以有字母(包含非西欧字符)、数字、下划线、中划线、冒号和点组成,但不能以数字、中划线和点开头。
2.标签名不能包含<>,$等
3.标签名中尽量不要出现冒号,除了使用命名空间之外。
4.标签名不能以xml、XML等任意大小写组合。
5.标签名不能包含空格
6.标签名区分大小写
XML标签嵌套子元素:
XML允许深度的嵌套子元素,但需要保证元素之间合理的嵌套,不能交叉嵌套即可,并且XML标签可以嵌套多个重名的子元素。
<a>
<b></b>
</a>
对于空元素,它不可以接受子元素也不可以接受字符串内容,但它可以接受多个属性。
例如<con name=’bank’/>
对于非空元素可以接受字符串,当标签内无内容时包含的是一个空格,空格也算字符。
例如:<p></p> 这个时候P标签所包含的就是一个字符,
<p>中国</p> 也可以这样包含字符串。
注:在格式良好的xml文档中有且只有一个根标签,且在XML文档中空格与换行符都当做标签内的内容来进行处理。
一、特殊字符与CDATA区域
在XML文档中如果文本字符中包含了一些特殊的字符,例如<或者&等等,这些字符会引起XML文档会引起文档的混乱。
解决方法如下:
1. 使用实体引用:使用另一个特殊符号代替这些特殊符号
2. 使用CDATA标记:将整个文档定义成字符串。
在特殊标记CDATA下,所有的特殊字符甚至是有效的元素都将被当成简单的字符串进行处理。实体引用也会失去作用,变成直接文本。
CDATA的语法格式如下:
<![CDATA[文本内容]]>
例如:
<![CDATA][1+3<6]>
在XML文档中的注释方法与HTML中完全一致
XML注释语法格式如下:
<!--注释字符串-->
XML注释中允许包含元素和标签,注释不能放在声明之前,不能在注释中使用双中划线,不能再标签体内使用注释,注释内容不能使用“-->”结尾。
二、XML处理指令
简称PI(processing Instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
XML处理指令用于给处理XML文档的应用程序提供信息,告诉处理程序应该如何解析XML文档,一个完整的XML文档的处理程序,可以读取XML文档的处理指令。
XML处理指令格式如下:
<?处理指令名 处理指令信息?>
例如:<?xml-stylesheet=”text/css” href=”(css样式文件)”?>
这里注意,标签名为中文时,CSS是不起作用的。
三、XML属性
XML属性的特征:
1.XML元素的属性必须有属性值,属性值必须用引号引起来。
2.同一个XML元素不能有多个同名的属性。
3.XML元素里的多个属性之间没有先后顺序。
总结:
1. 必须有一个根元素且只有一个
2. 元素必须合理结束
3. 元素之间必须合理嵌套
4. 元素的属性必须有属性值
只要不满足以上条件的XML文档,那就说明它就不是一个格式良好的XML文档
只要满足就是一个格式良好的XML文档
并且遵守了DTD或者schema就是一个有效的XML文档。
XML文档是一种标准结构化文档,因此可以转换成DOM(Document Object Model)文档模型树,其根节点对应DOM树的根节点。