定義entites 和 notation
<!ENTITY entity_name "entity_content">
<!ELEMENT contact (#PCDATA)>
<!ENTITY irv "Trving Archibite (415) 555-3278">
<contact>&irv;</contrct>
Internal parameter <!--變量用于dtd文件內-->
<!ENTITY % pc "(#PCDATA)">
<!ELEMENT size %pc;>
Internal general <!--變量用于xml文件內-->
<!ENTITY wm "wire man">
External parameter <!--變量用于dtd文件內-->
<!ENTITY % purp SYSTEM "purp.dtd">
External general <!--變量用于xml文件內-->
<!ENTITY wm SYSTEM "wm.txt">
External general例子
//xml file:
- <order>
&shirts;
<mugs>90</mugs>
</order>
//dtd file:
<!ELEMENT order (shirt_list?, mugs?)>
<!ELEMENT shirt_list (shirt*)>
<!ELEMENT shirt (size, color)>
<!ATTLIST shirt product_code ID #REQUIRED>
<!ELEMENT size (#PCDATA)>
<!ELEMENT color (#PCDATA)>
<!ELEMENT mugs (#PCDATA)>
<!ENTITY shirts SYSTEM "entity3-7.txt">
//entity3-7.txt file:
<shirt_list>
<shirt product_code="sh_2398">
<size>XXL</size>
<color>purple</color>
</shirt>
<shirt product_code="sh_2402">
<size>XXL</size>
<color>purple</color>
</shirt>
</shirt_list>
External parameter例子
<!ELEMENT order (shirt_list?, mugs?, image*)>
<!ELEMENT shirt_list (shirt*)>
<!ELEMENT shirt (size, color)>
<!ATTLIST shirt product_code ID #REQUIRED>
<!ELEMENT size (#PCDATA)>
<!ELEMENT color (#PCDATA)>
<!ELEMENT mugs (#PCDATA)>
<!ENTITY % img SYSTEM "example3-8_2.dtd">
%img;
NOTATION類型
NOTATION類型允許屬性值為一個Dtd中聲明的符號,這個類型對于使用非XML格式的數據非常有用。
現實世界中存在著很多無法或不易用XML格式組織的數據,例如圖象、聲音、影象等等。對于這些數據,XML應用程序常常并不提供直接的應用支持。通過為它們設定 NOTATION類型的屬性,可以向應用程序指定一個外部的處理程序。例如,當你想要為一個給定的文件類型指定一個演示設備時,可以用NOTATION類型的屬性作為觸發。
要使用NOTATION類型作為屬性的類型,首先要在Dtd中為可選用的記號作出定義。定義的方式有兩種,一種是使用MIME類型,形式是:
<!NOTATION 記號名 SYSTEM "MIME類型">
再有一種是使用一個URL路徑,指定一個處理程序的路徑。
<!NOTATION 記號名 SYSTEM "URL路徑名">
在下面這個例子中,為"電影"元素指定了兩種可選設備:一種是movPlayer.exe,用來播映.mov文件,另一種則用來繪制GIF圖象。
<?xml version = "1.0"
encoding="Gb2312"
standalone = "yes"?>
<!DOCTYPE 文件[
<!ELEMENT 文件 ANY>
<!ELEMENT 電影 EMPTY>
<!ATTLIST 電影 演示設備 NOTATION ( mp | gif ) #REQUIRED>
<!NOTATION mp SYSTEM "movPlayer.exe">
<!NOTATION gif SYSTEM "Image/gif">
]>
<文件>
<電影 演示設備 = "mp"/>
</文件>
|