| 译文 | XPointer element() 模式 | |
|---|---|---|
| ( http://www.opendl.com/openxml/w3/TR/xptr-element/xptr-element-gb.html ) | ||
| 英文 | XPointer element() Scheme | |
| (http://www.w3.org/TR/xptr-element/) | ||
| 注意 |
| |
| 译者 |
| |
| 时间 | 初次定稿:2003 年 8 月 6 日 (NZT) | 最后修改: 2003 年 8 月 13 日 (UTC) |
Copyright © 2003 年 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
本节描述本文档在出版时的地位。其它的文档可能代替本文档。本文档系列的最新状态由 W3C 维护。
本文档为万维网协会(W3C)建议(REC)。 本文档已由万维网协会(W3C)组织成员和其他感兴趣的各方审阅,并已被组织理事批准为万维网协会(W3C)建议。这是一个稳定的文档,可以用作参考材料,也可以作为其它文档的标准参考文献。W3C 在建议制定过程中的作用是吸引对本规范的注意并促进它的广泛使用。这能增强 Web 的功能性和互操作性。
本文档是是作为 W3C XML 制定工作(W3C XML Activity)的一部分的 XML 链接工作组的工作成果。它计划与附随的 XPointer 架构和 XPointer xmlns() 模式规格说明一起,陈述最初的 XPointer 需求的核心子集,作为关于 XML 媒体类型的整个或基础部分的片段标识符语法。
欢迎对本说明提建议。请电邮到公共邮件列表 www-xml-linking-comments@w3.org(存档)。
有关本规格说明及附随的 XPointer element() 模式 和 XPointer xmlns() 模式实现的资讯可参看实现报告。
与本推荐相关的应行公告的专利的事项和许可义务,依照 W3C 政策可在 XPointer 知识产权声明页上查到。
现有 W3C 建议和其它技术文档的列表在 http://www.w3.org/TR。W3C 出版物可能随时被其它的文档更新、代替、或废除。
XPointer element() 模式计划与 XPointer 架构[XPtrFrame]一起用来对 XML 元素进行基本的定址。
[定义:本规格说明中的关键字必须(must)、不能(must not)、必需的(required)、将(shall)、将不(shall not)、应该(should)、不应该(should not)、建议(recommended)、可能(may)、和可选的(optional)依照[RFC 2119]所描述的进行解释。]
本规格说明中使用的术语指针元件、模式、XPointer 处理器、错误和命名空间与上下文的绑定与 XPointer 架构规格说明中所定义的一样。
用于 element() 模式 的正式文法是在 XML 建议[XML]中所描述的、简单的扩展贝克诺尔格式 (EBNF) 记号。
本规格说明标准化依赖于 XPointer 架构[XPtrFrame]规格说明。
支持 element() 模式的 XPointer 处理器依赖于应用程序的能力来清楚地看到 XML 资源,正如在 XPointer 架构规格说明中所列出的最低限度的 XML 信息集[Infoset]和 XML 模式[XMLSchema]信息项和特性。
宣称支持 element() 模式的、遵从 XPointer 的处理器必须遵照在本规格说明中所定义的行为并可能遵照其它的 XPointer 模式规格说明。
本节描述 element() 模式的语法和语义,以及相对本模式来说的 XPointer 处理器的行为。
本模式的名称为“element”。本模式的语法如下;如果带有 element() 模式的指针元件中的模式数据不遵从在本节中定义的指针元件语法,则不标识子资源。
element() 模式语法| [1] | ElementSchemeData | ::= | (NCName ChildSequence?) | ChildSequence
|
| [2] | ChildSequence | ::= | ('/' [1-9] [0-9]*)+ |
模式数据由(如在 XML 命名空间规格说明[XML-Names]中所定义的)NCName、或孩子序列、或 NCName 和孩子序列同时组成。
正如在 XPointer 架构[XPtrFrame]规格说明中所定义的简写指针,单独出现的 NCName 标识一个单一的元素,除了不能标识元素的结果只是该指针元件没有标识任何子资源,而非一个 XPointer 架构错误。
举例来说,下面的指针元件将标识一个带有“intro”ID (如 XPointer 架构中所定义) 的元素:
element(intro) |
单独出现的孩子序列经由步进式的导航方式来标识元素,它由一个由斜线(/)分开的整数序列来引导;每个整数 n 在已经定址的元素中定址第 n 个的孩子元素。在第一个斜线之后的整数 n 找出第 n 个的最高层的元素:或是独一的文档元素(如果资源是一个 XML 文档,即是[文档元素]特性,这种情况下整数总为 1),或是一些可能的根元素中的一个(如果资源是解析过的外部实体,即是实体根元素)。例如,假定 XML 资源是一个完整的 XML 文档,以下指针元件在文档的根元素之内标识第二个孩子元素:
element(/1/2) |
在 NCName 之后出现的孩子序列经由步进式的导航方式来标识元素,它由指定名称的元素开始。 例如,以下指针元件首先定址由值“intro”标识的元素,然后再定址该元素的第三个子元素,最后标识该子元素的第一个子元素:
element(intro/3/1) |
如果 NCName 或孩子顺序不找出一个元素,则整个指针元件没有标识任何元素。
因为不支持合法的名称,element() 模式不使用命名空间与上下文的绑定。