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>