Definiowanie typw dokumentw 1 Jak wyglda XML xml









![Składnia DTD Deklaracja DOCTYPE: n <!DOCTYPE name external-id [ declarations ]> Deklaracja elementu: n Składnia DTD Deklaracja DOCTYPE: n <!DOCTYPE name external-id [ declarations ]> Deklaracja elementu: n](https://slidetodoc.com/presentation_image_h/9857c257008e946226ad960a1ea41bd9/image-10.jpg)






















- Slides: 32
Definiowanie typów dokumentów 1
Jak wygląda XML? <? xml version=” 1. 0”? > <zeznanie-sprawcy nr=” 1313/2001”> <autor>st. asp. Jan Łapówka</autor> <miejsce>Dołowice Górne</miejsce> <treść>Wypadek dnia <data>13. 10. 2001 r</data> o godzinie <godzina>13: 13</godzina> (<dzien-tygodnia>piątek </dzien-tygodnia>) miał miejsce nie z mojej winy. <poszkodowany>Alojzy M. </poszkodowany> nie miał żadnego pomysłu w którą stronę uciekać, więc go przejechałem. </treść> </zeznanie-sprawcy> Deklaracja XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa 2
Struktura logiczna dokumentu XML zeznanie-sprawcy autor miejsce st. asp. Jan Łapówka Dołowice Górne nr="1313/2001" treść Wypadek dnia data 13. 10. 2001 godzina dzien-tygodnia 13: 13 piątek . . . o godzinie ( <? xml version=” 1. 0”? > <zeznanie-sprawcy nr=” 1313/2001”> <autor>st. asp. Jan Łapówka</autor> <miejsce>Dołowice Górne</miejsce> <treść>Wypadek dnia <data>13. 10. 2001 r</data> o godzinie <godzina>13: 13</godzina> (<dzien-tygodnia>piątek </dzien-tygodnia>) miał miejsce nie z mojej winy. <poszkodowany>Alojzy M. </poszkodowany> nie miał żadnego pomysłu w którą stronę uciekać, więc go przejechałem. </treść> </zeznanie-sprawcy> 3
Podstawy składni XML Deklaracja XML: n <? xml version="1. 0" encoding="UTF-8" standalone="no"? > Znaczniki: n <tag attributename="attribute-value"> n </tag> Znacznik elementu pustego: n </br> n <br/> 4
Definiowanie języków XML, SGML – metajęzyki. Definiowanie języków (zastosowań, struktury dokumentów): n określanie zestawu dopuszczalnych elementów, atrybutów, . . . , n definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), n przypisywanie atrybutów do elementów, n. . . Metody definiowania struktury: n dokument XML bez określonej struktury, n DTD – Document Type Definition, n DDML – Document Definition Markup Language, n XML Data, n XML Schema (rekomendacja W 3 C z 2 maja 2001). 5
Poprawność dokumentów Dokument XML poprawny składniowo (ang. well-formed): n każdy element musi być zamknięty, n nie ma nakładających się elementów, n wartości atrybutów w apostrofach lub cudzysłowach, n. . . Dokument XML poprawny strukturalnie (ang. valid): n struktura dokumentu zgodna ze strukturą zdefiniowaną w definicji typu dokumentu, n obecne wszystkie wymagane atrybuty. Dokument SGML: obowiązkowa definicja struktury – DTD. 6
Modelowanie typów dokumentów Wieloetapowy proces analityczno-projektowy: n analiza struktury modelowanych bytów, n analiza przykładowych dokumentów, n analiza potencjalnych zastosowań dokumentów oraz przypadków użycia, n abstrakcyjny projekt struktury, n kodowanie projektu struktury np. przy pomocy DTD, n testowanie, n pielęgnacja, zarządzanie zmianami. 7
Projektowanie struktury dokumentów html head ? meta body * title #PCDAT A p h 1 pre #PCDAT A ol . . . 8
DTD – prosty przykład <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) ”nie”> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers (#PCDATA)> ]> element główny zawartość elementów atrybuty wyrażenia regularne 9
Składnia DTD Deklaracja DOCTYPE: n <!DOCTYPE name external-id [ declarations ]> Deklaracja elementu: n <!ELEMENT name (content-model)> Deklaracja atrybutów: n <!ATTLIST element name type default. . . > 10
Elementy - modelowanie Informacje przenoszone przez elementy: n zawartość (elementy semantyczne, np. nazwisko, nazwa leku, adres), n struktura (np. rozdział, akapit, tytuł, lista), n typografia (np. kursywa, Times, półgruby), n wyszukiwanie (np. termin do indeksu, glosariusza, a także elementy dedykowane), n odesłania (np. hiperlinki, noty, przypisy). 11
Modele zawartości elementów n Podelementy: <!ELEMENT wiersz (autor, tytul, zwrotka*)> n Tekst: <!ELEMENT autor (#PCDATA)> n Mieszany: <!ELEMENT wers (#PCDATA | cytat | kursywa)*> n ANY: <!ELEMENT cytat ANY> n EMPTY: <!ELEMENT ilustracja EMPTY> 12
Budowanie modeli zawartości Znana notacja: n +jeden lub więcej n *zero lub więcej n , sekwencja n |alternatywa n ? opcjonalny Fragment zawartości (content particle) – wyrażenie zbudowane z połączonych spójnikami: n nazw elementów, n #PCDATA, n fragmentów zawartości. 13
Przykład znaczenie (znaczenie | definicja) (hasło, (znaczenie | definicja), etymologia? ) <!ELEMENT słownik (hasło, (znaczenie | definicja), etymologia? )* > 14
Typy atrybutów CDATA ciąg znaków NMTOKEN ciąg znaków mogących występować w nazwach atrybutów i elementów NMTOKENS ciąg NMTOKEN oddzielanych spacjami identyfikator unikalny w dokumencie ID IDREF wskaźnik do ID innego elementu IDREFS ciąg IDREF oddzielany spacjami ENTITY nazwa encji (musi być zadeklarowana) ENITIES ciąg ENTITY oddzielany spacjami (a|b|c) typ wyliczeniowy 15
Rodzaje atrybutów #REQUIRED #IMPLIED #FIXED <!ATTLIST NIP OPIS CDATA #FIXED ”Numer Identyfikacji Podatkowej”> Wartość domyślna <!ATTLIST wiersz bialy (tak|nie) ”nie”> 16
Atrybuty zarezerwowane xml: . . . – atrybuty zarezerwowane do użycia przez standard XML. xml: space wartość preserve oznacza, że ciągi białych znaków w tym poddrzewie są traktowane jak węzły tekstowe. xml: lang określa język zawartości elementu. 17
Normalizacja wartości atrybutów Upraszcza tworzenie dokumentów. Kroki normalizacji: n usunięcie otaczających cudzysłowów lub apostrofów, n zastąpienie referencji do znaków przez odpowiednie znaki, n rozwinięcie encji ogólnych, n zastąpienie znaków końca wiersza spacjami, n dla atrybutów typu NMTOKEN, NMTOKENS, ENTITY, ENTITIES, IDREF, IDREFS: n usunięcie wiodących i końcowych spacji, n zastąpienie ciągów spacji pojedynczymi spacjami. 18
Fizyczna struktura dokumentu: encje Encja (entity): n fizyczna reprezentacja obiektu informacyjnego w systemie, uogólnienie pojęcia "plik", n jednostka fizycznej budowy dokumentu, uogólnienie pojęcia "makro". Dokument plik encja: n encja dokumentu (document entity), n zawartość dokumentu może znajdować się w wielu encjach (reprezentowanych np. przez pliki). 19
Encje predefiniowane & & < < > > ' ' " " 20
Encje wewnętrzne i zewnętrzne Encje wewnętrzne: n DTD: <!ENTITY xml "<term>Extensible Markup Language</term>"> n Instancja dokumentu: Metajęzyk &xml; wywodzi się z SGML-a. Encje zewnętrzne: n DTD: <!ENTITY intro SYSTEM "intro. xml"> <!ENTITY chap 1 SYSTEM "chapter 1. xml"> <!ENTITY chap 2 SYSTEM "chapter 2. xml"> n Instancja dokumentu: <book> &intro; &chap 1; &chap 2; </book> 21
Jak odwoływać się do encji zewnętrznych Identyfikatory zewnętrzne: n Identyfikator systemowy: SYSTEM "docbook. dtd" n Identyfikator publiczny: PUBLIC "-//OASIS//DTD Doc. Book V 3. 1//EN" Odwzorowanie identyfikatorów publicznych na systemowe: plik catalog. 22
Plik catalog Format OASIS (odziedziczony po SGML-u): PUBLIC "-//W 3 C//DTD HTML 4. 0 Transitional//EN" "html 40 -l/html 40 -l. dtd" PUBLIC "-//Arbor. Text//DTD Article 950601//EN" "article/article. dtd" Format XCatalog: <XMLCatalog> <Map Public. Id= "-//W 3 C//DTD HTML 4. 0 Transitional//EN" HRef="html 40 -l/html 40 -l. dtd "/> <Map Public. Id= "-//Arbor. Text//DTD Article 950601//EN" HRef="article/article. dtd"/> </XMLCatalog> 23
Encje parametryczne Wykorzystywane w DTD, np: <!ENTITY % inline "(#PCDATA | emph | keyword | name)*"> <!ELEMENT para %inline; > list (list-item)*> list-item %inline; > definition (%inline | defined-word)*> Zewnętrzne encje parametryczne – modularyzacja DTD, np: <!ENTITY % calstbls PUBLIC "-//Arbor. Text//ELEMENTS CALS Table Structures//EN"> %calstbls; 24
Encje nieprzetwarzane Odwołania do obiektów nieprzetwarzanych przez parser XML (grafiki, dźwięku, plików binarnych, itp. ) W DTD: n deklaracja notacji: <!NOTATION GIF SYSTEM "gifmagic. exe"> n deklaracja atrybutu encyjnego: <!ELEMENT pic EMPTY> <!ATTLIST pic name ENTITY> n deklaracja encji nieprzetwarzanej: <!ENTITY logo SYSTEM "logo. gif" NDATA "GIF"> W instancji dokumentu: n odwołanie do encji: <pic name="logo"/> 25
Encje – podsumowanie Encje ogólne Encje parametryczne Encje przetwarzane Encje nieprzetwarzane Encje wewnętrzne Encje zewnętrzne 26
Atrybuty notacyjne Deklaracje zgodności zawartości elementu z określoną notacją. <!NOTATION ISODATE SYSTEM "http: //www. iso. ch/date_specification"> <!NOTATION EUDATE SYSTEM "http: //www. eu/date_specification"> <!ELEMENT TODAY (#PCDATA)> <!ATTLIST TODAY FORMAT NOTATION (ISODATE|EUDATE) #REQUIRED> 27
Gdzie umieścić DTD? W encji dokumentu: <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) ”nie”> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers (#PCDATA)> ]> <wiersz> <autor>William Shakespeare</autor> <tytul>Sonet CCII</tytul> <zwrotka>. . . </zwrotka> <wiersz> 28
Gdzie umieścić DTD? W zewnętrznej encji: n wiersz. dtd <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) ”nie”> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers (#PCDATA)> ]> n sonet. xml <!DOCTYPE wiersz SYSTEM "wiersz. dtd"> <wiersz> <autor>William Shakespeare</autor> <tytul>Sonet CCII</tytul> <zwrotka>. . . </zwrotka> <wiersz> 29
Gdzie umieścić DTD? Połączenie obu metod: n wiersz. dtd <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) ”nie”> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> Zewnętrzny podzbiór DTD <!ELEMENT wers (#PCDATA)> ]> n sonet. xml <!DOCTYPE wiersz SYSTEM "wiersz. dtd" [ <!ENTITY ws "William Shakespeare"> Wewnętrzny podzbiór DTD <!ATTLIST wiersz rodzaj #IMPLIED> ]> <wiersz rodzaj="sonet"> <autor>&ws; </autor> <tytul>Sonet CCII</tytul> <zwrotka>. . . </zwrotka> <wiersz> 30
Zewnętrzny i wewnętrzny podzbiór DTD Zewnętrzny podzbiór DTD: deklaracje wspólne dla wszystkich dokumentów danego typu: n elementy, atrybuty, n encje parametryczne. Wewnętrzny podzbiór DTD: deklaracje lokalne dla dokumentu: n deklaracje encji, n deklaracje notacji. Zaawansowane możliwości wewnętrznego podzbioru DTD: n przedefiniowywanie encji parametrycznych, n przedefiniowywanie atrybutów, n dodawanie nowych atrybutów, n sekcje warunkowe. 31
Terminologia DTD: n plik wiersz. dtd DTD, n DTD = zewnętrzny podzbiór DTD + wewnętrzny podzbiór DTD. Dokument XML: n plik sonet. xml dokument XML, n dokument = definicja języka + oznakowanie + dane, n instancja dokumentu = tekst zgodny ze zdefiniowanym językiem. 32