Name

xs:selector — Definition of the the path selecting an element for a uniqueness constraint.

Synopsis

<xs:selector
           id             = xs:ID
           xpath          = xs:token
           {any attributes with non-schema namespace}
           >
           Content: (xs:annotation?)
</xs:selector>

May be included in: xs:key, xs:keyref, xs:unique

Description

xs:selector is used to define the element on which a uniqueness constraint or reference is checked (it cannot be an attribute, since attributes are already unique per XML 1.0). It is identified by a relative XPath expression.

The constraint is checked while looping on the XPath expression is resolved relative to the root element of the constraint. It serves as the location from which xs:field XPath expressions are resolved.

Restrictions

The xpath attribute uses a simple subset of XPath 1.0. The motivation of the W3C XML Schema Working Group for defining this subset is to simplify the work of the implementers of schema processors, and also to define a subset that constrains the path to stay within the scope of the current element.

This subset is restricted to use the child only; self and descendant, and self XPath axes through their abbreviated syntaxes without including any test in any of the XPath location steps and without using any XPath functions. It is identical to the subset defined for xs:field, except that attributes are allowed in xs:field and forbidden in xs:selector.

The formal extended BNF given in the W3C Recommendation is as follow:

Selector ::= Path ( '|' Path )* Path ::= ('.//')? ...

Get XML Schema 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.