Derby supports
the XML data type and a set of operators that work with the XML data type.
The XML data type and operators are based on a small subset of the SQL/XML
specification.
The XML data type and operators are defined only in the SQL layer.
There is no JDBC-side support for XML data types. It is not possible to
bind directly into an XML value or to retrieve an XML value directly from
a result set. Instead, you must bind and retrieve the XML data as Java strings
or character streams by explicitly specifying the appropriate XML operator
as part of the SQL statements:
- Use the XMLPARSE operator for binding data into XML values.
- Use the XMLSERIALIZE operator to retrieve XML values from a result set.
Additionally, there is no JDBC metadata support for the XML data type.
The XML data type is not allowed in any of the clauses or operations that
are described in the section on expressions on LONG data types in
Derby and standards.
For the XML operators to work properly, Derby requires
that a JAXP parser, such as Apache Xerces, and Apache Xalan are included in
the Java classpath. If either the parser or Xalan are missing from the classpath, Derby disallows any XML-related
operations.
To see a list of the versions of the JAXP implementation and of Apache
Xalan that have been tested with Derby XML
support, see to the Derby release
notes. The release notes are available from the Apache Derby Downloads page.
Note: Most Java virtual machines (JVMs) that are version 1.4 or later have
a JAXP parser embedded in the JVM. If you are using one of these JVMs, you
do not need to add any other JAXP classes to your classpath. Additionally,
if the JVM that you are using includes an embedded version of Xalan, you should
confirm that the version of Xalan satisfies the minimum requirements for
Derby. For example, if your
JVM is Sun JDK 1.4.2, you must override the version of Xalan in the JVM with
a newer version. Use Java's Endorsed Standards Override Mechanisms described
at http://java.sun.com/j2se/1.4.2/docs/guide/standards/ to override the version
of Xalan.
If the JVM that you are using does not have a JAXP parser or
a version of Xalan, you can add external versions of those classes in your
classpath and Derby will
pick up those classes.