Что такое XML? - 5.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 Регулярные выражения
Все страницы
5.5 Любой элемент, любой атрибут

В предыдущих разделах мы рассмотрели несколько механизмов для расширения модели содержимого комплексных типов. Например, смешанная модель содержимого может включать в дополнение к элементам произвольные символьные данные, а также элементы, типы которых импортированы из внешнего именного пространства. Однако эти механизмы обеспечивают, соответственно, либо очень широкие, либо очень узкие возможности контроля. Цель этого раздела состоит в том, чтобы описать гибкий механизм, который дает возможность моделям содержимого быть расширенными любыми элементами и атрибутами, принадлежащими указанному именному пространству.

Например, рассмотрим вариант ежеквартального отчета, 4Q99html.xml, в который мы внедрили HTML-представление раздела с данными об отгруженных изделиях. HTML-текст появляется как содержание элемента htmlExample. Для того чтобы все HTML-элементы принадлежали именному пространству HTML (http://www.w3.org/1999/xhtml), изменено значение по умолчанию именного пространства у самого внешнего HTML-элементе (table).

Квартальный отчет с HTML, 4Q99html.xml:

Чтобы разрешать появление HTML-элементов в документе, мы изменяем схему отчета, объявляя новый элемент htmlExample, чье содержание определено оператором any. Элемент any определяет, что любой элемент, удовлетворяющий правилам языка XML, допустим в модели содержимого данного типа. В нижеприведенном примере, мы определяем, что XML-элементы принадлежат именному пространству http://www.w3.org/1999/xhtml, другими словами, эти XML-элементы должны быть HTML-элементами. В примере также задано, что в документе может быть не менее одного такого элемента, на что указывают значения minOccurs и maxOccurs.

Модификация объявления purchaseReport для включения в документ HTML-фрагмента:

В результате указанного выше изменения, любому XML-элементу, принадлежащему именному пространству http://www.w3.org/1999/xhtml, разрешено появляться в элементе htmlExample. В связи с этим 4Q99html.xml допустим, так как в нем есть один элемент table (с дочерними элементами), который является допустимым, и этот элемент появляется в элементе htmlExample, и в документе указано, что элемент table и его содержимое принадлежат требуемому именному пространству. Однако фактически HTML-фрагмент может содержать неверные данные, потому что в 4Q99html.xml ничто не гарантирует их достоверность. Если такая гарантия требуется, то значение атрибута processContents должно быть установлено в strict (значение по умолчанию). В этом случае XML-процессор должен получить схему, связанную с требуемым именным пространством, и проверить правильность HTML-фрагмента, появляющегося внутри элемента htmlExample.

В другом примере, мы определяем тип text, который подобен текстовому типу, определенному во введении в библиотеку типов XML-схемы (http://www.w3.org/2001/03/XMLSchema/TypeLibrary.xsd) (см., также подраздел 5.4.1), и подходящий для работы с интернационализированным текстом. Текстовый тип с дополнительным атрибутом xml:lang разрешает произвольную смесь символов и элементов из любого именного пространства, например текст в нотации Ruby (http://www.w3.org/TR/ruby/). Значение lax атрибута processContents предписывает XML-процессору проверить правильность содержимого элемента. Процессор проверит правильность элементов и атрибутов, для которых он может получить информацию схемы, но процессор не будет сообщать об ошибках для тех компонент, для которых отсутствует информация схемы.

Тип Text:

Именное пространство может использоваться различными способами, в зависимости от значения атрибута namespace (см. таблицу 4) для того чтобы разрешить или запретить содержимое элемента:

Таблица 4. Атрибут namespace элемента any

Значения атрибута Namespace

Допустимое содержимое элемента

##any

Любой XML-элемент из любого именного пространства (значение по умолчанию)

##local

Любой XML-элемент, который не квалифицирован, то есть, не объявлен в именном пространстве

##other

Любой XML-элемент не из целевого именного пространства определяемого типа

"http://www.w3.org/1999/xhtml ##targetNamespace"

Любой XML-элемент, принадлежащий любому именному пространству в (разделитель - пробел) списке; ##targetNamespace - псевдоним для обозначения целевого именного пространства определяемого типа

В дополнение к элементу any, который допускает содержимое элемента согласно именному пространству, имеется похожий элемент anyAttribute, который позволяет элементам иметь произвольные атрибуты. Например, мы можем разрешить любому HTML-атрибуту появиться как часть htmlExample элемента, прибавляя anyAttribute к его объявлению. Модификация объявления htmlExample разрешающая появление HTML-атрибутов:

Это объявление разрешает HTML-атрибуту, скажем href, появляться в htmlExample элементе.

Пример HTML-атрибута у элемента htmlExample:

Атрибуту namespace в элементе anyAttribute может быть присвоено любое из значений, перечисленных в таблице 4 для элемента any. У anyAttribute может быть задан атрибут processContents. В отличие от элемента any, элемент anyAttribute не содержит ограничение на число атрибутов, которые могут появиться у элемента.



 

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

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