Технология XML
XML
XML
Составные части XML документа
Пролог
Объявление XML
Инструкции по обработке
Объявление DOCTYPE
Элементы
Теги
Комментарии
Текстовые блоки
Указатели на символы и сущности
Указатели на символы
Блоки CDATA
Атрибуты
Использование Namespaces (пространства имен)
Префиксы пространства имен
Объявление пространства имен
Область действия пространства имен
Область действия пространства имен
Well-formed XML
Well-formed XML
Well-formed XML
Well-formed XML
Well-formed XML
White Space
Преимущества XML формата
Недостатки XML формата
561.14K
Category: programmingprogramming

Технология XML

1. Технология XML

Обзор
www.epam.com
www.epam.com
EPAM
EPAM Systems
Systems

2. XML

• XML - EXtensible Markup Language
• Базируется на языке Standard Generalized Markup
Language (SGML)
• Язык разметки похожий на HTML
• Служит для описания данных
• XML тэги не определены в XML, их надо
определять
• Для описания правил XML данных используются
DTD или XML Schema
www.epam.com
EPAM Systems
2

3. XML

• XML данные могут хранится в отдельном файле так
и внутри HTML, который будет отвечать только за
формат отображения но не за данные
• XML можно использовать для обмена
информацией между двумя несовместимыми
системами
• XML используется для хранения данных в
файловой системе так же как и для сохранения и
выборки информации в базе данных
• Делает информацию доступной для пользователей
интернета (RSS, Web Services)
www.epam.com
EPAM Systems
3

4. Составные части XML документа


Пролог
Элементы
Инструкции по обработке
Комментарии
Атрибуты
Указатели
Текстовые блоки
Блоки CDATA
Пространства имен
www.epam.com
EPAM Systems
4

5. Пролог

• Пролог – это часть XML документа от начала до
открывающего тега корневого элемента
• Пролог включает в себя информацию относящуюся ко
всему документу, например кодировку, структуру
документа
• Пролог может содержать комментарии
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="show_book.xsl"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<!--catalog last updated 2010-11-01-->
<person> … </person>
www.epam.com
Пролог
EPAM Systems
5

6. Объявление XML

• Объявление XML обычно является первой строкой в XML
документе
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
• Объявление XML может содержать следующую
информацию:
– Номер версии:
version="1.0"
– Указание на кодировку символов, в которой написан документ:
encoding="UTF-8"
– Параметр «standalone» которые указывает запрещены ли ссылки на
внешние документы:
standalone="yes"
www.epam.com
EPAM Systems
6

7. Инструкции по обработке

<?xml-stylesheet type="text/xsl"
href="show_book.xsl"?>
<!-- legal but not effective-->
<?style – oh, try /style.css ?>
www.epam.com
EPAM Systems
7

8. Объявление DOCTYPE

<!DOCTYPE rootElement SYSTEM "URIreference"[
declarations
]>
www.epam.com
EPAM Systems
8

9. Элементы

<book id="bk109">
<author>Kress, Peter</author>
<title>Paradox Lost</title>
<genre>Science Fiction</genre>
<price>6.95</price>
</book>
www.epam.com
EPAM Systems
9

10. Теги

• Теги задают границы элемента
• Открывающие теги обозначают начало элемента:
<elementName att1Name="att1Value"
att2Name="att2Value" ...>
• Закрывающие теги обозначают конец элемента. Они не
могут иметь атрибутов:
</elementName>
• Пустые теги используются для создания элементов не
имеющих тектового содержания. Могут включать атрибуты:
<elementName att1Name="att1Value"
att2Name="att2Value" ... />
• Считается что элемент включает в себя открывающий и
закрывающий теги а также все что находится между ними
www.epam.com
EPAM Systems
10

11. Комментарии

<!-Here some notes about document can be
placed
<!-- Invalid comment -->
-->
<person <!-- Invalid comment -->>
<!-Just another comment
-->
</person>
<!-Comment in the end of the document
-->
www.epam.com
EPAM Systems
11

12. Текстовые блоки

• Вместо символов <, >, & нужно использовать &lt;
&gt; и &amp;
<node_with_text>
This is text block
<nested_element/>
This is another text block. Symbols <, >
and & can’t be used directly.
</node_with_text>
www.epam.com
EPAM Systems
12

13. Указатели на символы и сущности

• Указатели используются когда невозможно или
нежелательно включать символ или строку «напрямую»
• Указатель начинаются с символа амперсанд & и
заканчиваются точкой с запятой (;)
• Указатели на символы предоставляют возможность
включать в документ символы Unicode используя номер
• &#value;
– Синтаксис для десятеричных указателей
• &#xvalue;
– Синтаксис для шестнадцатеричных указателей.
www.epam.com
EPAM Systems
13

14. Указатели на символы

• Некоторые наиболее часто используемые
указатели на символы.
Последовательность
&lt;
&gt;
&amp;
&apos;
&quot;
www.epam.com
Символ
<
>
&
'
"
EPAM Systems
14

15. Блоки CDATA

• Блоки CDATA указывают парсеру что внутри них нет
символов разметки.
<![CDATA[An in-depth look at creating
applications with XML, using <, >,]]>
• Блоки CDATA не могут содержаться внутри другого
CDATA
• Символы внутри CDATA должны быть из класса
разрешенных для XML документов
www.epam.com
EPAM Systems
15

16. Атрибуты

<color RGB="true">#ff08ff</color>
<color RGB="false">white</color>
<font color="white"
name="Arial">Black</font>
www.epam.com
EPAM Systems
16

