Я пытаюсь разобрать XML-файл в формате pacs.003 ISO20022. У меня есть XSD для этого, и с помощью XMLBeans созданы необходимые классы Java. У меня проблема в том, что я не могу прочитать элемент из XML и продолжаю получать NullPointerException. Я искал похожие проблемы, но большинство из них приводит к переходу ОП на другую технологию.
Фрагмент XML, который у меня есть из LON_20160208.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, и это, по-видимому, указывает либо на метод get_store()
в классах XMLBeans, либо на проблему с пространствами имен.
Я попытался использовать карту замещающего пространства имен и включал и выключал метод setUseDefaultNamespace()
(в настоящее время он не прокомментирован выше). Я также прочитал ответ о добавлении elementFormDefault="qualified"
к элементу xsd:schema
, но это уже сделано. Кажется, ни один из них не решает проблему, и у меня заканчиваются идеи.
Любая помощь будет принята с благодарностью.
data_samples/LON_20160208.xml
? - person Sanjeev   schedule 02.08.2016S2SDDDnf:
из элемента документа, а затем прочитайте его. если он может читать, может быть проблема с сгенерированными классами - person Sanjeev   schedule 02.08.2016