xQuery und XML-Datei mit dem namespace
Ich bin mit eXist-DB zum speichern von XML-Dokumenten. Hier ist eine Beispiel-XML-Datei mit dem namespace info:
<?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>
Die Abfrage :
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
Habe ich versucht zu erklären, dass die Dritte-namespace innerhalb der Abfrage, aber es scheint nicht zu funktionieren.
- Eine von vielen Duplikaten: Wie macht man binden namespace-Präfixe bei der Verwendung QXmlQuery (Qt XQuery)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dritten namespace-Attribut (xmlns="urn:hl7-org:v3") bindet den Standard-namespace.
Die syntax zum definieren der Standard-namespace für Elemente, die in der XQuery ist:
Jedoch die Neudefinition der Standard-element-namespace verhindert, dass Ihre Abfrage von Tests für Knoten mit nicht-namespace!
Einen besseren Weg, dies zu tun ist, vielleicht binden Sie ein neues Präfix für diesen namespace: