Karmaşık bir eleman diğer elemanları ve / veya özelliklerini içerir.
Bir Kompleks Eleman nedir?
Karmaşık bir eleman diğer elemanları ve / veya özelliklerini içeren bir XML öğesidir.
Karmaşık elemanların dört türü vardır:
- boş elemanlar
- Sadece diğer elementleri içeren elemanlar
- Yalnızca metin içeren unsurlar
- hem diğer elemanları ve metin içeren unsurlar
Note: Bu unsurların her biri de özelliklerini içerebilir!
Kompleks Elementlerin örnekleri
Karmaşık bir XML öğesi, "product" boş,:
<product pid="1345"/>
Karmaşık bir XML öğesi, "employee" sadece diğer öğeleri içerir:
<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
Karmaşık bir XML öğesi, "food" yalnızca metin içeren:
<food type="dessert">Ice cream</food>
Karmaşık bir XML öğesi, "description" iki elemanı ve metin içeren,:
<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>
Bir Kompleks Eleman tanımla Nasıl
Bu karmaşık XML öğesi, bak "employee" sadece diğer öğeleri içerir:
<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
Biz bir XML Şeması iki farklı şekilde karmaşık bir elemanını tanımlayabilirsiniz:
1. "employee" öğesi şöyle, eleman adlandırarak doğrudan bildirilebilir:
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Yukarıda açıklanan yöntemi kullanırsanız, sadece "employee" öğesi belirtilen kompleks türünü kullanabilirsiniz. Alt öğeler, unutmayın "firstname" ve "lastname" , ile çevrilidir <sequence> göstergesi. Bu beyan edildiği şekilde alt öğeler aynı sırada gösterilmelidir. Sen XSD Göstergeler bölümde göstergeleri hakkında daha fazla öğreneceksiniz.
2. "employee" eleman kullanmak karmaşık tür adına başvuran bir type özelliğine sahip olabilir:
<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Yukarıda açıklanan yöntemi kullanırsanız, birkaç elemanlar böyle aynı kompleks tipi, bakabilirsiniz:
<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Ayrıca, mevcut bir kompleks eleman üzerinde karmaşık bir elemanını dayandırmak ve bu gibi bazı elementleri, ekleyebilirsiniz:
<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>