Jam*_*Fox 9 java xml xsd xmlbeans xml-namespaces
我试图解析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>
Run Code Online (Sandbox Code Playgroud)
我的代码是:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
将doc.getFIToFICstmrDrctDbt()
在上述结果NullPointerException异常,这似乎指向无论是get_store()
在XMLBeans类中的方法或与命名空间的问题.
我已经尝试使用替换命名空间映射并打开setUseDefaultNamespace()
和关闭该方法(它目前没有在上面注释掉).我也看过有关添加一个答案elementFormDefault="qualified"
的xsd:schema
元素,但这个已经完成.这些似乎都没有解决问题,我的想法已经不多了.
任何帮助将不胜感激.
我已经能够解决这个问题.这是因为消息是一个更具体的SEPA DNF文件,它不是通用的pacs.003文件.这意味着它需要一个不同的模式.
空消息是因为xml没有<Document>
根标记,它是<MPEDDDnfBlkDirDeb>
根标记.
归档时间: |
|
查看次数: |
311 次 |
最近记录: |