XML XSLT
Start arrow DTD arrow Definicja elementów w DTD
StartJęzyk XMLDTDXSLTXML SchemaStyle CSSXHTMLXSLTWMLAnkietaLinki
Menu serwisu
Start
Język XML
DTD
XSLT
XML Schema
Style CSS
XHTML
XSLT
WML
Ankieta
Linki

Partnerzy

Internet - podstawy internetu, email, Usenet, FTP, WWW

Tonery,tusze - bębny do drukarek, atramenty do drukarek, folie do faksów w sklepie internetowym Tonershop

Sieci komputerowe - systemy sieciowe, technologie

Systemy sprzedaży - handel, kody kreskowe, identyfikacja towarów

Automatyczna identyfikacja - systemy identyfikacji, etykiet

Definicja elementów w DTD

Na kod DTD w głównej mierze składają się definicje dopuszczalnych w dokumencie elementów. Nie jest istotna kolejność definiowania elementów.

Ogólna składnia definicji elementu w DTD wygląda następująco:

<!ELEMENT nazwaElementu  zawartosc>

Zawartość elementu jest w większości przypadków określona w nawiasach. Przykładem definicji zawartości może być określenie, że element powinien zawierać dane znakowe, czyli dowolny tekst bez znaczników. Realizowane jest to przez umieszczenie w zawartości określenia „#PCDATA” np.:

