初学 xml (命名)

来源:互联网 发布:软件体系结构有哪些 编辑:程序博客网 时间:2024/05/16 10:16

文章内容摘自 XML本质论

  • 命名

element attribute 都用 URI (Uniform Resource Identifier,统一资源标识符) 命名。以确保在多种XML格式交互时不出现命名冲突。

URI是指URN (Uniform Resource Name,统一资名称) 或 URL (Uniform Resource Locator,统一资源定位符)。

当 UR I用来区分 XML 名称时,它们被看作是称为 命名空间 ( namespace ) 的抽象名称集的标识符。

构成:本地名和名称空间URI

本地名规范:

NCName :: = ( Letter | '_' ) ( NCNameChar )*
NCNameChar :: = Letter | Digit | '_' | '-' | '.' | CombiningChar | Extender

实例:

本地名为 People, 不附属于任何命名空间

本地名为 People, 命名空间 URI 为 uuid:1c759aed-b748-475c-ab68-10679700c4f2

若其子元素没有显示的声明其命名空间,则默认在父元素的命名空间下,是继承关系。

并且,子元素的归属于最近的父元素的声明的命名空间,

如下,Person 的子元素命名空间是 http://www.example.net/people/schema/

将 Person元素从命名空间删除。

出于语法的便利考虑,XML 支持使用 命名空间 URI 的本地别名化。第个元素都能使用前缀映射到 URI 的命名空间。

声明格式 : xmlns : myns = 'uri-reference'

前缀是 myns ,该别名可用作 element 和 attribute 的前缀。

QName :: (Prefix ':' )? LocalPart

Prefix :: = NCName

LocalPart :: NCName

实例:

逻辑上等同于:

也等同于:

考虑如下情况:

 a d  的命名空间是 http://develop.com 而 b c 的则是 http://example.com

还是有就近原则在里面。

对于 attribute :

 

atr b 不属于任何命名空间,而 atr c 属于 http://y.org

给定的所有 attribute 必须由 命名空间URI/本地名 对惟一命名。

 

 

是不合法的。

这里有一个问题需要说明下。

attribute 的命名空间没有默认值。也就是说一般情况下不会属于任何命名空间,不属于 element 的命名空间。

除非使用 带前缀的命名方式 才能关联到命名空间。

原创粉丝点击