2017-02-24 104 views
0

我有一個庫Saxon9ee.jar,並且我想使用帶有命令行界面的Saxon9ee來驗證位於外部文件(不在XML內)的DTD模式的XML文件。 我發現瞭如何驗證XML對XSD架構:如何從命令行使用Saxon驗證XML與DTD

java -cp saxon9ee.jar com.saxonica.Validate -xsd:<XSD_file> -s:<XML_file> -xsdversion:1.1 

可是我該怎麼辦與DTD架構文件一樣嗎?

回答

1

根據DTD進行驗證並不真正涉及到Saxon,它都是在XML解析器中完成的。但奇怪的是,Xerces解析器在命令行界面方面相當差,所以通過Saxon調用它可能是最方便的方式。運行最簡單的查詢,並啓用DTD驗證:

java net.sf.saxon.Query -qs:. -s:source.xml -dtd:on 
+0

謝謝您的回覆。但是,您的案例驗證器如何知道他需要使用DTD模式文件以及要使用的文件?這是外部DTD模式文件,XML文件沒有鏈接到它的聲明。它會自動應用文件夾中的所有DTD文件還是什麼? – sunigos

+0

如果XML文件沒有引用DTD的DOCTYPE聲明,我不知道有任何方法可以針對DTD驗證XML文件。您可以將DTD引用重定向到不同的位置,但是如果有一種方法可以在外部提供DTD引用,我不知道它。 –