Name
shallow — Returns a shallow copy of the given XML entity
Synopsis
entity
shallow
(
|
ent
entity
) ; |
Description
The function returns a shallow copy of the given XML entity, i.e. a root of a new document that consists of only one node that is a copy of the given entity but have no children.
Parameters
ent
The XML entity to copy
Return Types
The function returns an XML entity.
Errors
Table 24.150. Errors signalled by shallow()
SQLState | Error Code | Error Text | Description |
---|---|---|---|
XP001 | XPFD6 | The argument of XPATH function shallow() is not an entity | To match XQuery standard, the function signal an error if
ent
is not an entity.
|
XP001 | XPFD7 | Persistent XML entities are not supported by XPATH function shallow() | This is an artificial restriction that is to be removed in future versions of Virtuoso. |
Examples
Example 24.618. Find Martha's spouse
The idea of the following sample is from W3C's XQuery Use Cases (case 1.9.4.1.). The query should find all persons whose name is "Marta" and return entities that describes their spouses, with removed information about children.
-- read the document, then... let $doc := document("census.xml") -- for every person named "Martha"... for $m in $doc//person[@name="Martha"] -- for all (i.e. 0 or 1) her spouses... for $s in $m/@spouse => person -- return <person> element with attributes preserved but with children removed return shallow($s)