gpt4 book ai didi

java - Apache XmlBeans NullPointerException

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:19 24 4
gpt4 key购买 nike

我正在尝试解析一个 pacs.003 ISO20022 格式的 xml 文件。我有用于此的 XSD 并使用 XMLBeans 创建了所需的 Java 类。我遇到的问题是我无法从 XML 中读取元素并不断收到 NullPointerException。我搜索过类似的问题,但大多数问题都导致 OP 转向不同的技术。

我从 LON_20160208.xml 获得的 XML 片段是:

  <S2SDDDnf:FIToFICstmrDrctDbt xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02">
<GrpHdr>
<MsgId>DDA160802AASW006543</MsgId>
</GrpHdr>
</S2SDDDnf:FIToFICstmrDrctDbt>

我的代码是:

  public static void main(String[] args) {
XmlOptions xmlOptions = new XmlOptions();
xmlOptions.setUseDefaultNamespace();
xmlOptions.setSavePrettyPrint();

Document doc;

try {
doc = Document.Factory.parse(new File("data_samples/LON_20160208.xml"));
String messageId = doc.getFIToFICstmrDrctDbt().getGrpHdr().getMsgId();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

上面的 doc.getFIToFICstmrDrctDbt() 导致 NullPointerException,这似乎指向 XMLBeans 中的 get_store() 方法类或 namespace 问题。

我已经尝试使用替代命名空间映射并打开和关闭 setUseDefaultNamespace() 方法(目前上面没有注释掉)。我还阅读了关于将 elementFormDefault="qualified" 添加到 xsd:schema 元素的答案,但这已经完成了。这些似乎都无法解决问题,我的想法已经用完了。

如有任何帮助,我们将不胜感激。

最佳答案

我已经能够解决这个问题。这是因为消息是一个更具体的 SEPA DNF 文件,而不是通用的 pacs.003 文件。这意味着它需要一个不同的架构。

空消息是因为 xml 没有 <Document>根标签,它是一个 <MPEDDDnfBlkDirDeb>根标签。

关于java - Apache XmlBeans NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38725422/

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