Compartir a través de


Elemento <xsd:attribute>

Declara un atributo.

<attribute
  default = string
  fixed = string
  form = (qualified | unqualified)
  id = ID
  name = NCName
  ref = QName
  type = QName
  use = (optional | prohibited | required): optional
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleType?))
</attribute>

Atributos

  • default
    El atributo tiene un valor predeterminado. Si el atributo no se especifica en una instancia de un documento XML, tiene el valor dado. Si no está presente en el documento de instancia, debe aparecer en el conjunto de información posterior a la validación del esquema. Los procesadores del esquema actuarían como si el atributo se hubiera especificado con el valor predeterminado si no estaba realmente en el documento de instancia. Los atributos Default y fixed no pueden estar presentes a la vez.

    Opcional.

  • fixed
    El atributo tiene un valor fijo. Si el atributo está presente en un documento de instancia, su valor debe ser igual al valor fijo dado. Si no está presente, recibe el valor proporcionado. Los atributos Default y fixed no pueden estar presentes a la vez.

    Opcional.

  • form
    Formato del atributo. El valor predeterminado es el del atributo attributeFormDefault del elemento schema que contiene el atributo. El valor debe ser una de las cadenas siguientes: "qualified" o "unqualified".

    Si el valor es unqualified, no se requiere que este atributo se certifique con el prefijo del espacio de nombres y se compara con el nombre sin signos de dos puntos (NCName) del atributo (nombre local).

    Si el valor es qualified, este atributo debe ser certificado mediante la combinación del targetNamespace del esquema y el NCName del atributo.

    Opcional.

  • 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.

  • nombre
    El nombre del atributo. El nombre debe ser un NCName, como se define en la especificación de los espacios de nombres XML. Se requiere si el elemento contenedor es el elemento schema. Los atributos Name y ref no pueden estar presentes a la vez.

    Cuando un documento XML se valida con respecto a un esquema, cada atributo del documento se valida con respecto al elemento attribute del esquema.

    Opcional.

  • ref
    Nombre de un atributo declarado en este esquema (u otro esquema indicado por el espacio de nombres especificado). El valor de ref debe ser un nombre completo (QName). El tipo puede incluir un prefijo de espacio de nombres. Los atributos Name y ref no pueden estar presentes a la vez. Si ref está presente, los elementos simpleType, form y type no pueden estar presentes.

    Para declarar un atributo mediante una definición de atributo existente en un tipo complejo, utilice el atributo ref para especificar la definición del atributo existente.

    <xs:attribute name="mybaseattribute">
      <xs:simpleType>
       <xs:restriction base="xs:integer">
          <xs:maxInclusive value="1000"/>
       </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:complexType name="myComplexType">
      <xs:attribute ref="mybaseattribute"/>
    </xs:complexType>
    

    Opcional.

  • type
    Nombre de un tipo de datos integrado o un tipo simple definido en este esquema (u otro esquema indicado por el espacio de nombres especificado). El tipo debe ser QName. El tipo puede incluir un prefijo de espacio de nombres. El atributo type solo puede estar presente cuando el contenido no incluya un elemento simpleType.

    Opcional.

  • use
    Indicador de cómo se utiliza el atributo.

    Si se especifica, este atributo debe tener uno de los valores siguientes.

    optional

    El atributo es opcional y puede tener cualquier valor. Éste es el valor predeterminado. Los siguientes procedimientos son equivalentes.

    <xs:attribute name="myattr" type="xs:string"/>
    <xs:attribute name="myattr" type="xs:string" use="optional"/>

    prohibited

    El atributo no puede utilizarse. Este atributo se utiliza en una restricción de otro tipo complejo para evitar el uso de los atributos existentes.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    required

    El atributo debe aparecer una vez.

    Se requiere el atributo y puede contener cualquier valor permitido por esta definición de tipo del atributo.

    <xs:attribute name="myattr" type="xs:string" use="required"/>

    Este atributo se usa en una restricción o extensión de otro tipo complejo, para requerir que un atributo o atributos especificados estén presentes.

    <xs:complexType name="A">
      <xs:attribute name="x" type="xs:NCName"/>
      <xs:attribute name="y" type="xs:QName"/>
     </xs:complexType>
    

    <xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>

    Si se declara el atributo como global (su elemento primario es schema), se requiere en todos los elementos del esquema.

    Opcional.

Información del elemento

Número de apariciones

Se define una vez en el elemento schema. Se hace referencia varias veces en tipos complejos o grupos de atributos.

Elementos primarios

attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)

Contenido

annotation, simpleType

Notas

Una declaración de atributos asocia un nombre con una definición de tipo, que puede ser un tipo de datos integrado o un tipo simple.

Las declaraciones de atributos pueden estar presentes como elementos secundarios de los elementos schema, complexType y attributeGroup (con ámbito global) o en definiciones de tipos complejos. Para los tipos complejos, las declaraciones de atributos pueden estar presentes en forma de declaraciones locales o de referencias a atributos con ámbito global.

Además, los atributos pueden aparecer por referencia dentro de elementos attributeGroup y complexType.

Ejemplos

En el ejemplo siguiente se declara un atributo por referencia a un tipo integrado con el valor predeterminado test y se usa en un elemento complexType.

En el ejemplo siguiente un atributo required se declara directamente dentro de un elemento complexType.

En el ejemplo siguiente se declara un atributo mediante la derivación del tipo entero integrado (por restricción) y la restricción del intervalo de valores entre "60" y "95", ambos incluidos.

En el ejemplo siguiente se declara un atributo como una lista que contiene valores decimales. Esto permite a un atributo como shoeSizes="10.5 9 8 11" contener una lista de los valores 10.5, 9, 8 y 11.

Otros recursos

Para obtener más información, vea la parte 1 sobre recomendación sobre estructuras de esquema XML en W3C en la dirección www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all.

Vea también

Referencia

Referencia de esquemas XML (XSD)
Elementos de los esquemas XML