1. 程式人生 > >XML檔案DTD路徑解析

XML檔案DTD路徑解析

1.XML檔案宣告的dtd檔案路徑如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

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

3、Eclispe中配置dtd路徑:

假如初始狀態下沒有配置ejb-jar.xml檔案的dtd路徑,而eclipse又不能去sun公司validate的情況下,eclipse報錯。可以根據ejb-jar.xml檔案宣告的PUBLIC DOCTYPE,指示eclipse到一個本地的dtd檔案去驗證。已宣告的 "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" 為 本地dtd檔案的一個別名。可以利用Eclipse中的[Prefrence]->[Xml Catalog]->[Add]->[User Specified Entries
]->使用者自定義的本地dtd驗證入口,然後右鍵->[Validate Xml file] ,Eclipse校驗XML檔案通過。
資料引用:http://www.knowsky.com/365920.html