在 XML 文档具有 xmlns="URI"
形式属性的元素中定义缺省命名空间。在以下示例中,文档的缺省命名空间绑定到 URI http://www.iAnywhere.com/EmployeeDemo
:
<x xmlns="http://www.iAnywhere.com/EmployeeDemo"/> |
如果元素的名称没有前缀,则该元素及定义该元素的位置的所有下级都将应用缺省命名空间。用冒号将前缀与元素名称的其余部分隔开。例如,<x/> 没有前缀,而 <p:x/> 具有前缀 p。用有 xmlns:prefix="URI"
形式的属性来定义一个与一个前缀绑定的命名空间。在以下示例中,文档将前缀 p 绑定到与上一个实例相同的 URI:
<x xmlns:p="http://www.iAnywhere.com/EmployeeDemo"/> |
缺省命名空间不会应用于属性。除非属性具有前缀,否则属性会始终绑定到 NULL 命名空间 URI。在以下示例中,根元素和子元素具有 iAnywhere1 命名空间,而 x 属性具有 NULL 命名空间 URI,y 属性具有 iAnywhere2 命名空间:
<root xmlns="iAnywhere1" xmlns:p="iAnywhere2"> <child x='1' p:y='2' /> </root> |
将 XML 文档作为 OPENXML 查询的 namespace-declaration 参数传递时,在查询中将应用文档根元素中定义的命名空间。文档在根元素之后的所有部分都将被忽略。在以下示例中,p1 绑定到文档中的 iAnywhere1 以及 namespace-declaration 参数中的 p2,且查询可以使用前缀 p2:
SELECT * FROM OPENXML('<p1:x xmlns:p1="iAnywhere1">123</p1:x>', '/p2:x', 1, '<root xmlns:p2="iAnywhere1"/>') WITH ( c1 int '.' ); |
当匹配某个元素时,必须正确指定前缀绑定到的 URI。在上面的示例中,xpath 查询中的 x 名称与文档中的 x 元素相匹配,因为它们都具有 iAnywhere1 命名空间。
当匹配某个元素时,必须正确指定前缀绑定到的 URI。在上面的示例中,xpath 查询中的 x 名称与文档中的 x 元素相匹配,因为它们都具有 iAnywhere1 命名空间。xpath 元素的前缀 x 所引用的命名空间 iAnywhere1(在 namespace-declaration 中定义)与为 xml-data 中的 x 元素定义的命名空间相匹配。
不要在 OPENXML 运算符的 namespace-declaration 中使用缺省命名空间。请使用 /*:x 形式的通配符查询(与绑定到包括 NULL 命名空间的任意 URI 的 x 元素相匹配),或者将所需的 URI 与特定前缀绑定并在查询中使用。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |