<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD EnterPRise javaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar >
。。。。。。
</ejb-jar>
2、dtd聲明解析原則:
D O C T Y P E聲明不僅包含常規的要害字和根元素名稱,而且包含指示外部D T D源的要害字和D T D的位置。X M L規范定義了幾種聲明源的方法。聲明中可以使用要害字SYSTEM 或 PUBLIC。假如使用 SYSTEM 要害字,解析器將僅根據給出的U R L尋找DTD?DTD通過U R L顯式地直接定位。
然而,假如D T D源要害字為 PUBLIC,情況就略微復雜一些。P U B L I C要害字用于聲明眾所周知的詞匯表。例如,假設出版界已經對圖書種類D T D達成了大量共識。需要根據該詞匯表解析文檔的應用程序可能會通過某種策略來定位D T D。假如這個D T D非常普及,應用程序或許有本地拷貝。直接使用本地拷貝可能比從We b服務器上遠程下載更可取。D T D可能存放在數據庫中,或者可以通過其他與應用程序相關的技術獲得。假如使用P U B L I C要害字和U R I,應用程序就有機會利用自己的算法定位D T D。統一資源標識符(URI)可以是URL,也可以是一個單獨的名字。
例如:
<!DOCTYPE ejb-jar PUBLIC “universal/publishing/book”
“http://www.myweb.com/dtd/books.dtd” >
假如U R I“universal/Publishing/Book”對于處理這類文檔的應用程序來說是已知的,應用程序可以通過某種有效的方式自行尋找D T D。或許我們恰好有適合該領域的解析器。它可能有D T D的本地拷貝,或者它可以訪問由本地數據庫服務器維護的D T D。最要害的是,尋找D T D的方法主要是由負責處理D O C T Y P E聲明的應用程序確定的。
當然,“眾所周知”通常是相對的。因此, XML 1.0答應P U B L I C聲明同時有公共U R I和系統標識符。假如使用文檔的應用程序或解析器不能從P U B L I C要害字提供的U R I定位D T D,它必須使用系統標識符。
在本例中,文檔的設計者答應作為接收方的應用程序根據公共的U R I自行尋找D T D。假如該過程失敗,對我們的出版領域不熟悉的通用解析器一般屬于這種情況,應用程序可以從地址為 http://www.myweb.com/ 的We b服務器請求指定的文件,即獲取網絡上的dtd文件:http://www.myweb.com/dtd/books.dtd 。