Name
xs:field
Synopsis
<xs:field id = "ID
" xpath = "XPath expression
"> <!-- (xs:annotation?) --> </xs:field>
One or more xs:field
elements are placed inside each xs:unique
, xs:key
, and xs:keyref
element to define a value
calculated by the XPath expression in the xpath
attribute. The context node for
this expression is set in turn to each element in the node set
selected by the xs:selector
element.
Not all XPath expressions are allowed here. In particular,
the XPath expression must limit itself to the child axis, except
for the last step, which may use the attribute axis. The only node
tests used are name tests (element and attribute names, the
*
wildcard, and the
prefix
:*
wildcard). Abbreviated syntax must be
used, and predicates are not allowed. Thus, person/name/first_name/@id
is a legal
XPath expression for this attribute, but person//name/@id
is not. Several
instances of this restricted form of XPath expression can be
combined with the vertical bar so that person/name/first_name/@id |
person/name/last_name/@id
is also an acceptable XPath
expression. Finally, the XPath expression may begin with .//
so that .//name/@id
is legal. However, this is
the only place the descendant-or-self axis can be used. No other
forms of XPath expression are allowed here.
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.