元素构成 XML 文档的主体,创建可以使用程序或样式表处理的结构。 元素标识命名的信息节,并使用标记构建,标识元素的名称、开始和结束。
元素还可以包含属性名称和值,用于提供有关内容的其他信息。 有关更多信息,请参见特性。
元素名称
所有元素必须有名称。 元素名称区分大小写,并且必须以字母或下划线开头。 元素名称可以包含字母、数字、连字符、下划线和句点。
![]() |
---|
保留冒号供命名空间使用。有关哪些 Unicode 字符是可接受的字母和数字的更多信息,请参见 XML 规范的附录 B。 |
开始标记、结束标记和空标记
标记设置元素内容(如果有)的边界。
开始标记指示元素的开头,使用以下常规语法。
<elementName att1Name="att1Value" att2Name="att2Value"...>
对于没有属性的元素,可以缩短开始标记。
<elementName>
结束标记指示元素的结尾,不能包含属性。 结束标记总是采用以下格式。
</elementName>
一般认为,元素包括开始标记和结束标记以及两个标记之间的所有内容。
<person><givenName>Peter</givenName> <familyName>Kress</familyName></person>
在这种情况下,<person>
元素包含两个其他元素,即 <givenName>
和 <familyName>
,连同一个将它们分开的空格。 <givenName>
元素包含文本 Peter
,而 <familyName>
元素包含文本 Kress
。
空标记用于指示没有文本内容的元素,不过这些元素可以有属性。 HTML img
和 br
元素就属于空元素。 如果文档的开始标记和结束标记之间没有内容,空标记可以作为快捷方式使用。 空标记看起来与开始标记类似,只是在结束 > 之前包含斜杠 (/)。
<elementName att1Name="att1Value" att2Name="att2Value".../>
在 XML 中,您可以指示一个具有开始和结束标记,但在标记之间没有空白和内容的空元素,例如 <giggle></giggle>
;也可以使用一个空标记,例如 <giggle/>
。 在 XML 分析器中,两种格式产生的结果相同。
元素关系
元素之间的关系使用族或树环境说明。 XML 文档必须包含一个而且只能包含一个根元素。 尽管该空格的前面和后面可以接其他标记(例如声明、处理指令、注释和空白),但是根元素必须包含被认为属于文档本身的所有内容。 例如,下面的代码可以是一个使用 <person>
作为其根元素的 XML 文档。
<person><givenName>Stephanie</givenName> <familyName>Bourne</familyName></person>
以下片断不能作为 XML 文档,因为其中包含多个根元素。
<givenName>Stephanie</givenName>
<familyName>Bourne</familyName>
![]() |
---|
文档片断可以作为 XML 文档的部分,但是不应单独传递给分析器。分析器如果在元素之外遇到第二个元素或文本,将会报告错误。 |
在树环境中,叶是指不包含任何其他元素的元素,就像树枝末端的树叶一样。 叶元素通常只包含文本或根本不包含任何内容;叶节点通常是空元素或文本。 在文档映射中,介绍书籍的所有文本存储在叶元素中;文本本身就是叶节点。
族环境(例如父、子、上级、子代和同辈)用于说明元素之间的相对关系,不必相对于整个文档。 以下摘要示例文档说明元素之间的关系。
<a>
<b>
<c>
<d/><e/><f/>
</c>
</b>
</a>
<a>
元素包含 <b>
元素,后者包含 <c>
元素,再后者包含 <d>
、<e>
和 <f>
元素。 如果用树来比喻,则 <a>
是根元素,而 <d>
、<e>
和 <f>
是叶元素。 虽然 <b>
和 <c>
可能被认为是树干或树枝,但是很少使用这种描述。
族环境提供更多级别的说明。 此文档中仅有的同级元素是 <d>
、<e>
和 <f>
元素,所有这些元素包含在 <c>
元素中。 <c>
元素是 <d>
、<e>
和 <f>
元素的父级;<d>
、<e>
和 <f>
元素是 <c>
元素的子元素。 同样,<b>
元素是 <c>
元素的父级,<c>
元素是 <b>
元素的子级,而 <a>
元素是 <b>
元素的父级,<b>
元素是 <a>
元素的子级。
上级和子代的定义方式与父级和子级类似,只是不必有直接的包含关系。 <a>
元素是 <b>
元素的父级,也是此文档中每个元素的上级。 <d>
、<e>
和 <f>
元素是 <a>
、<b>
和 <c>
元素的后代。