Projektowanie systemów informatycznych
W przykładzie tym elementy, których nazwa rozpoczyna się od prefiksu kursy pochodzą z przestrzeni nazw o identyfikatorze http://www.kursy.pl. Dodanie prefiksu do każdego elementu zwiększa rozmiar i obniża czytelność dokumentu. Specyfikacja przestrzeni nazw umożliwia jednak zastosowanie domyślnej przestrzeni. Elementy do niej należące nie wymagają prefiksu. W powyższym dokumencie identyfikatorem domyślnej przestrzeni nazw jest http://www.moja_przestrzen_nazw.pl. Należą do niej elementy o nazwach tabela_kursow i data_notowania.
Definicja typu dokumentu (ang. DTD, Document Type Definition) określa reguły składniowe, za pomocą których są tworzone dokumenty XML. Reguły te określają między innymi:
• nazwę elementu głównego dokumentu
• elementy, które mogą wchodzić w skład innych elementów
• porządek (kolejność elementów)
• krotność występowania elementów
• atrybuty mogące pojawić się w elemencie
• typy danych stanowiące zawartość elementu
Przykład pliku DTD dla powyższego dokumentu XML o nazwie kursy.xml
<!ELEMENT tabela_kursow (data_notowania,pozycja*)>
<ATTLIST tabela_kursow xmlns CDATA>
<ATTLIST tabela_kursow xmlns:kursy CDATA>
<!ELEMENT data_notowania (#PCDATA)>
<!ELEMENT pozycja (nazwa_waluty,przelicznik,kod_waluty, kurs_kupna, kurs_sprzedazy)>
<!ELEMENT nazwa_waluty (#PCDATA)>
<!ELEMENT przelicznik (#PCDATA)>
<!ELEMENT kod_waluty (#PCDATA)>
<!ELEMENT kurs_kupna(#PCDATA)>
<!ELEMENT kurs_sprzedazy (#PCDATA)>
Pierwszy wiersz definiuje element główny tabela kursow. Definicja elementu w DTD rozpoczyna się prefiksem <! ELEMENT. Nawiasy występujące w definicji, zawierają listę oddzielonych przecinkami elementów podrzędnych danego elementu. Znak gwiazdki po elemencie pozycja oznacza, że liczba jego wystąpień może być równa zero lub więcej (znak plusa oznacza, co najmniej jedno wystąpienie). Element data_notowania musi występować jeden raz, opcjonalność oznaczamy symbolem ?. Następne dwa wiersze definiują atrybuty elementu głównego i określają ich typ jako CDATA. Czwarty wiersz definiuje element data_notowania. Jego typ zostaje określony jako PCDATA. Typy CDATA (ang. character data) i PCDATA (ang. parsed character data) dotyczą danych znakowych lub tekstu. Pozostała część pliku definiuje element pozycja, który zawiera kolejno elementy: nazwa waluty, przelicznik, kod waluty, kurs kupna, kurs sprzedazy. Krotność występowania każdego z nich jest równa jeden i są one
Michał Bleja
Uniwersytet Łódzki