1 / 36

XML

XML. Язык разметки Набор языков для хранения, обработки и представления документов Технологии обработки и обмена информацией. Языки разметки. SGML (Standart Generalised Markup Language, 198 6 год ) SGML  HTML. упрощение, фиксирован один язык. HTML SGML , HTML  XML. XML.

aden
Download Presentation

XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Язык разметки Набор языков для хранения, обработки и представления документов Технологии обработки и обмена информацией

  2. Языки разметки • SGML (Standart Generalised Markup Language, 1986 год) SGMLHTML упрощение, фиксирован один язык • HTML • SGML, HTMLXML • XML

  3. eXtensible Markup Language • HTML–управление представлением + средства определения структуры + средства верификации • Основная функция – описание структурированной текстовой информации • Скорее не язык, а средство определения языков (мета-язык)

  4. Определение XML-языков • Общий синтаксис XML • Общие грамматические ограничения = корректные документы (well-formed) • DTD (document type definition) – декларация типа документа = действительные документы (valid) XML-синтаксис + DTD-грамматика= класс XML-документов

  5. XML-языки (приложения) • MathMl (Mathematical Markup Language)– запись математических формул • XQL (Extensible QueryLanguage) – запросы к базамданных • KML – Google Earth XML-синтаксис + DTD-грамматика=класс XML-документов

  6. Синтаксис XML (сравнение с HTML) • Заголовок, вложенные теги • Для каждого открывающегося тега должен быть закрывающийся • Строгая вложенность • Учитывается регистр в именах тегов • Более строгие синтаксические правила

  7. Элементы синтаксиса XML • Символы, спецсимволы:<,>,&,“,‘ • Теги, атрибуты • Директивы • Комментарии • Ссылки на сущности • Секции CDATA

  8. Синтаксис XML Директива (заголовок) <?xml version="1.0"?> <bibliography> <book><!-- Информация по одной книге --> <title>Использование символа &amp; в гипертекстах</title> <author>Иванов И.И.</author><keywords><![CDATA[символ,гипертекст,&]]></keywords> </book> </bibliography> Комментарий Теги Ссылка на символ Секция CDATA

  9. Структура: элементы Элемент Тип элемента <?xml version="1.0"?> <bibliography> <bookid="1"> <title>Использование символа &amp;</title> <author>Иванов И.И.</author> <sourceform="hardcopy" pages="100"/> </book> </bibliography> Содержимое элемента Символьные данные Пустой элемент

  10. Атрибуты элементов <?xml version="1.0"?> <bibliography> <bookid="1"> <title>Использование символа &amp;</title> <author>Иванов И.И.</author> <source form="hardcopy" pages="100"/> </book> </bibliography> Значение Имя атрибута

  11. Модель документа a: a: b: один <a> <b>один</b> <b>два</b> <с>три</с> </a> c: b: b: b: два c: три три два один Дерево (ребра упорядочены) XML a(b(“один”), b(“два”),c(“три”)) Терм (с произвольным количеством аргументов)

  12. XML и HTML <h2>Библиография</h2> <p><i>Использование символа &amp; в гипертекстах</i>, Иванов И.И., <br>Питер, 2003 <bibliography> <book id="ivanov2003"> <title>Использование символа&amp; в гипертекстах</title> <author>Иванов И.И.</author><publisher>Питер</publisher><year>2003</year> </book> </bibliography> • Определяет содержание неотделённое от представления • Невозможно автоматически выявить структуру • Невозможна верификация • Определяет содержание, не зависящее от представления • Ясна структура документа • Не определяет представление • Возможна частичная верификация

  13. XML и LaTeX \begin{thebibliography}{9} \bibitem{ivanov2003} {\emИванов И.И.}Использование символа $\amp$ в гипертекстах -- Питер, 2003. \end{thebibliography} <bibliography> <book> <title>Использование символа &amp; в гипертекстах</title> <author>Иванов И.И.</author><publisher>Питер</publisher><year>2003</year> </book> </bibliography>

  14. XML и LaTeX \begin{thebibliography}{9} \begin{book}{ivanov2003} \bibauthor{\emИванов И.И.} \bibtitle{Использование символа $\amp$ в гипертекстах} \bibpublisher{Питер} \bibyear{2003} \end{book} \end{thebibliography} <bibliography> <book> <title>Использование символа &amp; в гипертекстах</title> <author>Иванов И.И.</author><publisher>Питер</publisher><year>2003</year> </book> </bibliography> • Определяет содержание и представление • Есть возможности задавать структуру • Для понимания структуры нужна информация о командах • Невозможна верификация • Определяет содержание, не зависящее от представления • Ясна структура документа • Не определяет представление • Возможна частичная верификация

  15. Добавление специфики • Декларации типа документа (DTD) • Определяют структуру документа (множество элементов и правила их вложимости) • Схемы XML (XML Schema) • Описывают структуру xml-документов • Создается наследственная система элементов. Новые элементы определяются расширением и наложением ограничений. • Мощнее и сложнее DTD • Пространства имен XML (XML Namespaces) • Обеспечивают глобальную уникальность имен тегов

  16. Классы документов <?xml version="1.0"?> <bibliography> <bookid="1"> <title>Использование символа &amp;</title> <authors> <author>Иванов И.И.</author> </authors> <publisher>Питер</publisher> <year>2003</year> <source form="hardcopy" pages="100"/> </book> </bibliography>

  17. bibliographypaper* papertitle authors publisher year source? authorsauthor+ DTD XML DTD <!element bibliographybook*> <!element book(title,authors,publisher,year,source?)> <!element authorsauthor+> Контекстно-свободная грамматика Слева –имя элемента справа– регулярное выражениенад элементами и текстовыми данными

  18. Синтаксис 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> Декларация списка атрибутов

  19. Синтаксис DTD Последовательность книг (возможно пустая) <!element bibliographybook*> <!element book(title, authors, publisher, year, source?)> <!element title(#PCDATA)> <!element authorsauthor+> <!element author(#PCDATA)> <!element publisher(#PCDATA)> <!element year(#PCDATA)> <!element sourceEMPTY> <!attlist book id ID #REQUIRED> <!attlist source form (hardcopy|latex|html|xml) #REQUIRED pages CDATA> Заголовок, затем автор, затем издательство, затем год и может быть source Последовательность авторов Символьныеданные Пустой элемент

  20. Синтаксис 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 bookidID#REQUIRED> <!attlist source form(hardcopy|latex|html|xml)#REQUIRED pagesCDATA> Имя элемента Имя атрибута Тип атрибута Атрибут обязательный

  21. Синтаксис DTD Тип атрибута “ID” <!attlist bookidID#REQUIRED> <!attlist selectedbook ref IDREF#REQUIRED> Тип атрибута “ссылка на ID” <selection> <selectedbookref="1"> </selection> … <bibliography> <bookid="1"> <title>… </title> … </book> </bibliography> IDREF атрибут ID атрибут

  22. MathML • Сохраняет возможности LaTeX’а структурированной разметки формул • Два типа разметки: • Разметка представления(как в LaTeX’е) • Разметка содержания (для работы собственно с формулами, а не их изображениями) • Не привязан к полиграфии

  23. Пример формулы <mfrac> <mn>1</mn> <msup> <mfenced> <mrow> <mi>&alpha;</mi> <mo>+</mo> <mi>&beta;</mi> </mrow> </mfenced> <mn>2</mn> </msup> MathML \[ \frac{1} {(\alpha+\beta)^2} \] LaTeX

  24. Представление XML-документов – XSLT • XSLT – Extensible Stylesheet Language – Transformations (расширяемый язык таблиц стилей – преобразования) • отделение содержания (XML) отпредставления (XSLT) • CSS и XSLT • XSLT обладает большими возможностями: • отборэлементов • трансформации XML-деревьев • внешний вид, основанный на содержании (результат может зависеть от данных)

  25. XSL(T) • XSL использует синтаксис XML • Компоненты XSL: • Язык XSLT для трансформации XML-документов • Словарь для форматирования XML. FO (Formatting Objects – свойства форматирования как в CSS)

  26. Трансформация XSLT таблица стилей XML исходное дерево XML,HTML,csv, текст… результат Работа XSLT

  27. Элементы XSLT • <xsl:stylesheetversion="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> • корневой элемент • <xsl:templatematch=шаблонname=имя> содержимое для замены </xsl:template> • Определяет правило: шаблонсодержимое для замены • <xsl:apply-templatesselect=множество узлов> • Применить правило к выбранному потомку (ко всем) • <xsl:call-templatename=имя>

  28. Алгоритм работы XSLT • Основные шаги • сопоставляет шаблон элементам в исходном дереве, • находит элементы, подходящие под шаблон, • заменяет элемент на содержимое (из правила), • выбирает узлы для дальнейшей обработки • Управление • Рекурсивная обработка (<xsl:apply-templates/>) • Применение части правила для выбранных элементов (<xsl:for-each select=множество элементов>, <xsl:if …)

  29. Пример применения XSLT Шаблон Тип элемента <bibliography> <bookid="1"> <title>Использованиесимвола&amp;</title> <author>ИвановИ.</author> </book> <bookid="2"> <title>Использованиесимвола&lt;</title> <author>Петров П.</author> </book> </bibliography> <xsl:stylesheet version="1.0“ xmlns:xsl="http://…"> <xsl:template match="bibliography"> <html><body><h1>Список книг</h1> <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> Текст замены • Результат • Список книг • Использование символа & Иванов И. • Использование символа < Петров П.

  30. XML Applications & Industry Initiatives http://www.oasis-open.org/cover/xml.html#applications • Advertising: adXMLplace an ad onto an ad network or to a single vendor • Literature: Gutenbergconvert the world’s great literature into XML • Directories: dirXMLNovell’s Directory Services Markup Language (DSML) • Web Servers:apacheXMLparsers, XSL, web publishing • Travel:openTravelinformation for airlines, hotels, and car rental places • News:NewsMLcreation, transfer and delivery of news • Human Resources:XML-HRstandardization of HR/electronic recruiting XML definitions • International Dvt:IDMLimprove the mgt. and exchange of info. for sustainable development • Voice:VoxMLmarkup language for voice applications • Wireless:WAP(Wireless Application Protocol)wireless devices on the World Wide Web • Weather:OMFWeather 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:HL7 DTDs for prescriptions, policies & procedures, clinical trials • Math:MathML (Mathematical Markup Language) • Surveys:DDI (Data Documentation Initiative) “codebooks” in the social and behavioral sciences

  31. Язык XPath Набор синтаксических правил для адресации элементов XML-документа • Подобен синтаксису файловой системы. Корневой элемент - /, далее указывается тип вложенного элемента • Отличается возможным множественным выбором Пример: <html> <p>1</p> <div> <img/> </div> <p>2</p> </html> 1. /html 2. /html/p 3. /html/div/img

  32. XPath 2.0 • Язык позволяет строить выражения для указания элементов xml-документа • Результатом выражений являются последовательности элементов • Последовательности «плоские», т.е. вложение одной последовательности в другую даёт вложение элементов • Типы данных: • элементы • булевый тип • численный тип (с плавающей точкой) • строковый тип

  33. XPath 2.0

  34. XPath 2.0 Функции • last() • position() • count( последовательность ) • id( элемент ) • local-name( последовательность ) • namespace-uri( последовательность ) • name( последовательность ) Операторы and or not = != < <= > >=

  35. XPath 2.0 Оси Имя Описание • self Сам узел • child Дочерние узлы • parent Родительский узел • descendant Потомки узла • descendant-or-self Узел и его потомки • ancestor Предки узла • ancestor-or-self Сам узел и его предки • following Все узлы после данного • following-sibling Все узлы этого же уровня после данного • preceding Все узлы перед данным • preceding-sibling Все узлы этого же уровня перед данным • attribute Узлы аттрибутов • namespace Узлы пространства имен

  36. <biblio><bookid="1"> <title>Язык XML</title> <author>Иванов И.</author> </book><bookid="2"> <title>Стихи</title> <author>Петров П.</author> <author>Иванов И.</author> <year value="2003"/> </book><bookid="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(author)=2] //author[following-sibling::* | preceding-sibling::* = 'Иванов И.'] XPath 2.0

More Related