XML Şeması complexType unsuru
Tanım ve Kullanım
complexType unsuru, karma türü tanımlar. Karma türünün unsurları, diğer unsurlar ve/veya özellikler içeren XML unsurlarıdır.
elemanBilgisi
görünümSıklığı | şemada sınırsız; eleman içinde bir kez. |
öncekiEleman | eleman, yenidenTanımla, şema |
içerik | tanım, temelİçerik, karmaşıkİçerik, grup, hepsi, seçim, sıra, özellik, özellikGrubu, herhangibirÖzellik |
gramer
<complexType id=ID ad=NCAd soyut=true|false karışık=true|false blok=(#all|list of (ekleme|kısıtlama)) final=(#all|list of (ekleme|kısıtlama)) herhangi attributes > (tanım?, (temelİçerik|karmaşıkİçerik|((grup|hepsi|seçim|sıra), (özellik|özellikGrubu)*, herhangibirÖzellik?)))) (tanım?, (temelİçerik|karmaşıkİçerik|((grup|hepsi|seçim|sıra), (özellik|özellikGrubu)*, herhangibirÖzellik?)))) </complexType>
(? işareti complexType elemanında belirtilmiştir, eleman sıfır veya bir kez görünebilir, * işareti elemanın sıfır veya birkaç kez görünebileceğini belirler.)
özellikler
id
opsiyonel. Bu elemanın benzersiz ID'sini belirler.
ad
opsiyonel. Elemanın adını belirler.
soyut
opsiyonel. Örnek belgede karmaşık türün kullanılıp kullanılmadığını belirler. Bu değeri true ise, element doğrudan bu karmaşık türü kullanamaz, aksine bu karmaşık türden türetilmiş karmaşık tür kullanmalıdır. Varsayılan değeri false'dır.
karışık
opsiyonel. Karakter verilerinin karmaşık türün alt elemanları arasında ortaya çıkmasına izin verilip verilmediğini belirler. Varsayılan değeri false'dır.
- simpleContent elemanı alt eleman ise, mixed özelliği izin verilmez.
- complexContent elemanı alt eleman ise, bu mixed özelliği complexContent elemanının mixed özelliği tarafından yeniden tanımlanabilir.
blok
opsiyonel. Belirtilen türetilmiş türdeki karmaşık türlerin karmaşık türün yerine kullanılmasını önler. Bu değer #all veya bir listesi içerebilir, bu liste extension veya kısıtlama alt kümesi olabilir:
- ekleme - karmaşık türün yerine kullanılmak üzere türetilen karmaşık türlerin kullanılmasını önler.
- kısıtlama - karmaşık türün yerine kullanılmak üzere türetilen 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
Opsiyonel. Belirtilen karmaşık tür elementinden türemek için önlem alınan türleri önler. Bu değer #all veya bir listeyi içerebilir, bu liste genişletme veya sınırlama alt kümeleridir.
- extension - Genişletme yoluyla türemeyi önler.
- restriction - Sınırlama yoluyla türemeyi önler.
- #all - Tüm türetilmişleri (genişletme ve sınırlama) önler.
herhangi attributes
Opsiyonel. Şema dışı adlandırma alanına sahip herhangi bir diğer özelliği belirler.
Örnek
Örnek 1
Örneklerde "note" adlı karmaşık tür elementi var:
<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 bir karmaşık tür olan "fullpersoninfo", üç ilave element (address, şehir ve ülke) 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: