本文已参与「新人创作礼」活动,一起开启掘金创作之路。
XML基础语法规范
XML可以由如下概念中的部分或者全部组成. 文档声明; 元素/标签; 属性; 注释; 文本区域.
文档声明
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
文档声明包含3个属性:
- version: 是版本号
- encoding: 是 xml 的文件编码
- standalone="yes/no": 表示这个xml文件是否是独立的xml文件
元素/标签
所谓XML元素, 指的是从开始标签直到结束标签之间的部分, 包含开始和结束标签本身.
XML元素可包含其它的元素, 文本或者两者兼而有之. 此外, XML元素也可以拥有属性.
示例:
<bookshelf>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookshelf>
上例中, 元素bookshelf和book都拥有其它元素. 元素title, author, year, price只有文本内容. 只有元素book拥有属性(category="CHILDREN").
XML元素命名必须符合规范:
- 元素名称可以含字母, 数字以及其他的字符, 但不能以数字或者标点符号开始.
元素名称不能以字符"xml"或者"XML", "Xml")开始.- 元素名称不能包含空格或者冒号(冒号留给命名空间)
XML没有任何保留字, 名称可以自定义.
属性
所谓"属性", 是指元素的属性, 用于为元素提供额外的信息. 元素属性所对应的值, 即为属性值, 必须以双引号包裹.
示例:
<!-- gender 是一个属性 -->
<person gender="male">
<firstname>Andy</firstname>
<lastname>Smith</lastname>
</person>
<!-- gender 是一个子元素 -->
<person>
<gender>male</gender>
<firstname>Andy</firstname>
<lastname>Smith</lastname>
</person>
上例中, gender分别以属性和元素的形式出来, 为元素person提供相同的信息.
注释
XML从HTML发展而来, 保留了与HTML相同格式的注释.
<!-- comments -->
文本区域
CDATA是为XML元素的值, 意味着Character Data, 内容为纯文本, 不会被XML语法特殊解析.
CDATA格式为:
<string><![CDATA[纯文本原样显示]]></string>
CDATA把整段文本解释为纯字符字符值, 即使其中包含XML预定义的特殊字符. 其中, 纯文本显示区域中, 可以输入除]]>以外任意字符,且不能嵌套输入.