METAJĘZYKI

Podobne dokumenty
29. Poprawność składniowa i strukturalna dokumentu XML

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

XML DTD XML Schema CSS

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

Wprowadzenie do technologii XML

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

XML extensible Markup Language. Paweł Chodkiewicz

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

DTD - encje ogólne i parametryczne, przestrzenie nazw

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Kurs WWW Język XML, część I

Rola języka XML narzędziem

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

Technologie zarządzania treścią

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Przykładowy dokument XML

XML extensible Markup Language. część 3

Aplikacje internetowe laboratorium XML, DTD, XSL

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML i nowoczesne metody zarządzania treścią

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

c TP: anything: 13 listopada 2004 roku 1

XML extensible Markup Language. część 1

METODY REPREZENTACJI INFORMACJI

XML extensible Markup Language 1

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Środowisko XML (Extensible Markup Language).

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

Stwórz dokument XML zawierający poniższe informacje. Wykorzystaj atrybuty.

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

Tablice (jedno i wielowymiarowe), łańcuchy znaków

XML i nowoczesne technologie zarządzania treścią

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

Wprowadzenie do XML. Tomasz Przechlewski

Podstawy programowania skrót z wykładów:

XML i nowoczesne technologie zarządzania treścią 2007/08

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INTEGRACJA I EKSPLORACJA DANYCH

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Specyfikacja techniczna pliku wymiany danych

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

1 Podstawy c++ w pigułce.

Zmienne i stałe w PHP

METODY REPREZENTACJI INFORMACJI

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

CitiDirect Ewolucja Bankowości

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wprowadzenie do XML schema

METAJĘZYKI

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Model semistrukturalny

Oczywiście plik musi mieć rozszerzenie *.php

Kurs HTML 4.01 TI 312[01]

1 Podstawy c++ w pigułce.

Autor: dr inż. Katarzyna Rudnik

2 Podstawy tworzenia stron internetowych

Instrukcja integracji z portalem ogłoszeń praca.24portal.pl

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Dlaczego GML? Gdańsk r. Karol Stachura

Dokumentacja SMS przez FTP

FIDKAR po dwóch latach

Podstawy JavaScript ćwiczenia

INFORMACJE NA TEMAT STRUKTURY PLIKU XML

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Spis treści OPIS PLIKU W FORMACIE CSV Z DANYMI PPE LUB EP 1

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 02

Modele danych walidacja widoki zorientowane na model

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Technologie zarządzania treścią

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Programowanie internetowe

Programowanie w języku Python. Grażyna Koba

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wykład 5: Klasy cz. 3

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Polcode Code Contest PHP-10.09

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Dokumentacja techniczna RockPay

Języki programowania zasady ich tworzenia

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Transkrypt:

2 mgr inż. Robert Berezowski e-mail: beny@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 1

XML wstęp XML to zbiór zasad do definiowania znaczników w miarę potrzeb ; Znacznik dodatkowa informacja do tekstu (znaków), pozwalająca go przetworzyć później w określony sposób; Znaczniki w XML można nazywać i używać w zależności od potrzeby budowanej aplikacji. Znaczniki tworzą języki znacznikowe (metajęzyki) dla konkretnych zastosowań; Duża grupa ludzi używająca jeden język może doprowadzić do rozwoju aplikacji z nim związanych (MathML, SVG, CML); aplikacje; przeglądarki; wtyczki; 2

XML wstęp Początek znacznika oznaczany jest znakiem mniejszości < ; Symbole: większości >, cudzysłów pojedynczy, cudzysłów podwójny, traktowane są jako elementy znaczników Przykłady znaczników: <strona>, <list>, <mecz>, <numer.strony> Samoopisujące się dokumenty; samodokumentujące się; Dane i struktura danych; 3

