
507678dfb2ab473d4e2474e41d43f916.ppt
- Количество слайдов: 36
XML • Язык разметки • Набор языков для хранения, обработки и представления документов • Технологии обработки и обмена информацией 1
Языки разметки • SGML (Standart Generalised Markup Language, 1986 год) SGML упрощение, фиксирован один язык HTML • HTML SGML, HTML • XML
• e. Xtensible Markup Language • HTML – управление представлением + средства определения структуры + средства верификации • Основная функция – описание структурированной текстовой информации • Скорее не язык, а средство определения языков (мета-язык)
Определение XML-языков üОбщий синтаксис XML üОбщие грамматические ограничения = корректные документы (well-formed) üDTD (document type definition) – декларация типа документа = действительные документы (valid) XML-синтаксис + DTD-грамматика = класс XML-документов
XML-языки (приложения) • Math. Ml (Mathematical Markup Language) – запись математических формул • XQL (Extensible Query Language) – запросы к базам данных • KML – Google Earth XML-синтаксис + DTD-грамматика = класс XML-документов
Синтаксис XML (сравнение с HTML) • Заголовок, вложенные теги • Для каждого открывающегося тега должен быть закрывающийся • Строгая вложенность • Учитывается регистр в именах тегов • Более строгие синтаксические правила
Элементы синтаксиса XML • Символы, спецсимволы: <, >, &, “, ‘ • Теги, атрибуты • Директивы • Комментарии • Ссылки на сущности • Секции CDATA
Синтаксис XML Директива (заголовок) Теги <? xml version="1. 0"? > Комментарий <bibliography> <book> <!-- Информация по одной книге --> <title>Использование символа & в гипертекстах</title> Ссылка на символ <author>Иванов И. И. </author> <keywords><![CDATA[символ, гипертекст, &]]> </keywords> </book> Секция CDATA </bibliography>
Структура: элементы Элемент Тип элемента Содержимое <? xml version="1. 0"? > элемента <bibliography> Символьные данные <book id="1"> <title>Использование символа & </title> <author>Иванов И. И. </author> <source form="hardcopy" pages="100"/> </book> </bibliography> Пустой элемент
Атрибуты элементов <? xml version="1. 0"? > <bibliography> <book id="1"> <title>Использование символа & </title> <author>Иванов И. И. </author> <source form="hardcopy" pages="100"/> </book> Значение </bibliography> Имя атрибута
Модель документа <a> <b>один</b> <b>два</b> <с>три</с> </a> a: b: один b: два c: три b: c: один два три Дерево (ребра упорядочены) XML a(b(“один”), b(“два”), c(“три”)) Терм (с произвольным количеством аргументов)
XML и HTML <bibliography> <book id="ivanov 2003"> <title>Использование символа & в гипертекстах</title> <author>Иванов И. И. </author> <publisher>Питер</publisher> <year>2003</year> </book> </bibliography> <h 2>Библиография</h 2> <p><i>Использование символа & в гипертекстах</i>, Иванов И. И. , Питер, 2003 • • • Определяет содержание, не зависящее от представления Ясна структура документа Не определяет представление Возможна частичная верификация • • Определяет содержание неотделённое от представления Невозможно автоматически выявить структуру Невозможна верификация
XML и La. Te. X <bibliography> <book> <title>Использование символа & в гипертекстах</title> <author>Иванов И. И. </author> <publisher>Питер</publisher> <year>2003</year> </book> </bibliography> begin{thebibliography}{9} bibitem{ivanov 2003} {em Иванов И. И. } Использование символа $amp$ в гипертекстах -- Питер, 2003. end{thebibliography}
XML и La. Te. X <bibliography> <book> <title>Использование символа & в гипертекстах</title> <author>Иванов И. И. </author> <publisher>Питер</publisher> <year>2003</year> </book> </bibliography> begin{thebibliography}{9} begin{book}{ivanov 2003} bibauthor{em Иванов И. И. } bibtitle{Использование символа $amp$ в гипертекстах} bibpublisher{Питер} bibyear{2003} end{book} end{thebibliography} • • • Определяет содержание, не зависящее от представления Ясна структура документа Не определяет представление Возможна частичная верификация • • • Определяет содержание и представление Есть возможности задавать структуру Для понимания структуры нужна информация о командах Невозможна верификация
Добавление специфики • Декларации типа документа (DTD) n Определяют структуру документа (множество элементов и правила их вложимости) • Схемы XML (XML Schema) n n n Описывают структуру xml-документов Создается наследственная система элементов. Новые элементы определяются расширением и наложением ограничений. Мощнее и сложнее DTD • Пространства имен XML (XML Namespaces) Обеспечивают глобальную уникальность имен тегов n
Классы документов <? xml version="1. 0"? > <bibliography> <book id="1"> <title>Использование символа & </title> <authors> <author>Иванов И. И. </author> </authors> <publisher>Питер</publisher> <year>2003</year> <source form="hardcopy" pages="100"/> </book> </bibliography>
DTD XML DTD <!element bibliography book*> <!element book (title, authors, publisher, year, source? )> <!element authors author+> Контекстно-свободная грамматика bibliography paper* paper title authors publisher year source? authors author+ Слева – имя элемента справа – регулярное выражение над элементами и текстовыми данными
Синтаксис DTD Декларация типа элемента <!element bibliography book*> <!element book (title, authors, publisher, year, source? )> <!element title (#PCDATA)> <!element authors author+> <!element author (#PCDATA)> <!element publisher (#PCDATA)> <!element year (#PCDATA)> <!element source EMPTY> Декларация списка атрибутов <!attlist book id ID #REQUIRED> <!attlist source form (hardcopy|latex|html|xml) #REQUIRED pages CDATA>
Синтаксис DTD Последовательность книг (возможно пустая) <!element bibliography book*> <!element book (title, authors, publisher, year, source? )> <!element title (#PCDATA)> Заголовок, затем автор, затем <!element authors author+> издательство, затем год и может <!element author (#PCDATA)> быть source <!element publisher (#PCDATA)> Последовательность авторов <!element year (#PCDATA)> <!element source EMPTY> Символьные данные <!attlist book id ID #REQUIRED> Пустой элемент <!attlist source form (hardcopy|latex|html|xml) #REQUIRED pages CDATA>
Синтаксис DTD <!element bibliography book*> <!element book (title, authors, publisher, year, source? )> <!element title (#PCDATA)> <!element authors author+> Имя элемента <!element author (#PCDATA)> Имя атрибута <!element publisher (#PCDATA)> <!element year (#PCDATA)> <!element source EMPTY> Тип атрибута <!attlist book id ID #REQUIRED> Атрибут обязательный <!attlist source form (hardcopy|latex|html|xml) #REQUIRED pages CDATA>
Синтаксис DTD Тип атрибута “ID” <!attlist book id ID #REQUIRED> <!attlist selectedbook ref IDREF #REQUIRED> Тип атрибута “ссылка на ID” <selection> <selectedbook ref="1"> </selection> … <bibliography> <book id="1"> <title>… </title> … </book> </bibliography> IDREF атрибут ID атрибут
Math. ML • Сохраняет возможности La. Te. X’а структурированной разметки формул • Два типа разметки: Разметка представления (как в La. Te. X’е) n Разметка содержания (для работы собственно с формулами, а не их изображениями) n • Не привязан к полиграфии
Пример формулы <mfrac> <mn>1</mn> <msup> <mfenced> <mrow> <mi>α </mi> <mo>+</mo> <mi>β </mi> </mrow> </mfenced> <mn>2</mn> </msup> Math. ML [ frac{1} {(alpha+beta)^2} ] La. Te. X
Представление XMLдокументов – XSLT • XSLT – Extensible Stylesheet Language – Transformations (расширяемый язык таблиц стилей – преобразования) n • отделение содержания (XML) от представления (XSLT) CSS и XSLT n XSLT обладает большими возможностями: w отбор элементов w трансформации XML-деревьев w внешний вид, основанный на содержании (результат может зависеть от данных)
XSL(T) • • XSL использует синтаксис XML Компоненты XSL: 1. Язык XSLT для трансформации XMLдокументов 2. Словарь для форматирования XML. FO (Formatting Objects – свойства форматирования как в CSS)
Работа XSLT Трансформация XSLT таблица стилей XML исходное дерево XML, HTML, csv, текст… результат
• Элементы XSLT <xsl: stylesheet version="1. 0" xmlns: xsl="http: //www. w 3. org/1999/XSL/Transform"> n • корневой элемент <xsl: template match=шаблон name=имя> содержимое для замены </xsl: template> n • <xsl: apply-templates select=множество узлов> n • Определяет правило: шаблон содержимое для замены Применить правило к выбранному потомку (ко всем) <xsl: call-template name=имя>
Алгоритм работы XSLT • Основные шаги n n • сопоставляет шаблон элементам в исходном дереве, находит элементы, подходящие под шаблон, заменяет элемент на содержимое (из правила), выбирает узлы для дальнейшей обработки Управление n n Рекурсивная обработка (<xsl: apply-templates/>) Применение части правила для выбранных элементов (<xsl: for-each select=множество элементов>, <xsl: if …)
Пример применения XSLT Тип элемента <bibliography> <book id="1"> <title>Использование символа & </title> <author>Иванов И. </author> </book> <book id="2"> <title>Использование символа < </title> <author>Петров П. </author> </book> </bibliography> <xsl: stylesheet version="1. 0“ xmlns: xsl="http: //…"> <xsl: template match="bibliography"> <html><body><h 1>Список книг</h 1> <table width=600> <xsl: apply-templates/> </table></body></html> </xsl: template> <xsl: template match="book"> Текст <tr><td><xsl: number/></td> замены <xsl: apply-templates/> </tr> </xsl: template> <xsl: template match="author|title"> <td><xsl: value-of select=". "/></td> </xsl: template> </xsl: stylesheet> Список книг 1. 2. Использование символа & Использование символа < Шаблон Результат Иванов И. Петров П.
XML Applications & Industry Initiatives http: //www. oasis-open. org/cover/xml. html#applications • Advertising: ad. XML place an ad onto an ad network or to a single vendor • • Literature: Gutenberg convert the world’s great literature into XML Directories: dir. XML Novell’s Directory Services Markup Language (DSML) Web Servers: apache. XML parsers, XSL, web publishing Travel: open. Travel information for airlines, hotels, and car rental places News: News. ML creation, transfer and delivery of news Human Resources: XML-HR standardization of HR/electronic recruiting XML • • Voice: Vox. ML markup language for voice applications Wireless: WAP (Wireless Application Protocol) wireless devices on the World Wide definitions International Dvt: IDML improve the mgt. and exchange of info. for sustainable development Web Weather: OMF Weather Observation Markup Format (simulation) Geospatial: ANZMETA distributed national directory for land information Banking: MBA Mortgage Bankers Association of America --> credit report, loan file, underwriting… Healthcare: HL 7 DTDs for prescriptions, policies & procedures, clinical trials Math: Math. ML (Mathematical Markup Language) Surveys: DDI (Data Documentation Initiative) “codebooks” in the social and behavioral sciences
Язык XPath Набор синтаксических правил для адресации элементов XML-документа • Подобен синтаксису файловой системы. Корневой элемент - /, далее указывается тип вложенного элемента • Отличается возможным множественным выбором Пример: <html> <p>1</p> <div> <img/> </div> <p>2</p> </html> 1. /html 2. /html/p 3. /html/div/img
XPath 2. 0 • • Язык позволяет строить выражения для указания элементов xml-документа Результатом выражений являются последовательности элементов Последовательности «плоские» , т. е. вложение одной последовательности в другую даёт вложение элементов Типы данных: n n элементы булевый тип численный тип (с плавающей точкой) строковый тип
XPath 2. 0
XPath 2. 0 • • Функции last() position() count( последовательность ) id( элемент ) local-name( последовательность ) namespace-uri( последовательность ) name( последовательность ) and or not = != Операторы < <= > >=
XPath 2. 0 • • • Имя self child parent descendant-or-self ancestor-or-self following-sibling • • preceding-sibling • • attribute namespace Оси Описание Сам узел Дочерние узлы Родительский узел Потомки узла Узел и его потомки Предки узла Сам узел и его предки Все узлы после данного Все узлы этого же уровня после данного Все узлы перед данным Все узлы этого же уровня перед данным Узлы аттрибутов Узлы пространства имен
XPath 2. 0 <biblio> <book id="1"> • <title>Язык XML</title> • <author>Иванов И. </author> • </book> • <book id="2"> • <title>Стихи</title> <author>Петров П. </author> • <author>Иванов И. </author> • • <year value="2003"/> • </book> • <book id="3"> • <title>Сказки</title> <author>Петров П. </author> </book> </biblio> /biblio/book/* /biblio/*[year]/author /biblio/book[author='Ива нов И. ']/title /biblio/book/year[@value ='2003']/. . /author /biblio/book[year/@value ='2003']/author //book//[@] /biblio/book[1] /biblio/book[last()] //book[not(year)] /biblio/book[count(autho r)=2] //author[followingsibling: : * | precedingsibling: : * = 'Иванов И. ']
507678dfb2ab473d4e2474e41d43f916.ppt