|
||
|
||
eXtensible Markup LanguageАлексей Литвинюк В моей статье "XML — потомок SGML" я попытался очень коротко описать, что такое XML и зачем он нужен. Я получил несколько писем, в которых читатели просят как можно подробнее остановиться на этой теме. Что я, собственно, и собираюсь сделать. Я постараюсь как можно подробнее рассказать о DTD, XML, XSLT, а также о спецификациях XPath, XLink, XPointer, XML Schema и о многом другом. Это повествование будет как можно более подробным и понятным читателю. XML(Extensible Markup Language) — расширяемый язык разметки. Как я уже говорил, XML — это набор правил для описания новых языков разметки. Таких, как, например, XHTML. XML является подмоножеством SGML (Standart Generalized Markup Language). Последний был разработан сотрудниками IBM: Чарльзом Голдфарбом, Эдом Мошером, и Рэем Лори в далеком 1968 году. Цель его разработки — создать инструмент для разметки текстовой информации. В то время разрабатываемый язык назывался GML, а SGML — это уже результат стандартизации GML (по странному стечению обстоятельств буквы G, M и L являются первыми буквами фамилий его разработчиков). Когда дело касается языков разметки, очень часто употребляется термин "метаданные". Метаданными принято называть данные, описываемые другими данными. Например, любой непустой тег XHTML является метаданными, которые описывают то, что содержится внутри элемента XHTML, например: <title> Это заголовок </title>. В этом примере данные "Это заголовок" описываются метаданными <title></title>. Можно рассмотреть и более простой пример. Возьмем библиотечные карточки на имеющиеся в библиотеке книги. В таблице 1 приведены метаданные и описываемые ими данные.
Данные: Метаданные: HTML может служить непосредственным результатом описания языка разметки на SGML. HTML был разработан уже в 1989 году, как язык разметки для текстовых документов с использованием гиперссылок, Тимом Бернерс-Ли и Андресом Берглундом. Уже несколько позже был разработан протокол передачи гипертекста (HTTP, HyperText Transfer Protocal). После появления первого графического Web-браузера, World Wide Web стал стремительно развиваться, а вместе с ним и HTML. Однако стало понятно, что с помощью HTML невозможно решить очень много насущных задач. Вносить значительные изменения в HTML не представлялось возможным, т.к. он уже был широко распространен. Основными недостатками в HTML считается его неструктурированность: существование незакрывающихся тегов, регистронезависимость, спорные вопросы по поводу одинарных и двойных кавычек и много чего еще. Поэтому сообщество World Wide Web Consortium приняло решение о создании упрощенной версии SGML — XML. Как я уже говорил в предыдущей статье о XML, XML не является заменой HTML. Это заблуждение. XML является наиболее подходящим языком для описания любых данных для Web и не только. Поэтому данные лучше всего структурировать с помощью XML-совместимого языка, а представлять — с помощью XSL или HTML.
Вот пример простого документа XML, описывающего несколько библиотечных карточек: Как видно из этого примера, представление данных в XML выглядит очень доступно и просто. Разработчики, наблюдая скорость развития высоких технологий, сделали ставку не на экономию ресурсов, а на доступность и понятность конечному пользователю. В таком виде может быть представлена практически любая информация. Как уже было сказано по поводу повышенной строгости к структуре документа XML, в отличие от HTML XML имеет множество ограничений. Например, такие, как обязательное присутствие корневого элемента, наличие закрывающего элемента у непустых элементов (<img src = "my_image.jpg" />), регистрозависимость, т.е. <book> и </BOOK> не будут парой тегов, образующих один элемент, а также правила, описываемые в DTD или в XML Schema. XML может использоваться где угодно. Он служит языком для описания огромного количество мета-языков во всех областях знаний по всему миру. С его помощью мы можем реализовать как язык для описания адресной книги, так и язык MathML. XML позволяет любому приложению представлять любую информацию в едином представлении и, впоследствии, она может быть без проблем использована в другом приложении. Это избавляет разработчиков от необходимости изобретения очередных форматов представления данных в своих программах. Использование XML упрощает поиск, осуществление транзакций между различными приложениями и базами данных. Это лишь малая часть того, что нам дает использование XML. Структура документа XMLИз чего состоит XML? Важно знать, что в XML основным понятием является не тег, а элемент. Содержимое документа XML можно разделить на саму разметку (метаданные) и содержание (данные). Помимо элементов, при разметке XML используются атрибуты, комментарии, инструкции по обработке, ссылки на сущности и CDATA. Раздел CDATA не обрабатывается как весь остальной текст, а передается приложению, обрабатывающему XML-документ напрямую. Обычный элемент состоит из открывающего и закрывающего тега. Если необходимо отсутствие закрывающего тега, то перед символом > ставится прямой слэш /, например, <PAGES count="255" />. Атрибуты XML практически ничем не отличаются от атрибутов в HTML. Только значение атрибута всегда должно быть заключено в двойные кавычки. Атрибуты помещаются после имени элемента.
Как вы могли заметить, в приведенном примере XML-документа в самом начале идет инструкция по обработке следующего содержания:
<?xml verstion = "1.0" encoding = "UTF-8"> Document Type DefinitionПоскольку XML-документ имеет строгую структурированность, то обязательно должны присутствовать средства, позволяющие проверять, не нарушена ли структура документа перед его обработкой. Именно для таких целей предназначен DTD. С его помощью определяются правила описания каждого элемента и его атрибутов, если такие имеются. Описанный DTD может быть применен к какому-либо XML-документу для контроля на соответствие правилам, описанным в этом DTD. Проверка XML-документа на валидность по DTD осуществляется внешними анализаторами. О них мы будет говорить несколько позже. DTD может быть объявлено как непосредственно внутри XML-документа (внутренний DTD), так и во внешнем файле (внешний DTD). В случае внешнего DTD, в XML-документе определяется ссылка на него все в том же <!DOCTYPE.
Любое объявление DTD начинается с символов <!DOCTYPE. Далее следует название документа, которое, фактически, должно соответствовать корневому элементу XML-документа. После этого следует определение правил DTD, заключенных в квадратные скобки для внутренних DTD, или ключевое слово SYSTEM, или PUBLIC для внешнего определения типов. В случае с SYSTEM, вы описываете расположение внешнего файла DTD в формате (Uniform Resource Identificator, URI). После PUBLIC вам нужно будет указать уникальный идентификатор DTD. Вот как может выглядеть подключение внешнего и внутреннего DTD: ANY — допускает любое содержимое элемента. Этот тип может нарушить структурированность XML-документа, т.к. в случае такого типа мы не можем четко проанализировать, что содержится в этом элементе. По этой причине он используется довольно редко. Mixed — допускает содержание одновременно множества типов (как данные, так и вложенные элементы; смешанное). Element — допускает в качестве содержимого только вложенные элементы.
Примеры использования вышеприведенных типов:
<!ELEMENT ANY_CONTENT ANY>
<!ELEMENT LIBRARY (BOOK)>
<!ELEMENT BOOK (NAME, AUTHOR, YEAR, PUBLISHER)>
+ — одно или более вхождений;
Эти индикаторы ставятся после закрывающей круглой скобки. Например, чтобы правильно определить наш корневой элемент LIBRARY, нам необходимо указать следующее правило:
Формат описания атрибутов в DTD мало чем отличается от описания элементов. Формат описания следующий:
"по_умолчанию" может принимать четыре значения:
Четвертым вариантом значения поля "по_умолчанию" может быть явное указание значения атрибута по умолчанию, заключенное в двойные кавычки. Например: Теперь, имея такую таблицу правил, анализатор XML без труда обнаружит брешь в структуре документа. Например, если в элементе BOOK будет содержаться несколько элементов NAME. Теперь, после прочтения этой статьи, вы без труда сможете спроектировать какой-нибудь простой XML-документ и написать для него Document Type Defenition. XML дает нам совместимость любых приложений. Даже работающих под разными операционными системами. Это еще раз подчеркивает неизбежную популярность XML не только в World Wide Web, но и как отдельной технологии вообще. В следующей статье будут рассмотрены не затронутые в этой статье темы. С вопросами и предложениями — пишите. Источник: http://www.nestor.minsk.by/kg
| ||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |