ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 167
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
63
«Web-сервис представляет собой приложение, которое идентифицируется строкой URI. Интерфейсы и привязки данного приложения описываются и обнаруживаются с использованием
XML-средств.
Приложения взаимодействуют посредством обмена сообщениями, которые пересылаются с использованием интернет-протоколов».
7.1. Язык XML при работе с Web-сервисами
Структура XML-документа. Язык XML был создан для хранения, транспортировки и обмена данными, с его помощью можно реализовать обмен данными между различными системами. XML документ состоит из частей, называемых элементами. Элементы составляют основу XML-документов. Они образуют структуры, которые можно обрабатывать программно или с помощью таблиц стилей. Элементы размечают именованные разделы информации.
Элементы строятся с помощью тегов разметки, обозначающих имя, начало и конец элемента. Элементы могут быть вложены друг в друга, на верхнем уровне находится элемент, называемый элементом документа или корневым элементом в котором содержатся остальные элементы. Например:
Документ XML может располагаться в одном или нескольких файлах, причем некоторые из них могут находиться на разных машинах. В XML используется специальная разметка для интеграции содержимого разных файлов в один объект, который можно охарактеризовать как логическую структуру. Благодаря тому, что документ не ограничен одним файлом, XML позволяет создавать документ из частей, которые могут располагаться где угодно.
64
Документ XML обычно содержит следующие разделы:
XML-декларация;
Пролог;
Элементы;
Атрибуты;
Комментарии.
Декларация XML-документа. XML-декларация обычно находится в первой строке XML-документа. XML-декларация не является обязательной.
Однако, если она существует, она должна располагаться в первой строке документа, и до нее не должно быть больше ничего, в том числе пробелов.
XML-декларация в схеме документа состоит из следующих элементов:
• Номер версии:
.
Это обязательный аргумент. Текущая версия — 1.0.
• Декларация кодировки:
Это необязательный параметр. Если он используется, то декларация кодировки должна располагаться сразу после информации о версии в XML- декларации.
Декларация кодировки должна содержать значение, представляющее собой существующую кодировку символов.
• Декларация автономности, например:
. Декларация автономности, как и декларация кодировки, необязательны. Если декларация автономности используется, то она должна стоять на последнем месте в XML- декларации.
Пролог XML-документа. Прологом называются данные, расположенные после открывающего тега документа или после корневого элемента. Он включает сведения, относящиеся к документу в целом — кодировка символов, структура документа, таблицы стилей.
65
В языке XML есть возможность включения в документ инструкций, которые несут определенную информацию для приложений, которые будут обрабатывать тот или иной документ. Инструкции по обработке в XML создаются следующим образом.
Приложение Содержимое ?>
В XML инструкции по обработке заключаются в угловые кавычки со знаком вопроса. В первой части процессинговой инструкции определяется приложение или система, которой предназначена вторая часть этой инструкции или ее содержимое. При этом инструкции по обработке действительны только для тех приложений, которым они адресованы. Примером процессинговой инструкции может быть следующая инструкция:
7.2. Элементы XML-документа
Элементы в XML документе отвечают за организацию информации и являются основными структурными единицами языка XML. Элементы оформляются следующим образом:
Теги устанавливают границы вокруг содержимого элемента, если таковое имеется.
У каждого элемента должно быть имя. Имена XML-элементов должны подчиняться следующим правилам:
•
Названия могут содержать буквы, цифры и другие символы;
•
Названия не могут начинаться с цифры или знака препинания;
•
Названия не могут начинаться с букв xml;
•
В названии не должно быть пробелов.
•
Нельзя допускать пробелов у кавычек (<);
•
Имена элементов являются регистрозависимыми;
66
•
Все элементы должны иметь закрывающий тэг.
В XML элементы могут быть двух типов - пустые и непустые. Пустые элементы не содержат в себе никаких данных, таких как текст или другие конструкции, и могут сокращенно записываться следующим образом:
В XML документе обязательно должен присутствовать единственный корневой элемент, все остальные элементы являются дочерними по отношению к единственному корневому элементу. При этом должен строго соблюдаться порядок вложенности элементов:
В данном случае элемент содержит два других элемента,
7.3. Атрибуты XML-документа
В XML элементы могут содержать атрибуты с присвоенными им значениями, которые помещаются в одинарные или двойные кавычки.
Атрибуты позволяют добавлять сведения об элементе с помощью пар «имя- значение». Атрибуты часто используются для определения тех свойств элементов, которые не считаются содержимым элемента, хотя в некоторых случаях (например, HTML-элемент img) содержимое элемента определяется значениями атрибута. Атрибуты могут отображаться в открывающих или пустых тегах, но не в закрывающих тегах. Атрибут для элемента задается следующим образом:
Синтаксические правила создания атрибута:
• Декларируются в открывающем тэге;
• Количество атрибутов не ограничено;
• Несколько атрибутов разделяются пробелами;
67
• Атрибут состоит из имени и значения
• Каждое имя должно быть уникально в рамках одного элемента;
• Нельзя использовать пробелы в именах атрибутов;
• Значение атрибута должно быть в кавычках.
Значение атрибутов может заключаться как в одинарные, так и в двойные кавычки. Возможно также использование одних кавычек внутри других, например:
Комментарии XML-документа. Содержимое, не предназначенное для синтаксического анализа (например, замечания о структуре документа или редактировании), можно заключить в комментарии. Комментарии начинаются с группы символов :
Комментарии могут находиться в прологе документа, в том числе в определении типа документа (DTD), после документа и в текстовом содержимом. Комментарии не могут находиться внутри значений атрибутов.
Они также не могут находиться внутри тегов.
Синтаксический анализатор считает концом комментария символ >; после этого символа он возобновляет обработку XML-документа в обычном режиме. Поэтому строка > не может находиться внутри комментария. За исключением этого, в комментариях могут использоваться любые допустимые символы XML. Поэтому комментарии очень полезны, если нужно убрать комментарий из области обработки синтаксического анализатора, не удаляя само содержимое из документа. Для временного удаления разметки можно использовать следующие комментарии:
При создании комментария необходимо учитывать следующее:
68 1 .В тексте комментария не может быть двух символов «-» подряд.
2.Комментарий не может заканчиваться символом «-».
7.4. Текстовые данные XML-документа
Благодаря поддержке набора символов Юникода XML поддерживает целый диапазон символов, в том числе буквы, цифры, знаки препинания и другие символы. Большинство управляющих символов и символы совместимости Юникода не допускаются.
Весь текст XML-документа анализируется парсером, т.е. является парсируемым (PCDATA), но в случае необходимости определенные разделы можно «скрыть» для проверки и они будут игнорироваться парсером (т.н. непарсируемые данные, CDATA). Разделы CDATA дают возможность сообщить средству синтаксического анализа, что среди символов, содержащихся в разделе CDATA, отсутствует разметка. Это упрощает создание документов с разделами, в которых могут появиться отдельные символы разметки, но на самом деле разметки нет. В разделы CDATA часто помещают содержимое на языке сценариев, а также образцы содержимого XML и HTML.
Раздел CDATA в схеме документа использует следующую конструкцию:
,]]>
При обнаружении начального тега анализа XML рассматривает все последующее содержимое как символы, не пытаясь интерпретировать их как разметку элемента или сущности. Ссылки на символы в разделах CDATA не работают. Обнаружив завершающий тег ]]>, средство синтаксического анализа возобновляет нормальный синтаксический анализ. Например, в XML-документ можно включить любой из приведенных далее разделов CDATA, и средство синтаксического анализа не воспримет их как ошибочные.
]]> или
69 if (a < b && a < 0) then
{ return 1;
} else
{ return 0
}
}
]]>
Содержимое разделов CDATA может содержать только символы, разрешенные для содержимого XML; нельзя экранировать таким образом управляющие символы и символы совместимости. Кроме того, в раздел
CDATA не может входить последовательность ]]>, поскольку эти символы означают завершение раздела. Это значит, что разделы CDATA не могут быть вложенными друг в друга. Эта последовательность также используется в некоторых сценариях. В сценариях обычно можно вместо последовательности
]]> использовать ] ]>.
Помимо непарсируемых данных в XML-тексте можно использовать ссылки на символы и сущности. Ссылки на символы и сущности позволяют включать данные в XML-документ, ссылаясь на них, вместо того чтобы вводить символы в документ напрямую. Такой способ удобно применять в следующих ситуациях:
Символы нельзя ввести в документ напрямую, так как они будут интерпретироваться как разметка.
Символы нельзя ввести в документ напрямую из-за ограничений устройства ввода.
Невозможна надежная передача символов через процессор, ограниченный однобайтными символами.
70
Символьная строка или фрагмент документа часто повторяются и могут быть сокращены.
Для представления содержимого в XML используются числовые или синтаксические конструкции, начинающиеся с символа амперсанда (&) и заканчивающиеся точкой с запятой (;). Ссылки на символы позволяют вставлять символы Юникода, для которых в качестве кодовой точки Юникода задан числовой код. Кодовые точки можно задавать либо в десятичном, либо в шестнадцатеричном представлении:
& #value; - синтаксис, используемый для десятичных ссылок.
xvalue; - синтаксис, используемый для шестнадцатеричных ссылок.
Например, чтобы вставить символ евро, который до сих пор отсутствует на многих клавиатурах, можно вставить в документ ссылку € или
€.
В приведенной таблице 1 перечислены пять встроенных сущностей для символов, используемых в XML-разметке:
Таблица 1.
Встроенные сущности XML
Сущность
Ссылка
на
сущность
Значение lt
<
< (меньше чем) gt
>
> (больше чем) amp
&
& (амперсанд) apos
'
' (апостроф или одиночная кавычка) quot
"
" (двойная кавычка)
В ситуациях, когда символ может привести к ошибочной интерпретации структуры документа средством синтаксического анализа XML, необходимо использовать сущность вместо ввода символа. Ссылки на сущности ' и
" чаще всего используются в значениях атрибутов. Например, чтобы написать «Me&You», надо использовать Me&You. Чтобы написать «ac», нужно использовать b>c.
71
Можно определить собственные сущности, как HTML определяет набор сущностей для использования в HTML. Значение &ap не распознается как
HTML-файл. Для преобразования в HTML нужно использовать $# .....
При работе с определением типа документа (DTD), определяющим сущности, можно ссылаться на эти сущности в содержимом документа, используя следующий синтаксис:
&entityName;
При обработке пробелов в документе XML необходимо учитывать, что в спецификации XML, опубликованной консорциумом World Wide Web (W3C), различные способы обозначения конца строки приведены к единому способу обозначения, однако при этом сохраняются все остальные пробелы, за исключением пробелов в значениях атрибутов. Кроме того, в XML предусмотрен набор средств, с помощью которых документы могут сообщать приложениям, следует ли сохранять пробелы. Согласно существующему стандарту XML 1.0 пробелы перед XML- декларацией не допускаются.
Если перед XML-декларацией есть пробелы, они будут рассматриваться как инструкция по обработке. Информация (в частности, о кодировке) не обязательно используется средством синтаксического анализа.
Средства синтаксического анализа XML обязательно сообщают обо всех пробелах, найденных в содержимом элементов внутри документа. Поэтому следующие три документа с точки зрения средства синтаксического анализа
XML будут различными:
Документ 1:
1
2
72
3
Документ 2:
Документ 3:
Для XML-приложений, ориентированных на документы, пробелы могут быть чрезвычайно важны.
Авторы документов могут использовать атрибут xml:space для обозначения частей документов, где пробелы представляют определенную важность. Атрибут xml:space также может использоваться в таблицах стилей, обеспечивая сохранение пробелов в представлении документа. Однако поскольку многие XML-приложения не распознают атрибут xml:space, его использование может быть лишь рекомендацией.
Атрибут xml:space может принимать два значения:
• default - это значение позволяет приложению обрабатывать пробелы при необходимости. Если не включить атрибут xml:space, то результат будет такой же, как при использовании значения default.
• preserve - это значение показывает приложению, что пробелы следует сохранить в неизменном виде, так как они могут представлять важность.
Значения атрибутов xml:space применяются ко всем потомкам содержащего атрибут элемента, кроме случаев, когда значение переопределяется в одном из дочерних элементов.
Например, в следующих документах относительно пробелов задано одинаковое поведение:
Документ 1: