Введение в XML

Итак, XML…

XML (eXtensible Markup Language) – это расширяемый язык разметки.

XML – это инструмент для структурирования информации

XML – это инфраструктура для создания Web-базированных информационных систем, т.е. набор программных компонент для создания, обработки структурированных документов и их передачи, посредством, например, протокола HTTP.

XML – это основа для построения современных веб-сервисов.

Основные потребители XML

1. SOA (service-oriented architecture)
2. Semantic Web

SOA использует XML для стандартизации структуры передаваемой информации между сервисами.

Semantic Web использует XML как средство интеграции онтологий и т.п. в существующую инфраструктуру Web.

Развитием XML управляет консорциум WWW (W3C).

Например, список компьютеров в XML можно представить так:

<productList>
<computer model="S3331" price="5000">
<hdd capacity="400">Hitachi</hdd>
<processor>P4</processor>
<motherboard> 865GPE </motherboard>
</computer>
<computer model="S3234" price="4000">
<hdd capacity="120">WD</hdd>
<processor>P4</processor>
<motherboard> 865GPE </motherboard>
</computer>
</productList>

Данные в XML размещаются внутри тегов. Пара “открывающий — закрывающий тег” соответствует элементу данных.

Элементом называется часть документа XML, разграниченная открывающим тегом, таким как <my_element>, и закрывающим тегом, таким как </my_element>.

Документ XML состоит из одного элемента верхнего уровня, называемым корневым элементом и наборов, вложенных в него, элементов и символьных данных.

Символьные данные — это текст внутри элемента.

Атрибутом является свойство элемента, которое предоставляет дополнительную информацию об элементе или о моделируемой сущности элемента.

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

Пространства имен XML – символьная строка, обозначаемая некоторый объект реального мира через URI.

URI (Uniform Resource Identifier) – унифицированный идентификатор ресурса.

В XML вместо URI в основном используется URL (Uniform Resource Locator).

URL — унифицированный локатор ресурсов, позволяющий
Например, пространство имен http://semanticfuture.net/ с префиксом ns, позволяет создать элемент <ns:computer> __</ns:computer>, который будет использоваться для описания сущности «Компьютер», причем структура моделируем сущности уникальна внутри схемы XML, принятой в semanticfuture.net.

Применение пространств имен позволяет различать элементы имеющие одинаковые имена.

Так через используемые пространства имен можно отличить элемент <ns:computer> с http://semanticfuture.net и <ns:computer> из http://shcherbak.net.

Для повышения читабельности XML-данных (и не только для этого!!!) необходимо структурировать информацию по определенным критериям.
Например, можно использовать способы структурирования информации, принятые в ER-моделировании или ООП.

Например, для структурирования можно использовать простое правило

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

Для организации связи «быть частью» между сущностями можно использовать вложение элементов XML. Так, если Вы хотите показать, что некоторый элемент является частью другого элемента, то описываете его внутри этого элемента. Например, если Вы хотите показать, что сущность автомобиль состоит из различных компонентов, например, двигателя, колес и т.д., тогда в XML это можно выразить так:

<car namе="VM"><engine>V6</engine></car>

Но это не единственный вид связи, который может моделироваться в XML.

XML поддерживает все возможные виды связей, которые могут моделироваться такими языками, как UML, языками ER-моделирования и т.п.

Но для моделирования таких связей, вероятнее всего, вам придется использовать такие технологии как XLink или XPointer.

Кроме того, при создании документов XML необходимо не забывать простые правила формирования XML-документов, а именно,

1. XML- регистрозависим, т.е.в тегах учитывается регистр символов.
2. Элементы XML должны быть правильно вложены друг в друга.
3. В XML должен быть один корневой элемент.
4. Значения атрибутов всегда должны быть заключены в кавычки.

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

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

Например, msxml от Microsoft.

Что нужно помнить при работе с XML?

1. В XML сохраняются пробелы (в отличие от HTML), т.е. если в текстовые описания добавлять лишние пробелы, то они синтаксическим анализатором не удаляются.
2. В XML символы перевода строки CR/LF преобразуются в LF.

Для описания данных в XML используется DTD или схема XML.

DTD (Document Type Definition) задает правила формирования теговой разметки.

Например, для описания компьютеров можно определить следующее DTD:

<!ELEMENT productList (computer)+ >
<!ELEMENT computer (hdd, processor, morherboard) >
<!ELEMENT hdd (#PCDATA) >
<!ELEMENT processor (#PCDATA) >
<!ELEMENT motherboard (#PCDATA) >

Использование знака «+» возле элемента накладывает на элемент ограничение — этот элемент как минимум раз должен быть определен. Могут также применяться, такие знаки, как «*» и «?». Знак «*» означает, что возможно 0, 1 или более элементов, а «?» означает, что элемент необязателен. Отсутствие знаков возле элементов означает обязательность их определения (т.е. элемент обязательно должен быть).

Атрибуты элементов определяются с помощью конструкции XML <!ATTLIST>.

<!ATTLIST имя_элемента имя_атрибута тип_атрибута значение_по_умолчанию >

В DTD все типы атрибутов основаны на строковом типе данных.

Наиболее распространенные типы атрибута:

CDATA – символьные данные;
ID — уникальный идентификатор;
(value1|value2|) – перечисление возможных значений атрибутов, т.е. возможным значением атрибута будет одно из перечисляемых.

Например, можно определить атрибут model так:

<!ATTLIST computer model CDATA>

DTD к XML можно подключить так:

<!DOCTYPE productList SYSTEM «products.dtd»>

или можно определить конструкции DTD внутри XML документа, например, так

<!DOCTYPE productList
[
<!ELEMENT productList (computer)+ >
<!ELEMENT computer (hdd, processor, motherboard) >
<!ELEMENT hdd (#PCDATA) >
<!ELEMENT processor (#PCDATA) >
<!ELEMENT motherboard (#PCDATA) >
]>

Недостатки DTD:

1. Отсутствие типизации узлов.
2. Отсутствие поддержки пространств имён.

Вместо DTD можно использовать XML Schema.

XML Schema поддерживает различные типы данных.

Подключить XMLSchema к XML документу можно так:

<ProductList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="products.xsd">

</ProductList>

Для визуализации содержимого файла XML с помощью CSS можно использовать каскадную таблицу стилей CSS. Подключить ее можно следующим образом:

<?xml-stylesheet type="text/css" href="sheet.css" ?>

Для визуализации содержимого файла XML с помощью XSL можно использовать XSL. Подключить его можно следующим образом:

<?xml-stylesheet type="text/xsl" href="sheet.xsl" ?>

Для обработки XML-конструкций применяются такие технологии как DOM, SAX, XSLT.

Некоторые определения:

XML-документ, имеющий правильный синтаксис, называется правильно сформированным XML-документом.

XML-документ, проверенный и соответствующий DTD (XML SCHEMA) называется допустимым («валидным») XML-документом.

Более подробно об XML можно почитать здесь Школы XML

One Response to Введение в XML

  1. akdir:

    отличная статья) но есть 2 идеи, точнее дополнения от меня)
    Когда знакомился с XML были проблемы —
    1 — — не всегда XML видел href=»sheet.css» рядышком, и часто приходилось писать полный путь href=»http://site.ru/sheet.css»
    2 — Редактор с хорошей визуальной разметкой) — Мой выбор — notepad++ — очень удобен и функционален)
    P.S. Может кому и мои советы помогут) Еще раз спс автору за статью)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Ответить с помощью ВКонтакте: