Element attribute w XML Schema

Definicja i użycie

Element attribute definiuje atrybut.

Informacje o elemencie

Częstotliwość występowania Definiowany raz w elemencie schema. Wskazywany wiele razy w typach złożonych lub grupach atrybutów.
Rodzic elementu attributeGroup、schema、complexType、restriction (simpleContent)、extension (simpleContent)、restriction (complexContent)、extension (complexContent)
Zawartość annotation、simpleType

Gramatyka

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=opcjonalne|zakazane|wymagane
any attributes
>
(annotation?,(simpleType?))
</attribute>

(? znak oznacza, że element może występować zero lub jeden raz w elemencie attribute.)

Atrybut

default

Opcjonalne. Określa wartość domyślną atrybutu. Atrybuty default i fixed nie mogą występować jednocześnie.

fixed

Opcjonalne. Określa stałą wartość atrybutu. Atrybuty default i fixed nie mogą występować jednocześnie.

form

Opcjonalne. Określa format atrybutu. Domyślna wartość to wartość atrybutu attributeFormDefault elementu schema. Można ustawić następujące wartości:

  • "qualified" - wskazuje, że atrybut musi być zdefiniowany za pomocą prefiksu przestrzeni nazw i bezwskazówkowego nazwiska (NCName).
  • "unqualified" - wskazuje, że atrybut nie wymaga prefiksu przestrzeni nazw, ani nie musi pasować do bezprefiksowej nazwy (NCName), czyli lokalnej nazwy.

id

Opcjonalnie. Określ unikalny ID elementu.

name

Opcjonalnie. Określ nazwę atrybutu. Atrybuty name i ref nie mogą występować razem.

ref

Opcjonalnie. Określ odniesienie do określonego atrybutu. Atrybuty name i ref nie mogą występować razem. Jeśli występuje ref, element simpleType, form oraz type nie mogą się pojawić.

type

Opcjonalnie. Określ wbudowany typ danych lub prosty typ. Atrybut type może pojawić się tylko, gdy zawartość nie zawiera elementu simpleType.

use

Opcjonalnie. Określ sposób użycia tego atrybutu. Można ustawić poniższe wartości:

  • optional - atrybut jest opcjonalny i może mieć każdą wartość (domyślna).
  • prohibited - nie można używać atrybutu.
  • required - atrybut jest wymagany.

any attributes

Opcjonalnie. Określ inne atrybuty z non-schema命名空间.

Przykład

Przykład 1

<xs:attribute name="code">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:attribute>

Powyższy przykład wskazuje, że atrybut "code" ma ograniczenie. Jedynymi akceptowalnymi wartościami są dwie litery wielkie A do Z.

Przykład 2

Aby użyć istniejącej definicji atrybutu w typie złożonym do deklarowania atrybutu, użyj atrybutu ref:

<xs:attribute name="code">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
  <xs:attribute ref="code"/>
</xs:complexType>

Przykład 3

Atrybut może mieć wartość domyślną, jak również określone stałe wartości. Gdy nie jest określona żadna inna wartość, automatycznie przypisuje się do atrybutu wartość domyślną. W poniższym przykładzie, wartością domyślną jest "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Gdy nie jest określona żadna inna wartość, automatycznie przypisuje się do atrybutu stałą wartość. Jednak w przeciwieństwie do wartości domyślnej, jeśli dla atrybutu określiłeś inną wartość niż stała, dokument zostanie zweryfikowany jako nieważny. W poniższym przykładzie, stałą wartością jest "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Przykład 4

Wszystkie atrybuty są domyślnie opcjonalne. Aby wyraźnie określić, że atrybut jest opcjonalny, użyj atrybutu "use":

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

Ustawienie atrybutu jako wymagane:

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