1 / 14

XML eXtensible Markup Language

XML eXtensible Markup Language. Определение типа документов ( DTD ) Язык навигации внутри XML- документа ( XPath ). Определение типа ( DTD). DTD — Document Type Definition Задаёт возможную структуру для некоторого типа XML- документов (т. е. задаёт один возможный язык)

takoda
Download Presentation

XML eXtensible Markup Language

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 eXtensible Markup Language Определение типа документов (DTD) Язык навигации внутри XML-документа (XPath)

  2. Определение типа (DTD) • DTD — Document Type Definition • Задаёт возможную структуру для некоторого типа XML-документов(т. е. задаёт один возможный язык) • как могут называться элементы • как они могут друг в друга вкладываться • какие у каждого элемента могут быть атрибуты

  3. Скачиваем XML-редактор • www.firstobject.com • (справа — версия 2.2.5, exe в архиве zip)

  4. Простой XML-документ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE booklist SYSTEM "books-1.dtd"> <booklist> <book> <author>А.А. Зализняк</author> <title>Древнерусские энклитики</title> <city>Москва</city> <year>2008</year> </book> <book> <author>J.K. Rowling</author> <title>Harry Potter and the Secret Chamber</title> <city>New York</city> <year>2005</year> </book> </booklist>

  5. Определение типа (DTD) <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT booklist (book)*> <!ELEMENT book (author, title, city, year)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT year (#PCDATA)>

  6. Определение типа (DTD) Содержимое элементов <!ELEMENT book (author, title, city, year)> author, title — последовательность author|title — выбор (или — или) EMPTY — пустой элемент ANY— любая комбинация допустимых типов #PCDATA— Parsed Character Data СПИСОК ДОЧЕРНИХ ЭЛЕМЕНТОВ

  7. Определение типа (DTD) Количество повторенийэлемента <!ELEMENT booklist (book)*> book — 1, обязательный book? — 1, необязательный (0 или 1) book+ — 1 или больше (сколько угодно) book* — 0 или больше (сколько угодно) • Добавим в bookнеобязательный элемент publisher?(издательство)

  8. Определение типа (DTD) Добавляем атрибуты В документ: <book lang="rus"bookid="AAZ01"> <author>А.А. Зализняк</author> … </book> В DTD: <!ATTLIST book lang CDATA #IMPLIED bookid ID #REQUIRED> имя атрибута

  9. Определение типа (DTD) Типы атрибутов <!ATTLIST book lang CDATA #IMPLIED bookid ID #REQUIRED genre (fiction|nonfiction) #IMPLIED> CDATA— простой текст (Character data) ID— идентификатор (значение не может повторяться) IDREF— ссылка на идентификатор другого элемента (..|..)— одно из перечисленных значений

  10. Определение типа (DTD) Значения атрибутов по умолчанию <!ATTLIST book lang CDATA"eng" bookid ID #REQUIRED genre (fiction|nonfiction) #IMPLIED> либо заданное значение, либо: #IMPLIED— атрибут необязателен #REQUIRED— атрибут обязательный #FIXEDзначение — значение неизменно

  11. XPath — навигация внутри документа • Основные понятия: • набор узлов (nodeset)Выражение на XPath (путь) описывает набор узлов в документе • элементы • атрибуты • корень документа (корневой элемент) • абсолютный / относительный путь • родитель-дети • сиблинги (узлы одного уровня) • предки-потомки

  12. XPath — навигация внутри документа • Простые выражения • путь от корня (абсолютный) начинается с / • фрагмент пути между двумя / — шаг по дереву (по умолчанию — от корня к листьям) • в результат входят все узлы, подходящие под описанный путь • /booklist; /booklist/book/author • путь без / (относительный) считается не от корня, а от текущей позиции • book/author • // любое количество шагов • //book ; //author ; /booklist//author • @ атрибут • //book/@lang

  13. XPath — навигация внутри документа • Простые выражения • .(точка) Текущий узел • .. (две точки) Родительский узел ../title (путь отbook/authorк book/title) • * Любой узел без указания имени /booklist/* все дети /booklist/*/* все внуки //book/@*все атрибуты

  14. XPath — навигация внутри документа • Выражения с условием (предикатом) • условие на порядковый номер узла в дереве book[2]; book[last()] ; book[position()<3] • условие на значение элементов(путь отсчитывается от текущей позиции) book[city=“Москва”] book[price>250] • условие на значение атрибутов //book[@lang=“rus”]/title • Условие […]применяется к тому узлу, после которого стоит book[1]/author vs. book/author[1]

More Related