Что такое XML? - 4.5 Переопределение типов и групп

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Что такое XML?
Невозможно найти взаимосвязанные ресурсы.
Применения XML
Структура XML-документа
8.1.3.2. Пролог и директивы
8.1.3.3. Комментарии
8.1.3.4. Имена и данные
Page 8
8.1.3.6. Секции CDATA
Разделы и их декларации
Декларация типа документа
8.1.6. Пример XML-документа
8.2.1. Общие сведения
8.2.2. Декларации типов элементов
8.2.3. Декларации списков атрибутов
8.2.4. Декларации нотаций
8.2.5. Пример DTD
8.2.6. Параметрические разделы
8.2.7. Условные секции
XML-схемы - стандарты, написанные на компьютерном языке
8.3.3. Область действия пространства имен
8.3.4. Базовые URI фрагментов XML-документа
Основные понятия: документ
2.1 Схема заказа на покупку
2.2 Определение комплексных типов, объявление элементов и атрибутов
2.2.1 Ограничение вхождений
2.2.2 Глобальные элементы и атрибуты
2.2.3 Конфликты имен
2.3 . Простые типы
2.3.1 Тип List
2.3.2 Тип Union
2.4 Определение анонимных типов
2.5 Содержимое элемента
2.5.2 Смешанное содержимое
2.5.3 Пустое содержимое
2.6 Аннотации
Page 37
2.8 Группы атрибутов
2.9 Значения Nil
3 Дополнительные понятия I: именные пространства, схемы & квалификация
3.1 Целевые именные пространства и не квалифицируемые локальные объекты
3.2 Квалифицируемые локальные объекты
3.3 Глобальные объявления в сравнении с локальными объявлениями
3.4 Необъявленные целевые именные пространства
4 . Дополнительные понятия II: международный заказ на покупку
4.1 Схема в нескольких файлах
4.2 Получение производных типов расширением
4.3 Использование производных типов в документах
4.4 Производные сложные типы, полученные путем ограничений
4.5 Переопределение типов и групп
4.6 Группы замены
4.7 Абстрактные элементы и типы
4.8 Управление созданием и использованием производных типов
5 Дополнительные понятия III: квартальный отчет
5.1 Определение уникальности
5.2 Определение ключей и ссылок на них
5.3 Ограничения XML-схемы в сравнении с атрибутом ID XML 1.0
5.4 Импортирование типов
5.4.1 Библиотеки типов
5.5 Любой элемент, любой атрибут
5.6 schemaLocation
5.7 Соответствие
A Благодарности
B Простые типы и их фасеты
C Использование сущностей
D Регулярные выражения
Все страницы
4.5 Переопределение типов и групп

В подразделе 4.1 мы описали, как включить определения и объявления, полученные из внешних подсхем, имеющих одинаковое целевое именное пространство. Механизм include дает возможность использовать созданные вовне компоненты схемы "как есть", без какой либо модификации.

Мы описали, как получить новые типы расширением и ограничением. Здесь мы рассмотрим механизм переопределения (redefine), который дает возможность переопределить простые и комплексные типы, группы, и группы атрибутов, полученные из внешних файлов схемы. Подобно механизму включения, механизм переопределения, требует, чтобы внешние компоненты находились в том же самом целевом именном пространстве, что и переопределяемая схема, хотя внешние компоненты схем, которые не имеют никакого именного пространства, также могут быть переопределены. В последнем случае, переопределенные компоненты становятся частью адресного пространства переопределяемой схемы.

Чтобы проиллюстрировать механизм переопределения, мы используем его вместо механизма включения в схеме международного заказа на покупку, ipo.xsd. Используем механизм переопределения для изменения комплексного типа Address, находящегося в address.xsd.

Использование переопределения в международном заказе на покупку:

Элемент redefine действует подобно элементу include, поскольку включает все объявления и определения из файла address.xsd. Определение комплексного типа Address использует знакомый синтаксис расширения для того, чтобы добавить элемент country к определению Address. Обратите внимание, что исходный тип - также Address.

Теперь, когда тип Address переопределен, расширение применяется ко всем элементам схемы, которые используют Address. Например, address.xsd содержит определения типов международных адресов, которые образованы из Address. Эти образования отражают переопределенный тип Address, как показано в приведенном ниже фрагменте.

Фрагмент ipo.xml использующий переопределенный тип Address:

Приведенный пример был тщательно продуман на предмет того, чтобы переопределенный тип Address не конфликтовал с производными типами, полученными из первоначального определения типа Address. Но заметим, что такой конфликт создать очень просто. Например, если тип международных адресов является расширением типа Address, полученным добавлением элемента country, то переопределение типа Address будет прибавлять к модели содержимого Address элемент с тем же самым именем. Наличие двух элементов с одинаковыми именами (в одном и том же целевом именном пространстве) но различными моделями содержимого - недопустимо. Поэтому попытка переопределить Address вызвала бы ошибку. Вообще, переопределение не защищает от таких ошибок, поэтому этот механизм должен использоваться осторожно.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий: