XML - расширенный язык разметки
(eXtensible Markup Language)
Зачем нам это надо?
Основой WWW является HTML – набор тэгов, который позволяет создавать разметку документа
Недостатки HTML:
- даже самый большой список тэгов не в состоянии полностью удовлетворить запросы создателей документов силу того, что этот список ограничен
- HTML – документы ориентированы прежде всего на отображение, а не на автоматическую обработку. Из базы данных можно передать данные в HTML-документ. Обратная операция намного сложнее.
создание языка XML, отличного от SGML и HTML " width="640"
Корни XML
1986 г. – организация ISO (International Organization for Standardization) принимает язык SGML (Standard Generalized Markup Language) в качестве официального стандарта
SGML позволяет :
- описывать структурированные данные
- организовывать и представлять информацию, содержащуюся в документах
- создавать свои конструкции разметки
Недостатки SGML:
- описание спецификации занимает более 500 страниц
Следствие = создание языка XML, отличного от SGML и HTML
Корни XML
XML – подмножество SGML, расширенный язык разметки, пришедший на смену HTML
XML позволяет :
- создавать свой язык для каждого типа документа или даже для каждого документа отдельно
- максимально легко интегрировать данные из различных приложений
Недостатки XML :
- адекватное отображение содержимого XML-файлов различными браузерами достигается далеко не всегда
Структура XML - документов
В XML докумение можно выделить 2 основные части:
- Описания структуры документа DTD – блок (Document Type Definition)
- Непосредственно содержание документа
В первой части мы можем использовать:
- Инструкции XML – процессора
- Объявление элементов структуры документа
- Атрибуты для каждого элемента
- Cущности
DTD-блок может внедряться как в сам документ, так и находиться во внешнем файле.
В XML – документе, как и в любой объектной иерархии существует некий корневой элемент, от которого наследуются все остальные.
Содержимое XML – документа (2-ая часть) форматируется при помощи тэгов, которые определяются в описании типа документа.
- Наименования тэгов полностью совпадают с наименованием элементов
- Параметры тэгов позволяют устанавливать значения атрибутов элементов
Инструкция XML - процессора
В качестве первой строки каждого XML – документа должна использоваться исполняемая инструкция, предназначенная для XML – процессора:
xml – ключевое слово для каждой исполняемой инструкции
version - параметр инструкции, указывающий на то, что будет использоваться первая версия стандарта XML.
Пролог XML – документа – блок исполняемых инструкций.
Инструкция для указания конкретной кодировки, которая будет использоваться:
encoding – параметр инструкции
UTF-8 – одна из наиболее часто используемых кодировок
- xml – ключевое слово для каждой исполняемой инструкции version - параметр инструкции, указывающий на то, что будет использоваться первая версия стандарта XML. Пролог XML – документа – блок исполняемых инструкций. Инструкция для указания конкретной кодировки, которая будет использоваться: encoding – параметр инструкции UTF-8 – одна из наиболее часто используемых кодировок
Инструкция XML - процессора
Инструкция, позволяющая правильно обработать DTD-блок:
standalone – параметр для указания местонахождения описание структуры для данного XML – документа
Значения:
no – извещает XML-процессор, что для данного документа DTD-блок выделен в отдельный файл
yes – указывает на то, что DTD-блок размещен в теле документа
- standalone – параметр для указания местонахождения описание структуры для данного XML – документа Значения: no – извещает XML-процессор, что для данного документа DTD-блок выделен в отдельный файл yes – указывает на то, что DTD-блок размещен в теле документа
Инструкция XML - процессора
Определение XML – инструкций из спецификаций XML в форме Бэкуса-Наура:
XMLDecl ::= ‘’
VersionInfo ::= S ‘version’ Eq (‘VersionNum’ | “VersionNum”)
Eq ::= S? ‘=’ S?
VersionNum ::= ([a-zA-Z0-9_.:] | ‘-’)+
Левая часть – имя конструкции
::= - оператор эквивалентности
Правая часть – расшифровка имени, которая содержит формат и правила оформления
Объявление типа документа
DTD-блок – объявление типа документа, помещаятся сразу после исполняемой инструкции, указывающей на тот факт, что данный документ создан с применением языка XML.
В нем определяются:
- Элементы документа
- Атрибуты элементов
- Сущности
- комментарии
1 стр. – объявление типа документа и его наименования. В качестве наименования типа документа мы используем имя самого старшего элемента, который включает в себя все остальные элементы. [] – содержат описание структуры всего документа " width="640"
Объявление типа документа
]
1 стр. – объявление типа документа и его наименования. В качестве наименования типа документа мы используем имя самого старшего элемента, который включает в себя все остальные элементы.
[] – содержат описание структуры всего документа
Объявление типа документа
DTD-блоки могут находиться как внутри документа, так и вне его. Для подключения можно использовать конструкцию подобную следующей:
PUBLIC – файл рассматривает международная организация по стандартизации ISO
SYSTEM - файл не рассматривается международной организацией по стандартизации ISO
Объявление типа документа
DTD-файл, содержащий DTD-блок подчиняется спецификации XML, т.е. является обычным XML-документом без значимого содержимого. Первой его строкой также будет исаполняемая инструкция.
Номер версии стандарта XML обычно не указывается, но указывается используемая кодировка.
Объявление типа документа
DTD-блок должен быть:
- Хорошо оформденным
- Правильным
Хорошо оформлен:
- У документа только один элемент верхнего уровня, и содержимое документа располагается полностью внутри сответствующего тэга
- В одном тэге не могут употребляться несколько раз одни и те же атрибцты элемента
- Все сущности должны объявляться до их использования
- Все тэги должны быть правильно вложены друг в друга
Пример:
well-formed document
Примечание:
XML-процессоры чувствительны к регистру символов.
valid document " width="640"
Объявление типа документа
Правильным считается XML-документ, который удовлетворяет требованиям, предъявляемым к хорошо-оформленным документам, и рпи этом имеет соответствующий DTD-блок и подчиняется всем правилам, описанным в нем.
Пример:
]
valid document
ELEMENT – ключевое слово body – наименование элемента PCDATA (parseable character data ) – тип (любая информация, с которой может работать XML-процессор) " width="640"
Элементы XML-документа
Элемент – основная структурная единица XML-документа. Объявляется в DTD-блоке, а затем при разметке значимого содержимого документа используются тэги, наименования которых совпадают с наименованием элементов.
Пример 1:
]
ELEMENT – ключевое слово
body – наименование элемента
PCDATA (parseable character data ) – тип (любая информация, с которой может работать XML-процессор)
Элементы XML-документа
Пример 2:
(усложненная организация с иерархией документов)
Модификаторы:
+ применяется для элементов, которые в родительском элементе считаются обязательными, должны встречаться хотя бы один раз
* указывает на то, что элемент может встретиться в описание родительского элемента любое количество раз
? Используюися для тех элементов, которые могут появляться в описание родительского элемента только один раз, или вообще не появляться
create_data - наименование CDATA – тип #REQUIRED – модификатор атрибута " width="640"
Атрибуты элементов
Атрибут позволяет максимально полно детализировать информацию, предназначенную для отображения или использования в элементе.
create_data CDATA #REQUIRED
last_modified CDATA #IMPLIED
author CDATA #REQUIRED
editor CDATA “Kondikova E.V.”
create_data - наименование
CDATA – тип
#REQUIRED – модификатор атрибута
Маркер - специализированный атрибут, значение которого несет заранее предопределенный тип информации. При использовании мркера нужно включить в описание одно из семи ключевых слов. Пример: id ID #REQUIRED " width="640"
Атрибуты элементов
Три типа атрибутов:
- CDATA – данные толко в виде строк
- Type – перечисляемый тип
Пример:
type (a|b|c “c”)
- Маркер - специализированный атрибут, значение которого несет заранее предопределенный тип информации. При использовании мркера нужно включить в описание одно из семи ключевых слов.
Пример:
id ID #REQUIRED
" width="640"
Атрибуты элементов
Модификаторы атрибутов:
- CDATA – данные толко в виде строк
- Type – перечисляемый тип
Пример:
#REQUIRED – указывает на то, что для данного атрибута значение может быть не определено, т.е. этот атрибут не является обязательным для применения
#IMPLIED – указывает на то , что атрибут должен быть обязательно применен. Т.е. во всех экземплярах элемента в значимом содержимом XML-документа должно быть обязательно присвоено значение этому атрибуту
#FIXED – применяется в тех случаях, когда заданное для атрибута значение по умолчанию является фиксированным, т.е. не поддается изменению
Пример:
create_data CDATA #REQUIRED
last_modified CDATA #IMPLIED
author CDATA #REQUIRED
editor CDATA “Kondikova E.V.”