小编nst*_*ory的帖子

无需下载DTD即可解析XML文档的标准方法

因此,我们的应用程序解析从Web服务(特别是PubMed)检索的XML文档.这些文件声明了一个DTD(一个例子).默认情况下,与我天真的期望相反,我们使用的XML库(我相信基于Xerces的JDom2)在解析XML文档之前下载了DTD.下载,就像通过互联网向指定的地址发出HTTP请求一样.

通过阅读其他帖子,我理解读取DTD是必要的,因为它可能包含解析&foo所需的实体声明; 文档中的位(BTW,这是XML标准中的精神错乱,对吧?)

我认为必须有一些简单,标准,任何一个谁知道他们正在做什么 - 这种方式指定我在本地拥有DTD.但是,我所看到的只是提到设置XML目录(黑魔法),或创建自定义EntityResolver(我的屁股很痛苦).

对于我遇到的其他问题,我在Spring或其他Java库中找到了一种克服它们的标准方法,而没有大量的锅炉板.然而,对于这个,我觉得我正在编写相对草率的脆弱代码来完成其他开发人员必须遇到的事情.

如何使用众所周知的库编写XML应用程序,这些应用程序不会反复进行Web请求以获取永不更改的文件?

PS:我发现这个问题是因为PubMed今天早些时候遇到了连接问题,而且我的单元测试(使用基于实际查询的模拟文档)在XML解析器无法检索DTD时失败了.

PPS:我觉得W3C 传播一种实际上引起这种滥用的标准的问题时,确实很有趣.

java xml spring

5
推荐指数
1
解决办法
336
查看次数

标签 统计

java ×1

spring ×1

xml ×1