XML 元素
XML 文档包含 XML 元素。
什么是 XML 元素?
XML 元素是指从(包括)元素的开始标签到(包括)元素的结束标签的所有内容。
<price>29.99</price>
一个元素可以包含
- 文本
- 属性
- 其他元素
- 或以上内容的组合
<bookstore>
<book category="children">
<title>哈利·波特</title>
<author>J K. 罗琳</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title>学习 XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的示例中
<title>, <author>, <year> 和 <price> 具有 **文本内容**,因为它们包含文本(例如 29.99)。
<bookstore> 和 <book> 具有 **元素内容**,因为它们包含元素。
<book> 具有一个 **属性** (category="children")。
空 XML 元素
不包含内容的元素被称为空元素。
在 XML 中,可以使用以下方式表示空元素
<element></element>
也可以使用所谓的自闭合标签
<element />
这两种形式在 XML 软件(阅读器、解析器、浏览器)中产生相同的结果。
空元素可以具有属性。
XML 命名规则
XML 元素必须遵循以下命名规则
- 元素名称区分大小写
- 元素名称必须以字母或下划线开头
- 元素名称不能以字母 xml(或 XML、Xml 等)开头
- 元素名称可以包含字母、数字、连字符、下划线和句点
- 元素名称不能包含空格
可以使用任何名称,没有保留字(除了 xml)。
最佳命名实践
创建描述性名称,例如:<person>、<firstname>、<lastname>。
创建简短且简单的名称,例如:<book_title>,而不是 <the_title_of_the_book>。
避免使用“-”。如果命名为“first-name”,一些软件可能会认为你想从“first”中减去“name”。
避免使用“.”。如果命名为“first.name”,一些软件可能会认为“name”是“first”对象的属性。
避免使用“:”。冒号保留用于命名空间(稍后会介绍)。
像 éòá 这样的非英语字母在 XML 中是完全合法的,但如果您的软件不支持它们,请注意可能会出现问题!
命名约定
一些常用的 XML 元素命名约定
风格 | 示例 | 描述 |
---|---|---|
小写 | <firstname> | 所有字母小写 |
大写 | <FIRSTNAME> | 所有字母大写 |
蛇形命名法 | <first_name> | 下划线分隔单词(常用于 SQL 数据库) |
帕斯卡命名法 | <FirstName> | 每个单词首字母大写(常用于 C 语言程序员) |
骆驼命名法 | <firstName> | 除了第一个单词以外,每个单词首字母大写(常用于 JavaScript) |
**提示!** 选择您的命名风格,并保持一致性!
XML 文档通常具有相应的数据库。一个常见的做法是使用数据库的命名规则来命名 XML 元素。
XML 元素是可扩展的
XML 元素可以扩展以承载更多信息。
请看以下 XML 示例
<note>
<to>Tove</to>
<from>Jani</from>
<body>这个周末别忘了我!</body>
</note>
假设我们创建了一个应用程序,该应用程序从 XML 文档中提取 <to>、<from> 和 <body> 元素,以生成以下输出
收件人: Tove
发件人: Jani
这个周末别忘了我!
想象一下,XML 文档的作者在其中添加了一些额外的信息
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>提醒</heading>
<body>这个周末别忘了我!</body>
</note>
应用程序应该崩溃吗?
不。应用程序仍然应该能够在 XML 文档中找到 <to>、<from> 和 <body> 元素,并产生相同的输出。
这是 XML 的优点之一。它可以扩展而不会破坏应用程序。