En son web geliştirme öğreticiler
 

XSD Kompleks elementler


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>