🗊Презентация Основы XML-технологий

Нажмите для полного просмотра!
Основы XML-технологий, слайд №1Основы XML-технологий, слайд №2Основы XML-технологий, слайд №3Основы XML-технологий, слайд №4Основы XML-технологий, слайд №5Основы XML-технологий, слайд №6Основы XML-технологий, слайд №7Основы XML-технологий, слайд №8Основы XML-технологий, слайд №9Основы XML-технологий, слайд №10Основы XML-технологий, слайд №11Основы XML-технологий, слайд №12Основы XML-технологий, слайд №13Основы XML-технологий, слайд №14Основы XML-технологий, слайд №15Основы XML-технологий, слайд №16Основы XML-технологий, слайд №17Основы XML-технологий, слайд №18Основы XML-технологий, слайд №19Основы XML-технологий, слайд №20Основы XML-технологий, слайд №21Основы XML-технологий, слайд №22Основы XML-технологий, слайд №23Основы XML-технологий, слайд №24Основы XML-технологий, слайд №25Основы XML-технологий, слайд №26Основы XML-технологий, слайд №27Основы XML-технологий, слайд №28Основы XML-технологий, слайд №29Основы XML-технологий, слайд №30Основы XML-технологий, слайд №31Основы XML-технологий, слайд №32Основы XML-технологий, слайд №33Основы XML-технологий, слайд №34Основы XML-технологий, слайд №35Основы XML-технологий, слайд №36Основы XML-технологий, слайд №37Основы XML-технологий, слайд №38Основы XML-технологий, слайд №39Основы XML-технологий, слайд №40Основы XML-технологий, слайд №41Основы XML-технологий, слайд №42Основы XML-технологий, слайд №43Основы XML-технологий, слайд №44Основы XML-технологий, слайд №45Основы XML-технологий, слайд №46Основы XML-технологий, слайд №47Основы XML-технологий, слайд №48Основы XML-технологий, слайд №49Основы XML-технологий, слайд №50Основы XML-технологий, слайд №51Основы XML-технологий, слайд №52Основы XML-технологий, слайд №53Основы XML-технологий, слайд №54Основы XML-технологий, слайд №55Основы XML-технологий, слайд №56Основы XML-технологий, слайд №57Основы XML-технологий, слайд №58Основы XML-технологий, слайд №59Основы XML-технологий, слайд №60Основы XML-технологий, слайд №61Основы XML-технологий, слайд №62Основы XML-технологий, слайд №63Основы XML-технологий, слайд №64Основы XML-технологий, слайд №65Основы XML-технологий, слайд №66Основы XML-технологий, слайд №67Основы XML-технологий, слайд №68Основы XML-технологий, слайд №69Основы XML-технологий, слайд №70Основы XML-технологий, слайд №71Основы XML-технологий, слайд №72Основы XML-технологий, слайд №73Основы XML-технологий, слайд №74

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы XML-технологий. Доклад-сообщение содержит 74 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Основы XML-технологий
Описание слайда:
Основы XML-технологий

Слайд 2





Введение
XML: W3C-стандарт
Две грани XML: ориентация на документ и ориентация на данные
Причины появления
HTML описывает представление
XML описывает содержимое
Пользователь описывает теги для разметки “содержимого”
Основан на текстовом формате
Идеален для формата “Обмен данными”
Ключевая технология для “распределенных” программ
XML близок к объектно-ориентированным и так называемым полу-структурированным данным.
Описание слайда:
Введение XML: W3C-стандарт Две грани XML: ориентация на документ и ориентация на данные Причины появления HTML описывает представление XML описывает содержимое Пользователь описывает теги для разметки “содержимого” Основан на текстовом формате Идеален для формата “Обмен данными” Ключевая технология для “распределенных” программ XML близок к объектно-ориентированным и так называемым полу-структурированным данным.

Слайд 3





Структурированность данных в реляционной модели


Name:       Id :           Address(Number): Address (Street):
John Doe  s11111    123                             Main
Joe Public s22222    34                               Mosat
Описание слайда:
Структурированность данных в реляционной модели Name: Id : Address(Number): Address (Street): John Doe s11111 123 Main Joe Public s22222 34 Mosat

Слайд 4





Полуструктурированные данные в HTML
HTML описывает представление.

Пример HTML-документа «список студентов» 
для вывода на экран в Web-навигаторе
<dt>Name: John Doe
  <dd>Id: s111111111
  <dd>Address:   
    <ul>
	    <li>Number: 123</li>
	    <li>Street: Main</li>
	  </ul>
</dt>
<dt>Name: Joe Public
   <dd>Id: s222222222
    … … … …
</dt>
Описание слайда:
Полуструктурированные данные в HTML HTML описывает представление. Пример HTML-документа «список студентов» для вывода на экран в Web-навигаторе <dt>Name: John Doe <dd>Id: s111111111 <dd>Address: <ul> <li>Number: 123</li> <li>Street: Main</li> </ul> </dt> <dt>Name: Joe Public <dd>Id: s222222222 … … … … </dt>

Слайд 5





Модель полуструктурированных данных
Множество пар.
  {name: "Alan", 
   tel: 2157786, 
   email: “a@abc.com”
  }

Значения сами могут быть структурами
   {name: {first: “Alan”, last: “Black”},
   tel: 2157786,
   email: “a@abc.com”
  }
Описание слайда:
Модель полуструктурированных данных Множество пар. {name: "Alan", tel: 2157786, email: “a@abc.com” } Значения сами могут быть структурами {name: {first: “Alan”, last: “Black”}, tel: 2157786, email: “a@abc.com” }

Слайд 6





