本页位置: 开放首页 -> 开放 XML -> 标准中译 -> XPointer 命名空间
译文XPointer xmlns() 模式
( http://www.opendl.com/openxml/w3/TR/xptr-xmlns/xptr-xmlns-gb.html )
英文XPointer xmlns() Scheme
(http://www.w3.org/TR/xptr-xmlns/)
注意
译者
时间初次定稿:2003 年 8 月 6 日 (NZT)最后修改: 2003 年 8 月 13 日 (UTC)

W3C

XPointer xmlns() 模式

W3C 建议 2003 年 3 月25 日

本版本:
http://www.w3.org/TR/2003/REC-xptr-xmlns-20030325/
最新版本:
http://www.w3.org/TR/xptr-xmlns/ 中文翻译 [简体中文]
以前版本:
http://www.w3.org/TR/2002/PR-xptr-xmlns-20021113/
编者:
Steven J. DeRose <sderose@acm.org>
Ron Daniel Jr. <rdaniel@taxonomystrategies.com>
Eve Maler, Sun Microsystems <eve.maler@sun.com>
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>

摘要

XPointer xmlns() 模式计划与 XPointer 架构[XPtrFrame]一起用来正确地解释指针中命名空间前缀,比如,出现在模式数据里合法的命名空间模式名称及合法的命名空间元素或属性名称。

本文档的地位

本节描述本文档在出版时的地位。其它的文档可能代替本文档。本文档系列的最新状态由 W3C 维护。

本文档为万维网协会(W3C)建议(REC)。本文档已由万维网协会(W3C)组织成员和其他感兴趣的各方审阅,并已被组织理事批准为万维网协会(W3C)建议。这是一个稳定的文档,可以用作参考材料,也可以作为其它文档的标准参考文献。W3C 在建议制定过程中的作用是吸引对本规范的注意并促进它的广泛使用。这能增强 Web 的功能性和互操作性。

本文档是是作为 W3C XML 制定工作(W3C XML Activity)的一部分的 XML 链接工作组的工作成果。它计划与附随的 XPointer 架构XPointer element() 模式规格说明一起,陈述最初的 XPointer 需求的核心子集,作为关于 XML 媒体类型的整个或基础部分的片段标识符语法。

欢迎对本说明提建议。请电邮到公共邮件列表 www-xml-linking-comments@w3.org存档)。

有关本规格说明及附随的 XPointer element() 模式XPointer xmlns() 模式实现的资讯可参看实现报告

与本推荐相关的应行公告的专利的事项和许可义务,依照 W3C 政策可在 XPointer 知识产权声明页上查到。

现有 W3C 建议和其它技术文档的列表在 http://www.w3.org/TR。W3C 出版物可能随时被其它的文档更新、代替、或废除。

目录

1 介绍
2 一致性
3 语言和处理

附录

A 标准参考资料
B 非标准参考资料(非标准)


1 介绍

XPointer xmlns() 模式计划与 XPointer 架构[XPtrFrame]一起用来正确地解释指针中命名空间前缀,比如,出现在模式数据里合法的命名空间模式名称及合法的命名空间元素或属性名称。

定义:本规格说明中的关键字必须must)、不能must not)、必需的required)、shall)、将不shall not)、应该should)、不应该should not)、建议recommended)、可能may)、和可选的optional)依照[RFC 2119]所描述的进行解释。]

本规格说明中使用的术语指针元件、模式、XPointer 处理器、错误和命名空间与上下文的绑定与 XPointer 架构规格说明中所定义的一样。

用于 xmlns() 模式 的正式文法是在 XML 建议[XML]中所描述的、简单的扩展贝克诺尔格式 (EBNF) 记号。

2 一致性

本规格说明标准化依赖于 XPointer 架构[XPtrFrame]规格说明。

宣称支持 xmlns() 模式的、遵从 XPointer 的处理器必须遵照在本规格说明中所定义的行为并可能遵照其它的 XPointer 模式规格说明。

3 语言和处理

本节描述 xmlns() 模式的语法和语义,以及相对本模式来说的 XPointer 处理器的行为。

本模式的名称为“xmlns”。本模式的语法如下; 如果带有 xmlns() 模式的指针元件中的模式数据不遵从在本节中定义的指针元件语法,则没有提供条目给命名空间与上下文的绑定。

xmlns() 模式语法
[1]   XmlnsSchemeData   ::=    NCName S? '=' S? EscapedNamespaceName
[2]   EscapedNamespaceName   ::=    EscapedData*

符号 S 在[XML]中定义,而 EscapedData 在 XPointer 架构[XPtrFrame]中定义。

带有 xmlns() 模式的指针元件声明一个将和 XML 命名空间名称(没有转义任何的音调符号的 EscapedNamespaceName)联合的命名空间前缀(NCName)。每个使用模式的指针元件都提供一个新的条目给命名空间与上下文的绑定。如果指针元件为命名空间前缀定义了绑定,而命名空间与上下文的绑定中已经有了该条目,则新的条目会覆盖旧的条目。

例如,下面的指针元件将 abc 前缀绑定到 http://example.com/ns/abc 命名空间名称:

xmlns(abc=http://example.com/ns/abc)

带有 xmlns() 模式的指针元件从不标识子资源,并且因此 XPointer 处理器求值时总是继续下一个指针元件。然而,xmlns 指针元件对它右边指针元件的求值有潜在的影响。

本规格说明所基于的 XPointer 架构规定在第一个指针元件的求值之前的初始命名空间与上下文的绑定由单个条目组成:xml 前缀绑定于 URI http:/www.w3.org/XML/1998/namespace。遵循由该架构指定的规则,任何使用 xmlns() 模式的指针元件尝试重新定义 xml 前缀都不会造成命名空间与上下文的绑定变化。任何定义 xmlns 前缀的尝试都不会造成命名空间与上下文的绑定变化。任何将前缀绑定于命名空间名称 http://www.w3.org/2000/xmlns/ 的尝试都不会造成命名空间与上下文的绑定变化。

用于指针元件的前缀不需要与在指针元件所定址的 XML 资源中实际使用的前缀(或所缺少的前缀)相匹配。例如,假设有以下目标 XML 资源:

<customer xmlns="http://example.org/customer">
   <name xmlns="http://example.org/personal-info">John Doe</name>
</customer>

如果命名空间与上下文的绑定没有包含前缀绑定到命名空间名称 http://example.org/customer 的条目,引用元素 customer 的指针元件的求值将不表识任何的子资源。以下两个指针元件允许 xpointer()[XPointer]元件引用 customer 元素(如:c:customer)和名称元素:(如:p:name):

xmlns(c=http://example.org/customer) xmlns(p=http://example.org/personal-info)
xpointer(/c:customer/p:name)

A 标准参考资料

RFC 2119
Scott Bradner, RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997.
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000.
XPtrFrame
Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, editors. XPointer Framework. World Wide Web Consortium, 2002. See also: 中文翻译 [简体中文] .
XML-Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999. See also: 中文翻译 [简体中文] .

B 非标准参考资料(非标准)

XPointer
Steve DeRose, Eve Maler, and Ron Daniels, editors. XPointer xpointer() Scheme. World Wide Web Consortium, 2002. Work in progress.