Цель лабораторной работы:
Различные виды представления информации: текст, графика (растровая и векторная), базы данных, звук, музыка (нотная запись), языки разметки. Каждый из видов представления имеет далеко не один различный формат представления данных.
Цель: стандартизировать формат представления данных, чтобы возможно было обеспечить:
Язык разметки данных eXtensible Markup Language - Расширяемый язык разметки XML
Синтаксически в XML, по сравнению с HTML, нет ничего нового. Это такой же текст, размеченный тегами, но с той лишь разницей, что в HTML существует ограниченный набор тегов, которые можно использовать в документах, в то время, как XML позволяет создавать и использовать любую разметку, которая может понадобиться для разметки данных.
Несомненным достоинством XML является и то, что это достаточно простой язык. Основных конструкций в XML мало, но, несмотря на это, с их помощью можно создавать разметку документов практически любой сложности.
Для демонстрации структуры XML документа лучше обратиться к какому нибуть примеру. Рассмотрим следующий XML документ:
<?xml version="1.0" ?> <root_element> <element> Текст <another_element attribute="значение" /> текст ... </element> Текст текст текст <element> текст текст... </element> ... </root_element>
Рассмотрим данный пример подробно. Первая строка документа определяет его как XML документ, построенный в соответствии с первой версией языка (version="1.0"). В этой же конструкции можно указать и кодировку, в которой создан документ:
<?xml version="1.0" encoding="utf-8" ?>
Кодировкой по умолчанию для XML является unicode.
Далее находится открывающий тег корневого (главного) элемента <root_element>, содержащий элемент <элемент>,
который, в свою очередь, содержит элемент <another_element атрибут="значение" /> с атрибутом атрибут.
Как видно из примера, правила записи элементов, атрибутов и их значений в XML ничем не отличаются от правил записи
элементов атрибутов и их значений в HTML (также есть открывающие и закрывающие теги элементов, элементы с содержимым и без и т.д.),
только набор элементов несколько расширен, благодаря чему мы и можем нагрузить
разметку семантикой.
Ниже приводятся несколько правил построения XML документа. Итак:
XML документ представляет собой обыкновенный текстовый файл с расширением .xml. Единственная особенность их заключается в том, что для символов файла рекомендуется использовать кодировку Unicode.
Помимо элементов, атрибутов и текста, документы могут содержать и другие конструкции, такие как комментарии, инструкции по обработке и секции символьных данных. Эти базовые составляющие используются для того, чтобы чтобы гибко, но в четком соответствии со стандартами, размечать документы любой сложности. Рассмотрим эти конструкции поподробнее.
Теги в XML документе не просто размечают текст - они выделяют объект, называемый элементом. Элементы являются основными структурными единицами XML - именно они иерархически организуют информацию, содержащуюся в документе. Элементы могут быть пустыми, т.е. не содержать ни данных, ни других конструкций, или непустыми - включать в себя текст, другие элементы и т. п.
Пустой элемент имеет следующий вид:
<element attribute="значение" attribute="значение" ... />
Примерами таких элементов в знакомом HTML являются:
<br />, <img src="images/picture.gif" /> ...
Непустые элементы имеют вид:
<element attribute="значение" attribute="значение" ...> ... Содержимое элемента ... </element>
В HTML таких элементов большинство: <body> ... </body>, <p> ... </p> - в этих элементах может располагаться как текст, так и другие элементы (таблицы, рисунки...).
Необходимо помнить об обной очень важной особенности XML: имена в XML - регистро-зависимы, то есть <Sample-element />, <SAMPLE-ELEMENT /> и <sample-element /> - совершенно разные элементы.
Легко заметить, что документ, состоящий из вложенных друг в друга элементов, подобен дереву: родительский элемент является корнем, дочерние элементы - ветками, а если они не содержат ничего более - листьями:
<library> <book> <title value="Технология XSLT" /> <author fio="Алексей Валиков" /> <publisher> <name value="BHV" /> <homepage url="http://www.bhv.com" /> </publisher> </book> ... </library>
В данном случае <library> является корнем, <book> и </publisher> - ветви, а <title>, <author>, <name> и <homepage> - листья
Внимание: в XML требуется тщательно следить за правильностью вложения элементов друг в друга - элементы, раньше открытые, должны быть позже закрыты. В противном случае не может быть и речи о иерархической структуре документа.
В элементах можно использовать атрибуты с присвоенными им значениями. Атрибут задается следующим образом:
атрибут = "значение"
В отличие от HTML в XML атрибуты всегда должны иметь значение! Значение атрибута заключается в двойные или одинарные кавычки. При необходимости, можно использовать одинарные кавычки внутри двойных и наоборот.
<company_name = 'Акционерное Общество "Витязь"' ... /> ... <book-author = "О'Генри" ... />
Имена в XML регистро-зависимые. Это относится не только к элементам, но и к атрибутам.
Секция CDATA выделяет часть документа, внутри которых текст не должен восприниматься как
разметка. CDATA означает буквально character data
- символьные данные. Вот пример секции CDATA:
<![CDATA[ содержимое ]]>
Внутри секции CDATA могут располагаться любые символы, даже < и & - они не будут
восприниматься анализатором как управляющие. Единственная последовательность,
которая не должна присутствовать в CDATA, это ]]>
- окончание символьных данных.
XML документ может содержать комментарии, записываемые следующим образом:
<!-- Это комментарий --> ... <!-- комментарии могут охватывать несколько строк -->
Текст комментария может состоять из любых символов, кроме двух -
подряд (--
).
Проблема одинаковых
тегов.
На примере ниже две предметные области - фрукты и компьютеры используют один тег <apple>
Мы не можем объединить эти данные в одной модели.
<?xml version="1.0" ?> <fruit> <apple>Снежный кальвиль</apple> </fruit> <?xml version="1.0" ?> <computer> <apple>MacBook</apple> </computer>
Пространства имен используются для разделения или идентификации данных. В XML они используются для связи одного или более узлов с определенным URI (унифицированный идентификатор ресурса).
Определение пространства имен. 1 способ - это определить атрибут, названный xmlns, внутри узла элемента со значением URI. Этот узел и все его потомки будут принадлежать пространству имен, установленному этим URI.
<?xml version="1.0" ?> <myxml> <parent xmlns="http://www.example.com/uri/"> <child/> </parent> </myxml>
2 способ - Пространство имен URI так же может быть связано с префиксом в XML. При определении с префиксом, только узлы, использующие этот префикс, будут рассматриваться как часть пространства имен. И узлы, и атрибуты элемента могут использовать префикс. Чтобы определить префикс, нужно создать узел xmlns в родительском элементе с именем префикса в качестве суффикса атрибута xmlns .
<?xml version="1.0" ?> <myxml xmlns:ns="http://www.example.com/uri/" > <parent> <ns:child/> </parent> </myxml>
В данном примере только <child> находится в пространстве имен
URI обычно являются адресами веб-сайтов. Они не обязательно должны быть верными адресами, но так как только одно тело может обладать любым одним доменом, они делают хорошее дело, позволяя убедиться, что люди не будут использовать один и тот же URI для разных целей. Это известно в качестве установки пространства имен по умолчанию
Пространства имен: Определенные пользователем и Общепринятые
XML документ считается формально корректным (well-formed), если он соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу: правильная структура документа, совпадение имен в начальном и конечном теге элемента и т.п. Документ, который неправильно построен, не может считаться документом XML. Документ должен соответствовать синтаксическим правилам, определенным консорциумом W3C (World Wide Web Consortium) в спецификации Extensible Markup Language (XML) 1.0 (Fifth Edition).
Далее XML документ считается действительным (valid), если включает определение типа документа (document type definition, DTD) или XML-схему (XSD), причем сам документ не противоречит этой схеме (определению DTD). Определение DTD (схема документа) задает корректный синтаксис.
Создать XML документ, содержащий информацию о какой-либо предметной области. Название предметной области согласовать с преподавателем. Для оформления XML документа использовать знания и пользоваться правилами, указаными в теоретических сведениях. Проверить документ на корректность.
Проверить корректность my.xml можно командой
xmllint my.xml