带有命名空间的XML文件上的xQuery

我正在使用eXist-DB来存储 XML文档.这是一个带有命名空间信息的示例XML文件
<?xml version="1.0" encoding="utf-8"?>
<ClinicalDocument xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                  xmlns="urn:hl7-org:v3">
            <name>
                <family>Smith</family>
                <middle>Blade</middle>
                <first>John</first>
            </name>
            <name>
                <family>Frost</family>
                <middle>Bill</middle>
                <first>Conrad</first>
            </name>
</ClinicalDocument>

查询是:

declare namespace xsd = "http://www.w3.org/2001/XMLSchema";
declare namespace xsi = "http://www.w3.org/2001/XMLSchema-instance";

for $x in doc("/db/HL7/cda2.xml")/ClinicalDocument/name
return $x/family

我试图在查询中声明第三个命名空间,但它似乎不起作用.

第三个名称空间属性(xmlns =“urn:hl7-org:v3”)绑定名称空间.

在XQuery中为元素定义认命名空间的语法是:

declare default element namespace "urn:hl7-org:v3";

但是,重新定义认元素名称空间会阻止查询测试没有名称间的节点!

更好的方法是将新前缀绑定到此命名空间:

declare namespace xsd = "http://www.w3.org/2001/XMLSchema";
declare namespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
declare namespace h17 = "urn:h17-org:v3";

for $x in doc("/db/HL7/cda2.xml")/h17:ClinicalDocument/h17:name
return $x/h17:family

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念