Frage

Ich mag ein paar Namensraum standardmäßig zur Verfügung haben, wenn eine XQuery in SQL Server 2005 ausgeführt wird, ist das möglich?

Zum Beispiel, ich möchte Folgendes tun:

select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1

Ohne den Namespace jedes Mal neu deklariert haben, so dass SQL erkennen nsp ohne mich Prolog jedes Mal mit.

Die Gedanken?

War es hilfreich?

Lösung

Die xml und xsi Namensräume sind die einzigen vordefinierten Namespaces, die Sie sich nicht erklären müssen. Alle anderen Namespaces müssen explicitally in jeder Abfrage deklariert.

Es gibt zwei Möglichkeiten Namespaces zu deklarieren:

  1. über die declare Anweisung innerhalb der XQuery.
  2. über die WITH XMLNAMESPACES Klausel über die TSQL-Anweisung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top