如何在 Apache 的 AXIOM 中忽略 DTD 解析

How to ignore DTD parsing in Apache's AXIOM

在我的 xml 文档中,存在文档类型。使用 Apache Axiom 解析 xml 文档时,它抛出以下错误消息 "org.apache.axiom.om.OMException: Cannot create OMDocType because the XMLStreamReader doesn't support the DTDReader extension".

   XMLStreamReader parser = null;
  try {
    StAXParserConfiguration standalone = StAXParserConfiguration.STANDALONE;
   parser= StAXUtils.createXMLStreamReader(standalone, in);
   // parser = XMLInputFactory.newInstance().createXMLStreamReader(in);
  }
  catch (XMLStreamException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
  catch (FactoryConfigurationError e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
  StAXOMBuilder builder=new StAXOMBuilder(parser);
  OMElement rootOMElement = builder.getDocumentElement();

这将在 Axiom 1.2.16 中修复(参见 AXIOM-475)。同时,您可以通过使用 Woodstox(4.0 或更高版本)作为 StAX 实现来解决此问题。