2009-08-26 219 views
0

如何根據只有我的應用程序知道的DTD文件驗證XML文檔。因此,應該驗證的XML文檔不包含指定.dtd文件的DOCTYPE聲明。我需要這個在Java中。 下面是一個例子: 要驗證的xml文件:Java XML DTD驗證

<?xml version = "1.0" ?> 
<Employee> 
    <Emp_Id> E-001 </Emp_Id> 
    <Emp_Name> Vinod </Emp_Name> 
    <Emp_E-mail> [email protected] </Emp_E-mail> 
</Employee> 

從我的應用程序的.dtd文件:

<!ELEMENT Employee (Emp_Id, Emp_Name, Emp_E-mail)> 
<!ELEMENT Emp_Id (#PCDATA)> 
<!ELEMENT Emp_Name (#PCDATA)> 
<!ELEMENT Emp_E-mail (#PCDATA)> 

回答

2

閱讀Java文檔 - API for validation of XML documents

摘要:該軟件包提供了用於驗證XML文檔的API 。 驗證是驗證 XML文檔是指定XML模式的實例 的過程。 XML模式 定義了其實例文檔將表示的內容模型(也稱爲 語法或詞彙表)。

實施例:

Document xmlDocument = builder.parse(new FileInputStream("xmlDoc.xml")); 
DOMSource source = new DOMSource(xmlDocument); 
StreamResult result = new StreamResult(System.out); 
TransformerFactory tf = TransformerFactory.newInstance(); 
Transformer transformer = tf.newTransformer(); 
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "xmlDoc.dtd"); 
transformer.transform(source, result);