Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по веб-сервисам.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.71 Mб
Скачать

2.2.1Пример xml-документа

Синтаксические правила XML очень просты и легки в использовании. Поэтому составление и работа с XML-документами представляет собой довольно простой процесс, что способствует росту популярности этого стандарта.

Для начала рассмотрим простой пример XML-документа, схематично описывающего заказ товаров в интернет магазине:

<?xml version="1.0" encoding="utf-8" ?>

<order customerId="12">

<address>Москва, Каширское шоссе, 31</address>

<date>01.04.2006</date>

<time>12:40</time>

<items>

<item id="2133">

<name>Монитор</name>

</item>

<item id="2233">

<name>Видеокарта</name>

</item>

</items>

</order>

В первой строке этого документа содержится тэг декларации XML, в котором указывается версия стандарта языка, в соответствии с которой будет производиться обработка документа, а также кодировка документа. В следующей строке представлен корневой элемент документа – “order”. Он содержит атрибут “customerId”, указывающий на идентификатор заказчика. Каждый элемент состоит из двух тэгов: открывающего и закрывающего. Все, что находится между этими тэгами, является содержимым элемента. Там могут быть перечислены дочерние элементы и значение элемента. Атрибуты элемента могут быть перечислены только в отрывающем тэге.

2.2.2Правила составления xml-документов

Существует несколько правил, которые надо соблюдать при составлении XML-документов, чтобы они были правильными, т.е. могли быть обработаны XML-процессорами без ошибок.

  • Каждый XML-документ должен содержать ровно один корневой элемент.

К примеру, такой документ является неправильным т.к. содержит два корневых элемента:

<?xml version="1.0" encoding="utf-8" ?>

<order>

...

</order>

<request>

...

</request>

Для правильной организации хранения этих данных в XML нужно использовать структуру вида:

<?xml version="1.0" encoding="utf-8" ?>

<communication>

<order>

...

</order>

<request>

...

</request>

</communication>

  • Все элементы должны иметь закрывающий тэг.

В стандарте HTML для некоторых элементов наличие закрывающего тэга не обязательно. К примеру, тэг <br> осуществляет перенос каретки на новую строку:

Строка<br>

Новая строка

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

<item id="2133">

<name>Монитор

</item>

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

<item id="2133" name="Монитор"></item>

Эта структура может быть упрощена таким образом:

<item id="2133" name="Монитор"/>

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

  • В тэгах XML учитывается регистр.

В XML тэги <item> и <Item> будут интерпретированы как разные. Таким образом, это может привести к ошибке в документе:

<Item id="2133">

<name>Монитор</name>

</item>

Этот документ будет считаться неправильным из-за отсутствия закрывающего тэга </Item>.

Существует также несколько особенностей XML, которые следует учитывать при составлении документов:

  • Пробелы в XML-документах сохраняются.

Это отличает XML от HTML, в котором для устранения ошибок при выводе документов на экран любое количество идущих подряд пробелов заменяется одним.

  • Некоторые особые символы должны заменяться ссылками на сущность.

Существуют два символа, которые при наличии их в значении элемента или атрибута вызовут ошибку: “<” и “&”. Поэтому при составлении документа их надо заменять ссылкой на сущность:

<name>Монитор с диаганалью < 19 дюймов</name>

После разбора этого элемента XML процессором в качестве значения этого элемента будет строка:

Монитор с диаганалью < 19 дюймов

В XML изначально заданы пять сущностей. Хотя три из них можно применять в тексте документов, их также желательно заменять ссылками на сущность.

Символ

Обозначение

<

<

>

>

&

&

`

(апостроф)

'

(двойная кавычка)

"

Таблица 2.1. Сущности языка XML.

  • Для добавления текста, который не будет интерпретироваться при разборе XML-документа, используется конструкция CDATA.

Использование этой конструкции позволяет не преобразовывать символы в ссылки на сущность т.к. весь текст заключенный внутри этой конструкции не обрабатывается при разборе XML-документа. Это удобно в том случае, если надо включить в документ читабельный текст с использованием запрещенных символов, например, исходный код программы или кусок HTML-документа, как показано ниже:

<message>

<![CDATA[

<div style="width: 200px; height: 70px; text-align: center">

<span style="color: red; background-color: blue">

Купи хлеба!

</span>

</div>

]]>

</message>

  • Комментарии в XML.

Для добавления в XML документ комментариев, т.е. текста который не будет использоваться при разборе документа и не будет включен в значение элемента, используется специальная конструкция:

<order customerId="12">

<address>Москва, Каширское шоссе, 31</address>

<!-- Дата должна быть в формате dd.mm.yyyy -->

<date>01.04.2006</date>

...

</order>