
- •Лекция 401
- •Компоненты документа
- •Язык SGML
- •Язык HTML. Термины
- •Язык HTML. Недостатки
- •Язык HTML. Преодоление недостатков
- •Язык XML. Задачи, поставленные при разработке
- •Язык XML. Спецификации
- •Общие компоненты технологии XML
- •Основные классы задач с использованием XML. 1. Создание новых языков
- •Основные классы задач с использованием XML. 2. Хранение данных
- •Основные классы задач с использованием XML. 3. Обмен данными и интеграция данных (1)
- •Основные классы задач с использованием XML. 3. Обмен данными и интеграция данных (2)
- •Документ XML. Имя XML
- •Документ XML. Пробельные символы и литералы
- •Документ XML. Представления структуры
- •Документ XML. Компоненты разметки
- •Документ XML. Пролог
- •Документ XML. Атрибуты пролога
- •Документ XML.
- •Документ XML. Атрибуты и содержимое элементов
- •Документ XML. Содержимое элемента
- •Документ XML. Инструкция по обработке
- •Документ XML. Секции CDATA
- •Документ XML. Ссылки на символы
- •Документ XML. Ссылки на сущности - 1
- •Документ XML. Ссылки на сущности - 2
- •Документ XML. Комментарии
- •Пространства имен XML - 1
- •Пространства имен XML - 2
- •Пространства имен XML - 3
- •Пространства имен XML - 4
- •Пространства имен XML - 5
- •Пространства имен XML - 6
- •Пространства имен XML - 7
- •Пространства имен XML - 8

Пространства имен XML - 3
Префиксы, которые были определены в некотором элементе, могут быть использованы в его собственном имени, а также в именах всех элементов, которые включены в него, если они не переопределены другим объявлением.
Пример:
<e-mail:message xmnls:e-mail="http://e-mail.org/schema"> <from>me@myAddress.com</from> <to>you@yourAddress.com</to> <subject>Поздравление</subject>
<text>
Поздравляю с днем рождения! </text>
</e-mail:message>
Вэтом примере префикс e-mail относится не только к элементу message , но и к содержащемуся в нем элементу
text. |
31 |
|

Пространства имен XML - 4
Принадлежность элементов той или иной схеме определяется не префиксами, а тем, какие уникальные идентификаторы поставлены этим префиксам в соответствие. То есть два элемента с разными префиксами, заданными
одинаковыми идентификаторами, будут считаться принадлежащими одной схеме.
Пример:
В следующем фрагменте
<e-mail:message xmnls:e-mail="http://e-mail.org/schema">
<from>me@myAddress.com</from>
<to>you@yourAddress.com</to>
<subject>Поздравление</subject>
<cont:text xmnls:cont="http://e-mail.org/schema"> Поздравляю с днем рождения!
</cont:text>
</e-mail:message>
элементы message и text имеют различные префиксы, но, несмотря на это, принадлежат одной и той же схеме.
32

Пространства имен XML - 5
В одном элементе можно определять несколько префиксов пространств имен. Как правило, при использовании множества префиксов, все они определяются в корневом элементе, а затем используются по всему документу.
Пример
<e-mail:message xmnls:e-mail="http://e-mail.org/schema" xmnls:memo="http://memo.org/schema">
<from>me@myAddress.com</from> <to>you@yourAddress.com</to> <subject>Поздравление</subject> <memo:text>
Поздравляю с днем рождения! </memo:text>
</e-mail:message>
33

Пространства имен XML - 6
Определение пространства имен в виде
<элемент xmlns="URI">
…
</элемент>
позволяет определять пространства имен по умолчанию, т.е. опускать префиксы в именах элементов.
Пример:
<e-mail:message xmnls="http://e-mail.org/schema" xmnls:memo="http://memo.org/schema">
<from>me@myAddress.com</from> <to>you@yourAddress.com</to>
<subject>Поздравление</subject>
<memo:text>
Поздравляю с днем рождения! </memo:text>
</e-mail:message>
34

Пространства имен XML - 7
Пространство имен по умолчанию отменено, если в качестве значения атрибута xmnls указать пустую строку.
Пример:
<e-mail:message xmnls="http://e-mail.org/schema" xmnls:memo="http://memo.org/schema">
<from>me@myAddress.com</from> <to>you@yourAddress.com</to> <subject>Поздравление</subject> <text xmnls="">
Поздравляю с днем рождения! </text>
</e-mail:message>
Здесь действие пространства имен по умолчанию отменено для элемента text.
35

Пространства имен XML - 8
Префиксы можно указывать не только для элементов, но и для атрибутов элементов.
Пример:
<reservation xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:passenger="http://www.w3.org/TR/REC-html40">
<name html:class="largeSansSerif">Иванов И.И.</name> <seat passenger:class="Y" html:class="boldSansSerif">33B</seat> <departure>1997-05-24T07:55:00+1</departure>
</reservation>
Здесь для элемента seat определены два атрибута с именем class, однако, за счет использования различных префиксов имена этих атрибутов (точнее их расширенные имена) считаются разными.
36