Sie legen einen Standard-Namespace in einem Element eines XML-Dokuments mit einem Attribut der Form xmlns="URI"
fest. Im folgenden Beispiel hat ein Dokument den Standard-Namespace, der an den URI http://www.iAnywhere.com/EmployeeDemo
gebunden ist:
<x xmlns="http://www.iAnywhere.com/EmployeeDemo"/> |
Wenn das Element im Namen kein Präfix hat, wird ein Standard-Namespace auf das Element und seine untergeordneten Klassen angewendet,
sofern er festgelegt ist. Ein Doppelpunkt trennt das Präfix vom Rest des Elementnamens. Beispiel: <x/> hat kein Präfix, während
<p:x/> das Präfix p hat. Sie legen einen Namespace, der an ein Präfix gebunden ist, mit einem Attribut der Form xmlns:prefix="URI"
fest. Im folgenden Beispiel bindet ein Dokument das Präfix p an denselben URI wie das vorherige Beispiel:
<x xmlns:p="http://www.iAnywhere.com/EmployeeDemo"/> |
Standard-Namespaces werden nie auf Attribute angewendet. Ein Attribut wird immer an den NULL-Namespace-URI gebunden, es sei denn, es hat ein Präfix. Im folgenden Beispiel haben die Wurzel- und untergeordneten Elemente den iAnywhere1-Namespace, während das x-Attribut den NULL-Namespace-URI und das y-Attribut den iAnywhere2-Namespace hat:
<root xmlns="iAnywhere1" xmlns:p="iAnywhere2"> <child x='1' p:y='2' /> </root> |
Die Namespaces, die im Wurzelelement des Dokuments festgelegt sind, werden in der Abfrage angewendet, wenn Sie ein XML-Dokument als namespace-declaration-Argument von einer OPENXML-Abfrage übergeben. Alle Abschnitte des Dokuments nach dem Wurzelelement werden ignoriert. Im folgenden Beispiel ist p1 an iAnywhere1 im Dokument und an p2 im namespace-declaration-Argument gebunden, und die Abfrage ist in der Lage, das Präfix p2 zu verwenden:
SELECT * FROM OPENXML('<p1:x xmlns:p1="iAnywhere1">123</p1:x>', '/p2:x', 1, '<root xmlns:p2="iAnywhere1"/>') WITH ( c1 int '.' ); |
Für den Vergleich eines Elements müssen Sie den URI korrekt angeben, an den ein Präfix gebunden ist. Im obenstehenden Beispiel stimmt der x-Name in der xpath-Abfrage mit dem x-Element im Dokument überein, weil sie beide den iAnywhere1-Namespace haben.
Für den Vergleich eines Elements müssen Sie den URI korrekt angeben, an den ein Präfix gebunden ist. Im obenstehenden Beispiel stimmt der x-Name in der xpath-Abfrage mit dem x-Element im Dokument überein, weil sie beide den iAnywhere1-Namespace haben. Das Präfix des x-Elements der xpath-Abfrage bezieht sich auf den in der namespace-declaration festgelegten iAnywhere1-Namespace, der mit dem für das x-Element in den xml-data festgelegten Namespace übereinstimmt.
Verwenden Sie keinen Standard-Namespace in der namespace-declaration des OPENXML-Operators. Verwenden Sie eine Wildcard-Abfrage der Form /*:x (entspricht einem x-Element, das an einen URI gebunden ist, der den NULL-Namespace enthält) oder binden Sie den gewünschten URI an ein bestimmtes Präfix und verwenden Sie dieses in der Abfrage.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |