|
XML data type
The XML data type is used for Extensible Markup Language (XML)
documents.
The XML data type is used:
- To store XML documents that conform to the SQL/XML definition of a well-formed
XML(DOCUMENT(ANY)) value.
- Transiently for XML(SEQUENCE) values, that might not be well-formed XML(DOCUMENT(ANY))
values.
Note: For an application to retrieve, update, query, or otherwise
access an XML data value, the application must have classes for a JAXP parser
and for Xalan in the classpath. Derby issues
an error if either the parser or Xalan is not found. In some situations, you may
need to take steps to place the parser and Xalan in your classpath. See
"XML data types and operators" in the
Derby Developer's Guide for details.
Because none of the
JDBC-side support for SQL/XML is implemented in Derby,
it is not possible to bind directly into an XML value or to retrieve an XML
value directly from a result set using JDBC. Instead, you must bind and retrieve
the XML data as Java strings or character streams by explicitly specifying
the appropriate XML operators, XMLPARSE and XMLSERIALIZE, as part of your
SQL queries.
Corresponding compile-time Java typeNone
The
Java type for XML values is java.sql.SQLXML. However, the java.sql.SQLXML
type is not supported by Derby.
JDBC metadata type (java.sql.Types)None
The
metadata type for XML values is SQLXML. However, the SQLXML type is not supported
by Derby.
To retrieve
XML values from a Derby database
using JDBC, use the XMLSERIALIZE operator in the SQL query. For example: SELECT XMLSERIALIZE (xcol as CLOB) FROM myXmlTable
Then retrieve the XML value by using the getXXX method that corresponds to
the target serialization type, in this example CLOB data types.
To store
an XML value into a Derby database
using JDBC, use the XMLPARSE operator in the SQL statement. For example: INSERT INTO myXmlTable(xcol) VALUES XMLPARSE(
DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE)
Then use any of the setXXX methods that are compatible with String
types, in this example use the PreparedStatement.setString or PreparedStatement.setCharacterStream
method calls to bind the operator.
|