元素

元素构成 XML 文档的主体,创建可以使用程序或样式表处理的结构。 元素标识命名的信息节,并使用标记构建,标识元素的名称、开始和结束。

元素还可以包含属性名称和值,用于提供有关内容的其他信息。 有关更多信息,请参见特性

元素名称

所有元素必须有名称。 元素名称区分大小写,并且必须以字母或下划线开头。 元素名称可以包含字母、数字、连字符、下划线和句点。

ms256085.note(zh-cn,VS.100).gif注意:
保留冒号供命名空间使用。有关哪些 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 imgbr 元素就属于空元素。 如果文档的开始标记和结束标记之间没有内容,空标记可以作为快捷方式使用。 空标记看起来与开始标记类似,只是在结束 > 之前包含斜杠 (/)。

<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>
ms256085.note(zh-cn,VS.100).gif注意:
文档片断可以作为 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> 元素的后代。

另请参见

概念

文档结构图