XML Schema complexType elementi
Tanım ve kullanım
complexType elementi karmaşık tür tanımı yapar. Karmaşık tür elementi, diğer elementler ve/veya özellikler içeren XML elementidir.
Element bilgisi
Görünüm sıklığı | Mimari içinde sınırsızdır; element içinde bir defa. |
Ana element | element、redefine、schema |
İçerik | annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
Gramer
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|list of (extension|restriction)) final=(#all|list of (extension|restriction)) herhangi özellikler > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>
(? işareti complexType öğesinde belirtilmiş olup, öğe sıfır veya bir kez ortaya çıkabilir,* işareti belirtilmiş öğe sıfır veya çok kez ortaya çıkabilir。)
Özellikler
id
İsteğe bağlı. Bu öğenin benzersiz ID'sini belirler.
name
İsteğe bağlı. Elemanın adını belirler.
abstract
İsteğe bağlı. Örnek belgede karmaşık türün kullanılıp kullanılmadığını belirler. Bu değer true ise, element doğrudan bu karmaşık türü kullanamaz, bunun yerine bu karmaşık türden türetilmiş karmaşık türler kullanılmalıdır. Varsayılan değeri false'dır.
mixed
İsteğe bağlı. Karakter verilerinin bu karmaşık türün alt öğeleri arasında ortaya çıkmasına izin verilip verilmediğini belirler. Varsayılan değeri false'dır.
- simpleContent öğesi bir alt öğe ise, mixed özelliği kullanılmaz.
- complexContent öğesi bir alt öğe ise, bu mixed özelliği complexContent öğesinin mixed özelliği tarafından yeniden yazılabilir.
block
İsteğe bağlı. Belirli türetilmiş türleri içeren karmaşık türlerin bu karmaşık türün yerine kullanılmasını önlemek için kullanılır. Bu değer #all veya bir listeyi içerebilir, bu liste extension veya restriction'un bir alt kümesidir:
- extension - Bu karmaşık türün yerine kullanılmasını önlemek için genişletme yoluyla türetilmiş karmaşık türlerin kullanılmasını önler.
- restriction - Bu karmaşık türün yerine kullanılmasını önlemek için sınırlama yoluyla türetilmiş karmaşık türlerin kullanılmasını önler.
- #all - Tüm türetilmiş karmaşık türlerin bu karmaşık türün yerine kullanılmasını önler.
final
İsteğe bağlı. Bu complexType öğesinden türetilen belirli türleri önlemek için kullanılır. Bu değer #all veya bir listeyi içerebilir, bu liste extension veya restriction'un bir alt kümesidir.
- genişletme - Genişletme yoluyla türemeyi önler.
- kısıtlama - Kısıtlama yoluyla türemeyi önler.
- #all - Tüm türevleri (genişletme ve kısıtlama) önler.
herhangi özellikler
Opsiyonel. Şema dışı adlı alan adına sahip herhangi bir diğer özelliği belirtir.
Örnek
Örnek 1
Örneklerde, "note" adlı karmaşık tür elementi vardır:
<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>
Örnek 2
Örneklerde, "fullpersoninfo" adlı karmaşık tür, üç ek element (address, city ve country) kullanarak miras alınan türü genişletir ve "personinfo" karmaşık türünden türetilir:
<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>
Yukarıdaki örnekte, yukarıdaki "employee" elemanının "firstname", "lastname", "address", "city" ve "country" elemanlarını sırayla içermesi gerekmektedir.