Transcript Slide 1

Enabling Grids for E-sciencE
Введение в XML. XML в
примерах.
М. Сапунов
ИФВЭ, Протвино.
www.eu-egee.org
INFSO-RI-508833
Введение в XML
Enabling Grids for E-sciencE
• Стандарт для языка XML утвержден в 1998 году.
• XML - Extensible Markup Language, потомок SGML.
• XML это стандарт, предоставляющий средства для
интеллектуального поиска информации, обмена
данными, адаптивной обработки получаемых
данных.
• XML это текст но, он не предназначен для чтения.
• Семейство технологий XML включает в себя XLink,
XPointer, XSLT, XForms и т.д.
• XML свободна от лицензий, платформо-независима
и хорошо поддерживается сторонними
разработчиками.
INFSO-RI-508833
2
Термины
Enabling Grids for E-sciencE
• DTD (Document Type Definition) - язык описания
схемы данных, применяемый в первой версии XML.
• XSDL (XML Schema Definition Language). Новый и
рекомендуемый способ формального описания
структуры XML-документа.
• DOM (Document Object Model). Спецификация
высокого уровня, представляющая документы в
виде структуры агрегированных объектов.
Реализация DOM представляет собой парсер
высокого уровня.
INFSO-RI-508833
3
Правила XML
Enabling Grids for E-sciencE
• Контроль правильности XML - документа (DTD определения и схемы данных “Semantic Schema”).
• Разметка XML – документа чувствительна к
регистру.
• Разметка XML - документа выполняется при помощи
элементов называемых тэгами. Каждый
открывающий тэг должен иметь соответствующий
ему закрывающий.
• Элементы могут содержать атрибуты. Значения
атрибутов должны заключаться в кавычки.
• Имена элементов должны быть уникальны для
всего файла.
• Для специальных символов используются
зарезервированные конструкции.
INFSO-RI-508833
4
Структура документа XML
Enabling Grids for E-sciencE
Простейшая структура XML – документа выглядит
следующим образом:
<?xml version="1.0" encoding="koi8-r"?>
<log>
<event date=" 01/Jan/2004:00:00:01 " result="success">
<ip-from> 195.151.62.18 </ip-from>
<method>GET</method>
<url-to> /misc/</url-to>
<response>200</response>
</event>
</log>
Где цветом выделены:
Инструкция с версией языка и другие параметры
Корневой элемент
Простые элементы
INFSO-RI-508833
5
Разметка XML
Enabling Grids for E-sciencE
<list>
<item>Car</itm>
<item>Plane</ITEM>
<item>Train</item>
</list>
<text>
<bold>
<italic>XML</bold>
</italic>
</text>
<forbidenNames>
<A;name/>
<last@name/>
<@#$%^()%+?=/><A*2/><1ex/>
</forbidenNames>
<errors>
<wrong_char a*b = "23432"/>
<mismatched value = "12'/>
<type value="aa"aa"/>
</errors>
<forbidenNames>
<xmlTag/><XMLTag/>
<XmLTag/><xMlTag/>
<xmLTag/>
</forbidenNames>
<example>
<isLower>23 < 46</isLower>
<amp>Willey & sons</amp>
<!-- A -- B -->
</example>
INFSO-RI-508833
6
Контроль правильности XML
Enabling Grids for E-sciencE
DTD - определения (Document Type Definition)
• Задание правил для элементов и атрибутов
• Описание категорий
• Описание форматов бинарных данных
Описание DTD может быть вынесено в файл, а может
задаваться непосредственно в документе.
<?xml version="1.0" standalone="yes" ?>
<! DOCTYPE journal SYSTEM "journal.dtd">
...
...
<! DOCTYPE journal [
<!ELEMENT journal (contacts, issues, authors)> ...
]>
...
Приоритет отдается внутренним описаниям.
Пример внешнего DTD
INFSO-RI-508833
7
Контроль правильности XML
Enabling Grids for E-sciencE
Пример DTD – определения, файл journal.dtd:
<?xml encoding="koi8-r"?>
<!ELEMENT log (event)+>
<!ELEMENT event (ip-from,method,uri-to,result)>
<!ELEMENT method (#PCDATA)>
<!ELEMENT ip-from (#PCDATA)>
<!ELEMENT url-to (#PCDATA)>
<!ELEMENT response (#PCDATA)>
<!ATTLIST event result CDATA #IMPLIED date CDATA #IMPLIED>
!ELEMENT – ключевое слово при описании элементов.
!ATTLIST – ключевое слово при описании атрибутов.
Содержимое элементов, а также типов значений и
параметров атрибутов определяется специальными
маркерами, например:
PCDATA, NMTOKEN, IMPLIED и т.д.
INFSO-RI-508833
8
Контроль правильности XML
Enabling Grids for E-sciencE
Макроопределения DTD - компонент
Создаться при помощи инструкции !ENTITY
<!ENTITY hello ' Мы рады приветствовать Вас!' >
Теперь в XML – документе можно использовать
выражение &hello, которое будет заменено на
соответствующее значениепри разборе документа.
• Внутренние макроопределения. Предназначены для
определения строковой константы.
• Внешние макроопределения. Указывают на
содержимое внешнего файла. Содержимое может быть
как текстовым, так и двоичным.
• Макроопределения правил. Используются для
описания параметров в правилах атрибутов.
INFSO-RI-508833
9
Контроль правильности XML
Enabling Grids for E-sciencE
•
•
•
•
Схемы данных (Semantic Schema)
более мощными средствами для определения
сложных структур данных.
более понятный способ описания грамматики
языка.
способны легко модернизироваться и расширяться.
Схемы данных позволяют описывать правила для
XML- документа средствами самого же XML.
<schema id="OurSchema">
<elementType id="#title">
<string/>
</elementType>
</schema>
INFSO-RI-508833
10
Пространства имен XML
Enabling Grids for E-sciencE
• Пространство имен XML - это идентифицируемая с
помощью ссылки URI [RFC2396] коллекция имен,
используемых в XML документах для обозначения
типов элементов и именования атрибутов.
• Полное имя состоит из префикса пространства
имен (xmlns) и локальную часть разделенное
двоеточием.
<x xmlns:edi='http://ecommerce.org/schema'>
<!- для элемента "x" и его содержимого
префикс "edi" связан с http://ecommerce.org/schema
-->
</x>
Пример схемы данных и пространства имен.
INFSO-RI-508833
11
DOM XML
Enabling Grids for E-sciencE
DOM представляет XML-документ в виде дерева,
состоящего из узлов. В DOM определяются
различные типы узлов, соответствующие разным
конструкциям XML.
INFSO-RI-508833
12
Ссылки по XML
Enabling Grids for E-sciencE
Ссылки на стандарт и на русские ресурсы:
• http://www.w3.org/XML/
• http://www.w3.org/XML/Schema
• http://www.w3.org/Style/XSL/
• http://www.xmlhack.ru/
• http://www.xml.nsu.ru/
INFSO-RI-508833
13