Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-01.doc
Скачиваний:
5
Добавлен:
12.05.2015
Размер:
181.25 Кб
Скачать

4.1.3.7. Комментарии

XML-документ может содержать комментарии, которые записываются так же, как и в HTML:

<!--текст комментария-->

Текст комментария может состоять из любых символов, кроме двух минусов подряд ("--"). Кроме этого, текст комментария не должен заканчиваться симво­лом "-".

Пример:

<!--product title="Комментарий">

Элемент рассматривается как комментарий

</product>-->

4.1.4. Пространства именXml

XML позволяет создавать наборы элементов с любыми синтаксически допустимыми именами и определять с их помощью логическую структуру до­кументов практически произвольной сложности.

Часто случается, что различные логические схемы документов используют одни и те же имена элементов в различных смыслах. Тогда в случае, если в одном и том же документе необходимо использовать элементы нескольких различных схем, будет невозможно опре­делить, какой элемент относится к какой схеме, и какие схемы были использованы в документе. Для решения этих проблем в XML исполь­зуются пространства имен (namespaces).

Чтобы различать схемы документов, каждой из них ставится в соответствие уникальный идентификатор ресурса URI(UniversalResourceIdentifier). Две схемы будут считаться тож­дественными тогда и только тогда, когда их уникальные идентификаторы будут совпадать. Очень часто в качестве URI используютсяURLразличных Web-сайтов.

Для того чтобы определить, какой схеме принадлежит тот или иной элемент в документе, можно использовать механизм префиксов. Префиксы про­странств имен задаются как атрибуты с именами, начинающимися последо­вательностью xmlns, и имеют следующий вид:

<префикс:элементxmlns:префикс="URI">

</префикс:элемент>

Префиксы, которые были определены в некотором элементе, могут быть использованы в его собственном имени, а также в именах всех элементов, которые включены в него, если они не переопределены другим объявлением.

Пример

<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.

Принадлежность элементов той или иной схеме определяется не префикса­ми, а тем, какие уникальные идентификаторы поставлены этим префиксам в соответствие. То есть два элемента с разными префиксами, заданными одинаковыми идентификаторами, будут считаться принадлежащими одной схеме.

Пример:

В следующем фрагменте

<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имеют различные префиксы, но, несмотря на это, принадлежат одной и той же схеме.

В одном элементе можно определять несколько префиксов пространств имен. Как правило, при использовании множества префиксов, все они оп­ределяются в корневом элементе, а затем используются по всему документу.

Пример

<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>

Определение пространства имен в виде

<элементxmlns="URI">

</элемент>

позволяет определять пространства имен по умолчанию, т.е. опускать префиксы в именах элементов.

Пример

Фрагмент в предыдущем примере может быть переписан следующим образом:

<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>

</message>

Пространство имен по умолчанию отменено, если в качестве значения атрибута xmnlsуказать пустую строку.

Пример:

<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>

</message>

Здесь действие пространства имен по умолчанию отменено для элемента text.

Префиксы можно указывать не только для элементов, но и для атрибутов элементов.

Пример:

<reservation xmlns:html=http://www.w3.org/TR/REC-html40

xmlns:passenger=http://www.w3.org/TR/REC-html40>   <name html:class="largeSansSerif">Layman, A</name>   <seat passenger:class="Y" 

html:class="boldSansSerif">33B</seat>  <departure>1997-05-24T07:55:00+1</departure>

</reservation>

Здесь для элемента seatопределены два атрибута с именемclass, однако, за счет использования различных префиксов имена этих атрибутов (точнее их расширенные имена) считаются разными.

Расширенные имена считаются совпадающими, если их локальные части равны и, при этом, они относятся к одному пространству имен. Префикс в расширенном имени может быть опущен. В таком случае идентификатор пространства имен будет либо выбран по умолчанию (если име­ется соответствующее объявление), либо будет нулевым.

Файл: Создан: 31.01.2008 Модифицирован: 29.07.2008 Автор: Шонин В.А.

Соседние файлы в папке Лекции