190 likes | 457 Views
XML - расширенный язык разметки. (eXtensible Markup Language). Моисеевой О. Макушиной Д. Зачем нам это надо?. Основой WWW является HTML – набор тэгов, который позволяет создавать разметку документа Недостатки HTML :
E N D
XML - расширенный язык разметки (eXtensible Markup Language) Моисеевой О. Макушиной Д.
Зачем нам это надо? Основой WWWявляется HTML – набор тэгов, который позволяет создавать разметку документа Недостатки HTML: • даже самый большой список тэгов не в состоянии полностью удовлетворить запросы создателей документов силу того, что этот список ограничен • HTML – документы ориентированы прежде всего на отображение, а не на автоматическую обработку. Из базы данных можно передать данные в HTML-документ. Обратная операция намного сложнее.
Корни 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=“1.0”?> xml – ключевое слово для каждой исполняемой инструкции version - параметр инструкции, указывающий на то, что будет использоваться первая версия стандарта XML. Пролог XML – документа – блок исполняемых инструкций. Инструкция для указания конкретной кодировки, которая будет использоваться: <?xml encoding=“UTF-8”?> encoding – параметр инструкции UTF-8 – одна из наиболее часто используемых кодировок
Инструкция XML - процессора Инструкция, позволяющая правильно обработать DTD-блок: <?xml standalone=‘no’?> standalone – параметр для указания местонахождения описание структуры для данного XML – документа Значения: no –извещает XML-процессор, что для данного документа DTD-блок выделен в отдельный файл yes – указывает на то, что DTD-блок размещен в теле документа
Инструкция XML - процессора Определение XML – инструкций из спецификаций XML в форме Бэкуса-Наура: XMLDecl ::= ‘<?xml’ VersionInfo EncodingDecl? SDDecl? S? ‘?>’ VersionInfo ::= S ‘version’ Eq (‘VersionNum’ | “VersionNum”) Eq ::= S? ‘=’ S? VersionNum ::= ([a-zA-Z0-9_.:] | ‘-’)+ Левая часть – имя конструкции ::= - оператор эквивалентности Правая часть – расшифровка имени, которая содержит формат и правила оформления
Объявление типа документа DTD-блок – объявление типа документа, помещаятся сразу после исполняемой инструкции, указывающей на тот факт, что данный документ создан с применением языка XML. В нем определяются: • Элементы документа • Атрибуты элементов • Сущности • комментарии
Объявление типа документа • Пример DTD-блока <!DOCTYPE body [ <!ELEMENT body (#PCDATA)> <!ENTITY name “Igor”> ]> 1 стр. – объявление типа документа и его наименования. В качестве наименования типа документа мы используем имя самого старшего элемента, который включает в себя все остальные элементы. []– содержат описание структуры всего документа
Объявление типа документа DTD-блоки могут находиться как внутри документа, так и вне его. Для подключения можно использовать конструкцию подобную следующей: <!DOCTYPE main PUBLIC “-//New Boundaries//SweetImmersing//EN”//www.newboundaries.com/sweet/dtd/main.dtd” PUBLIC – файл рассматривает международная организация по стандартизации ISO SYSTEM - файл не рассматривается международной организацией по стандартизации ISO
Объявление типа документа DTD-файл, содержащий DTD-блок подчиняется спецификации XML, т.е. является обычным XML-документом без значимого содержимого. Первой его строкой также будет исаполняемая инструкция. Номер версии стандарта XML обычно не указывается, но указывается используемая кодировка.
Объявление типа документа DTD-блок должен быть: • Хорошо оформденным • Правильным Хорошо оформлен: • У документа только один элемент верхнего уровня, и содержимое документа располагается полностью внутри сответствующего тэга • В одном тэге не могут употребляться несколько раз одни и те же атрибцты элемента • Все сущности должны объявляться до их использования • Все тэги должны быть правильно вложены друг в друга Пример: <?xml version=“1.0” standalone=“yes”?> <body>well-formed document </body> Примечание: XML-процессоры чувствительны к регистру символов.
Объявление типа документа Правильным считается XML-документ, который удовлетворяет требованиям, предъявляемым к хорошо-оформленным документам, и рпи этом имеет соответствующий DTD-блоки подчиняется всем правилам, описанным в нем. Пример: <?xml version=“1.0” standalone=“yes”?> <!DOCTYPE body [<!ELEMENT body (#PCDATA)> ]> <body>valid document </body>
Элементы XML-документа Элемент – основная структурная единица XML-документа. Объявляется в DTD-блоке, а затем при разметке значимого содержимого документа используются тэги, наименования которых совпадают с наименованием элементов. Пример 1: <!DOCTYPE body [ <!ELEMENT body (#PCDATA)> ]> ELEMENT – ключевое слово body – наименование элемента PCDATA(parseable character data ) – тип (любая информация, с которой может работать XML-процессор)
Элементы XML-документа Пример 2: (усложненная организация с иерархией документов) <!ELEMENT firm (name+, address, phone*, fax*, email, info)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT phone (#PCDATA)> <!ELEMENT fax (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT info (#PCDATA)> Модификаторы: + применяется для элементов, которые в родительском элементе считаются обязательными, должны встречаться хотя бы один раз * указывает на то, что элемент может встретиться в описание родительского элемента любое количество раз ? Используюися для тех элементов, которые могут появляться в описание родительского элемента только один раз, или вообще не появляться
Атрибуты элементов Атрибут позволяет максимально полно детализировать информацию, предназначенную для отображения или использования в элементе. <!ELEMENT text (#PCDATA)> <!ATTLIST text create_data CDATA #REQUIRED last_modified CDATA #IMPLIED author CDATA #REQUIRED editor CDATA “Kondikova E.V.”> create_data - наименование CDATA – тип #REQUIRED – модификатор атрибута
Атрибуты элементов Три типа атрибутов: • CDATA – данные толко в виде строк • Type – перечисляемый тип Пример: <!ATTLIST my_element type (a|b|c “c”)> • Маркер - специализированный атрибут, значение которого несет заранее предопределенный тип информации. При использовании мркера нужно включить в описание одно из семи ключевых слов. Пример: <!ATTLIST my_element id ID #REQUIRED
Атрибуты элементов Модификаторы атрибутов: • CDATA – данные толко в виде строк • Type – перечисляемый тип Пример: #REQUIRED – указывает на то, что для данного атрибута значение может быть не определено, т.е. этот атрибут не является обязательным для применения #IMPLIED – указывает на то , что атрибут должен быть обязательно применен. Т.е. во всех экземплярах элемента в значимом содержимом XML-документа должно быть обязательно присвоено значение этому атрибуту #FIXED – применяется в тех случаях, когда заданное для атрибута значение по умолчанию является фиксированным, т.е. не поддается изменению Пример: <!ELEMENT text (#PCDATA)> <!ATTLIST text create_data CDATA #REQUIRED last_modified CDATA #IMPLIED author CDATA #REQUIRED editor CDATA “Kondikova E.V.”>