Przykładowy y dokument XML <?xml version= 1.0 standalone="yes" encoding= UTF-16?> <sonet> <autor plec="m">adam Mickiewicz i </autor> <linia/> <!-- komentarz Sonet XIII --> <tytuł>sonet XIII</tytuł> <zwrotka numer="1"> <wers>drżąc muślimin całuje stopy twej opoki,</wers> <wers>maszcie krymskiego statku, wielki Czatyrdahu!</wers> <wers> O minarecie świata! O gór padyszachu!</wers> <wers> Ty, nad skały poziomu uciekłszy w obłoki.</wers> <wers> Siedzisz sobie pod bramą niebios, jak wysoki </wers> <wers> Gabryjel pilnujący edeńskiego gmachu; </wers> </zwrotka> </sonet> 4

Obraz w przeglądarce gą IE5.0 <?xml version="1.0" standalone="yes" encoding="utf-16"?> <sonet> <autor plec="m">adam Mickiewicz</autor> <linia/> <!-- komentarz Sonet XIII --> <tytul>sonet XIII</tytul> <zwrotka numer="1"> <wers>drzac muslimin caluje stopy twej opoki,</wers> <wers>maszcie krymskiego statku, wielki Czatyrdahu!</wers> <wers>o minarecie swiata! O gor padyszachu!</wers> <wers>ty, nad skaly poziomu ucieklszy w obloki.</wers> <wers>siedzisz sobie pod brama niebios, jak wysoki</wers> <wers>gabryjel pilnujacy edenskiego gmachu;</wers> </zwrotka> </sonet> Deklaracja j XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa 5

Struktura logiczna Korzeniem całej struktury jest element <sonet>; Wszystkie pozostałe elementy mieszczą się jedne w drugich; sonet autor linia tytul zwrotka wers wers wers wers Element zawierający inny nazywamy rodzicem (np. <sonet>, <zwrotka>); Element znajdujący się wewnątrz nazywamy potomkiem (np. <autor>, <zwrotka>, <wers>); Elementy tego samego rodzica nazywamy pokrewnymi (<autor>, <linia>, i <tytul>, t <zwrotka>); 6

Przykładowy y dokument XML <?xml version= 1.0 standalone="yes" encoding= UTF-16?> <uczelnia> <! Wydziały uczelni --> <wydział skrót= EII nazwa= elektroniki i Informatyki > <dziekan nazwisko= Jacek Placek /> <kierunki> <kierunek skrót= KIK >Inżynieria komputerowa</kierunek> <kierunek skrót= KSE >Systemy elektroniczne</kierunek> </kierunki> </wydział> <wydział skrót= EIZ nazwa= Ekonomii i zarządzania > <dziekan nazwisko= Placek Jacek /> <kierunki> <kierunek skrót= KME >Makroekonomia</kierunek> <kierunek skrót= KHZ >Handel zagraniczny</kierunek> </kierunki> ki> </wydział> </uczelnia> 7

Obraz w przeglądarce IE5.0 Deklaracja XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa 8

Struktura logiczna Korzeniem całej struktury jest element <uczelnia>; Rodzic <uczelnia>, <wydział>, <dziekan>, <kierunki>; Potomek <wydział>, <dziekan>, <kierunki>, <kierunek> Pokrewne <dziekan>, <kierunki> 9

<?xml version="1.0" standalone="yes" " encoding= UTF-16"?> Deklaracja XML: Określa co znajduje się dalej w kodzie XML; Zktórą wersją standardu XML dokument jest zgodny; Czy dokument jest samodzielny czy wymaga dodatkowego pliku (DTD) w celu zinterpretowania jego zawartości (struktury); Jakie kodowanie zostało użyte przy tworzeniu dokumentu Powyższa deklaracja jest instrukcją przetwarzania czyli instrukcją dla procesora XML; 10

Instrukcje przetwarzania Nie wchodzą w skład specyfikacji XML Przeznaczone dla różnych procesorów Przykład: <?xml-stylesheet?> - instrukcja łącząca dokument xml z arkuszem stylów, rozumiana przez procesory XML używane w IE, Netscape 11

<sonet>... </sonet> <uczelnia> </uczelnia> Element główny; Każdy dokument XML może posiadać tylko jeden element główny; Wszystkie pozostałe elementy muszą być wnim zawarte; Jeżeli jeden element zawarty yjest w drugim, to musi być w nim zawarty całkowicie; <poezja> <sonet> <tytul> <autor> </tytul> </autor> </sonet> </poezja> <sonet> </sonet> <sonet> </sonet> <poezja> <sonet> </sonet> <sonet> </sonet> </poezja> 12

