Размещение аттрибутов в экземпляре xml
Лекция 3 ЯЗЫК РАЗМЕТКИ XML
XML (Extensible Markup Language) - это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента porche в документе необходимо использовать тэг <car>, то XML позволяет свободно использовать определяемый пользователем тэг и включать его в XML- документ.
Выделяют семь основных характеристик языка XML:
1. XML предлагает метод структурирования файла в виде текстового файла.
2. XML похож на HTML.
3. XML понятен как компьютеру так и человеку
4. XML образует целое семейство технологий
5. XML достаточно гибок
6. XML достаточно нов, но у него глубокие корни
7. XML свободен от лицензионных отчислений, платформенно не зависим , имеет широкую поддержку.
Рассмотрим некоторые характеристики более подробно
XML предлагает метод структурирования файла в виде текстового файла.
Очень часто случаются казусы, когда необходимо данные одной программы переместить в другую, но формат собрание я данных в этих программах не совпадает, а значить и данные переместить не возможно.
XML обеспечивает такую возможность, поскольку любое приложение может работать с текстовыми документами, и любой человек может прочесть и понять текст.
XML позволяет сохранять в текстовом формате структурированные данные. XML это набор правил для создания текстовых форматов, простых для обработки компьютерами различных типов. Получаемые текстовые файлы структурированы таким образом, что они:
– точно выражены;
– расширяемы;
– платформно-независимы.
Для разработки XML-файлов можно использовать любой текстовый редактор. XML – документы обычно имеют расширении *.xml, но специализированные диалекты созданные в рамках XML могут иметь расширения
– *.xls – Файлы расширяемой таблицы стилей(extensible Stylesheet Language)
– *.xsd – Определение расширяемой схемы (Еxtensible Schema Definition)
– *.xdr – Сокращенная схема данных XML (XML Data Reduced Schema)
– *.mml –математический язык разметки (MathML Mathematical Markup Language)
– *.cdf – Формат определения каналов (Channel Definition Format)
XML похож на HTML
У языков XML и HTML есть несколько похожих характеристик.
Если рассмотреть пример разметки следующего текста, станет трудным ответ на вопрос это XML или HTML.
<p>
так, обычно, оформляют
<em> выделенный текст </em>
в языке HTML.
</p>
Ответ будет правильным в любом случае. Поскольку это пример хорошо оформленных документов и XML и HTML.
Однако, язык XML разрабатывался для того, чтобы преодолеть ограничения накладываемые языком HTML. Так, разработчик XML-документа может сам определить ряд своих собственных дескрипторов. Например, если дескриптор параграфа в HTML – <p> –единственный, который может задавать и описывать параграф, то XML разработчик документа может самостоятельно ввести дескриптор параграфа одним из ниже перечисленных дескрипторов
<indent>
<paragraph>
<para>
Самый простой элемент включает в себя открывающий дескриптор, содержимое, закрывающий дескриптор. Например,
<title> Изучаем XML </title>
ПРАВИЛО Вся строка <title>Изучаем XML</title> называется элементом, данные между дескрипторами называются содержимым элемента.
ПРАВИЛО Все элементы должны быть обязательно завершены. Все непустые элементы обязательно должны содержать открывающий и закрывающий дескрипторы. Пустые элементы должны быть закрыты по следующему правилу.
ПРАВИЛО Пустой элемент всегда записывается по стандартному правилу синтаксиса пустого элемента:
<имя _элемента/>
ПУСТЫЕ ЭЛЕМЕНТЫ
Элементы XML могут содержать текст, другие элементы, любую комбинацию текста и других элементов или же быть просто пустыми элементами.
Пустой элемент всегда записывается по стандартному правилу синтаксиса пустого элемента:
<имя _элемента/>
Например,
<date month= “September” day= “19” year= “2007” />
Рассматриваемый элемент является пустым, даже не смотря на то, что содержит атрибуты. Учитывая тот факт, что полная инструкция
<date month= “September” day= “19” year= “2007”></date>
функционирует точно так же как и краткая, для предоставления пустого элемента принято использовать краткую форму.
Рассмотрим фрагмент HTML текста.
<HTML>
<H1> Letter </H1>
<P>From: T. Usatenko </P>
<P>To: All students </P>
<P>Subject: Questions to exam </P>
<P>Date: 19.09 2007</P>
<Message> </message>
</HTML>
аналогичный фрагмент XML-текса выглядит так:
<Letter>
<from> T. Usatenko</from>
<to> All students </to>
<subject> Questions to exam</subject>
<date month=”September” day=“19” year=”2007” />
<message> Questions </message >
</Letter>
Если задать себе вопрос, какой из фрагментов содержит больше данных для обработки программным приложением, то ответ ясен – XML.
Другое различие состоит в том, что HTML смешивает содержание и форматирование в одном потоке разметки. Так, например, элементы <H1> и <b> говорят, каким образом должны быть выделены и где размещены объекты, выделенные такими элементами.
В случае XML, язык предполагает, что содержание и внешний вид должны храниться отдельно от данных разметки. Язык XML полностью полагается на каскадные таблицы стилей (CSS или XSL) при отображении или преобразовании документов из одной структуры у другой.
Синтаксис языка XML
Документ XML считается хорошо оформленным, если он соответствует всем правилам XML. Если же хоть одно правило нарушается, документ не считается хорошо оформленным, и не будет обработан парсером.
Хорошо оформленный документ должен содержать один и только один корневой элемент, содержащий все остальные элементы. Элементы корневого элемента могут содержать дочерние элементы, которые должны быть правильно вложены. Все элементы, лежащие в корневом элементе, считаются дочерними по отношению к корневому.
Кроме того, дескрипторы в XML чувствительны к регистру. Открывающий и закрывающий дескрипторы одного и того же элемента должны быть указаны с использованием одного и того же регистра.
Если создается XML документ на основе существующего документа, необходимо хорошо изучить оригинал, чтобы понять структуру документа. Этот процесс называется анализом документа.
Например, есть инструкция по мытью машины. Машину ополоснуть водой, затем нанести пену и оставить на 5 минут. Пену смыть. Нанести на поверхность кузова воск, вытереть корпус машины насухо.
Рассмотрим структуру документа (рис. 2). По схеме видно, что корневым элементом будет элемент «инструкция», все остальные будут дочерними по отношению к нему. Элемент ингредиенты имеет внутренние,
Как составить XML-документ
1. Определите корневой элемент, например, <directions> (инструкция). Документ должен иметь открывающий дескриптор и закрывающий дескриптор <directions></directions>.
2. Корневой элемент <directions> будет содержать остальные элементы <title>, <ingredients>, <instrument>, <actions>
3. Элементы <ingredients> и <instrument> будут содержать дочерние элементы <items> <quantity>
4. Расставляем по местам все открывающие и закрывающие дескрипторы, заполняя их необходимыми данными
5. Сохраняем полученный документ в файле instuction.xml
6. Правильность оформления документа можно просмотреть в окне Internet Explorer.
<directions>
<title>Инструкция, как помыть машину</title>
<ingredients>
<items>Вода</items>
<quantity>50 л</quantity>
<items>Шампунь</items>
<quantity>0,5 л</quantity>
<items>Воск</items>
<quantity>0,3 л</quantity>
</ingredients>
<instrument>
<items>Ведро</items>
<quantity>1 шт </quantity>
<items>Мочалка </items>
<quantity>1 шт</quantity>
<items>лоскут для полировки</items>
<quantity>2 шт</quantity>
</instrument>
<actions>
Машину ополоснуть водой, затем нанести пену и оставить на 5 минут. Пену смыть. Нанести на поверхность кузова воск, вытереть корпус машины насухо
</actions>
</directions>
Результат обработки парсером рассмотренного кода представлен на рисунке 3.
Рисунок 3 – Результат обработки парсером программного кода.
ДЕКЛАРАЦИИ XML
Известно, что хорошо оформленные документы без проблем отображаются любым парсером. Хотя парсер понимает, что отображаемый документ является XML-доакументом, хорошим тоном считается указывать, что это документ XML.
Некоторые парсеры требуют наличия в документе соответствующей строки декларации XML, которая выглядит следующим образом:
<?xml version= “1.0” ? >
объявление XML-документа может содержать так же объявление кодировки (encoding declaration), которое указывает на форму символов и объявление самостоятельности документа (standalone declaration ).
Полная строка декларации выглядит так
<?xml version= “1.0” encoding= “…” standalone= “…”? >
Значение атрибута encoding содержит кодировку символов документа, а значение атрибута standalone – указывает, является ли рассматриваемый документ самостоятельным и может принимать значение yes или no.
ЗАМЕЧАНИЕ. Если не указывать тип кодировки XML-документа, в котором есть символы кириллицы, браузер, например, Internet Explorer, будет воспринимать хорошо оформленный документ как документ, содержащий ошибки отображать его не будет.
ДОБАВЛЕНИЕ КОММЕНТАРИЕВ
Комментарии в XML добавляются точно так же как и в HTML.
<!-- это комментарий -->
ПРАВИЛЬНЫЕ ЭКЗМПЛЯРЫ XML
В XML, наряду с концепцией «хорошо оформленного документа», рассматривается концепция «действительного XML документа».
Правильный документ гарантирует целостность структуры данных. Благодаря этому значительно упрощается доставка и обмен данными, которые корректируются параметрами XSLT.
Для определения правильности документа необходимо:
- Определить использование только заданного набора дескрипторов.
- Проверить, чтобы порядок следования элементов и их атрибутов полностью соответствовал содержанию документа или определенным правилам.
Другими словами, в XML-документе должна быть правильно реализована схема документа, определяющая его структуру.
Как правильно определить структуру. Вернемся к примеру создания XML документа для инструкции по мытью машины. Документ XML хорошо оформлен, но с точки зрения правильности он избыточен (на каждый ингредиент отводится по два элемента). Логично было бы использовать один элемент с атрибутом
<items quantity= “…”>.
А XML код будет выглядеть так:
<?xml version= “1.0” encoding= “windows-1251”>
<!--Это XML код инструкции-->
<directions>
<title>Инструкция, как помыть машину</title>
<ingredients>
<items quantity= “50 л”>Вода</items>
<items quantity= “0,5 л”>Шампунь</items>
<items quantity= “0,3 л”>Воск</items>
</ingredients>
<instrument>
<items quantity= “1 шт”>Ведро</items>
<items quantity= “1 шт” >Мочалка </items>
<items quantity= “2 шт” >лоскут для полировки</items>
</instrument>
<actions>
Машину ополоснуть водой, затем нанести пену и оставить на 5 минут. Пену смыть. Нанести на поверхность кузова воск, вытереть корпус машины насухо
</actions>
</directions>
- Контроль типов данных (достигается благодаря использованию соответствующей схемы)
Данные XML документа, которые используются при обмене, должны использовать один формат, для предотвращения путаницы.
Например, дата может быть оформлена в одном из следующих форматов
mmddyy yyddmm
ddmmyy yymmdd
существует несколько подходов к контролю типов данных. Позднее будем рассматривать технологии XDR и DTD.
К следующим типам данных может потребоваться проверка правильности. Необходимость проверки зависит от того, обмен какой информацией осуществляется
Тип данных | Описание |
Boolean | Логический тип, значения ИСТИНА / ЛОЖЬ |
Char | Один символ |
String | Строка символов |
Float | Действительные числа |
Int | Целые числа |
Date | Дата в формате YYYY-DD-MM |
Time | Время в формате HH-MM-SS |
Id | Текст, уникальным образом идентифицирующий элемент |
Idref | Ссылка на идентификатор |
Enumeration | Последовательность значений, из которой можно выбрать любоезначение |
- Осуществить контроль целостности данных для обеспечения оптимального обмена информацией через Web с помощью транзакций
Если речь идет о проверке правильности оформления документа, то речь идет не о представлении данных, а о структуре данных.
В ЧЕМ СОСТОИТ ОТЛИЧИЕ СТРУКТУРЫ ДОКУМЕНТА ОТ СТРУКТУРЫ ДАННЫХ?
Структура документа позволяет читателю быстро понять, в каком именно виде представил информацию автор документа.
Структуры данных указывают путь компьютерным приложениям путь к данным, которые содержаться в различных контейнерах целго документа. В структуре данных не содержится определение важности одного компонента документа по отношению к другому. Все компоненты равны.
Контрольные вопросы:
- Каково отличие между хорошо оформленными и правильными документами XML?
Хорошо оформленный документ отвечает всем правилам синтаксиса документа. Правильный документ – хорошо оформленный документ, соответствующий всем ограничениям, которые налагает на него связанная с ним структурная схема.
- Какие ограничения может использовать программист при создании схемы для документа XML?
Схема четко определяет имя и структуру корневого элемента, включая спецификацию его дочерних элементов. Программист может задать, какие элементы, и в каком количестве обязательны, а какие – нет. Схема определяет, какие элементы (и их допустимые значения) содержат атрибуты, а какие нет.
- Какие языки описания схем могут использовать авторы XML документов?
Используется несколько видов языков описания схем: DTD, XDR, XSD.
- Можно ли использовать схемы для контроля над типами данных в потоке данных XML?
Могут ограничивать типы данных такие схемы как XDR, XSD. Подход с использованием DTD не позволяет легко создавать правила использования типов данных
- Каково различие между структурой документа и структурой данных?
Структура документа позволяет читателю быстро понять, о чем идет речь в документе, а структура данных – показать программе обработчику, где брать данные.
- Что такое парсер?
Парсер – программа (в спецификации консорциума W3C называется обработчиком XML), которая интерпретирует символ за символом. Существует двва типа парсеров:
– проверяют форматирование документов, т.е. их соответствие синтаксическим правилам;
– сначала проверяют форматирование документа, а затем их соответствие всем ограничениям, указанным в связанных с ним документах.
Лекция 3 ЯЗЫК РАЗМЕТКИ XML
XML (Extensible Markup Language) - это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента porche в документе необходимо использовать тэг <car>, то XML позволяет свободно использовать определяемый пользователем тэг и включать его в XML- документ.
Выделяют семь основных характеристик языка XML:
1. XML предлагает метод структурирования файла в виде текстового файла.
2. XML похож на HTML.
3. XML понятен как компьютеру так и человеку
4. XML образует целое семейство технологий
5. XML достаточно гибок
6. XML достаточно нов, но у него глубокие корни
7. XML свободен от лицензионных отчислений, платформенно не зависим , имеет широкую поддержку.
Рассмотрим некоторые характеристики более подробно
XML предлагает метод структурирования файла в виде текстового файла.
Очень часто случаются казусы, когда необходимо данные одной программы переместить в другую, но формат собрание я данных в этих программах не совпадает, а значить и данные переместить не возможно.
XML обеспечивает такую возможность, поскольку любое приложение может работать с текстовыми документами, и любой человек может прочесть и понять текст.
XML позволяет сохранять в текстовом формате структурированные данные. XML это набор правил для создания текстовых форматов, простых для обработки компьютерами различных типов. Получаемые текстовые файлы структурированы таким образом, что они:
– точно выражены;
– расширяемы;
– платформно-независимы.
Для разработки XML-файлов можно использовать любой текстовый редактор. XML – документы обычно имеют расширении *.xml, но специализированные диалекты созданные в рамках XML могут иметь расширения
– *.xls – Файлы расширяемой таблицы стилей(extensible Stylesheet Language)
– *.xsd – Определение расширяемой схемы (Еxtensible Schema Definition)
– *.xdr – Сокращенная схема данных XML (XML Data Reduced Schema)
– *.mml –математический язык разметки (MathML Mathematical Markup Language)
– *.cdf – Формат определения каналов (Channel Definition Format)
XML похож на HTML
У языков XML и HTML есть несколько похожих характеристик.
Если рассмотреть пример разметки следующего текста, станет трудным ответ на вопрос это XML или HTML.
<p>
так, обычно, оформляют
<em> выделенный текст </em>
в языке HTML.
</p>
Ответ будет правильным в любом случае. Поскольку это пример хорошо оформленных документов и XML и HTML.
Однако, язык XML разрабатывался для того, чтобы преодолеть ограничения накладываемые языком HTML. Так, разработчик XML-документа может сам определить ряд своих собственных дескрипторов. Например, если дескриптор параграфа в HTML – <p> –единственный, который может задавать и описывать параграф, то XML разработчик документа может самостоятельно ввести дескриптор параграфа одним из ниже перечисленных дескрипторов
<indent>
<paragraph>
<para>
Самый простой элемент включает в себя открывающий дескриптор, содержимое, закрывающий дескриптор. Например,
<title> Изучаем XML </title>
ПРАВИЛО Вся строка <title>Изучаем XML</title> называется элементом, данные между дескрипторами называются содержимым элемента.
ПРАВИЛО Все элементы должны быть обязательно завершены. Все непустые элементы обязательно должны содержать открывающий и закрывающий дескрипторы. Пустые элементы должны быть закрыты по следующему правилу.
ПРАВИЛО Пустой элемент всегда записывается по стандартному правилу синтаксиса пустого элемента:
<имя _элемента/>
РАЗМЕЩЕНИЕ АТТРИБУТОВ В ЭКЗЕМПЛЯРЕ XML
Отметить, что, так же как и в HTML, в языке XML есть атрибуты, которые изменяют или классифицируют элементы и указываются в открывающем дескрипторе.
Синтаксис определения атрибута для элемента следующий:
<имя_элемента
имя_атрибута= “значение” > Содержание элемента соответствующего элемента </имя_атрибута>
Атрибуты размещаются всегда в открывающем дескрипторе. Открывающий дескриптор элемента может содержать несколько атрибутов, соблюдая следующую расстановку:
<имя_элемента
имя_атрибута= “значение”
имя_атрибута= “значение”
имя_атрибута= “значение”> Содержание элемента соответствующего элемента </имя_атрибута>
Например,
<account type= “checking” currency= “Gryvnja”>
<name>Ивченко</name>
<balance>18623,12</balance>
</account>
Все значения атрибутов должны быть обязательно заключены в кавычки. В случае отсутствия хотя бы одной кавычки парасер выдает замечание (рис. 1)
The XML page cannot be displayed Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later. A string literal was expected, but no opening quote character was found. Error processing resource 'file:///D:/WORK/Web-pro... <?xml version= 1.0"?>---------------^ |
Рисунок 1 – Результат отображения неправильно оформленного атрибута
Вопрос определения того, рассматриваемое свойство является элементом или атрибутом, есть достаточно не простым вопросом.
ПУСТЫЕ ЭЛЕМЕНТЫ
Элементы XML могут содержать текст, другие элементы, любую комбинацию текста и других элементов или же быть просто пустыми элементами.
Пустой элемент всегда записывается по стандартному правилу синтаксиса пустого элемента:
<имя _элемента/>
Например,
<date month= “September” day= “19” year= “2007” />
Рассматриваемый элемент является пустым, даже не смотря на то, что содержит атрибуты. Учитывая тот факт, что полная инструкция
<date month= “September” day= “19” year= “2007”></date>
функционирует точно так же как и краткая, для предоставления пустого элемента принято использовать краткую форму.
Рассмотрим фрагмент HTML текста.
<HTML>
<H1> Letter </H1>
<P>From: T. Usatenko </P>
<P>To: All students </P>
<P>Subject: Questions to exam </P>
<P>Date: 19.09 2007</P>
<Message> </message>
</HTML>
аналогичный фрагмент XML-текса выглядит так:
<Letter>
<from> T. Usatenko</from>
<to> All students </to>
<subject> Questions to exam</subject>
<date month=”September” day=“19” year=”2007” />
<message> Questions </message >
</Letter>
Если задать себе вопрос, какой из фрагментов содержит больше данных для обработки программным приложением, то ответ ясен – XML.
Другое различие состоит в том, что HTML смешивает содержание и форматирование в одном потоке разметки. Так, например, элементы <H1> и <b> говорят, каким образом должны быть выделены и где размещены объекты, выделенные такими элементами.
В случае XML, язык предполагает, что содержание и внешний вид должны храниться отдельно от данных разметки. Язык XML полностью полагается на каскадные таблицы стилей (CSS или XSL) при отображении или преобразовании документов из одной структуры у другой.