- XML 指可扩展标记语言(eXtensible Markup Language)。
- HTML 被设计用来显示数据,而XML 被设计用来传输和存储数据。
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准。
1 XML 和 HTML 之间的差异
- XML 不是 HTML 的替代。
- XML 和 HTML 为不同的目的而设计:
- XML 被设计用来传输和存储数据,其焦点是数据的内容。
- HTML 被设计用来显示数据,其焦点是数据的外观。
- HTML 旨在显示信息,而 XML 旨在传输信息。
2 XML树结构
XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"。
2.1 XML 文档实例
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
- 第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。
- 下一行描述文档的根元素
<note>
- 接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
- 最后一行定义根元素的结尾
</note>
2.2 XML 文档形成一种树结构
- XML 文档必须包含根元素。该元素是所有其他元素的父元素。
- XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
- 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
- 所有的元素都可以有文本内容和属性(类似 HTML 中)。
3 XML 语法规则
3.1 XML 文档必须有根元素
XML 必须包含根元素,它是所有其他元素的父元素,比如以下实例中 root 就是根元素:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
3.2 XML 声明
XML 声明文件的可选部分,如果存在需要放在文档的第一行,如下所示:
<?xml version="1.0" encoding="utf-8"?>
3.3 xml 注释
<!-- xml 注释 -->
3.4 XML 元素
XML元素☞从开始标签直到结束标签的部分。例如:<title>java </title>
元素可包含其他元素、文本或者两者的混合物,元素也可以有属性。
3.4.1 XML 命名规则
- 名称可以含字母、数字以及其他的字符
例如:
例如: <book id="SN213412341"> <!-- 描述一本书 -->
<author>xxxx</author> <!-- 描述书的作者信息 -->
<name>aaaa</name> <!-- 书名 -->
<price>9.9</price> <!-- 价格 -->
</book>
- 名称不能以数字或者标点符号开始
- 名称不能包含空格
- xml 中的元素(标签)也 分成 单标签和双标签:
单标签格式: <标签名 属性=”值” 属性=”值” … />
双标签格式: < 标签名 属性=”值” 属性=”值” …>文本数据或子标签</标签名>
3.5 所有的 XML 元素都必须有一个关闭标签
在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签:
<p>This is a paragraph.</p>
3.6 XML 标签对大小写敏感
XML 标签对大小写敏感。标签 <Letter>
与标签 <letter>
是不同的。
必须使用相同的大小写来编写打开标签和关闭标签:
<Message>这是错误的</message>
<message>这是正确的</message>
3.7 XML 必须正确嵌套
在 XML 中,所有元素都必须彼此正确地嵌套:
<b><i>This text is bold and italic</i></b>
在上面的实例中,正确嵌套的意思是:由于 <i>
元素是在 <b>
元素内打开的,那么它必须在 <b>
元素内关闭。
3.8 XML 中的特殊字符
注释:在 XML 中,只有字符 “<” 和 “&” 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
3.9 XML CDATA
XML 文档中的所有文本均会被解析器解析。
只有 CDATA 区段中的文本会被解析器忽略。
格式: <![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
4 XML 属性
与 HTML 类似,XML 元素也可拥有属性(名称/值的对)。
在 XML 中,XML 的属性值必须加引号。
下面的两个 XML 文档。 第一个是错误的,第二个是正确的:
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
在第一个文档中的错误是,note 元素中的 date 属性没有加引号。