簡體   English   中英

Apache XmlBeans NullPointerException

[英]Apache XmlBeans NullPointerException

我試圖解析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()方法或命名空間的問題。

我已經嘗試使用替換命名空間映射並打開和關閉setUseDefaultNamespace()方法(它目前未在上面注釋掉)。 我還讀了一個關於將elementFormDefault="qualified"添加到xsd:schema元素的答案,但是這已經完成了。 這些似乎都沒有解決問題,我的想法已經不多了。

任何幫助將不勝感激。

我已經能夠解決這個問題。 這是因為消息是一個更具體的SEPA DNF文件,它不是通用的pacs.003文件。 這意味着它需要一個不同的模式。

空消息是因為xml沒有<Document>根標記,它是<MPEDDDnfBlkDirDeb>根標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM