Title: Orenge Premiera pierwszej polskiej wyszukiwarki z odmiana wyraz
1Definiowanie typów dokumentów Czesc 1 DTD
9 pazdziernika 2003
2Jak wyglada XML?
- lt?xml version1.0?gtltzeznanie-sprawcy
nr1313/2001gtltautorgtst. asp. Jan
Lapówkalt/autorgtltmiejscegtDolowice
Górnelt/miejscegtlttrescgtWypadek dnia
ltdatagt13.10.2001rlt/datagto godzinie
ltgodzinagt1313lt/godzinagt (ltdzien-tygodniagtpiatek
lt/dzien-tygodniagt) mial miejsce nie z mojej
winy. ltposzkodowanygtAlojzy M.lt/poszkodowanygt nie
mial zadnego pomyslu w która strone uciekac, wiec
go przejechalem.lt/trescgtlt/zeznanie-sprawcygt
Deklaracja XML
Element glówny
Atrybut
Element
Znacznik poczatkowy
Znacznik koncowy
Zawartosc tekstowa
3Struktura logiczna dokumentu XML
zeznanie-sprawcy
nr"1313/2001"
miejsce
autor
tresc
st. asp. Jan Lapówka
Dolowice Górne
Wypadek dnia
data
godzina
dzien-tygodnia
...
13.10.2001
1313
piatek
o godzinie
(
lt?xml version1.0?gtltzeznanie-sprawcy
nr1313/2001gtltautorgtst. asp. Jan
Lapówkalt/autorgtltmiejscegtDolowice
Górnelt/miejscegtlttrescgtWypadek dnia
ltdatagt13.10.2001rlt/datagto godzinie
ltgodzinagt1313lt/godzinagt (ltdzien-tygodniagtpiatek
lt/dzien-tygodniagt) mial miejsce nie z mojej
winy. ltposzkodowanygtAlojzy M.lt/poszkodowanygt nie
mial zadnego pomyslu w która strone uciekac, wiec
go przejechalem.lt/trescgtlt/zeznanie-sprawcygt
4Podstawy skladni XML
- Deklaracja XML
- lt?xml version"1.0" encoding"UTF-8"
standalone"no"?gt - Znaczniki
- lttag attributename"attribute-value"gt
- lt/taggt
- Znacznik elementu pustego
- ltbrgtlt/brgt
- ltbr/gt
5Definiowanie jezyków
- XML, SGML metajezyki.
- Definiowanie jezyków (zastosowan, struktury
dokumentów, typów dokumentów) - okreslanie zestawu dopuszczalnych elementów,
atrybutów, ..., - definiowanie dopuszczalnej zawartosci elementów
(tekst, inne elementy), - przypisywanie atrybutów do elementów,
- ...
- Metody definiowania struktury
- dokument XML bez formalnej definicji struktury,
- DTD Document Type Definition,
- XML Schema (rekomendacja W3C z 2 maja 2001),
- Relax NG.
6Poprawnosc dokumentów
- Dokument XML poprawny skladniowo (ang.
well-formed) - kazdy element musi byc zamkniety,
- nie ma nakladajacych sie elementów,
- wartosci atrybutów w apostrofach lub
cudzyslowach, - ...
- Dokument XML poprawny strukturalnie (ang. valid)
- struktura dokumentu zgodna ze struktura
zdefiniowana w definicji typu dokumentu, - obecne wszystkie wymagane atrybuty.
- Dokument SGML obowiazkowa definicja struktury
DTD.
7Modelowanie typów dokumentów
- Wieloetapowy proces analityczno-projektowy
- analiza struktury modelowanych bytów,
- analiza przykladowych dokumentów,
- analiza potencjalnych zastosowan dokumentów oraz
przypadków uzycia, - abstrakcyjny projekt struktury,
- kodowanie projektu struktury np. przy pomocy DTD,
- testowanie,
- pielegnacja, zarzadzanie zmianami.
8Projektowanie struktury dokumentów
autor
?
wiersz
tytul
zwrotka
wers
9DTD prosty przyklad
lt!DOCTYPE wiersz lt!ELEMENT wiersz (autor,
tytul, zwrotka)gt lt!ATTLIST wiersz bialy
(taknie) niegt lt!ELEMENT autor (PCDATA)gt
lt!ELEMENT tytul (PCDATA)gt lt!ELEMENT zwrotka
(wers)gt lt!ELEMENT wers (PCDATA)gt gt
zawartosc elementów
atrybuty
element glówny
wyrazenia regularne
10Skladnia DTD
- Deklaracja DOCTYPE
- lt!DOCTYPE name external-id declarations gt
- Deklaracja elementu
- lt!ELEMENT name (content-model)gt
- Deklaracja atrybutów
- lt!ATTLIST element name type default
name type default ...gt
11Elementy - modelowanie
- Informacje przenoszone przez elementy
- zawartosc (elementy semantyczne, np. nazwisko,
nazwa leku, adres), - struktura (np. rozdzial, akapit, tytul, lista),
- typografia (np. kursywa, Times, pólgruby),
- wyszukiwanie (np. termin do indeksu, glosariusza,
a takze elementy dedykowane), - odeslania (np. hiperlinki, noty, przypisy).
12Modele zawartosci elementów
- Podelementy lt!ELEMENT wiersz (autor, tytul,
zwrotka)gt - Tekst lt!ELEMENT autor (PCDATA)gt
- Mieszanylt!ELEMENT wers (PCDATA cytat
kursywa)gt - ANYlt!ELEMENT cytat ANYgt
- EMPTYlt!ELEMENT ilustracja EMPTYgt
13Budowanie modeli zawartosci
- Znana notacja
- jeden lub wiecej
- zero lub wiecej
- , sekwencja
- alternatywa
- ? opcjonalny
- Fragment zawartosci (content particle)
wyrazenie zbudowane z polaczonych spójnikami - nazw elementów,
- PCDATA,
- fragmentów zawartosci.
14Fragmenty zawartosci przyklad
lt!ELEMENT slownik (haslo, (znaczenie
definicja), etymologia?) gt
znaczenie
(znaczenie definicja)
(haslo, (znaczenie definicja), etymologia?)
znaczenie
15Typy atrybutów
- CDATA ciag znaków
- NMTOKEN ciag znaków mogacych wystepowac w
nazwach atrybutów i elementów - NMTOKENS ciag NMTOKEN oddzielanych spacjami
- ID identyfikator unikalny w dokumencie
- IDREF wskaznik do ID innego elementu
- IDREFS ciag IDREF oddzielany spacjami
- ENTITY nazwa encji (musi byc zadeklarowana)
- ENITIES ciag ENTITY oddzielany spacjami
- (abc) typ wyliczeniowy
16Rodzaje atrybutów
- REQUIRED
- IMPLIED
- FIXEDlt!ATTLIST NIP OPIS CDATA FIXED Numer
Identyfikacji Podatkowejgt - Wartosc domyslnalt!ATTLIST wiersz bialy (taknie)
niegt
17Normalizacja wartosci atrybutów
- Upraszcza tworzenie dokumentów.
- Kroki normalizacji
- usuniecie otaczajacych cudzyslowów lub
apostrofów, - zastapienie referencji do znaków przez
odpowiednie znaki, - rozwiniecie encji ogólnych,
- zastapienie znaków konca wiersza spacjami,
- dla atrybutów typu NMTOKEN, NMTOKENS, ENTITY,
ENTITIES, ID, IDREF, IDREFS - usuniecie wiodacych i koncowych spacji,
- zastapienie ciagów spacji pojedynczymi spacjami.
18Fizyczna struktura dokumentu encje
- Encja (entity)
- fizyczna reprezentacja obiektu informacyjnego w
systemie, uogólnienie pojecia "plik", - jednostka fizycznej budowy dokumentu, uogólnienie
pojecia "makro". - Dokument ? plik ? encja
- encja dokumentu (document entity),
- zawartosc dokumentu moze znajdowac sie w wielu
encjach (reprezentowanych np. przez pliki).
19Encje predefiniowane
- amp
- lt lt
- gt gt
- apos '
- quot "
20Encje wewnetrzne i zewnetrzne
- Encje wewnetrzne
- DTDlt!ENTITY xml "lttermgtExtensible Markup
Languagelt/termgt"gt - Instancja dokumentuMetajezyk xml wywodzi sie
z SGML-a. - Encje zewnetrzne
- DTDlt!ENTITY intro SYSTEM "intro.xml"gtlt!ENTITY
chap1 SYSTEM "chapter1.xml"gtlt!ENTITY chap2
SYSTEM "chapter2.xml"gt - Instancja dokumentultbookgt intro chap1
chap2lt/bookgt
21Jak odwolywac sie do encji zewnetrznych
- Identyfikatory zewnetrzne
- Identyfikator systemowySYSTEM "docbook.dtd"
- Identyfikator publicznyPUBLIC "-//OASIS//DTD
DocBook V3.1//EN" - Odwzorowanie identyfikatorów publicznych na
systemowe plik catalog.
22Plik catalog
- Format OASIS (odziedziczony po SGML-u)PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN"
"html40-l/html40-l.dtd"PUBLIC "-//ArborText//DTD
Article 950601//EN" "article/article.dtd" - Format XCatalogltXMLCataloggt ltMap PublicId
"-//W3C//DTD HTML 4.0 Transitional//EN"
HRef"html40-l/html40-l.dtd "/gt ltMap PublicId
"-//ArborText//DTD Article 950601//EN"
HRef"article/article.dtd"/gtlt/XMLCataloggt
23Encje parametryczne
- Wykorzystywane w DTD, np
- lt!ENTITY inline "(PCDATA emph keyword
name)"gt - lt!ELEMENT para inlinegtlt!ELEMENT list
(list-item)gtlt!ELEMENT list-item
inlinegtlt!ELEMENT definition (inline
defined-word)gt - Zewnetrzne encje parametryczne modularyzacja
DTD, np - lt!ENTITY calstbls PUBLIC "-//ArborText//ELEME
NTS CALS Table Structures//EN"gtcalstbls
24Encje nieprzetwarzane
- Odwolania do obiektów nieprzetwarzanych przez
parser XML (grafiki, dzwieku, plików binarnych,
itp.) - W DTD
- deklaracja notacjilt!NOTATION GIF SYSTEM
"gifmagic.exe"gt - deklaracja atrybutu encyjnegolt!ELEMENT pic
EMPTYgtlt!ATTLIST pic name ENTITYgt - deklaracja encji nieprzetwarzanejlt!ENTITY logo
SYSTEM "logo.gif" NDATA "GIF"gt - W instancji dokumentu
- odwolanie do encjiltpic name"logo"/gt
25Encje podsumowanie
Encje ogólne Encje ogólne Encje parametryczne Encje parametryczne
Encje przetwarzane Encje nieprzetwarzane Encje przetwarzane Encje nieprzetwarzane
Encje wewnetrzne ? ? ? ?
Encje zewnetrzne ? ? ? ?
26Gdzie umiescic DTD?
- W encji dokumentu
- lt!DOCTYPE wiersz lt!ELEMENT wiersz (autor,
tytul, zwrotka)gt lt!ATTLIST wiersz bialy
(taknie) niegt lt!ELEMENT autor (PCDATA)gt
lt!ELEMENT tytul (PCDATA)gt lt!ELEMENT zwrotka
(wers)gt lt!ELEMENT wers (PCDATA)gtgtltwiersz
gt ltautorgtWilliam Shakespearelt/autorgt
lttytulgtSonet CCIIlt/tytulgt ltzwrotkagt...lt/zwrotkagt
ltwierszgt
27Gdzie umiescic DTD?
- W zewnetrznej encji
- wiersz.dtdlt!DOCTYPE wiersz lt!ELEMENT wiersz
(autor, tytul, zwrotka)gt lt!ATTLIST wiersz
bialy (taknie) niegt lt!ELEMENT autor
(PCDATA)gt lt!ELEMENT tytul (PCDATA)gt
lt!ELEMENT zwrotka (wers)gt lt!ELEMENT wers
(PCDATA)gtgt - sonet.xmllt!DOCTYPE wiersz SYSTEM
"wiersz.dtd"gtltwierszgt ltautorgtWilliam
Shakespearelt/autorgt lttytulgtSonet CCIIlt/tytulgt
ltzwrotkagt...lt/zwrotkagtltwierszgt
28Gdzie umiescic DTD?
- Polaczenie obu metod
- wiersz.dtdlt!DOCTYPE wiersz lt!ELEMENT wiersz
(autor, tytul, zwrotka)gt lt!ATTLIST wiersz
bialy (taknie) niegt lt!ELEMENT autor
(PCDATA)gt lt!ELEMENT tytul (PCDATA)gt
lt!ELEMENT zwrotka (wers)gt lt!ELEMENT wers
(PCDATA)gtgt - sonet.xmllt!DOCTYPE wiersz SYSTEM "wiersz.dtd"
lt!ENTITY ws "William Shakespeare"gtlt!ATTLIST
wiersz rodzaj IMPLIEDgtgtltwiersz
rodzaj"sonet"gt ltautorgtwslt/autorgt
lttytulgtSonet CCIIlt/tytulgt ltzwrotkagt...lt/zwrotkagt
ltwierszgt
29Zewnetrzny i wewnetrzny podzbiór DTD
- Zewnetrzny podzbiór DTD deklaracje wspólne dla
wszystkich dokumentów danego typu - elementy, atrybuty,
- encje parametryczne.
- Wewnetrzny podzbiór DTD deklaracje lokalne dla
dokumentu - deklaracje encji,
- deklaracje notacji.
- Zaawansowane mozliwosci wewnetrznego podzbioru
DTD - przedefiniowywanie encji parametrycznych,
- przedefiniowywanie atrybutów,
- dodawanie nowych atrybutów,
- sekcje warunkowe.
30Zaawansowana skladnia XML
- Komentarz
- lt!-- komentarz --gt
- Instrukcja przetwarzania
- lt?target processing-instruction-body?gt
- Sekcja CDATA
- lt!CDATAdowolny lttekst " nieprzetwarzany przez
parsergt - Odwolania do znaków
- 161
- xA1
- kody zgodne ze standardem ISO/IEC 10646.
31Unicode
- Swiatowy standard kodowania narodowych znaków
przy pomocy dwubajtowych par - podzbiór ISO/IEC 10646.
- Odmiany
- UTF-7,
- UTF-8 (pierwsze 128 - ASCII),
- UTF-16.
- Obowiazkowy standard dla dokumentów XML
- kazde narzedzie XML-owe musi wspieracprzynajmniej
UTF-8.
32Gdzie szukac dalej
- DTD Tutorial
- www.xmlfiles.com/dtd
- David Megginson, Structuring XML Documents,
Prentice Hall, 1998