Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Especifica que el valor de un atributo o elemento (o conjunto de valores) debe ser una clave dentro del ámbito especificado. El ámbito de una clave es el elemento (element) contenedor en un documento de instancia. La clave indica que los datos deben ser únicos en un ámbito especificado, no aceptar valores nil y estar siempre presente.
<key
id = ID
name = NCName
{any attributes with non-schema Namespace}...>
Content: (annotation?, (selector, field+))
</key>
Atributos
id
Identificador de este elemento. El valor id debe ser de tipo ID y debe ser único dentro del documento que contiene este elemento.Opcional.
name
Nombre del elemento key. El nombre no debe incluir un signo de dos puntos (NCName), como se define en la especificación de los espacios de nombres XML.El nombre debe ser único en un conjunto de restricción de identidad.
Requerido.
Información del elemento
| Número de apariciones | Ilimitado |
| Elementos primarios | element |
| Contenido | annotation, field, selector |
Comentarios
El elemento key debe contener los siguientes elementos por orden.
| selector | El elemento selector contiene una expresión de XPath (XML Path Language) que especifica el conjunto de elementos en los que los valores especificados por elementos field deben ser únicos.
Sólo debe haber un elemento selector. |
| field | Cada elemento field contiene una expresión XPath que especifica los valores (valores de atributo o elemento) que deben ser únicos para el conjunto de elementos especificados por el elemento selector.
Si hay más de un elemento field, la combinación de los elementos field debe ser única. En este caso, los valores de un solo elemento field pueden ser o no únicos entre los elementos seleccionados pero la combinación de todos los elementos field debe ser única. Debe haber uno o varios elementos field. |
Ejemplo
En el ejemplo siguiente se define un elemento keyref que corresponde al elemento key en este esquema.
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="namespace1"
xmlns:r="namespace1"
elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="A" type="r:A" maxOccurs="unbounded">
<xs:keyref name="dummy" refer="r:pNumKey">
<xs:selector xpath="r:part"/>
<xs:field xpath="@ref-number"/>
</xs:keyref>
</xs:element>
<xs:element name="B" type="r:B"/>
</xs:sequence>
</xs:complexType>
<xs:key name="pNumKey">
<xs:selector xpath="r:B/r:part"/>
<xs:field xpath="@key-number"/>
</xs:key>
</xs:element>
<xs:complexType name="A">
<xs:sequence>
<xs:element name="part" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ref-number" type="xs:integer"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="B">
<xs:sequence>
<xs:element name="part" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="key-number" type="xs:integer"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Entrada: key.xml
<root xmlns="namespace1">
<A>
<!-- if the ref-number is not equal to one of the key-number, the validation will give error -->
<part ref-number="1"/>
</A>
<A>
<!-- if the ref-number is not equal to one of the key-number, the validation will give error -->
<part ref-number="2"/>
</A>
<B>
<part key-number="1"/>
<part key-number="2"/>
<part key-number="3"/>
</B>
</root>
Vea también
Referencia de esquemas XML (XSD) | Elementos de los esquemas XML
Para obtener más información, vea la parte 1: Structures Recommendation de XML Schema del W3C (World Wide Web Consortium), en http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-key.