Element anyAttribute w XML Schema

definicja i użycie

Element anyAttribute pozwala twórcom rozszerzyć dokument XML za pomocą atrybutów niezdefiniowanych przez schema.

informacje o elemencie

projekt opis
ilość wystąpień nieograniczony
rodzice complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent), attributeGroup
zawartość annotation

gramatyka

<anyAttribute
id=ID
namespace=namespace
processContents=lax|skip|strict
dowolne atrybuty
>
( annotacja?)
</anyAttribute>

(? znak oznacza, że element może pojawić się zero lub jeden raz w elementie anyAttribute).

Atrybuty

id

Opcjonalnie. Określa unikalny ID tego elementu.

namespace

Opcjonalnie. Określa przestrzeń nazw, która zawiera elementy do użycia. Jeśli nie określono przestrzeni nazw, wartością domyślną jest ##any. Jeśli określono przestrzeń nazw, musi to być jedna z poniższych wartości.

  • ##any - Elementy z każdej przestrzeni nazw mogą się pojawiać (domyślnie).
  • ##other - Elementy z każdej innej przestrzeni nazw poza przestrzenią nazw ojca mogą się pojawiać.
  • ##local - Elementy nieograniczone przestrzenią nazw mogą się pojawiać.
  • ##targetNamespace - Elementy z przestrzeni nazw ojca, która zawiera ten element, mogą się pojawiać.
  • lista odniesień URI przestrzeni nazw, ##targetNamespace, ##local - elementy z listy przestrzeni nazw oddzielonych spacjami mogą zawierać następujące zawartości: odniesienia URI przestrzeni nazw ##targetNamespace i ##local.

processContents

Opcjonalnie. Wskazówka dla aplikacji lub przetwornika XML, jak przetwarzać walidację dokumentu XML na podstawie elementów określonych przez ten element any. Jeśli nie określono atrybutu processContents, wartością domyślną jest strict. Jeśli określono processContents, musi to być jedna z poniższych wartości.

  • strict - Przetwornik XML musi uzyskać strukturę przestrzeni nazw wymaganej i musi sprawdzić wszystkie elementy z tych przestrzeni nazw. (domyślnie)
  • lax - Jak strict; ale nie występuje żaden błąd, nawet jeśli nie można uzyskać tej struktury.
  • pomiń - Przetwornik XML nie sprawdza wszystkich elementów z określonej przestrzeni nazw.

dowolne atrybuty

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

Przykład

Poniżej znajduje się przykład deklaracji dla elementu "person". Używając elementu <anyAttribute>, twórca może dodać dowolną liczbę atrybutów do elementu "person":

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
    <xs:anyAttribute/>
  </xs:complexType>
</xs:element>