<linia/> Element pusty Dwa sposoby oznaczania: <linia/> <linia></linia> <!-- komentarz Sonet XIII --> <!--Wydziały uczelni --> Znak <!-- oznacza początek, a znak --> koniec komentarza; 13

XML wstęp Nazwy znaczników muszą zaczynać się literą, znakiem podkreślenia lub dwukropkiem, a dalej mogą występować cyfry, litery, podkreślenia, znak minus i kropka W przypadku użycia jednego z wcześniej podanych znaków jako znaku zwykłego należy go odpowiednio zacytować : & & &apos; > > < < " <skrót>&</skrót> <cytat>&amp;</cytat> <skrót>&apos;</skrót> <cytat>&apos;</cytat> <skrót>></skrót> <cytat>&gt;</cytat> <skrót><</skrót> <cytat>&lt;</cytat> <skrót>"</skrót> <cytat>&quot;</cytat> 14

XML wstęp Odwołania do znaków: (spacja) Znaczniki w XML zorientowane są na zawartość, a nie na wygląd; Wszystko co nie jest znacznikiem jest treścią; Ostateczny wygląd określony jest przez dołączone style; XML rozróżnia małe i duże litery; <xml> <skrót>1 1</skrót> <cytat>&#13;</cytat> ; y </xml> <xml> <skrót>1俲1</skrót> <cytat>&#x4fff2;</cytat> </xml> 15

<autor plec="m"> "> <zwrotka numer="1"> 1 "> Znaczniki (autor, zwrotka) mogą zawierać jeden lub więcej atrybutów (plec, numer); para: nazwa i wartość nazwie znakiem = przypisana wartość <element atrybut(nazwa)= wartość > Użycie cudzysłowów jest obowiązkowe; Cudzysłowy mogą być pojedyncze lub podwójne Atrybuty można podawać jedynie w znaczniku początkowym; Atrybut Atrybuty mogą być (przy projektowaniu struktury): Opcjonalne; Obowiązkowe; <sonet numer=14 numer=1> <sonet numer(dec)= 14 > <sonet numer=14> <sonet numer= 14 dec > <sonet numer= 14 > </sonet numer= 14 > 16

ATRYBUTY Atrybuty Elementy mogą być stosowane wymiennie Duża liczba atrybutów utrudnia czytanie dokumentu Trudność utworzenia struktury Nazwy atrybutów nie mogą się powtarzać 17

Dokumenty XML Dokumentem XML może być: Plik; Zbiór przechowywany w bazie danych; Zbiór tworzony w pamięci, ę,przez aplikację; Zestaw kilku odrębnych plików; Ogólnie dokument XML składa się ztak zwanych encji 18

Dokument XML poprawnie sformułowany (ang. well-formed formed) Dokument XML poprawny składniowo deklaracja xml (1 linia) łączenie dokumentów w 1 istnienie co najmniej jednego elementu w strukturze (główny), każdy element musi być zamknięty, nie ma nakładających się elementów, nazwy atrybutów nie mogą się powtarzać, wartości atrybutów w apostrofach lub cudzysłowach, czy encje są prawidłowo zdefiniowane predefiniowane zewnętrzne (w DTD) 19

Dokument XML poprawnie sformułowany (ang. well-formed formed) Parsery i przeglądarki (np.ie6.0) błędnie sformułowany kod XML natychmiast zgłosi jako błąd składniowy; Pisanie kodu XML podobne jest do pisania w jakimś języku programowania: Pisanie kodu; kompilowanie kompilowanie kodu; Znajdowanie i poprawianie błędów; 20

Zastosowania XML (definiowanie języków) Definiowanie języków (zastosowań, struktury dokumentów encyklopedia, kodeks, raport): określanie zestawu dopuszczalnych elementów, atrybutów, definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), przypisywanie atrybutów do elementów, Metody definiowania struktury: dokument XML bez określonej struktury, DTD Document Type Definition, XML Schema 21

