[英]xml validation with local dtd passing local xml and dtd files using java
[英]Referring to a local DTD in Java
我有一些 XML 正在使用 Java 中的 SAX 解析器進行解析。 它從這個序言開始:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"http://www.w3.org/Math/DTD/mathml3/mathml3.dtd">
如何更改它以使用本地 DTD?
我想我可以做這樣的事情:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"file:///c:/MathML/mathml3.dtd">
不完全是那樣,而是那樣。 但是,我需要獨立於用戶系統的路徑。
如何使用具有相對於 class 路徑的路徑的本地 DTD?
在處理 Web 應用程序時,您可以將 dtd 放在 lib 文件夾中並像這樣引用它:
<!DOCTYPE name PUBLIC
"-//CMP//DTD dtdName 1.0//EN"
"/WEB-INF/lib/dtdName.dtd">
解決方案是使用類路徑提供系統中的 DTD 文件位置。 所以離線工作的 DocType 將是:
<!DOCTYPE hibernate-configuration SYSTEM
"classpath://org/hibernate/hibernate-configuration-3.0.dtd">
查看這篇關於使用 XML 目錄在本地解析 DTD 而無需修改 XML 源的文章。 基本步驟是:
另一種方法是將 dtd 保留在本地主機上,以便最終路徑變為:
<!DOCTYPE hibernate-configuration SYSTEM
"http://localhost/hibernate-configuration-3.0.dtd">
絕對不是最優雅的解決方案,但確實有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.