XML - это язык разметки, предназначенный для хранения и передачи данных.
В отличие от HTML, XML не определяет, как отображать или форматировать данные, он только содержит их.
- XML-Синтаксис
1<!-- Это комментарий. -->
2
3<?xml version="1.0" encoding="UTF-8"?>
4<bookstore>
5 <book category="КУЛИНАРИЯ">
6 <title lang="ru">Итальянская кухня каждый день</title>
7 <author>Giada De Laurentiis</author>
8 <year>2005</year>
9 <price>30.00</price>
10 </book>
11 <book category="ДЕТИ">
12 <title lang="ru">Гарри Поттер</title>
13 <author>Дж. К. Роулинг</author>
14 <year>2005</year>
15 <price>29.99</price>
16 </book>
17 <book category="ВСЕМИРНАЯ ПАУТИНА">
18 <title lang="ru">Изучаем XML</title>
19 <author>Эрик Рэй</author>
20 <year>2003</year>
21 <price>39.95</price>
22 </book>
23</bookstore>
24
25<!-- Вышеописанный документ - типичный XML-файл.
26 Он начинается с определения, объявляющего о некоторых метаданных (необязательно).
27
28 XML использует древовидную структуру. У вышеописанного документа
29 корневой узел - 'bookstore', который содержит три дочерних узла - все 'book'-узлы.
30 Такие узлы содержат еще дочерние узлы и т.д.
31
32 Узлы создаются с помощью открывающих/закрывающих тегов,
33 а дочерние узлы - это узлы между открывающимися и закрывающимися тегами.-->
34
35
36<!-- XML содержит в себе два типа данных:
37 1 - Атрибуты -> Это метаданные узлов.
38 Обычно XML-парсер использует эту информацию, чтобы хранить свойства данных.
39 Атрибут изображается путем вписывания его в скобки в пределах открытого тега
40 2 - Элементы -> Это чистые данные.
41 Это то, что парсер извлечет из XML-файла.
42 Элементы идут между открытыми и закрытыми тегами без скобок. -->
43
44
45<!-- Ниже элемент с двумя атрибутами -->
46<file type="gif" id="4293">компьютер.gif</file>
- Хорошо отформатированный документ x Проверка достоверности
XML-документ хорошо отформатирован, если он синтаксически верный. Впрочем, в документ возможно ввести больше ограничений, используя определения документа, вроде DTD и XML-схемы.
XML-документ, который следует описанию документа, называется корректным, относительно этого документа.
С таким инструментом вы можете проверить XML-данные вне логики приложения.
1<!-- Ниже вы можете увидеть упрощенную версию документа книжного магазина,
2 с дополнением DTD-определения.-->
3
4<?xml version="1.0" encoding="UTF-8"?>
5<!DOCTYPE note SYSTEM "Bookstore.dtd">
6<bookstore>
7 <book category="КУЛИНАРИЯ">
8 <title >Итальянская кухня каждый день</title>
9 <price>30.00</price>
10 </book>
11</bookstore>
12
13<!-- Этот DTD может быть чем-то вроде:-->
14
15<!DOCTYPE note
16[
17<!ELEMENT bookstore (book+)>
18<!ELEMENT book (title,price)>
19<!ATTLIST book category CDATA "Литература">
20<!ELEMENT title (#PCDATA)>
21<!ELEMENT price (#PCDATA)>
22]>
23
24
25<!-- DTD начинается с объявления.
26 Затем объявляется корневой узел, требующий 1 или более дочерних узлов 'book'.
27 Каждый 'book' должен содержать точно один 'title' и 'price', и атрибут,
28 называемый 'category', со значением "Литература" по умолчанию.
29 Узлы 'title' и 'price' содержат анализируемые символьные данные.-->
30
31<!-- DTD может быть объявлен в самом XML-файле.-->
32
33<?xml version="1.0" encoding="UTF-8"?>
34
35<!DOCTYPE note
36[
37<!ELEMENT bookstore (book+)>
38<!ELEMENT book (title,price)>
39<!ATTLIST book category CDATA "Литература">
40<!ELEMENT title (#PCDATA)>
41<!ELEMENT price (#PCDATA)>
42]>
43
44<bookstore>
45 <book category="КУЛИНАРИЯ">
46 <title >Итальянская кухня каждый день</title>
47 <price>30.00</price>
48 </book>
49</bookstore>
DTD совместимость и определение XML Schema(схем/структуры) ¶
Поддержка DTDs является повсеместным, потому что это довольно старая технология. К сожалению, современные функции XML как пространств имен(namespaces) не поддерживаются DTDs. Определения XML-схемы (XSDs) предназначены для замены DTDs которая в свою очередь предназначена для определения грамматики XML-документа.