Name
XMLType.getRootElement — Returns top-level element of the given instance (NULL for fragment)
Synopsis
XMLType.getRootElement
(
|
); |
Description
If the given instance is well-formed then this function will return the top-level element of the document that is stored within the instance. If the given instance is a fragment then NULL will be returned because there may be no top-level elements or too many of them.
Note that in spite of this functions name this function actually
returns the a top-level node rather than not a root node. According to the
W3C XPATH standards, the root element is an implicit node whose children are top-level
elements, comments, processing instructions and maybe text nodes. E.g. if
a correct HTML document is started by tag <HTML>
and ended by corresponding </HTML>
tag
then the only top-level node is the "HTML
"
element node and this node is a single child of the root node.
If the given instance is well-formed then the function returns a top-level element of the document that is stored in the instance. If the given instance is fragment then NULL is returned, because there may be no top-level elements or too many of them.
If the given instance is schema-based then the returned instance is based on the same schema.
Return Types
The function returns an XMLType instance.
Examples
Example 24.552. A table with an XMLType column
First select statement lists well-formed documents; second one lists the only fragment in the table.
create table TEST_XMLS (I integer primary key, XMLVAL XMLType);
insert into TEST_XMLS values (1, XMLType('<emp><empno>221</empno><ename>John</ename></emp>'));
insert into TEST_XMLS values (2, XMLType('<po><pono>331</pono><poname>PO_1</poname></po>'));
insert into TEST_XMLS values (3, XMLType('<oil-rig
xml:id="14a_04" water="0.413"/><oil-rig
xml:id="14b_04" water="0.402"/>'));
select e.I, e.XMLVAL.getRootElement().getClobVal()
from TEST_XMLS as e
where e.XMLVAL.getRootElement() is not null
I callret
INTEGER NOT NULL NVARCHAR
_______________________________________________________________________________
1 <emp><empno>221</empno><ename>John</ename></emp>
2 <po><pono>331</pono><poname>PO_1</poname></po>
2 Rows. -- 00000 msec.
select e.I, e.XMLVAL.getClobVal()
from TEST_XMLS as e
where e.XMLVAL.getRootElement() is null
I callret
INTEGER NOT NULL NVARCHAR
_______________________________________________________________________________
3 <oil-rig
xml:id="14a_05" water="0.413" /><oil-rig
xml:id="14b_05" water="0.402" />
1 Rows. -- 00000 msec.