element de esquema XML
Definición y uso
El elemento element define un elemento.
Información del elemento
Número de apariciones | Número de elementos definidos en el esquema. |
Elemento padre | schema, choice, all, sequence |
Contenido | simpleType, complexType, key, keyref, unique |
Sintaxis
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|sin límite minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|lista de (extension|restriction)) final=(#all|lista de (extension|restriction)) cualquier atributos > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(El símbolo ? se declara en el elemento element, que puede aparecer cero o una vez, y el símbolo * se declara para que el elemento pueda aparecer cero o varias veces.).
Atributo
id
Opcional. Define un ID único para este elemento.
name
Opcional. Define el nombre del elemento. Si el elemento padre es un elemento schema, esta propiedad es obligatoria.
ref
Opcional. Referencia a otro elemento. La propiedad ref puede contener un prefijo de espacio de nombres. Si el elemento padre es un elemento schema, no se utiliza esta propiedad.
type
Opcional. Define el nombre del tipo de datos integrado, o el nombre del elemento simpleType o complexType.
substitutionGroup
Opcional. Define el nombre del elemento que se puede utilizar como sustituto de este elemento. Este elemento debe tener el mismo tipo o ser derivado del tipo especificado.
No se puede usar esta propiedad si el elemento padre no es un elemento schema.
default
Opcional. Establece un valor predeterminado para el elemento (solo se utiliza cuando el contenido del elemento es de tipo simple o textOnly).
fixed
Opcional. Establece un valor fijo para el elemento (solo se utiliza cuando el contenido del elemento es de tipo simple o textOnly).
form
opcional. La forma del elemento. El valor predeterminado es el valor de la propiedad elementFormDefault del elemento schema que contiene la propiedad. Este valor debe ser una de las siguientes cadenas: "qualified" o "unqualified".
No se puede usar este atributo si el elemento padre es el elemento schema.
- Si este valor es "unqualified", no es necesario limitar el elemento mediante un prefijo de espacio de nombres.
- Si este valor es "qualified", debe limitarse el elemento mediante un prefijo de espacio de nombres.
maxOccurs
opcional. Regula la cantidad máxima de veces que el elemento element puede aparecer en el elemento padre. Este valor puede ser un entero mayor o igual a cero. Si no se desea establecer ningún límite para la cantidad máxima, utilice la cadena "unbounded". El valor predeterminado es 1.
No se puede usar este atributo si el elemento padre es el elemento schema.
minOccurs
opcional. Regula la cantidad mínima de veces que el elemento element puede aparecer en el elemento padre. Este valor puede ser un entero mayor o igual a cero. El valor predeterminado es 1.
No se puede usar este atributo si el elemento padre es el elemento schema.
nillable
opcional. Indica si se puede asignar un valor cero explícito a este elemento. Esta opción se aplica al contenido del elemento y no es un atributo del elemento. El valor predeterminado es false.
Si nillable es true, permitirá que la instancia del elemento pueda establecer el atributo nil como true. El atributo nil se define como parte del espacio de nombres de esquema de la instancia.
Por ejemplo, el siguiente segmento define un solo elemento y configura nillable como true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
El siguiente segmento utiliza este elemento y tiene un valor cero explícito (el atributo nil está configurado como true).
<myDate xsi:nil="true"></myDate>
abstract
opcional. Indica si el elemento puede ser utilizado en el documento de instancia. Si el valor es true, el elemento no puede aparecer en el documento de instancia. Por el contrario, los elementos que contienen el QName de la propiedad substitutionGroup deben aparecer en la posición del elemento. Se pueden referenciar varios elementos en la propiedad substitutionGroup. El valor predeterminado es false.
block
opcional. Tipo derivado. La propiedad block impide que los elementos con un tipo derivado especificado se utilicen para reemplazar el elemento. Este valor puede contener #all o una lista, que es un subconjunto de extension, restriction o substitution:
- extensión - previene que los elementos derivados a través de la extensión se utilicen para reemplazar el elemento.
- restriction - Evita que los elementos derivados a través de restricción se utilicen para reemplazar este elemento.
- substitution - Evita que los elementos derivados a través de sustitución se utilicen para reemplazar este elemento.
- #all - Evita que todos los elementos derivados se utilicen para reemplazar este elemento.
final
Opcional. Establece el valor predeterminado del atributo final del elemento. Si el elemento padre no es un elemento schema, no se puede usar este atributo. Este valor puede contener #all o una lista, que es un subconjunto de extension o restriction:
- extension - Evita que los elementos derivados a través de extensión se utilicen para reemplazar este elemento
- restriction - Evita que los elementos derivados a través de restricción se utilicen para reemplazar este elemento
- #all - Evita que todos los elementos derivados se utilicen para reemplazar este elemento
cualquier atributos
Opcional. Define cualquier otro atributo con un espacio de nombres no de esquema.
Ejemplo
Ejemplo 1
El siguiente ejemplo es un esquema que contiene cuatro elementos simples: "fname", "lname", "age" y "dateborn", los tipos son string, nonNegativeInteger y date:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
Ejemplo 2
El siguiente ejemplo es un esquema que contiene un elemento de tipo complejo "note". El elemento "note" contiene cuatro elementos simples: "to", "from", "heading" y "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Ejemplo 3
Este ejemplo es idéntico al ejemplo 2, pero en este caso, hemos elegido utilizar el atributo ref para referenciar el nombre del elemento:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>