Query results as XML

SQL Anywhere supports two different ways to obtain query results from your relational data as XML:

  • FOR XML clause   The FOR XML clause can be used in a SELECT statement to generate an XML document.

  • SQL/XML   SQL Anywhere supports functions based on the draft SQL/XML standard that generate XML documents from relational data.

The FOR XML clause and the SQL/XML functions supported by SQL Anywhere give you two alternatives for generating XML from your relational data. You can usually use one or the other to generate the same XML.

For example, this query uses FOR XML AUTO to generate XML:

SELECT ID, Name
FROM Products
WHERE Color='black'
FOR XML AUTO;

The following query uses the XMLELEMENT function to generate XML:

SELECT XMLELEMENT(NAME product,
          XMLATTRIBUTES(ID, Name))
FROM Products
WHERE Color='black';

Both queries generate the following XML (the result set has been formatted to make it easier to read):

<product ID="302" Name="Tee Shirt"/>
<product ID="400" Name="Baseball Cap"/>
<product ID="501" Name="Visor"/>
<product ID="700" Name="Shorts"/>
 Tip
 See also

Use of the FOR XML clause to retrieve query results as XML
Using FOR XML RAW
Using FOR XML AUTO
Using FOR XML EXPLICIT