Модель полуструктурированных данных
Дубликаты допускаются
  {name: "Alan", tel: 2157786, tel: 2498762"}
Синтаксис просто генерирует описания множества объектов
   {person: {name: “Alan”,tel: 2157786,email: “a@abc.com”}
    person: {name: “Sara”,tel: 2136877,email: “sara@abc.com”}
    person: {name: “Fred”,tel: 7786312,email: “fred@abc.com”}
   }
Все объекты внутри множества могут быть разной структуры
	{person:{name: “Alan”,tel: 2157786,email: “a@abc.com”},
    person:{name: {first: “Sara”,last: “Black”},email: “s@abc.com”},
    person:{name: “Fred”, tel: 7786312, height: 168}
   }
Описание слайда:
Модель полуструктурированных данных Дубликаты допускаются {name: "Alan", tel: 2157786, tel: 2498762"} Синтаксис просто генерирует описания множества объектов {person: {name: “Alan”,tel: 2157786,email: “a@abc.com”} person: {name: “Sara”,tel: 2136877,email: “sara@abc.com”} person: {name: “Fred”,tel: 7786312,email: “fred@abc.com”} } Все объекты внутри множества могут быть разной структуры {person:{name: “Alan”,tel: 2157786,email: “a@abc.com”}, person:{name: {first: “Sara”,last: “Black”},email: “s@abc.com”}, person:{name: “Fred”, tel: 7786312, height: 168} }

Слайд 7





Модель полуструктурированных данных
Простое представление реляционных данных
  {r1: {row: {a: a1, b: b1, c: c1},
       {row: {a: a2, b: b2, c: c2}},
   r2: {row: {c: c2, d: d2},
        row: {c: c3, d: d3},
        row: {c: c4, d: d4}}
   }
Объектно-ориентированные данные представляются естественно (каждый узел имеет уникальный идентификатор объекта)
	{person: &o1{name: “Mary”, age: 45, 
               child: &o2, child: &o3},
   person: &o2{name: “John”, age: 17,
               relatives: {mother: &o1, sister: &o3}},
   person: &o3{name: “Jane”, country: “Canada”, mother: &o1}
   }
Описание слайда:
Модель полуструктурированных данных Простое представление реляционных данных {r1: {row: {a: a1, b: b1, c: c1}, {row: {a: a2, b: b2, c: c2}}, r2: {row: {c: c2, d: d2}, row: {c: c3, d: d3}, row: {c: c4, d: d4}} } Объектно-ориентированные данные представляются естественно (каждый узел имеет уникальный идентификатор объекта) {person: &o1{name: “Mary”, age: 45, child: &o2, child: &o3}, person: &o2{name: “John”, age: 17, relatives: {mother: &o1, sister: &o3}}, person: &o3{name: “Jane”, country: “Canada”, mother: &o1} }

Слайд 8





XML – Стандарт для  полуструктурированных данных
XML: eXtensible Markup Language
Удобен для полуструктурированных данных
Используется для описания содержимого, а не представления
Отличается от HTML т.к.
Автором документа могут быть определены новые теги 
Нет семантики тегов. Например, HTML <table>…</table> означает таблицу,; in XML: не означает ничего определенного.
Структуры могут быть вложенными
Описание слайда:
XML – Стандарт для полуструктурированных данных XML: eXtensible Markup Language Удобен для полуструктурированных данных Используется для описания содержимого, а не представления Отличается от HTML т.к. Автором документа могут быть определены новые теги Нет семантики тегов. Например, HTML <table>…</table> означает таблицу,; in XML: не означает ничего определенного. Структуры могут быть вложенными

Слайд 9





Синтаксис XML. XML Элемент
Элемент – часть текста, ограниченная согласованными тегами, определенными пользователем:
  <person>
    <name>Alan</name>
    <age>42</age>
    <email>agb@abc.com</email>
  </person>

Комментарии: 
Элемент включает открывающий и закрывающий теги
Отсутствие кавычек в строках, т.к. все данные рассматриваются в виде текста. Определяются как PCDATA (Parsed Character Data – символьные данные, обрабатываемые синтаксическим анализатором).
Возможность пустого элемента: 
		<married></married> может быть заменен на <married/>
Описание слайда:
Синтаксис XML. XML Элемент Элемент – часть текста, ограниченная согласованными тегами, определенными пользователем: <person> <name>Alan</name> <age>42</age> <email>agb@abc.com</email> </person> Комментарии: Элемент включает открывающий и закрывающий теги Отсутствие кавычек в строках, т.к. все данные рассматриваются в виде текста. Определяются как PCDATA (Parsed Character Data – символьные данные, обрабатываемые синтаксическим анализатором). Возможность пустого элемента: <married></married> может быть заменен на <married/>

Слайд 10





Синтаксис XML
Коллекции определяются через повторяющиеся структуры. 
Например, коллекция всех личностей, работающих на четвертом этаже:
<table> 
  <description>People on the 4th floor</description>
  <people>
    <person>
      	<name>Alan</name><age>42</age>
		<email>agb@abc.com</email>
    </person>
    <person>
  		<name>Ryan</name><age>58</age>
		<email>rgz@abc.com</email>
    </person>
  </people>
</table>
Описание слайда:
Синтаксис XML Коллекции определяются через повторяющиеся структуры. Например, коллекция всех личностей, работающих на четвертом этаже: <table> <description>People on the 4th floor</description> <people> <person> <name>Alan</name><age>42</age> <email>agb@abc.com</email> </person> <person> <name>Ryan</name><age>58</age> <email>rgz@abc.com</email> </person> </people> </table>

Слайд 11





Синтаксис XML. XML Атрибуты
Атрибут определяет некоторые свойства элемента
Представляется как пара “название-значение”
<product>
  <name language="French">trompette six trous</name>
  <price currency="Euro">420.12</price>
  <address format="XLB56" language="French">
    <street>31 rue Croix-Bosset</street>
    <zip>92310</zip>
    <city>Sevres</city>
    <country>France</country>
  </address>
</product>
Внутри тега можно определить любое кол-во атрибутов
Значения атрибутов должны быть расположены внутри двойных кавычек.
Описание слайда:
Синтаксис XML. XML Атрибуты Атрибут определяет некоторые свойства элемента Представляется как пара “название-значение” <product> <name language="French">trompette six trous</name> <price currency="Euro">420.12</price> <address format="XLB56" language="French"> <street>31 rue Croix-Bosset</street> <zip>92310</zip> <city>Sevres</city> <country>France</country> </address> </product> Внутри тега можно определить любое кол-во атрибутов Значения атрибутов должны быть расположены внутри двойных кавычек.

Слайд 12





Синтаксис XML. Атрибуты или Элементы ?

Атрибут внутри тега может появляться только один раз, его значение – всегда строка.
Теги элемент/подэлемент могут повторяться любое кол-во раз, а их значениями могут быть строки или подэлементы
Некоторые данные могут быть представлены с использованием атрибутов или элементов, или их комбинацией
	<person name="Alan" age="42">
  		<email>agb@abc.com</email>
	</person>
или
	<person name="Alan">
 	 <age>42</age>
 	 <email>agb@abc.com</email>
	</person>
Описание слайда:
Синтаксис XML. Атрибуты или Элементы ? Атрибут внутри тега может появляться только один раз, его значение – всегда строка. Теги элемент/подэлемент могут повторяться любое кол-во раз, а их значениями могут быть строки или подэлементы Некоторые данные могут быть представлены с использованием атрибутов или элементов, или их комбинацией <person name="Alan" age="42"> <email>agb@abc.com</email> </person> или <person name="Alan"> <age>42</age> <email>agb@abc.com</email> </person>

Слайд 13





Синтаксис XML. XML Ссылки

Использование id атрибута для определения ссылки
Использование idref атрибута (в пустом элементе) для установления ссылки на ранее описанную ссылку (id).

<state id="s2">          -- определяет id или ссылку
    <scode>NE</scode>
    <sname>Nevada</sname>
</state>

<city id="c2">
  <ccode>CCN</ccode>
  <cname>Carson City</cname>
  <state-of idref="s2"/>    -- ссылается на объект s2;
</city>
Описание слайда:
Синтаксис XML. XML Ссылки Использование id атрибута для определения ссылки Использование idref атрибута (в пустом элементе) для установления ссылки на ранее описанную ссылку (id). <state id="s2"> -- определяет id или ссылку <scode>NE</scode> <sname>Nevada</sname> </state> <city id="c2"> <ccode>CCN</ccode> <cname>Carson City</cname> <state-of idref="s2"/> -- ссылается на объект s2; </city>

Слайд 14





Синтаксис XML. Другие XML конструкции

 Комментарий:
    <!-- this is a comment -->

Процессные инструкции (Processing Instruction - PI):
     <?xml version="1.0"?>
	<?xml-stylesheet type="text/xsl" href="classes.xsl"  			encoding="UTF-8"?>
Такие инструкции могут обрабатываться программой, обрабатываемой XML-файл.
CDATA (Character Data): используется для записи особых блоков, содержащих текст с разметками, не являющимися тегами:
	<![CDATA[<start>this is not an element</start>]]>

Записи:  &lt   эквивалентно символу <
Описание слайда:
Синтаксис XML. Другие XML конструкции Комментарий: <!-- this is a comment --> Процессные инструкции (Processing Instruction - PI): <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="classes.xsl" encoding="UTF-8"?> Такие инструкции могут обрабатываться программой, обрабатываемой XML-файл. CDATA (Character Data): используется для записи особых блоков, содержащих текст с разметками, не являющимися тегами: <![CDATA[<start>this is not an element</start>]]> Записи: &lt эквивалентно символу <

Слайд 15





Правильно созданный (Well-Formed) XML-документ
XML-документwell-formed  если
Теги синтаксически корректны
Каждый тег имеет закрывающий тег
Теги правильно вложены
Существует корневой (root) тег
В теге не может быть двух повторяющихся атрибутов
XML-документ должен быть well-formed перед обработкой.
well-formed XML-документ в процессе синтаксического анализа превращается в дерево узлов
Описание слайда:
Правильно созданный (Well-Formed) XML-документ XML-документwell-formed если Теги синтаксически корректны Каждый тег имеет закрывающий тег Теги правильно вложены Существует корневой (root) тег В теге не может быть двух повторяющихся атрибутов XML-документ должен быть well-formed перед обработкой. well-formed XML-документ в процессе синтаксического анализа превращается в дерево узлов

Слайд 16





Терминология
<?xml  version=“1.0” ?>
<PersonList Type=“Student”  Date=“2002-02-02” >
       <Title  Value=“Student List” />
       <Person>
       … … …
       </Person>
       <Person>
       … … …
       </Person>
</PersonList>
Элементы могут быть вложенными
Корневой элемент включает все остальные теги
Описание слайда:
Терминология <?xml version=“1.0” ?> <PersonList Type=“Student” Date=“2002-02-02” > <Title Value=“Student List” /> <Person> … … … </Person> <Person> … … … </Person> </PersonList> Элементы могут быть вложенными Корневой элемент включает все остальные теги

Слайд 17





Терминология
<Person  Name = “John”  Id = “s111111111”>
      John is a nice fellow
      <Address>
          <Number>21</Number>
          <Street>Main St.</Street>
      </Address>
      … … …
</Person>
Описание слайда:
Терминология <Person Name = “John” Id = “s111111111”> John is a nice fellow <Address> <Number>21</Number> <Street>Main St.</Street> </Address> … … … </Person>

Слайд 18





XML модель данных
Описание слайда:
XML модель данных

Слайд 19





Пример реляционной базы данных сотрудников
Описание слайда:
Пример реляционной базы данных сотрудников

Слайд 20





Пример XML базы данных сотрудников. Фрагмент
Описание слайда:
Пример XML базы данных сотрудников. Фрагмент

Слайд 21





Document Type Definitions (DTD) – определение типа документа
DTD: Document Type Definition – один из способов спецификации структуры XML документа.
DTD добавляет синтаксические требования в дополнение к требованиям well-formed документа.
DTDs помогает
Обнаруживать ошибки при создании или редактирования XML документов.
Упрощает процесс обработки XML документов.
Использует “регулярные выражения” как синтаксис для спецификации граматики XML документа.
Имеет ограничения: нет типов данных, нет возможности описания ограничений, нет поддержки схем.
Описание слайда:
Document Type Definitions (DTD) – определение типа документа DTD: Document Type Definition – один из способов спецификации структуры XML документа. DTD добавляет синтаксические требования в дополнение к требованиям well-formed документа. DTDs помогает Обнаруживать ошибки при создании или редактирования XML документов. Упрощает процесс обработки XML документов. Использует “регулярные выражения” как синтаксис для спецификации граматики XML документа. Имеет ограничения: нет типов данных, нет возможности описания ограничений, нет поддержки схем.

Слайд 22





Пример: Адресная книга
<person> 
	<name> Homer Simpson </name>
	<greet> Dr. H. Simpson </greet>
	<addr>1234 Springwater Road </addr>
	<addr> Springfield USA, 98765 </addr>
	<tel> (321) 786 2543 </tel>
	<fax> (321) 786 2544 </fax>
	<tel> (321) 786 2544 </tel>
	<email> homer@math.springfield.edu </email>	
</person>
Описание слайда:
Пример: Адресная книга <person> <name> Homer Simpson </name> <greet> Dr. H. Simpson </greet> <addr>1234 Springwater Road </addr> <addr> Springfield USA, 98765 </addr> <tel> (321) 786 2543 </tel> <fax> (321) 786 2544 </fax> <tel> (321) 786 2544 </tel> <email> homer@math.springfield.edu </email> </person>

Слайд 23





Спецификация структуры
name 	имя элемента
greet? 	опционально (0 или 1) приветственных элементов
name, greet? имя перед опциональным приветствием
addr*	для определения 0 или более адресов
tel | fax	элемент с телефоном или факс 
(tel | fax)* 	0 или более повторений телефона или факса
email*	0 или более элементов почтовых адресов
Описание слайда:
Спецификация структуры name имя элемента greet? опционально (0 или 1) приветственных элементов name, greet? имя перед опциональным приветствием addr* для определения 0 или более адресов tel | fax элемент с телефоном или факс (tel | fax)* 0 или более повторений телефона или факса email* 0 или более элементов почтовых адресов

Слайд 24





Определение типа элемента
Для каждого элемента типа E, описание формы:
<!ELEMENT   E content-model>
где content-model выражение:
Content-model ::= 
  EMPTY  | ANY | #PCDATA | E’ |  
  P1, P2 | P1 | P2 |  P1?  | P1+  | P1* | (P)
 
E’	тип элемента
P1 , P2	конкатенация
P1 | P2	альтернатива 
P?	0 или 1 раз появлений
P+	1 или более появлений
P*	любое количество появлений ( может отсутствовать)
(P)	группировка
Описание слайда:
Определение типа элемента Для каждого элемента типа E, описание формы: <!ELEMENT E content-model> где content-model выражение: Content-model ::= EMPTY | ANY | #PCDATA | E’ | P1, P2 | P1 | P2 | P1? | P1+ | P1* | (P) E’ тип элемента P1 , P2 конкатенация P1 | P2 альтернатива P? 0 или 1 раз появлений P+ 1 или более появлений P* любое количество появлений ( может отсутствовать) (P) группировка

Слайд 25





XML-документ адресной книги с описанием DTD внутри самого файла 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE addressbook [
   <!ELEMENT addressbook (person*)>
   <!ELEMENT person (name, greet?, address*,         
                      (fax | tel)*, email*)>
   <!ELEMENT name 	(#PCDATA)>
   <!ELEMENT greet  	(#PCDATA)>
   <!ELEMENT address	(#PCDATA)>
   <!ELEMENT tel    (#PCDATA)>
   <!ELEMENT fax 	(#PCDATA)>
   <!ELEMENT email 	(#PCDATA)>
]>
Описание слайда:
XML-документ адресной книги с описанием DTD внутри самого файла <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE addressbook [ <!ELEMENT addressbook (person*)> <!ELEMENT person (name, greet?, address*, (fax | tel)*, email*)> <!ELEMENT name (#PCDATA)> <!ELEMENT greet (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT tel (#PCDATA)> <!ELEMENT fax (#PCDATA)> <!ELEMENT email (#PCDATA)> ]>

Слайд 26





Спецификация атрибута DTD
<!ELEMENT height (#PCDATA)>
<!ATTLIST height 
      dimension CDATA #REQUIRED
      accuracy CDATA  #IMPLIED >
 Атрибут dimension обязан присутстовать
 Атрибут accuracy может отсутствовать
 CDATA – это тип атрибута – символьные данные
Описание слайда:
Спецификация атрибута DTD <!ELEMENT height (#PCDATA)> <!ATTLIST height dimension CDATA #REQUIRED accuracy CDATA #IMPLIED > Атрибут dimension обязан присутстовать Атрибут accuracy может отсутствовать CDATA – это тип атрибута – символьные данные

Слайд 27





Формат определения атрибутов
<!ATTLIST имя_атрибута тип_атрибута 
          определение_атрибута>
Значение представляется внутри кавычек
Типы атрибутов: 
CDATA 
ID, IDREF, IDREFS
ID, IDREF, IDREFS используются для ссылок 
Определение атрибута
#REQUIRED: атрибут должен присутствовать 
#IMPLIED: атрибут может отсутствовать
Описание слайда:
Формат определения атрибутов <!ATTLIST имя_атрибута тип_атрибута определение_атрибута> Значение представляется внутри кавычек Типы атрибутов: CDATA ID, IDREF, IDREFS ID, IDREF, IDREFS используются для ссылок Определение атрибута #REQUIRED: атрибут должен присутствовать #IMPLIED: атрибут может отсутствовать

Слайд 28





Включение DTD в документ
A DTD может быть

внутренним
DTD – часть файла с документом

внешним
DTD и документ располагаются в разных файлах
внешний DTD может располагаться
в локальной файловой системе 
в удаленной файловой системе
Описание слайда:
Включение DTD в документ A DTD может быть внутренним DTD – часть файла с документом внешним DTD и документ располагаются в разных файлах внешний DTD может располагаться в локальной файловой системе в удаленной файловой системе

Слайд 29





Связь документа с DTD
Внутренний DTD
	
	<?xml version="1.0"?>
	<!DOCTYPE db [<!ELEMENT ...> … ]>
	<db> ... </db>
DTD из локальной файловой системы: 
	
	<!DOCTYPE db SYSTEM "schema.dtd">
DTD из удаленной файловой системы: 
	<!DOCTYPE db SYSTEM                  	"http://www.schemaauthority.com/schema.dtd">
Описание слайда:
Связь документа с DTD Внутренний DTD <?xml version="1.0"?> <!DOCTYPE db [<!ELEMENT ...> … ]> <db> ... </db> DTD из локальной файловой системы: <!DOCTYPE db SYSTEM "schema.dtd"> DTD из удаленной файловой системы: <!DOCTYPE db SYSTEM "http://www.schemaauthority.com/schema.dtd">

Слайд 30





Правильный (Valid) XML-документ
well-formed XML-документ является правильным (valid ) если он удовлетворяет своему DTD, т.е,
Документ удовлетворяет граматике регулярных выражений
Типы атрибутов корректны
Описание слайда:
Правильный (Valid) XML-документ well-formed XML-документ является правильным (valid ) если он удовлетворяет своему DTD, т.е, Документ удовлетворяет граматике регулярных выражений Типы атрибутов корректны

Слайд 31





XML Схема
Описание слайда:
XML Схема

Слайд 32





XML Схема
XML схема определяет: 
 
элементы из документа
Атрибуты, появляющиеся в элементах
Какие элементы являются вложенными
Порядок следования вложенных элементов 
Кол-во вложенных элементов 
Пустой элемент или его содержимое в виде текста 
Значения по-умолчанию для атрибутов 
Цели Схемы – определить легальные строительные блоки XML-документа как в DTD.
Описание слайда:
XML Схема XML схема определяет: элементы из документа Атрибуты, появляющиеся в элементах Какие элементы являются вложенными Порядок следования вложенных элементов Кол-во вложенных элементов Пустой элемент или его содержимое в виде текста Значения по-умолчанию для атрибутов Цели Схемы – определить легальные строительные блоки XML-документа как в DTD.

Слайд 33





XML Схема – лучше DTD
XML Схема
Проще для изучения, чем DTD 
Расширяемая для будущих расширений 
Богаче и полезнее, чем DTD
Написана в XML 
Поддержка типов данных
Описание слайда:
XML Схема – лучше DTD XML Схема Проще для изучения, чем DTD Расширяемая для будущих расширений Богаче и полезнее, чем DTD Написана в XML Поддержка типов данных

Слайд 34





Пример: Заказ товаров
<?xml version="1.0"?>
<shipOrder>   
<shipTo>     
<name>Svendson</name>     
<street>Oslo St</street>     
<address>400 Main</address>
<country>Norway</country>   
</shipTo>
<items>     
<item>       
<title>Wheel</title>       
<quantity>1</quantity>       
<price>10.90</price>     
</item>
Описание слайда:
Пример: Заказ товаров <?xml version="1.0"?> <shipOrder>   <shipTo>     <name>Svendson</name>     <street>Oslo St</street>     <address>400 Main</address> <country>Norway</country>   </shipTo> <items>     <item>       <title>Wheel</title>       <quantity>1</quantity>       <price>10.90</price>     </item>

Слайд 35





XML Схема для заказа товаров
<xsd:schema xmlns:xsd=http://www.w3.org/1999/XMLSchema>
<xsd:element name="shipOrder" type="order"/> 
<xsd:complexType name="order">   
  <xsd:element name="shipTo" type="shipAddress"/>   
  <xsd:element name="items" type="cdItems"/>
</xsd:complexType> 
<xsd:complexType name="shipAddress">   
  <xsd:element name="name“ type="xsd:string"/>   
  <xsd:element name="street" type="xsd:string"/>   
  <xsd:element name="address" type="xsd:string"/>   
  <xsd:element name="country" type="xsd:string"/>
</xsd:complexType>
Описание слайда:
XML Схема для заказа товаров <xsd:schema xmlns:xsd=http://www.w3.org/1999/XMLSchema> <xsd:element name="shipOrder" type="order"/> <xsd:complexType name="order">   <xsd:element name="shipTo" type="shipAddress"/>   <xsd:element name="items" type="cdItems"/> </xsd:complexType> <xsd:complexType name="shipAddress">   <xsd:element name="name“ type="xsd:string"/>   <xsd:element name="street" type="xsd:string"/>   <xsd:element name="address" type="xsd:string"/>   <xsd:element name="country" type="xsd:string"/> </xsd:complexType>

Слайд 36





XML Схема – Заказ товаров (продолжение)
<xsd:complexType name="cdItems">   
  <xsd:element name="item" minOccurs="0"    
               maxOccurs="unbounded" type="cdItem"/> 
</xsd:complexType> 
<xsd:complexType name="cdItem">   
  <xsd:element name="title" type="xsd:string"/>   
  <xsd:element name="quantity“
               type="xsd:positiveInteger"/>   
  <xsd:element name="price" type="xsd:decimal"/> 
</xsd:complexType> 
</xsd:schema>
Описание слайда:
XML Схема – Заказ товаров (продолжение) <xsd:complexType name="cdItems">   <xsd:element name="item" minOccurs="0" maxOccurs="unbounded" type="cdItem"/> </xsd:complexType> <xsd:complexType name="cdItem">   <xsd:element name="title" type="xsd:string"/>   <xsd:element name="quantity“ type="xsd:positiveInteger"/>   <xsd:element name="price" type="xsd:decimal"/> </xsd:complexType> </xsd:schema>

Слайд 37





Новые простые типы данных
Доступно множество встроенных типов
xsd:string, xsd:integer, xsd:positiveInteger, 
xsd:decimal, xsd:boolean, xsd:date, xsd:NMTOKENS, etc.
Определение новых простых типов. Пример определяет myInteger (значение между 10000 и 99999):
<xsd:simpleType name="myInteger">   
  <xsd:restriction base="xsd:integer">     
    <xsd:minInclusive value="10000"/>     
    <xsd:maxInclusive value="99999"/>   
  </xsd:restriction> 
</xsd:simpleType>
Описание слайда:
Новые простые типы данных Доступно множество встроенных типов xsd:string, xsd:integer, xsd:positiveInteger, xsd:decimal, xsd:boolean, xsd:date, xsd:NMTOKENS, etc. Определение новых простых типов. Пример определяет myInteger (значение между 10000 и 99999): <xsd:simpleType name="myInteger">   <xsd:restriction base="xsd:integer">     <xsd:minInclusive value="10000"/>     <xsd:maxInclusive value="99999"/>   </xsd:restriction> </xsd:simpleType>

Слайд 38





Новые простые типы данных
Перечислимый тип:
<xsd:simpleType name="USState">   
  <xsd:restriction base="xsd:string">     
    <xsd:enumeration value="AK"/>     
    <xsd:enumeration value="AL"/>     
    <xsd:enumeration value="AR"/>     
    <!-- and so on ... -->   
  </xsd:restriction> 
</xsd:simpleType>
Описание слайда:
Новые простые типы данных Перечислимый тип: <xsd:simpleType name="USState">   <xsd:restriction base="xsd:string">     <xsd:enumeration value="AK"/>     <xsd:enumeration value="AL"/>     <xsd:enumeration value="AR"/>     <!-- and so on ... -->   </xsd:restriction> </xsd:simpleType>

Слайд 39





Новые простые типы данных
XML Схема имеет 3 встроенных списочных типа: NMTOKENS, IDREFS, ENTITIES
Создание нового списочного типа из простого:
<xsd:simpleType name="listOfMyIntType">   
  <xsd:list itemType="myInteger"/> 
</xsd:simpleType> 
Следующий XML-фрагмент удовлетворяет вышеописанному типу SimpleType:
<listOfMyInt>20003 15037 95977 95945</listOfMyInt>
Описание слайда:
Новые простые типы данных XML Схема имеет 3 встроенных списочных типа: NMTOKENS, IDREFS, ENTITIES Создание нового списочного типа из простого: <xsd:simpleType name="listOfMyIntType">   <xsd:list itemType="myInteger"/> </xsd:simpleType> Следующий XML-фрагмент удовлетворяет вышеописанному типу SimpleType: <listOfMyInt>20003 15037 95977 95945</listOfMyInt>

Слайд 40





Новые простые типы данных
Использование функций: length,minLength, maxLength, enumeration
Например, для определения ровно 6-ти штатов (SixUSStates)
Вначале определяется новый списочный тип данных USStateList из типа USState
Затем SixUSStates ограничивается через USStateList с использованием только 6 значений 
<xsd:simpleType name="USStateList">  
  <xsd:list itemType="USState"/> 
</xsd:simpleType> 
<xsd:simpleType name="SixUSStates">  
  <xsd:restriction base="USStateList">   
    <xsd:length value="6"/>  
  </xsd:restriction> 
</xsd:simpleType> 
<sixStates>PA NY CA NY LA AK</sixStates>
Описание слайда:
Новые простые типы данных Использование функций: length,minLength, maxLength, enumeration Например, для определения ровно 6-ти штатов (SixUSStates) Вначале определяется новый списочный тип данных USStateList из типа USState Затем SixUSStates ограничивается через USStateList с использованием только 6 значений <xsd:simpleType name="USStateList">   <xsd:list itemType="USState"/> </xsd:simpleType> <xsd:simpleType name="SixUSStates">   <xsd:restriction base="USStateList">   <xsd:length value="6"/>   </xsd:restriction> </xsd:simpleType> <sixStates>PA NY CA NY LA AK</sixStates>

Слайд 41





Лексические анализаторы – Parsers
Описание слайда:
Лексические анализаторы – Parsers

Слайд 42





Parsers (анализаторы)
Что такое parser?

Программа, которая анализирует грамматические структуры в соответствии с заданной формальной грамматикой
Parser определяет как предложение может быть сконструировано из грамматики языка через описание атмарных элементов и отношений между ними
Описание слайда:
Parsers (анализаторы) Что такое parser? Программа, которая анализирует грамматические структуры в соответствии с заданной формальной грамматикой Parser определяет как предложение может быть сконструировано из грамматики языка через описание атмарных элементов и отношений между ними

Слайд 43





XML-стандарты анализаторов
В основном рассматриваются два метода, реализованный организацией W3C для доступа к  XML 
SAX (Simple API for XML) – простое API для XML
Событийно управляемый анализатор 
Протокол “последовательного доступа”
API “только для чтения”
DOM (Document Object Model) – модель объекта документа
Преобразовывает XML в дерево объектов 
Протокол “случайного доступа”
Может обновлять XML-документ (insert/delete узлы)
Описание слайда:
XML-стандарты анализаторов В основном рассматриваются два метода, реализованный организацией W3C для доступа к XML SAX (Simple API for XML) – простое API для XML Событийно управляемый анализатор Протокол “последовательного доступа” API “только для чтения” DOM (Document Object Model) – модель объекта документа Преобразовывает XML в дерево объектов Протокол “случайного доступа” Может обновлять XML-документ (insert/delete узлы)

Слайд 44





SAX-анализатор
SAX = Simple API for XML
XML читается последовательно
Когда поисходит событие анализа, анализатор вызывает соответствующий метод
Похож на I/O-потоки, работает в одном направлении
Описание слайда:
SAX-анализатор SAX = Simple API for XML XML читается последовательно Когда поисходит событие анализа, анализатор вызывает соответствующий метод Похож на I/O-потоки, работает в одном направлении

Слайд 45





Простой пример данных
<orders>
<order>
 <onum>1020</onum>
 <takenBy>1000</takenBy>
 <customer>1111</customer>
 <recDate>10-DEC 94</recDate>
 <items>
   <item>
     <pnum>10506</pnum>
     <quantity>1</quantity>
   </item>
Описание слайда:
Простой пример данных <orders> <order> <onum>1020</onum> <takenBy>1000</takenBy> <customer>1111</customer> <recDate>10-DEC 94</recDate> <items> <item> <pnum>10506</pnum> <quantity>1</quantity> </item>

Слайд 46





Простой пример данных
<orders>
<order>
 <onum>1020</onum>
 <takenBy>1000</takenBy>
 <customer>1111</customer>
 <recDate>10-DEC 94</recDate>
 <items>
   <item>
     <pnum>10506</pnum>
     <quantity>1</quantity>
   </item>
Описание слайда:
Простой пример данных <orders> <order> <onum>1020</onum> <takenBy>1000</takenBy> <customer>1111</customer> <recDate>10-DEC 94</recDate> <items> <item> <pnum>10506</pnum> <quantity>1</quantity> </item>

Слайд 47





Простой пример данных
<orders>
<order>
 <onum>1020</onum>
 <takenBy>1000</takenBy>
 <customer>1111</customer>
 <recDate>10-DEC-94</recDate>
 <items>
   <item>
     <pnum>10506</pnum>
     <quantity>1</quantity>
   </item>
Описание слайда:
Простой пример данных <orders> <order> <onum>1020</onum> <takenBy>1000</takenBy> <customer>1111</customer> <recDate>10-DEC-94</recDate> <items> <item> <pnum>10506</pnum> <quantity>1</quantity> </item>

Слайд 48





Простой пример данных
<orders>
<order>
 <onum>1020</onum>
 <takenBy>1000</takenBy>
 <customer>1111</customer>
 <recDate>10-DEC-94</recDate>
 <items>
   <item>
     <pnum>10506</pnum>
     <quantity>1</quantity>
   </item>
Описание слайда:
Простой пример данных <orders> <order> <onum>1020</onum> <takenBy>1000</takenBy> <customer>1111</customer> <recDate>10-DEC-94</recDate> <items> <item> <pnum>10506</pnum> <quantity>1</quantity> </item>

Слайд 49





SAX-анализатор
Описание слайда:
SAX-анализатор

Слайд 50


Основы XML-технологий, слайд №50
Описание слайда:

Слайд 51





SAX API
Два важных класса в SAX API: SAXParser и HandlerBase.
Создание нового SAXParser-объекта:
	public SAXParser()
Регистрация SAX-элемента управления для объекта анализа для получения извещений о событиях анализа: 
public void setDocumentHandler(DocumentHandler h)
Регистрация элемента управления для обнаружения ошибок:
public void setErrorHandler(ErrorHandler h)
Описание слайда:
SAX API Два важных класса в SAX API: SAXParser и HandlerBase. Создание нового SAXParser-объекта: public SAXParser() Регистрация SAX-элемента управления для объекта анализа для получения извещений о событиях анализа: public void setDocumentHandler(DocumentHandler h) Регистрация элемента управления для обнаружения ошибок: public void setErrorHandler(ErrorHandler h)

Слайд 52





SAX API
Класс HandlerBase определяет базовый класс для всех элементов управления. 
Он определяет поведение по-умолчанию для различных элементов управления. 
Программы расширяют этот класс за счет переопределения следующих методов управления событиями:
public void startDocument() throws SAXException
public void endDocument() throws SAXException
public void startElement() throws SAXException
public void endElement() throws SAXException
public void characters() throws SAXException
public void warning() throws SAXException
public void error() throws SAXException
Описание слайда:
SAX API Класс HandlerBase определяет базовый класс для всех элементов управления. Он определяет поведение по-умолчанию для различных элементов управления. Программы расширяют этот класс за счет переопределения следующих методов управления событиями: public void startDocument() throws SAXException public void endDocument() throws SAXException public void startElement() throws SAXException public void endElement() throws SAXException public void characters() throws SAXException public void warning() throws SAXException public void error() throws SAXException

Слайд 53





Создание SAX-анализатора
Описание слайда:
Создание SAX-анализатора

Слайд 54





SAX API – простой пример программного кода
Создать SAX-анализатор, который читает файл orders.xml и извлекает различные данные, а в завершение создает запрос на внесение полученных данных в таблицу БД.
Описание слайда:
SAX API – простой пример программного кода Создать SAX-анализатор, который читает файл orders.xml и извлекает различные данные, а в завершение создает запрос на внесение полученных данных в таблицу БД.

Слайд 55





SAX API – простой пример программного кода
Описание слайда:
SAX API – простой пример программного кода

Слайд 56





SAX API – простой пример программного кода
Описание слайда:
SAX API – простой пример программного кода

Слайд 57





SAX API – простой пример программного кода
Описание слайда:
SAX API – простой пример программного кода

Слайд 58





DOM-анализатор
DOM = Document Object Model ( Объектная Модель Документа)
Анализатор создает дерево объектов документа
Пользователь получает доступ к данным путем обхода дерева
Дерево и его обход определо W3C-стандартами
API позволяет конструировать, получать доступ и манипулировать структурами и содержимым XML-документов
Описание слайда:
DOM-анализатор DOM = Document Object Model ( Объектная Модель Документа) Анализатор создает дерево объектов документа Пользователь получает доступ к данным путем обхода дерева Дерево и его обход определо W3C-стандартами API позволяет конструировать, получать доступ и манипулировать структурами и содержимым XML-документов

Слайд 59


Основы XML-технологий, слайд №59
Описание слайда:

Слайд 60





DOM-дерево
Описание слайда:
DOM-дерево

Слайд 61





Использование DOM-дерева
Описание слайда:
Использование DOM-дерева

Слайд 62





Интерфейс доступа к узлам
Узлы DOM-дерева включают
Специальный корневой узел (root) 
Узлы элементы (element)
Текстовые узлы и CDATA-секции
Атрибуты (attributes)
Комментарии (comments)
Каждый узел в DOM-дереве реализует интерфейс узла
Описание слайда:
Интерфейс доступа к узлам Узлы DOM-дерева включают Специальный корневой узел (root) Узлы элементы (element) Текстовые узлы и CDATA-секции Атрибуты (attributes) Комментарии (comments) Каждый узел в DOM-дереве реализует интерфейс узла

Слайд 63





Навигация по узлам
Каждый узел имеет специальное расположение (location) в узле
Узловой (Node) интерфейс определяет методы для навигации по дереву
Node getFirstChild(); – получение первого по порядку наследника
Node getLastChild(); –- получение последнего по порядку наследника 
Node getNextSibling(); –- получение следующего родственника текущего уровня (брата)
Node getPreviousSibling(); –- получение предыдущего родственника текущего уровня (брата)
Node getParentNode(); –- получение родительского узла
NodeList getChildNodes(); –- получение узлов-наследников
NamedNodeMap getAttributes() –- получение атрибутов
Описание слайда:
Навигация по узлам Каждый узел имеет специальное расположение (location) в узле Узловой (Node) интерфейс определяет методы для навигации по дереву Node getFirstChild(); – получение первого по порядку наследника Node getLastChild(); –- получение последнего по порядку наследника Node getNextSibling(); –- получение следующего родственника текущего уровня (брата) Node getPreviousSibling(); –- получение предыдущего родственника текущего уровня (брата) Node getParentNode(); –- получение родительского узла NodeList getChildNodes(); –- получение узлов-наследников NamedNodeMap getAttributes() –- получение атрибутов

Слайд 64





Навигация по узлам
Описание слайда:
Навигация по узлам

Слайд 65


Основы XML-технологий, слайд №65
Описание слайда:

Слайд 66


Основы XML-технологий, слайд №66
Описание слайда:

Слайд 67


Основы XML-технологий, слайд №67
Описание слайда:

Слайд 68


Основы XML-технологий, слайд №68
Описание слайда:

Слайд 69


Основы XML-технологий, слайд №69
Описание слайда:

Слайд 70





Манипулирование узлами
Наследник узла в DOM-дереве может быть добавлен, изменен, удален, перемещен, скопирован и ...
Для создания новых узлов используется методы класса  Document
createElement, createAttribute, createTextNode, createCDATASection , ...
Для манипулирования узлами используются методы класса Node
appendChild, insertBefore, removeChild, replaceChild, setNodeValue, cloneNode(boolean deep) ...
Описание слайда:
Манипулирование узлами Наследник узла в DOM-дереве может быть добавлен, изменен, удален, перемещен, скопирован и ... Для создания новых узлов используется методы класса Document createElement, createAttribute, createTextNode, createCDATASection , ... Для манипулирования узлами используются методы класса Node appendChild, insertBefore, removeChild, replaceChild, setNodeValue, cloneNode(boolean deep) ...

Слайд 71





Сравнение SAX и DOM анализаторов: Эффективность
DOM-объект, создаваемые DOM-анализатором являются сложными и требуют больше памяти для хранения, чем сам XML-файл
Затрачивается много времени для предварительного создания
Для больших документов это не практично
SAX-анализаторы сохраняют только локальную информацию, которая учитывается в течение нескольких переходов по дереву
программирование SAX-анализаторов, в общем, является эффективным способом ( но не быстрым)
Описание слайда:
Сравнение SAX и DOM анализаторов: Эффективность DOM-объект, создаваемые DOM-анализатором являются сложными и требуют больше памяти для хранения, чем сам XML-файл Затрачивается много времени для предварительного создания Для больших документов это не практично SAX-анализаторы сохраняют только локальную информацию, которая учитывается в течение нескольких переходов по дереву программирование SAX-анализаторов, в общем, является эффективным способом ( но не быстрым)

Слайд 72





Трудности программирования 
в SAX-анализаторе
Программирование в SAX-анализаторе сложно, например:
Как найти элемент e1, у которого предком является e2?
Как найти элемент e1 , который имеет элемент-наследник (descendant) e2?
Как найти элемент e1 ссылающийся на атрибут IDREF attribute элемента e2?
Описание слайда:
Трудности программирования в SAX-анализаторе Программирование в SAX-анализаторе сложно, например: Как найти элемент e1, у которого предком является e2? Как найти элемент e1 , который имеет элемент-наследник (descendant) e2? Как найти элемент e1 ссылающийся на атрибут IDREF attribute элемента e2?

Слайд 73





Навигация по дереву
SAX-анализаторы предоставялют доступ к элементам только через последовательное посещение узлов
SAX-анализатор не читает в обратную сторону
DOM-анализатор может использовать множество методов навигации
Поэтому использование DOM-анализатора удобнее
Описание слайда:
Навигация по дереву SAX-анализаторы предоставялют доступ к элементам только через последовательное посещение узлов SAX-анализатор не читает в обратную сторону DOM-анализатор может использовать множество методов навигации Поэтому использование DOM-анализатора удобнее

Слайд 74





Спасибо за Ваше внимание!

Особая благодарность
Rajshekhar Sunderraman
(Институт компьютерных наук,
Государственный университет 
штата Джорджии)
Описание слайда:
Спасибо за Ваше внимание! Особая благодарность Rajshekhar Sunderraman (Институт компьютерных наук, Государственный университет штата Джорджии)



Похожие презентации
Mypresentation.ru
Загрузить презентацию