XML Schema complexType-element
Definition och användning
complexType-element definierar komplexa typer. Elementen i den komplexa typen är XML-element som innehåller andra element och/eller egenskaper.
Elementinformation
Antal förekomster | Inom ramverket är det obegränsat; inom elementet är det en gång. |
Föräldrelement | element, omdefiniera, schema |
Innehåll | anteckning, enkelInnehåll, komplexInnehåll, grupp, alla, val, sekvens, egenskap, egenskapsgrupp, allaEgenskaper |
Grammatik
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|lista av (utökning|restriktion)) final=(#all|lista av (utökning|restriktion)) alla attribut > (anteckning?,(enkelInnehåll|komplexInnehåll|((grupp|alla| choice|sequence)?,((egenskap|egenskapsgrupp)*,allaEgenskaper?)))) </complexType>
(? Teckenförklaringen finns i elementet complexType, elementet kan förekomma noll eller en gång, *-teckenförklaringen kan förekomma noll eller flera gånger.)
Egenskaper
id
Valfritt. Bestämmer det unika ID:t för elementet.
name
Valfritt. Bestämmer elementets namn.
abstract
Valfritt. Bestämmer om den komplexa typen får användas i instansdokumentet. Om värdet är true får inte elementet använda den komplexa typen direkt, utan måste använda en komplex typ som härleds från den komplexa typen. Standardvärdet är false.
mixed
Valfritt. Bestämmer om tecken数据 får förekomma mellan underelementen för den komplexa typen. Standardvärdet är false.
- Om elementet simpleContent är ett underelement är egenskapen mixed inte tillåten.
- Om elementet complexContent är ett underelement kan egenskapen mixed skrivas över av egenskapen mixed för elementet complexContent.
block
Valfritt. Förhindra att den komplexa typen med den specificerade härledande typen används för att ersätta den komplexa typen. Värdet kan innehålla #all eller en lista, som är en delmängd av utökning eller restriktion:
- utökning - Förhindra att den komplexa typen som härleds genom att utöka används för att ersätta den komplexa typen.
- restriktion - Förhindra att den komplexa typen som härleds genom att begränsa används för att ersätta den komplexa typen.
- #all - Förhindra att allaled av komplexa typer används för att ersätta denna komplexa typ.
slutgiltigt
Valfritt. Förhindra att specifika typer härstammar från detta komplexa typ element. Värdet kan innehålla #all eller en lista som är en del av utökning eller begränsning.
- utökning - Förhindra attled genom utökning.
- begränsning - Förhindra attled genom begränsning.
- #all - Förhindra allaled (utökning och begränsning).
alla attribut
Valfritt. Specificera eventuella andra attribut med non-schema namnrymd.
Exempel
Exempel 1
I ett exempel har vi en komplex typ element med namnet "note":
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Exempel 2
I ett exempel finns en komplex typ "fullpersoninfo" som utökar den innehållande typen genom att använda tre tilläggselement (address, city och country) och härstammar från en annan komplex typ "personinfo":
<xs:element name="employee" type="fullpersoninfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
I de ovanstående exemplen måste "employee"-elementet ovan inkludera följande element i rätt ordning: "firstname", "lastname", "address", "city" och "country".