Erzeugt ein XML-Element innerhalb einer Abfrage
XMLELEMENT( { NAME Elementnamens-Ausdruck | Zeichenfolgenausdruck } [, XMLATTRIBUTES ( Attributwert-Ausdruck [ AS Attributname ],... ) ] [, Elementinhalt-Ausdruck,... ] )
Elementnamens-Ausdruck Ein Bezeichner. Für jede Zeile wird ein XML-Element mit demselben Namen wie der Bezeichner erzeugt.
Attributwert-Ausdruck Ein Attribut des Elementes. Mit diesem optionalen Argument können Sie einen Attributwert für das erzeugte Element angeben. Dieses Argument legt den Attributnamen und Inhalt fest. Wenn der Attributwert-Ausdruck ein Spaltenname ist, nimmt der Attributname den Spaltennamen an. Sie können den Attributnamen ändern, indem Sie das ArgumentAttributname angeben.
Elementinhalt-Ausdruck Der Inhalt des Elementes. Dies kann ein beliebiger Zeichenfolgenausdruck sein. Sie können eine unbegrenzte Anzahl Elementinhalt-Ausdruck-Argumente angeben, die dann verkettet werden. Beispiel: Die folgende SELECT-Anweisung gibt den Wert '<x>abcdef</x>' zurück:
SELECT XMLELEMENT( NAME x, 'abc', 'def' ); |
XML
NULL-Elementwerte und NULL-Attributwerte werden nicht in das Ergebnis einbezogen. Die Groß- und Kleinschreibung für Element- und Attributnamen wird aus der Abfrage entnommen.
Der Elementeninhalt wird immer in Escapezeichen gesetzt, es sei denn, der Datentyp ist XML. Ungültige Element- und Attributnamen werden ebenfalls in Anführungszeichen gesetzt. Nehmen wir als Beispiel folgende Anweisung:
SELECT XMLELEMENT('H1', f_get_page_heading() ); |
Wenn die Funktion f_get_page_heading als RETURNS LONG VARCHAR oder RETURNS VARCHAR(1000) definiert ist, ist das Ergebnis HTML-kodiert:
CREATE FUNCTION f_get_page_heading() RETURNS LONG VARCHAR BEGIN RETURN ('<B>My Heading</B>'); END; |
Die obenstehende SELECT-Anweisung gibt Folgendes zurück:
<H1><B>My Heading</B></H1> |
Wenn die Funktion als RETURNS XML deklariert ist, gibt die obenstehende SELECT-Anweisung Folgendes zurück:
<H1><B>My Heading</B></H1> |
Weitere Hinweise zum Zitieren und zur XMLELEMENT-Funktion finden Sie unter Ungültige Namen und SQL/XML.
XMLELEMENT-Funktionen können ineinander verschachtelt werden und eine Hierarchie bilden. Wenn Sie wollen, dass verschiedene Elemente auf derselben Ebene der Dokumenthierarchie zurückgegeben werden, verwenden Sie die Funktion XMLFOREST.
Weitere Hinweise finden Sie unter XMLFOREST-Funktion [Zeichenfolge].
Daten in den Spalten BINARY, LONG BINARY, IMAGE und VARBINARY werden automatisch im Base64-kodierten Format zurückgegeben, wenn Sie eine Abfrage ausführen, die eine XMLELEMENT-Funktion enthält.
Teil des SQL/XML-Standardentwurfs
Das Weglassen des NAME-Schlüsselworts und die Verwendung eines Zeichenfolgenausdrucks als erstes Argument ist eine Erweiterung des Herstellers.
Das folgende Beispiel erzeugt ein Element <item_name> für jedes Produkt in der Ergebnismenge, wobei der Produktname der Inhalt des Elementes ist.
SELECT ID, XMLELEMENT( NAME item_name, p.Name ) FROM Products p WHERE ID > 400; |
Das folgende Beispiel gibt <A HREF="http://www.ianywhere.com/" TARGET="_top">iAnywhere web site</A>
zurück:
SELECT XMLELEMENT( 'A', XMLATTRIBUTES( 'http://www.ianywhere.com/' AS "HREF", '_top' AS "TARGET"), 'iAnywhere web site' ); |
Das folgende Beispiel gibt <table><tbody><tr align="center" valign="top"><td>Cell 1 info</td><td>Cell 2 info</td></tr></tbody></table>
zurück:
SELECT XMLELEMENT( name "table", XMLELEMENT( name "tbody", XMLELEMENT( name "tr", XMLATTRIBUTES('center' AS "align", 'top' AS "valign"), XMLELEMENT( name "td", 'Cell 1 info' ), XMLELEMENT( name "td", 'Cell 2 info' ) ) ) ); |
Das folgende Beispiel gibt '<x>abcdef</x>','<custom_element>abcdef</custom_element>'
zurück:
CREATE VARIABLE @my_element_name VARCHAR(200); SET @my_element_name = 'custom_element'; SELECT XMLELEMENT( NAME x, 'abc', 'def' ), XMLELEMENT( @my_element_name,'abc', 'def' ); |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |