XML Eğitimi

XML ANA SAYFA XML'e Giriş XML nasıl kullanılır XML Ağacı XML Sözdizimi XML Öğeleri XML Öznitelikleri XML Ad Alanları XML Görüntüleme XML HttpTalebi XML Ayrıştırıcı XML DOM'si XML XPath'i XML XSLT'si XML XQuery XML Bağlantısı XML Doğrulayıcı XML DTD'si XML Şeması XML Sunucusu XML Örnekleri XML Testi XML Sertifikası

XML AJAX'ı

AJAX Tanıtımı AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

XML DOM'si

DOM Tanıtımı DOM Düğümleri DOM Erişimi DOM Düğümü Bilgisi DOM Düğüm Listesi DOM Geçişi DOM Gezinme DOM Değerleri Al DOM Değişiklik Düğümleri DOM Düğümleri Kaldır DOM Düğümleri Değiştir DOM Oluşturma Düğümleri DOM Düğüm Ekle DOM Klon Düğümleri DOM Örnekleri

XPath Eğitimi

XPath Giriş XPath Düğümleri XPath Sözdizimi XPath Eksenleri XPath Operatörleri XPath Örnekleri

XSLT Eğitimi

XSLT'ye Giriş XSL Dilleri XSLT Dönüşümü XSLT <şablon> XSLT <değeri> XSLT <her biri için> XSLT <sıralama> XSLT <if> XSLT <seç> XSLT Uygula İstemcide XSLT Sunucuda XSLT XSLT Düzenleme XML'i XSLT Örnekleri

XQuery Eğitimi

XQuery Tanıtımı XQuery Örneği XQuery FLWOR'u XQuery HTML'si XQuery Terimleri XQuery Sözdizimi XQuery Ekle XQuery Seçimi XQuery İşlevleri

XML DTD'si

DTD Giriş DTD Yapı Taşları DTD Elemanları DTD Özellikleri DTD Elemanları vs Attr DTD Varlıkları DTD Örnekleri

XSD Şeması

XSD Tanıtımı XSD Nasıl Yapılır? XSD <şema> XSD Öğeleri XSD Özellikleri XSD Kısıtlamaları

XSD Kompleksi

XSD Öğeleri XSD Boş Yalnızca XSD Öğeleri Yalnızca XSD Metin XSD Karışık XSD Göstergeleri XSD <herhangi bir> XSD <anyÖzellik> XSD Değiştirme XSD Örneği

XSD Verileri

XSD Dizisi XSD Tarihi XSD Sayısal XSD Çeşitli XSD Referansı

Web Hizmetleri

XML Hizmetleri XML WSDL'si XML SABUN XML RDF'si XML RSS'si

Referanslar

DOM Düğüm Türleri DOM Düğümü DOM Düğüm Listesi DOM AdlıDüğüm Haritası DOM Belgesi DOM Öğesi DOM Özelliği DOM Metni DOM CDATA DOM Yorumu DOM XMLHttpRequest DOM Ayrıştırıcı XSLT Öğeleri XSLT/XPath İşlevleri

XSD Öğe Değiştirme


XML Şemaları ile bir eleman başka bir elemanın yerini alabilir.


Eleman Değiştirme

Diyelim ki iki farklı ülkeden kullanıcılarımız var: İngiltere ve Norveç. Kullanıcının, XML belgesinde Norveççe öğe adlarını mı yoksa İngilizce öğe adlarını mı kullanmak istediğini seçmesine izin vermesini istiyoruz.

Bu sorunu çözmek için XML şemasında bir substitutionGroup tanımlayabiliriz. İlk önce bir head elementi ilan ediyoruz ve sonra head element için ikame edilebilir olduklarını belirten diğer elementleri ilan ediyoruz.

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

Yukarıdaki örnekte, "name" öğesi baş öğedir ve "navn" öğesi, "name" yerine kullanılabilir.

Bir XML şemasının şu parçasına bakın:

<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 (yukarıdaki şemaya göre) şöyle görünebilir:

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

veya bunun gibi:

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


Öğe Değiştirmeyi Engelleme

Diğer öğelerin belirli bir öğeyle yer değiştirmesini önlemek için blok niteliğini kullanın:

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

Bir XML şemasının şu parçasına bakın:

<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 (yukarıdaki şemaya göre) şöyle görünür:

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

AMA BU ARTIK GEÇERLİ DEĞİL:

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

substitutionGroup'u kullanma

Değiştirilebilir elemanların tipi, baş elemanın tipi ile aynı veya ondan türetilmiş olmalıdır. İkame edilebilir elemanın tipi, baş elemanın tipi ile aynı ise, ikame edilebilir elemanın tipini belirtmeniz gerekmeyecektir.

substitutionGroup içindeki tüm öğelerin (baş öğe ve ikame edilebilir öğeler) genel öğeler olarak bildirilmesi gerektiğini unutmayın, aksi takdirde çalışmaz!


Küresel Unsurlar nelerdir?

Global öğeler, "şema" öğesinin doğrudan çocukları olan öğelerdir! Yerel öğeler, diğer öğelerin içine yerleştirilmiş öğelerdir.