Bir pacs.003 ISO20022 biçimlendirilmiş xml dosyasını ayrıştırmaya çalışıyorum. Bunun için XSD var ve XMLBeans kullanmak gerekli Java sınıflarını oluşturdu. Sorun şu ki, XML'den bir öğe okuyamıyorum ve NullPointerException almaya devam etmem. Benzer problemleri aradım ama en çok OP'nin farklı bir teknolojiye geçmesiyle sonuçlandı.Apache XmlBeans NullPointerException
Ben LON_20160208.xml gelen var XML pasajı geçerli:
<S2SDDDnf:FIToFICstmrDrctDbt xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02">
<GrpHdr>
<MsgId>DDA160802AASW006543</MsgId>
</GrpHdr>
</S2SDDDnf:FIToFICstmrDrctDbt>
Benim kodudur:
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();
}
}
bir NullPointerException sonuçların üzerinde doc.getFIToFICstmrDrctDbt()
ve buna ya işaret ediyor XMLBeans sınıfları içinde get_store()
yöntemi veya ad alanları ile ilgili bir sorun.
Eşanlamlı bir ad alanı eşlemini kullanmayı denedim ve setUseDefaultNamespace()
yöntemini açıp kapamaya başladım (şu anda yukarıda açıklanmamıştır). Ayrıca xsd:schema
öğesine elementFormDefault="qualified"
eklenmesiyle ilgili bir yanıt okudum, ancak bu zaten yapıldı. Bunların hiçbiri sorunu çözmüyor ve fikirlerim tükeniyor.
Herhangi bir yardım büyük memnuniyetle karşılanacaktır.
"data_samples/LON_20160208.xml" erişebilir mi? – Sanjeev
Evet, XML'i okuyabiliyorum ve doc değişkeni boş değil. –
'S2SDDDnf:' öğesini doc öğenizden kaldırmayı deneyin ve ardından okuyun. okunabilirse, – Sanjeev