17. Использование Namespaces (пространства имен)

• Пространство имен XML - это идентифицируемая с
помощью ссылки URI [RFC2396] коллекция имен,
используемых в XML документах для обозначения типов
элементов и именования атрибутов.
• Пространство имен XML отличается от тех "пространств
имен", которые обычно используются в компьютерных
дисциплинах, тем, что в варианте для XML оно имеет
внутреннюю структуру, и, с математической точки зрения,
набором не является.
www.epam.com
EPAM Systems
17

18. Префиксы пространства имен

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log SYSTEM "log.dtd">
<log xmlns:xlg="www.host.com/xml/">
<xlg:event xlg:date="27/May/1999:02:32:46"
xlg:result="success">
<ip-from>195.151.62.18</ip-from>
<method>GET</method>
<url-to>/misc/</url-to>
<response>200</response>
</xlg:event>
<xlg:event xlg:date="27/May/1999:02:41:47"
xlg:result="success">
<ip-from>195.209.248.12</ip-from>
<method>GET</method>
<url-to>/soft.htm</url-to>
<response>200</response>
</xlg:event>
</log>
www.epam.com
EPAM Systems
18

19. Объявление пространства имен

<x xmlns:edi='http://ecommerce.org/schema'>
<!-- для элемента "x" и его содержимого
префикс "edi" связан
с http://ecommerce.org/schema
-->
</x>
www.epam.com
EPAM Systems
19

20. Область действия пространства имен

• Namespace относится к элементу где он был объявлен и
всем дочерним элементам
<?xml version="1.0"?>
<!-Все элементы здесь явно соотнесены с пространством имен HTML
-->
<html:html xmlns:html='http://www.w3.org/TR/REC-html40'>
<html:head>
<html:title>Frobnostication</html:title>
</html:head>
<html:body>
<html:p>
Moved to<html:a href='http://frob.com'>here.</html:a>
</html:p>
</html:body>
</html:html>
www.epam.com
EPAM Systems
20

21. Область действия пространства имен

• В одном элементе может быть декларировано сразу
несколько префиксов пространства имен
<?xml version="1.0"?>
<!-Оба префикса пространства имен доступны отовсюду
-->
<bk:book xmlns:bk='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<bk:title>Cheaper by the Dozen</bk:title>
<isbn:number>1568491379</isbn:number>
</bk:book>
www.epam.com
EPAM Systems
21

22. Well-formed XML

• XML документ может иметь только один корневой элемент
<?xml version="1.0" encoding="UTF-8"?>
<person>
<givenName>Peter</givenName>
<familyName>Kress</familyName>
</person>
<!-- Below is invalid element -->
<person>
<givenName>John</givenName>
<familyName>Doe</familyName>
</person>
<person/>
www.epam.com
EPAM Systems
22

23. Well-formed XML

• Все элементы должны иметь закрывающие
теги
<?xml version="1.0" encoding="UTF-8"?>
<person>
<familyName>Kress</familyName>
<not_closed_element>
</person>
www.epam.com
EPAM Systems
23

24. Well-formed XML

• Названия элементов являются регистрозависимыми, поэтому и открывающий и
закрывающий тег должны быть в одном
регистре.
<message>This is correct</message>
<Message>This is incorrect</message>
www.epam.com
EPAM Systems
24

25. Well-formed XML

• Элементы не могут пересекаться
<!-- valid -->
<b>This is bold text.</b> <i><b>This is
bold italic text.</b> This is italic
text.</i>
<!-- invalid -->
<b>This is bold text. <i>This is bold
italic text.</b> This is italic
text.</i>
www.epam.com
EPAM Systems
25

26. Well-formed XML

• Все значения атрибутов должны быть заключены в кавычки
<!-- valid -->
<person name="John" surname='Doe'/>
<!-- invalid -->
<person name=John/>
• <, >, & не могут использоваться в текстовых блоках
<!-- valid -->
<text>I &amp; my dog</text>
<!-- invalid -->
<text>I & my dog</text>
www.epam.com
EPAM Systems
26

27. White Space

• В отличие от HTML, XML не отсекает пробелы и
пустые строки
• Например в HTML:
<h4> Hello
my name is Tove</h4>
• Выведется:
Hello my name is Tove
www.epam.com
EPAM Systems
27

28. Преимущества XML формата

• Создание собственных именованных структур для хранения
информации
• Задача анализа (разбора)(parsing) XML хорошо формализована и
существует много реализаций
• XML использует Unicode, что упрощает интернационализацию
• Проверка структуры документа и типов данных – стандартная операция
• XML – это текстовый формат, удобно читать и отлаживать
• Инструменты для работы с XML доступны на всех платформах
• XML позволяет использовать инфраструктуру созданную для HTML,
включая HTTP и некоторые браузеры
www.epam.com
EPAM Systems
28

29. Недостатки XML формата

• XML документы обычно менее лаконичны чем
аналогичные бинарные форматы
• Передача XML создает больший трафик либо
больше загружает процессор если используется
сжатие
• Разбор XML может быть медленнее и более
требовательным к памяти чем разбор
оптимизированных бинарных документов
www.epam.com
EPAM Systems
29

30.

Контактная информация:
Денис Мурашев
Инструктор
EPAM Systems, Inc.
Адрес: Саратов, Рахова, 181
Email: [email protected]
http://www.epam.com
www.epam.com
EPAM Systems
30
English     Русский Rules