J'ai le problème suivant avec ma fonction locale.XQuery: problème d'espace de noms dans les fonctions locales
La fonction suivante:
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}
}
};
génère ce xml:
<real xmlns="myns" resource="eng"/>
Ce qui a vraiment besoin est:
<myns:real rdf:resource="lang"/>
Comment puis-je achive cela?
- Comment puis-je résoudre le problème?
- Comment puis-je ajouter "rdf" comme NS pour l'attribut de ressource.
Merci d'avance.
Merci pour la réponse. Votre solution ne fonctionne que partiellement. Cependant, le résultat devient: . Alors, comment puis-je supprimer cela? J'ai déclaré différentes variantes d'espaces de noms de copie et cela n'aide pas. –
user3111525
Ok. Il devait s'agir d'oXygen qui mettait en cache mes requêtes. Après avoir modifié la structure du résultat, il prend maintenant en compte la déclaration copy-namespace et la déclaration NS est supprimée des résultats. Merci encore. – user3111525
@ user322034: Il ne devrait pas être possible d'utiliser un préfixe d'espace de noms sans avoir l'espace de nom dans le document. Le mieux que vous pouvez faire est de vous assurer que l'élément de premier niveau du document a ces préfixes (ce qu'il fera s'il est créé dans le même module que les déclarations d'espace de noms déclarées), puis ils apparaîtront en haut du document plutôt que sur tous les mynes: élément réel. –