Dokument XML poprawny strukturalnie (ang. valid) Dokument XML poprawny strukturalnie: struktura dokumentu zgodna ze strukturą zdefiniowaną w definicji typu dokumentu / XMLSchema, obecne wszystkie wymagane atrybuty. Zawartość elementów zgodna z założeniem. Programy do walidacji: DTD xmlvalid.exe, XMLShell, InfoxFree, http://www.stg.brown.edu/service/xmlvalid/ XMLSchema ScheamtronValidator, XMLShell, InfoxFree 22

Zalety istnienia DTD (struktury) DTD może sprawdzać poprawność dokumentu XML co pozwala unikać błędów w fazie tworzenia dokumentu DTD jest opisem dokumentu dzięki czemu różne osoby mogą określać jakie dane będą im potrzebne i jak je pobierać; Można automatycznie konwertować jedne formaty dokumentów na inne; Są pewnego rodzaju dokumentacją dokumentów XML DTD może wspomagać twórców dokumentów, np. Mogą podpowiadać użycie odpowiednich znaczników w odpowiednim miejscu dokumentu. Pozwala wielu osobom tworzyć wiele jednakowych (strukturalnie) dokumentów 23

Proces sprawdzania poprawności struktury DTDwplikuzewnętrznym DTD wewnątrz dokumentu XML 24

Deklaracja typu dokumentu DTD zawiera opis dopuszczalnych struktur dokumentu - język opisu dokumentu; DTD ma postać: <!DOCTYPE nazwa [podzbiór.wewnętrzny]> <!DOCTYPE nazwa SYSTEM [plik.zewnętrzny]> nazwa powinna być taka sama jak nazwa elementu głównego; <?xml version= 1.0 0?> <?xml version= 1.0 0?> <!DOCTYPE list [...]> <!DOCTYPE list SYSTEM listdtd.dtd > <list>...</list> <list>...</list> 25

Przykład DTD <?xml version= 1.0 standalone="yes" y encoding= UTF-16?> <!DOCTYPE list SYSTEM sonet.dtd > --> <!DOCTYPE sonet [ <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor autor plec plec (M (M K) K) "M"> "M"> <!ELEMENT linia i EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> ]> <sonet> <autor plec="m">adam Mickiewicz </autor> <linia/> i <!-- komentarz Sonet XIII --> <tytul>sonet XIII</tytul> <zwrotka> <wers>drzac muslimin całuje stopy twej opoki,</wers> <wers>maszcie krymskiego statku, wielki Czatyrdahu!</wers> </zwrotka> </sonet> 26

Przykład DTD <?xml version= 1.0 standalone="yes" y encoding= UTF-16?> <!-- DOCTYPE list SYSTEM sonet.dtd > --> <!DOCTYPE sonet [ <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor autor plec plec (M (M K) K) "M"> "M"> <!ELEMENT linia i EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> ]> <sonet> <autor plec="m">adam Mickiewicz </autor> <linia/> i <!-- komentarz Sonet XIII --> <tytul>sonet XIII</tytul> <zwrotka> <wers>drzac muslimin całuje stopy twej opoki,</wers> <wers>maszcie krymskiego statku, wielki Czatyrdahu!</wers> </zwrotka> </sonet> 27

DTD Deklaracje Deklaracja DOCTYPE: <!DOCTYPE nazwa zawartość> <!DOCTYPE nazwa SYSTEM plik > plik zawiera deklaracje DTD Dysk:/katalogi/plik Plik Adres URL <!DOCTYPE nazwa PUBLIC opis adres > Uznany przez określoną społeczność ł standard d dokumentów XML opis to dodatkowe informacje o osobach odpowiedzialnych za standard 28

DTD Deklaracje Deklaracja elementów: <!ELEMENT nazwa zawartość> Deklaracja atrybutów: <!ATTLIST nazwa.elem nazwa.atryb zawartość> Deklaracja encji: <!ENTITY rozdzial1 SYSTEM "rozdzial1.xml"> 29

