0
Ich habe das folgende Problem mit meiner lokalen Funktion.XQuery: Namespace-Problem in lokalen Funktionen
Die folgende Funktion:
declare function local:exp($w as node()) as element()* {
for $e in ($w/e)
let $exp:= QName ("myns", "real")
return
element {$exp}{
attribute resource {$e/@lang}
}
};
generiert diese xml:
<real xmlns="myns" resource="eng"/>
Was wirklich gebraucht wird:
<myns:real rdf:resource="lang"/>
Wie kann ich das achive?
- Wie kann ich das Problem angehen?
- Wie kann ich "rdf" als NS für Ressourcenattribut hinzufügen.
Vielen Dank im Voraus.
Danke für die Antwort. Ihre Lösung funktioniert teilweise. Das Ergebnis wird jedoch wie folgt aussehen: . Also, wie kann ich das entfernen? Ich habe verschiedene Varianten von Copy-Namespaces deklariert und das hilft nicht. –
user3111525
Ok. Es muss oXygen sein, das meine Abfragen zwischenspeichert. Nachdem die Struktur des Ergebnisses geändert wurde, wird nun die Copy-Namespace-Deklaration berücksichtigt und die NS-Deklaration wird aus den Ergebnissen entfernt. Danke noch einmal. – user3111525
@ user322034: Es sollte nicht möglich sein, ein Namespace-Präfix zu verwenden, ohne den Namespace im Dokument zu haben. Das Beste, was Sie tun können, ist sicherzustellen, dass das Top-Level-Element im Dokument diese Präfixe hat (was es tun wird, wenn es im selben Modul wie die Deklarations-Namespace-Deklarationen erstellt wird) und dann am Anfang des Dokuments erscheinen anstatt auf jedem myns: real element. –