元素 [XML 标准]
元素构成 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> 元素的后代。