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>