gpt4 book ai didi

java - 使用 DTD 文件导致的 JAXB 解码 XML 时出错

转载 作者:数据小太阳 更新时间:2023-10-29 02:01:29 25 4
gpt4 key购买 nike

我尝试使用 JAXB ( test.xml ) 解码一个文件 XML 文件 ( javax.xml.bind.JAXB ) 但它给了我这个错误:

[org.xml.sax.SAXParseException; systemId:file:/C:/Users/EXAMPLE/AppData/Local/Eclipse/workspace_4.4.0/EXAMPLE/test.xml;lineNumber: 2; columnNumber: 42; Externe DTD: Lesen von externer DTD"example.dtd" nicht erfolgreich, da "file"-Zugriff wegen der von derEigenschaft "accessExternalDTD" festgelegten Einschränkung nichtzulässig ist.]

英文翻译:

Reading from external DTD "example.dtd" not succesful , cause"File"-Access is not allowed by the Restriction set by the Properties"accessExternalDTD"

已经尝试过的解决方案:

  • 检查是否包括系统在内的所有用户都可以访问 R/W 这两个文件。
  • 删除并使用新文件进行测试。
  • 试图找到这个 accessExternalDTD属性。

注意事项:

  • 项目在 Subversion 中运行
  • 我在以前的项目中使用了相同的方法,同样的 .dtd.xml文件,效果很好
  • XML 文件中第 2 行的内容:<!DOCTYPE EXAMPLE SYSTEM "example.dtd">

最佳答案

accessExternalDTD 属性可以通过系统属性 javax.xml.accessExternalDTD 进行控制,所以使用 -Djavax.xml.accessExternalDTD=true< 启动程序 它应该可以工作。也应该可以在解码器上设置属性,试试这个:

unmarshaller.setProperty(javax.xml.XMLConstants.ACCESS_EXTERNAL_DTD, Boolean.TRUE);

关于java - 使用 DTD 文件导致的 JAXB 解码 XML 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31293624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com