You can use the result of this operator temporarily or you can
store the result permanently in XML
columns. Whether temporary or permanent, you can use the XML value as an
input to the other XML
operators, such as XMLEXISTS and XMLQUERY.
SyntaxXMLPARSE (DOCUMENT string-value-expression PRESERVE WHITESPACE)
- DOCUMENT
-
Required keyword that describes the type of XML input that can
parse. can only
parse string expressions that constitute well-formed XML documents. This
is because uses a
JAXP parser to parse all string values. The JAXP parser expects the string-value-expression
to constitute a well-formed XML document. If the string does not constitute
a well-formed document, JAXP throws an error. catches
the error and throws the error as a SQLException.
- string-value-expression
- Any expression that evaluates to a SQL character type, such as CHAR, VARCHAR,
LONG VARCHAR, or CLOB. The string-value-expression argument
can also be a parameter. You must use the CAST function when you specify the
parameter to indicate the type of value that is bound into the parameter. must verify that the
parameter is the correct data type before the value is parsed as an XML document.
If a parameter is specified without the CAST function, or if the CAST is
to a non-character datatype, throws
an error.
- PRESERVE WHITESPACE
- Required keywords that describe how handles
whitespace between consecutive XML nodes. When the PRESERVE WHITESPACE keywords
are used, preserves
whitespace as dictated by the SQL/XML rules for preserving whitespace.
For more information on what constitutes a well-formed XML
document, see the following specification: http://www.w3.org/TR/REC-xml/#sec-well-formed .
The SQL/XML standard dictates that the argument
to the XMLPARSE operator can also be a binary string. However, only
supports character string input for the XMLPARSE operator.
ExamplesTo insert a simple XML document into the xcol XML
column in the x_table table, use the following statement: INSERT INTO x_table VALUES
(1,
XMLPARSE(DOCUMENT '
<roster>
<student age="18">AB</student>
<student age="23">BC</student>
<student>NOAGE</student>
</roster>'
PRESERVE WHITESPACE)
)
To insert a large XML document into the xcol XML
column in the x_table table, from JDBC use the following
statement: INSERT INTO x_table VALUES
(2,
XMLPARSE (DOCUMENT CAST (? AS CLOB) PRESERVE WHITESPACE)
)
You should bind into the statement using the setCharacterStream()
method, or any other JDBC setXXX method that works for the CAST target type.
Usage note requires
that a JAXP parser, such as Apache Xerces, and that Apache Xalan are listed
in the Java classpath for the XML functions to work. If either the JAXP parser
or Xalan is missing from the classpath, attempts to use the XMLPARSE operator
will result in an error.