рабочая тетрадь(3)
.pdf
Корректные XML-документы (well-formed)
Документы, полностью соответствующие правилам оформления XML.
Корректность проверяется XML-парсер.
Валидные XML-документы (valid)
Корректные XML-документы, которые соответствуют заранее определенному набору правил.
Валидность проверяется валидатором.
Описание структуры документа
DTD – Document Type Definition (определение типа документа)
XML Схемы
<!ELEMENT catalog (book+)>
<!ELEMENT book (author+, title, price, exists?)>
<!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ELEMENT exists (#PCDATA)>
<!ATTLIST price currency CDATA #IMPLIED>
<?xml version="1.0"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema">
<xs:element name="страна" type="Страна"/> <xs:complexType name="Страна">
<xs:sequence>
<xs:element name="название" type="xs:string"/> <xs:element name="население" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<страна xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="country.xsd"> <название>Франция</название> <население>59.7</население>
</страна>
SAX (Simple API for XML)
получение информации из XML-документа
DOM (Document Object Model)
чтение, модификация и создание новых XMLдокументов
SimpleXML
чтение и модификация XML-документов
XMLReader и XMLWriter
чтение и модификация XML-документов
XSL/T (Extensible Stylesheet Language Transformations)
преобразование XML-документов в другие форматы
Официальный сайт: http://www.saxproject.org/
Описывает метод парсинга XML-документов для получения данных из них
Создавать и изменять XML-документы с помощью SAX невозможно
Основан на событиях
XML-парсеру предоставляется набор собственных функций для обработки различных типов XML-данных
Парсер автоматически вызывает эти функции в процессе последовательной обработки XML-документа
Начало XML-элемента
<catalog> |
Начало XML-элемента |
|
|
<book> |
Начало XML-элемента |
<author>L.Argerich</author>
</book>
</catalog>
Конец XML-элемента
Текстовый узел Конец XML-элемента
Конец XML-элемента
Создание парсера
$sax = xml_parser_create("utf-8");
Декларация функций обработки
function onStart ($parser, $tag, $attrs) {}
function onEnd ($parser, $tag) {}
function onText ($parser, $text) {}
Регистрация функций
xml_set_element_handler($sax, "onStart", "onEnd");
xml_set_character_data_handler($sax, "onText");
Запуск парсера
xml_parse($sax, "XML СТРОКА!");
Обработка ошибок
xml_error_string(xml_get_error_code($sax));
DOM
Document Object Model
Интерфейс, позволяющий программам управлять содержимым документов XML, а также изменять их структуру
Представляет XML-документ в виде дерева узлов
Существует спецификация DOM (W3C)
$dom = new DOMDocument();
$dom = new DOMDocument('1.0', 'utf-8');
<catalog>
<book> <author>Хьюз</author> <title>PHP</title>
</book>
<book> <author>Григин</author> <title>Справочник</title>
</book>
</catalog>
Catalog
Book Book
Author Title Author Title
Text
Text
Text
Text
|
|
|
|
|
|
|
|
|
|
|
|
|
Код |
Тип узла |
Описание |
Пример |
|
|
типа |
|
|
|
|
|
|
|
|
|
|
|
1 |
ELEMENT |
Элемент |
<book>…</book> |
|
|
|
|
|
|
|
|
2 |
ATTRIBUTE |
Атрибут элемента |
lang="ru" |
|
|
|
|
|
|
|
|
3 |
TEXT |
Текстовый узел |
Это текст |
|
|
|
|
|
|
|
|
8 |
COMMENT |
Комментарий |
<!– |
|
|
|
|
|
Комментарий |
|
|
|
|
|
--> |
|
|
|
|
|
|
|
10 |
DocumentType Декларация типа |
|
документа |
<!DOCTYPE html PUBLIC “- //W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loos e.dtd”>
