Замяна на XML елементи
С XML Schema един елемент може да замени друг елемент.
Да предположим, че има потребители от две различни държави: Англия и Норвегия. Бихме искали потребителят да може да избира дали да използва норвежки или английски имена на елементи.
За да разрешим този проблем, трябва да дефинираме декларацияsubstitutionGroup в XML схемата. Първо декларираме главния елемент, а след това другите елементи, които ще забележат главния елемент.
В примера по-горе елементът "name" е елементът head, а елементът "navn" е предназначен да замени елемента "name".
Разгледайте следния фрагмент от XML схема:
Валиден XML документ (според горната схема) може да изглежда така:
Блокиране на подмяна на XML елементи
За да затворите някои елементи от замяна с определени елементи, се използва атрибутътblock :
Вижте следния фрагмент на XML схема:
Валиден XML документ (според горната схема) изглежда така:
но следният код вече няма да е валиден:
Използване на substitutionGroup
Типът на заместващите елементи трябва да бъде същият (или произлизащ от него) като този на главния елемент. Ако типът на заместващия елемент е същият като типа на елемента на главата, тогава не е необходимо да указвате типа на заместващия елемент.
Трябва също така да сте наясно, че всички елементи в декларация наsubstitutionGroup (както главният елемент, така и заместващите елементи) трябва да бъдат декларирани като глобални елементи. В противен случай замяната няма да работи!
Какво представляват глобалните елементи?
Глобалните елементи са елементи, които са непосредствени деца на елемента на схемата! елементи,вложени в други елементи са локални елементи.