Atrybuty XSD

Wszystkie atrybuty są deklarowane jako proste typy.

Co to jest atrybut?

Proste elementy nie mogą mieć atrybutów. Jeśli element ma atrybuty, jest traktowany jako某种复合类型。Jednak atrybuty zawsze są deklarowane jako proste typy.

Jak zadeklarować atrybut?

Gramatyka definiowania atrybutu to:

<xs:attribute name="xxx" type="yyy"/>

W tym miejscu, xxx oznacza nazwę atrybutu, a yyy określa typ danych atrybutu. XML Schema ma wiele wbudowanych typów danych.

Najczęściej używane typy to:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

Przykład

To jest element XML z atrybutem:

<lastname lang="EN">Smith</lastname>

To jest odpowiednia definicja atrybutu:

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

Domyślne i stałe wartości atrybutu

Atrybut może mieć określoną wartość domyślną lub stałą.

Gdy nie określono innej wartości, wartość domyślna jest automatycznie przypisywana do elementu.

W poniższym przykładzie, wartość domyślna to "EN":

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

Stała wartość jest również automatycznie przypisywana do elementu, i nie możesz określić innej wartości.

W poniższym przykładzie, stała wartość to "EN":

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

Opcjonalne i obowiązkowe atrybuty

Domyślnie, atrybut jest opcjonalny. Aby określić, że atrybut jest obowiązkowy, użyj atrybutu "use":

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

Ograniczenia zawartości

Kiedy element XML lub atrybut ma zdefiniowany typ danych, dodaje się ograniczenia do zawartości elementu lub atrybutu.

Jeśli typ elementu XML to "xs:date", a zawartość to ciąg znaków podobny do "Hello World", element nie przejdzie walidacji.

Przez XML schema, możesz również dodać własne ograniczenia do swoich elementów XML oraz atrybutów. Te ograniczenia nazywane są facetami (zwykle przetłumaczone jako "strony wielościanu", ale tutaj można przetłumaczyć jako "ograniczenia"). Dowiesz się więcej o facetach w następnym rozdziale.