XML XSLT
Start arrow DTD arrow Deklarowanie encji 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

Deklarowanie encji w DTD

Encje można rozumieć jako jednostki składowe dokumentu DTD. Bardzo często jest wykorzystana możliwość ich wielokrotnego użycia w dokumencie. Istnieje kilka kategorii encji: nieparsowane, parsowane parametryczne, parsowane ogólne wewnętrzne i zewnętrzne. W książce ograniczono opis do najczęściej wykorzystywanych rodzajów encji. Dodatkowe informacje można znaleźć m.in. w dokumentacjach XML (http://www.w3c.org/xml , http://www.xml.com/).

Często wykorzystywanym typem encji są wewnętrzne encje ogólne. Można je traktować jako podstawienia określonego tekstu pod określony kod. Sposób definicji takiej encji w DTD jest następujący:

<!ENTITY nazwaEncji "podstawianyTekst”>

np.

<!ENTITY stopka "<podsumowanie>Koniec raportu</podsumowanie>">

Powyższa encja może być wykorzystana w dokumencie XML z wykorzystaniem operatora & podobnie jak przy encjach predefiniowanych :

&nazwaEncji;

<dokument>
<tresc> tresc elementu </tresc>
&stopka;
</dokument>

W finalnej treści powyższego dokumentu, ciąg &stopka; zostanie zastąpiony przez:

<podsumowanie>Koniec raportu</podsumowanie>

 Zewnętrzne encje ogólne mogą być wykorzystane do jako sposób na podzielenie dokumentu na kilka części. Encja zewnętrzna jest definiowana następująco:

<!ENTITY nazwaEncji SYSTEM "nazwaPlikuXml">

np.

<!ENTITY podsumowanie SYSTEM "podsumowanie.xml">

W przypadku zastosowania powyższego kodu w DTD, w opartym na nim dokumencie XML można użyć konstrukcji:

&podsumowanie;

Spowoduje ona w finalnej treści dokumentu przetworzonej przez parser zastąpienie frazy „&podsumowanie;” zawartością zbioru podsumowanie.xml.

W przypadku złożonych DTD użytecznym mechanizmem mogą stać się encje parametryczne. Dają one możliwość poprawy czytelności fragmentów DTD i łatwego, wielokrotnego ich użycia. Definicja encji parametrycznej w DTD wygląda następująco:

<!ENTITY % nazwaEncji "podstawianyTekst">

Wywołania tych encji można używać jedynie wewnątrz DTD i  mają one postać:

%nazwaEncji;

Poniższe przykłady pracownicy1.dtd oraz pracownicy1b.dtd pokazują równoważne warianty DTD odpowiednio bez wykorzystania, oraz z wykorzystaniem encji parametrycznych.

Przykład pracownicy1.dtd – bez zastosowania encji parametrycznych

<!ELEMENT pracownicy (pracownik*)>
<!ELEMENT pracownik (nazwisko,data_urodzenia,data_zatrudnienia)>
<!ELEMENT nazwisko (#PCDATA)>
<!ELEMENT data_urodzenia EMPTY>
<!ATTLIST data_urodzenia
      dzien (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) #REQUIRED
      miesiac (1|2|3|4|5|6|7|8|9|10|11|12)#REQUIRED
      rok CDATA #REQUIRED>

<!ELEMENT data_zatrudnienia EMPTY>
<!ATTLIST data_zatrudnienia 
       dzien (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25 |26|27|28|29|30|31) #REQUIRED
       miesiac (1|2|3|4|5|6|7|8|9|10|11|12) #REQUIRED
       rok CDATA #REQUIRED>

Przykład pracownicy1b.dtd – z zastosowaniem encji parametrycznych

<!ENTITY % data_atrybuty "
       dzien (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) #REQUIRED 
       miesiac (1|2|3|4|5|6|7|8|9|10|11|12) #REQUIRED
       rok CDATA #REQUIRED ">
<!ENTITY % pracownik_zawartosc "(nazwisko,data_urodzenia,data_zatrudnienia)">
<!ELEMENT pracownicy (pracownik*)>
<!ELEMENT pracownik %pracownik_zawartosc; >
<!ELEMENT nazwisko (#PCDATA)>
<!ELEMENT data_urodzenia EMPTY>
<!ATTLIST data_urodzenia %data_atrybuty;  >
 
<!ELEMENT data_zatrudnienia EMPTY>
<!ATTLIST data_zatrudnienia  %data_atrybuty; >

 
« poprzedni 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