<!ELEMENT NAZWISKO (#PCDATA)>

#PCDATA oznacza dane tekstowe, które zostaną odczytane przez parser i przesłane do aplikacji , która może je dalej przetwarzać np. wyświetlić.

W przypadku wielu elementów, wymagane jest określanie jakie elementy potomne może on zawierać. Największą dowolność daje wyrażenie ANY, które oznacza że element może bezpośrednio zawierać dowolne inne zdefiniowane w DTD elementy np.:

<!ELEMENT UCZELNIA ANY>

Jeśli element ma być pusty, należy to zadeklarować z wykorzystaniem wyrażenia EMPTY np.

<!ELEMENT HR EMPTY>

Element taki mógłby być wstawiony w dokumencie XML następująco:

<HR></HR>

lub

<HR/>

Częściej jednak określa się jeden lub więcej elementów potomnych, w wymaganej kolejności np.:

<!ELEMENT UCZELNIA (NAZWA_UCZELNI,SKROT_NAZWY,PRACOWNICY,STUDENCI)>
<!ELEMENT STUDENT (NAZWISKO,MIEJSCOWOSC)>

Celem uszczegółowienia liczby wystąpień elementu można stosować po jego nazwie jeden z trzech znaków: +,*,?.

Znak plusa oznacza że element potomny występuje jeden lub więcej razy np.:

<!ELEMENT GRUPA (SYMBOL,SPECJALNOSC,SEMESTR,STUDENT+)>

Znak gwiazdki oznacza że element potomny występuje zero lub więcej razy np.:

<!ELEMENT GRUPA (SYMBOL,SPECJALNOSC,SEMESTR,STUDENT*)>

Znak pytajnika oznacza że element potomny występuje jeden raz lub wcale nie występuje np.:

<!ELEMENT GRUPA (SYMBOL,SPECJALNOSC?,SEMESTR?,STUDENT*)>
<!ELEMENT PRACOWNIK (NAZWISKO,STANOWISKO?,E-MAIL*)>

Przykład pełnej zawartości DTD dla dokumentu 6.xml przedstawiono poniżej (kod uczelnia.dtd). Należy zwrócić uwagę, że zostały zdefiniowane wszystkie dopuszczalne elementy, nawet te które mogą zawierać wyłącznie dane znakowe

Przykład uczelnia.dtd

<!ELEMENT UCZELNIA (NAZWA_UCZELNI,SKROT_NAZWY?,PRACOWNICY?,STUDENCI?)>
<!ELEMENT PRACOWNICY (PRACOWNIK+)>
<!ELEMENT PRACOWNIK (NAZWISKO,STANOWISKO?,E-MAIL*)>
<!ELEMENT STUDENCI (GRUPA*)>
<!ELEMENT GRUPA(SPECJALNOSC, SYMBOL?,SEMESTR,STUDENT*)>
<!ELEMENT STUDENT (NAZWISKO,MIEJSCOWOSC?,E-MAIL*)>
<!ELEMENT NAZWISKO (#PCDATA)>
<!ELEMENT STANOWISKO (#PCDATA)>
<!ELEMENT E-MAIL (#PCDATA)>
<!ELEMENT SEMESTR (#PCDATA)>
<!ELEMENT SPECJALNOSC (#PCDATA)>
<!ELEMENT SYMBOL (#PCDATA)>
<!ELEMENT MIEJSCOWOSC (#PCDATA)>
<!ELEMENT NAZWA_UCZELNI (#PCDATA)>
<!ELEMENT SKROT_NAZWY (#PCDATA)>

Zgodnie z opisywanymi zasadami tworzenia odwołań do zewnętrznego DTD aby plik 6.xml skojarzyć z DTD uczelnia.dtd znajdującym się w tym samym folderze, należałoby w dokumencie XML umieścić na początku dodatkowy kod:

<?xml version="1.0"?>
<!DOCTYPE UCZELNIA SYSTEM "uczelnia.dtd">
<UCZELNIA>
 <NAZWA_UCZELNI>Wyższa Szkoła Informatyki i Zarządzania</NAZWA_UCZELNI>
 <SKROT_NAZWY>WSIZ</SKROT_NAZWY>
itd.....

Kontynując przegląd zasad opisujących składnię definiowania elementów DTD, należy zwrócić uwagę na możliwość określania elementów alternatywnych z wykorzystaniem operatora „|” np.

<!ELEMENT UTWOR (ZESPOL|WYKONAWCA,TYTUL)>

Powyższy kod oznacza, że element UTWOR powinien posiadać najpierw jeden z dwóch elementów potomnych: ZESPOL lub WYKONAWCA, a następnie element potomny TYTUL.

Operator alternatywy „|” można łączyć także z grupowaniem w nawiasach, a także takimi operatorami jak „*,?,+” np.:

<!ELEMENT DOKUMENT (TYTUL,(AKAPIT,GRAFIKA)+,(PODSUMOWANIE|ZAKONCZENIE)?)>
<!ELEMENT BODY (P|DIV)*>

Alternatywę można określać także pomiędzy zgrupowanymi w nawiasach sekwencjami np.:

<!ELEMENT CD ((WYKONAWCA,TYTUL,CZAS_TRWANIA?)|(NUMER_KATALOGOWY,CENA))>

W powyższej definicji określono że element CD musi zawierać jedną z dwóch sekwencji elementów potomnych „WYKONAWCA, TYTUL, CZAS_TRWANIA” (CZAS_TRWANIA opcjonalny) lub „NUMER_KATALOGOWY,CENA”. Poprawny w tym kontekście byłby cały poniższy fragment dokumentu XML:

<CD>
  <WYKONAWCA>Placebo</WYKONAWCA>
  <TYTUL>Black Market Music</TYTUL>
  <CZAS_TRWANIA>53</CZAS_TRWANIA>
</CD>
<CD>
  <NUMER_KATALOGOWY>00232</NUMER_KATALOGOWY>
  <CENA>122</CENA>
</CD>
<CD>
  <WYKONAWCA>Porcupine Tree</WYKONAWCA>
  <TYTUL>Signify</TYTUL>
</CD>

Mieszanie elementów potomnych z danymi znakowymi #PCDATA jest dozwolone, jednak niezalecane np.:

<!ELEMENT DOKUMENT (#PCDATA|AKAPIT|OBRAZEK)*>

 
« poprzedni artykuł   następny artykuł »
 
Wydanie polskie: Copyright (C) 2005 Polskie Centrum Joomla! :: (C) 2018 XML XSLT
Joomla! jest wolnym oprogramowaniem udostępnianym na warunkach licencji GNU/GPL.
www.xmlxsl.pl - Język XML, język XSLT, DTD, języki XHTML, WML