Top

Name

xml_auto_schema — returns an XML schema for the result of an SQL query with a FOR XML clause

Synopsis

varchar xml_auto_schema ( in query varchar ,
  in root_element varchar );
 

Description

This function returns an XML schema for the results of an SQL query with a FOR XML clause. The returned schema will apply to the output generated by xml_auto() with the query in question after wrapping it in the specified root element.

Parameters

query

SQL query

root_element

name of root element container

Return Types

varchar result containing the schema of the XML document.

Errors

If the query argument is not a valid SQL statement, i.e. SQL compiler signals an error message, the function resignals the error.

Examples

Example 24.509. Simple Schema Generation

SQL> select xml_auto_schema ('  select "category"."CategoryID", "CategoryName",
		"ProductName", "ProductID"
	from "Demo".."Categories" "category", "Demo".."Products" as "product"
	where "product"."CategoryID" = "category"."CategoryID"
	for xml auto element', 'root');
 callret
VARCHAR
_______________________________________________________________________________

<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">

 <xsd:annotation>
  <xsd:documentation>
   Schema for output of the following SQL statement:
   <[CDATA[  select "category"."CategoryID",
     "CategoryName", "ProductName", "ProductID"
     from "Demo".."Categories" "category",
     "Demo".."Products" as "product"
     where "product"."CategoryID" = "category"."CategoryID"
     for xml auto element]]>
  </xsd:documentation>
 </xsd:annotation>

 <xsd:element name="root" type="root__Type"/>

 <xsd:complexType name="root__Type">
  <xsd:element name="category" type="category_Type"
  minOccurs="0" maxOccurs="unbounded"/>
 </xsd:complexType>

 <xsd:complexType name="category_Type">
  <xsd:element name="CategoryID" type="xsd:int" precision="10"/>
  <xsd:element name="CategoryName" type="xsd:string" maxLength="15"/>
  <xsd:element name="product" type="product_Type" minOccurs="0" maxOccurs="unbounded"/>
 </xsd:complexType>

 <xsd:complexType name="product_Type">
  <xsd:element name="ProductName" type="xsd:string" maxLength="40"/>
  <xsd:element name="ProductID" type="xsd:int" precision="10"/>
 </xsd:complexType>

</xsd:schema>

1 Rows. -- 5 msec.