DTD Elementy Typy elementów: Element t tekstowy: t <!ELEMENT autor(#pcdata)> Element pusty: <!ELEMENT linia i EMPTY> Element dowolny: <!ELEMENT spacja ANY> 30

DTD Elementy Listy elementów: <<!ELEMENT sonet (autor, linia, tytuł, zwrotka)> <sonet> <autor> Adam Mickiewicz </autor> <linia/> <tytuł> Sonet XIII </tytuł> <zwrotka> a tu tekst </zwrotka> </sonet>!element auto (fabryka, nazwa, rok.produkcji)> <auto> <fabryka> Ford </ fabryka > <nazwa> Sierra </nazwa> <rok.produkcji>1991</rok.produkcji> </auto> 31

DTD podelementy Wybór elementów: <!ELEMENT poezja (wiersz esej powiesc)> <poezja><wiersz> jakis wierszyk </wiersz></poezja> <poezja><wiersz> jakis inny wierszyk </wiersz></poezja> <poezja> <esej> a teraz sonet </esej> <poezja> <!ELEMENT adres ( ip nazwa skrót) > <adres> <ip>12.12.12.12</ip> </adres> <adres> <skrót>termit</skrót> </adres> 32

DTD podelementy Wybór elementów: <!ELEMENT poezja ((wiersz sonet), autor, tytuł)> <poezja> <wiersz> jakis wierszyk </wiersz> <autor> Adaś Mickiewicz</autor> <tytuł> kotek</tytuł> </poezja> Lista z wyborem elementów: <!ELEMENT adresftp (( ip nazwa), user, (pass anonym ))> <adresftp> <ip>12.12.12.12</ip> p <user>beny</user> <anonym/> </AdresFTP> 33

DTD indeks wystąpień Indeks wystąpień elementów: + - element występuje co najmniej raz <!ELEMENT multilotek (liczba+)> <multilotek> <liczba>5</liczba><liczba>43</liczba><liczba>55</liczba> </multilotek <multilotek> <liczba>5</liczba> </multilotek 34

DTD indeks wystąpień Indeks wystąpień elementów:? - element występuje raz lub wcale; <!ELEMENT multilotek (kupon.wygrany?)> <multilotek> <kupon.wygrany>tak</kupon.wygrany> y p y </multilotek <multilotek> </multilotek> 35

DTD indeks wystąpień Indeks wystąpień elementów: * - element występuje dowolną ilość razy od 0 zaczynając; <!ELEMENT mulilotek (główna.wygrana*)> <multilotek> <główna.wygrana>jacek placek</główna.wygrana> <główna.wygrana>zenek i romek</główna.wygrana> </multilotek <multilotek> </multilotek 36

DTD indeks wystąpień Indeks wystąpień elementów: <!ELEMENT sonet (autor+, linia?, tytuł, zwrotka*)> <sonet> <autor>adam Mickey </autor> <autor>julek Czech </autor> <tytul>sonet XIII</tytul> <zwrotka> <wers>drzac muslimin całuje stopy twej opoki,</wers> </zwrotka> <zwrotka> <wers>maszcie krymskiego statku, wielki Czatyrdahu!</wers> </zwrotka> </sonet> 37

DTD Deklaracja atrybutów Deklaracja atrybutów: <!ELEMENT nazwa.elementu EMPTY> <!ATTLIST nazwa.elementu definicje.atrybutów> Rodzaje atrybutów: Tekstowy ciąg znaków <!ATTLIST team nazwa CDATA> Wyliczane pobierane z zadeklarowanej listy; <!ATTLIST farba kolor (biały zielony żółty) biały > Atomizowane wartości rozpoznawalne przez XML; <!ATTLIST team id ID> 38

DTD ATRYBUTY Atrybuty atomizowane: ID identyfikator elementu w którym dany element wystąpił, nie może być dwóch takich samych wartości w całym dokumencie; <!ATTLIST team id ID> <team id= a01 >gwardia</team> <team id= a02 >lech</team> <team id= a03 >kotwica</team> IDREF wskaźnik na wartość ID; <!ATTLIST kapitan drużyna IDREF> <kapitan drużyna= a02 >roninio<./kapitan> roninio <kapitan drużyna= a01 >dodi</kapitan> 39

DTD ATRYBUTY IDREFS wskaźnik na większą liczbę wartości IDREF; <!ATTLIST drużyna pilkarz IDREFS> <team drużyna= a22,a24,a44,a11 >śląsk</team> <team drużyna= a2,a4,a43,a1 >ślęza</team> ENTITY Wskaźnik encji zadeklarowanej w DTD Wskaźnik na plik, obraz, tekst; Zmienna kryjąca dalszą informację 40

DTD ATRYBUTY Domyślne wartości atrybutów: #REQUIRED atrybut musi być ustawiony i powinien wystąpić; <!ATTLIST team id ID #REQUIRED> #IMPLIED XML ma poinformować aplikacje, że nie podano żadnej wartości, a aplikacja ma zdecydować, co dalej; <!ATTLIST pilkarz numer #IMPLIED> #FIXED każda wartość ma być zgodna z wartością domyślną <!ATTLIST team trener #FIXED Boniek > 41

<mecz> <druzyna> <gracz id="g1" pseudo="kowal"/> <gracz id="g2" pseudo="miszczu"/> <gracz id="g3" pseudo="balcer"/> </druzyna> <pierwsza5 kto="g1 g3"/> <kwarta> <element czas="1:12" kto="g1" typ="zbiorka"/> <element czas="2:23" kto="g2"/> <element czas="4:02" kto="g3" typ="asysta"/> </kwarta> </mecz> <!ELEMENT mecz (druzyna, pierwsza5, kwarta*)> <!ELEMENT druzyna (gracz*)> <!ELEMENT gracz EMPTY> <!ATTLIST gracz id ID #REQUIRED> <!ATTLIST gracz pseudo CDATA #REQUIRED> <!ELEMENT pierwsza5 EMPTY> <!ATTLIST pierwsza5 kto IDREFS #REQUIRED> <!ELEMENT kwarta (element*)> <!ELEMENT element EMPTY> <!ATTLIST element czas CDATA #IMPLIED> <!ATTLIST element kto IDREF #REQUIRED> <!ATTLIST element typ (pkt zbiorka asysta) "pkt"> 42

Encje Umożliwiają nazywanie fragmentów języka XML, następnie pozwalają wielokrotnie użyć poprzez ich nazwy Wewnętrzne (nazwa + ciąg znaków): Deklaracja: <!ENTITY nazwa dowolny tekst > <!ENTITY pytanie wciśnij T lub N > Wywołanie encji: &nazwa; Np.:<tekst>Grasz dalej? &pytanie; </tekst> deklaruje się wdtd; Widziane tylko w ramach tego samego dokumentu 43

Encje Zewnętrzne (nazwa + wskazanie na plik zewnętrzny): Wskazują na fragmenty kodu XML lub elementy DTD <!DOCTYPE ksiazka [ <!ENTITY rozdzial1 SYSTEM "rozdzial1.xml"> <!ENTITY rozdzial2 SYSTEM "rozdzial2.xml"> <!ENTITY rozdzial3 SYSTEM "rozdzial3.xml"> l" ]> <ksiazka> &rozdzial1; &rozdzial2; &rozdzial3; </ksiazka> 44

Zewnętrzny i wewnętrzny DTD Zewnętrzny podzbiór DTD: deklaracje wspólne dla wszystkich dokumentów danego typu: elementy, atrybuty, encje. Wewnętrzny podzbiór DTD: dkl deklaracje lokalne lkl dla dokumentu: dk deklaracje encji, 45

Ograniczenia DTD Ograniczenie treści elementów do typu tekstowego (#PCDATA) Brak innych typów danych (int, float, ) Brak wartości domyślnych elementów Małe możliwości kontroli typów atrybutów Tylko typ wyliczeniowy Brak możliwości definiowania podstruktur wykorzystywanych y y y wielokrotnie Brak dziedziczenia, rozszerzania i ograniczania Brak możliwości zmiany kolejności elementów Brak możliwości ustalenia kolejności atrybutów Ograniczenia ID dla atrybutów (zawsze dotyczy całego dokumentu bez rozróżnienia różnych elementów) Syntaktyka DTD nie jest podobna do zapisu XMLowego Rozszerzonie Struktury - XMLSchema 46