Замяна на XML елементи

С XML Schema един елемент може да замени друг елемент.

Да предположим, че има потребители от две различни държави: Англия и Норвегия. Бихме искали потребителят да може да избира дали да използва норвежки или английски имена на елементи.

За да разрешим този проблем, трябва да дефинираме декларацияsubstitutionGroup в XML схемата. Първо декларираме главния елемент, а след това другите елементи, които ще забележат главния елемент.

В примера по-горе елементът "name" е елементът head, а елементът "navn" е предназначен да замени елемента "name".

Разгледайте следния фрагмент от XML схема:

Валиден XML документ (според горната схема) може да изглежда така:

Блокиране на подмяна на XML елементи

За да затворите някои елементи от замяна с определени елементи, се използва атрибутътblock :

Вижте следния фрагмент на XML схема:

Валиден XML документ (според горната схема) изглежда така:

но следният код вече няма да е валиден:

Използване на substitutionGroup

Типът на заместващите елементи трябва да бъде същият (или произлизащ от него) като този на главния елемент. Ако типът на заместващия елемент е същият като типа на елемента на главата, тогава не е необходимо да указвате типа на заместващия елемент.

Трябва също така да сте наясно, че всички елементи в декларация наsubstitutionGroup (както главният елемент, така и заместващите елементи) трябва да бъдат декларирани като глобални елементи. В противен случай замяната няма да работи!

Какво представляват глобалните елементи?

Глобалните елементи са елементи, които са непосредствени деца на елемента на схемата! елементи,вложени в други елементи са локални елементи.