En son web geliştirme öğreticiler
 

XSD Eleman değişikliği


XML şemaları ile, bir öğenin başka eleman yerine kullanabilirsiniz.


eleman değişikliği

İngiltere ve Norveç'te: en iki farklı ülke kullanıcıları var diyelim. Biz kullanıcı o XML belgesinde Norveçli öğe adları veya İngiliz öğe adları kullanmak isteyip istemediğinizi seçmesine izin yeteneği istiyorum.

Bu sorunu çözmek için, bir tanımlayabiliriz substitutionGroup XML şemasında. Önce bir kafa elemanı ilan edip sonra biz onlar kafa elemanı için ikame edilebilir belirtmektedirler diğer elemanları beyan ederim.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

Yukarıdaki örnekte, "name" eleman baş elemanıdır ve "navn" öğesi için değiştirilebilir olan, "name" .

XML şemanın bu fragmana bak:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Geçerli bir XML belgesi (according to the schema above) aşağıdaki gibi görünebilir:

<customer>
  <name>John Smith</name>
</customer>

ya böyle:

<kunde>
  <navn>John Smith</navn>
</kunde>

Eleman Değişiklik Engelleme

Belirli bir elemanı ile ikame diğer elemanları önlemek için, kullanımı block özelliği:

<xs:element name="name" type="xs:string" block="substitution"/>

XML şemanın bu fragmana bak:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Geçerli bir XML belgesi (according to the schema above) aşağıdaki gibidir:

<customer>
  <name>John Smith</name>
</customer>

ANCAK BU ARTIK GEÇERLİ OLDUĞU:

<kunde>
  <navn>John Smith</navn>
</kunde>

substitutionGroup kullanma

sübstitüe elemanlarının türü ile aynı ya da kafa elemanının türü, türetilen olmalıdır. ikame elemanın tipi baş elemanının türüyle aynı değilse sen yerine konabilir elemanın türünü belirtmek gerek kalmayacak.

aksi takdirde çalışmaz, substitutionGroup tüm unsurları (baş elemanı ve yerine konabilir elementler) küresel elemanlar olarak ilan edilmesi gerektiğini unutmayın!


Küresel Elemanları nelerdir?

Küresel elemanları derhal çocuklardır unsurlardır "schema" eleman! Yerel unsurlar diğer öğelerin içinde yuvalanmış unsurlardır.