2016-08-02 14 views
9

मैं pacs.003 ISO20022 स्वरूपित xml फ़ाइल को पार्स करने का प्रयास कर रहा हूं। मेरे पास एक्सएसडी है और एक्सएमएलबीन का उपयोग करके आवश्यक जावा कक्षाएं बनाई गई हैं। मेरी समस्या यह है कि मैं XML से तत्व को पढ़ने में सक्षम नहीं हूं और NullPointerException प्राप्त करना जारी रखता हूं। मैंने इसी तरह की समस्याओं की खोज की है लेकिन ओपी में सबसे अधिक परिणाम एक अलग तकनीक पर जा रहा है।अपाचे XmlBeans NullPointerException

एक्सएमएल टुकड़ा मैं 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 में परिणामों के ऊपर है और इस बात करने के लिए करने के लिए या तो लगता है XML12eans कक्षाओं या नामस्थानों के साथ एक समस्या के भीतर get_store() विधि।

मैंने एक विकल्प नामस्थान मानचित्र का उपयोग करने का प्रयास किया है और setUseDefaultNamespace() विधि को चालू और बंद करने के लिए टॉगल किया है (वर्तमान में यह ऊपर टिप्पणी नहीं की गई है)। मैंने elementFormDefault="qualified" को xsd:schema तत्व में जोड़ने के संबंध में एक उत्तर भी पढ़ा है लेकिन यह पहले से ही किया जा चुका है। इनमें से कोई भी इस मुद्दे को ठीक करने के लिए प्रतीत नहीं होता है और मैं विचारों से बाहर हूं।

किसी भी मदद की सराहना की जाएगी।

+0

क्या 'data_samples/LON_20160208.xml' पहुंच योग्य है? – Sanjeev

+0

हाँ मैं एक्सएमएल जुर्माना पढ़ने में सक्षम हूं और डॉक्टर चर शून्य नहीं है। –

+0

अपने दस्तावेज़ तत्व से 'S2SDDDnf:' को हटाने का प्रयास करें और फिर इसे पढ़ें। यदि यह पढ़ सकता है तो उत्पन्न कक्षाओं – Sanjeev

उत्तर

6

मैं इस मुद्दे को ठीक करने में सक्षम हूं। यह इस तथ्य के कारण था कि संदेश एक और विशिष्ट एसईपीए डीएनएफ फ़ाइल है जो सामान्य pacs.003 फ़ाइल नहीं है। इसका मतलब है कि इसे एक अलग स्कीमा की आवश्यकता है।

शून्य संदेश इसलिए थे क्योंकि xml में <Document> रूट टैग नहीं है, यह <MPEDDDnfBlkDirDeb> रूट टैग है।

संबंधित मुद्दे