Name

xs:field — Definition of the field to use for a uniqueness constraint.

Synopsis

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

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

Description

xs:field is used to define the location of the fields on which a uniqueness constraint or reference will be checked.

The fields are elements or attributes that are identified by relative XPath expressions (i.e., xpath attributes) evaluated against the nodes selected by the xs:selector element.

Concatenated keys can be expressed defining multiple fields under a xs:unique, xs:key, or xs:keyref element.

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 constraints the path to stay within the scope of the current element.

This subset is restricted to using only the child, attribute, self, and descendant or 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:selector, except that attributes are allowed in xs:field and forbidden in xs:selector.

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

Field ::= Path ( '|' Path )* Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) 
Step ::= '.' | NameTest NameTest ::= QName | '*' | NCName ':' '*'

When concatenated keys are defined, the node sets identified by each field must have a single occurrence per iteration of locator. This means that on structures such as:

<sect num="1">
  <sub-sect num="1"> Sub section 1.1 </sub-sect> 
  <sub-sect num="2"> Sub section 1.2 </sub-sect> 
</sect> 
<sect num="1"> 
  <sub-sect num="3"> Sub section 1.3 </sub-sect> 
  <sub-sect num="4"> Sub section 1.4 </sub-sect> 
</sect>

multilevel concatenated keys over the num attributes of sect and sub-sect cannot be defined with W3C XML Schema. This is because the locator would need to iterate on the sect element, and the num attribute of the sub-sect element then takes several values for each iteration.

Example

<xs:element name="library">
  <xs:complexType>
    .../...
  </xs:complexType>
  <xs:unique name="book">
    <xs:selector xpath="book"/>
    <xs:field xpath="isbn"/>
  </xs:unique>
</xs:element>

Attributes

id

W3C XML Schema’s element ID.

xpath

Relative XPath expression identifying the field(s) composing the key, key reference, or unique constraint.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.67.26