Friday 15 August 2014

java - Jibx binding with multiple namespaces -


मेरे पास निम्न XML है जिसके लिए मुझे

  & lt; ? Xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"? & Gt; & LT; conf: confirmationMessage xmlns: conf = "http: // webaddress / संस्था / पुष्टि / v1_0" xmlns: CLI = "http: // webaddress / संस्था / ग्राहक / v1_0" xmlns: ग्राहक = "http: // webaddress / इकाई / संरक्षक / v1_0 "xmlns: पंख =" http: // webaddress / संस्था / वित्तीय / v1_0 "xmlns: STO =" http: // webaddress / संस्था / शेयर / v1_0 "xmlns: tra =" http: // webaddress / संस्था / व्यापार / v1_0 "xmlns: xsi =" http://www.w3.org/2001/XMLSchema-instance "xsi: schemaLocation =" http: // webaddress / संस्था / पुष्टि / v1_0 ../XSD_V2/Confirmation .xsd "& gt; & LT; conf: आईडी & gt; 20130313588741 & lt; / conf: आईडी & gt; & Lt; conf: स्थिति & gt; सीएस उत्पन्न & lt; / conf: स्थिति & gt; & LT; conf: प्रकार & gt; आईएनएस & lt; / conf: प्रकार & gt; & LT; conf: व्यापार & gt; & LT; tra: tradeID & gt; 3068353 & lt; / & LT; tra: tradeID & gt; & LT; tra: clientid & gt; 82,911 & lt; / & LT; tra: clientid & gt; & Lt; & lt; tra: tradeDate & gt; 2013-02-28T00: 00: 00 & lt; / & LT; tra: tradeDate & gt; & Lt; / conf: व्यापार & gt; & Lt; / conf: confirmationMessage & gt;   

मैंने निम्नलिखित बाईडिंग को लिखा है लेकिन यह नामस्थान "tra"

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ" के कारण काम नहीं कर रहा है -8 "& gt; & LT; बाध्यकारी & gt; & Lt; मानचित्रण नाम = "पुष्टिकरण संदेश" वर्ग = "com.webaddress.confirmation" & gt; & Lt; नामस्थान uri = "http: // वेबएड्रेस / एंटिटी / पुष्टिकरण / v1_0" डिफ़ॉल्ट = "तत्व" / & gt; & Lt; value name = "id" field = "id" डिफ़ॉल्ट = "default-value" उपयोग = "वैकल्पिक" / & gt; & Lt; मान नाम = "स्थिति" फ़ील्ड = "स्थिति" डिफ़ॉल्ट = "डिफ़ॉल्ट-मूल्य" उपयोग = "वैकल्पिक" / & gt; & Lt; मान नाम = "प्रकार" फ़ील्ड = "प्रकार" डिफ़ॉल्ट = "डिफ़ॉल्ट-मूल्य" उपयोग = "वैकल्पिक" / & gt; & Lt; संग्रह फ़ील्ड = "व्यापार" कारखाना = "com.package.trades.JibxConfirmationUmarshaller.listFactory" & gt; & Lt;! - & lt; ढांचे का नक्शा- as = "com.webaddress.Trade" / & gt; - & gt; & Lt; संरचना नाम = "व्यापार" / & gt; & Lt; / संग्रह & gt; & Lt; / मानचित्रण & gt; & LT; मानचित्रण नाम = "व्यापार" वर्ग = om.webaddress.Trade "& gt; & lt; नामस्थान उपसर्ग =" tra "uri =" http: // webaddress / संस्था / व्यापार / v1_0 "डिफ़ॉल्ट =" तत्वों "/ & gt; & lt ; Value name = "tradeID" field = "tradeID" default = "default-value" उपयोग = "वैकल्पिक" / & gt; & lt; मान नाम = "क्लाइंटआईडी" फ़ील्ड = "क्लाइंटआईडी" उपयोग = "वैकल्पिक" deserializer = "com package.trades.JibxConfirmationUmarshaller.deserializeBigInt "/ & gt; & lt; मूल्य नाम =" tradeDate "क्षेत्र =" tradeDate "उपयोग =" वैकल्पिक "deserializer =" com.package.trades.JibxConfirmationUmarshaller.deserializeDate "/ & gt; & lt; मूल्य नाम = "गतिविधि" फ़ील्ड = "गतिविधि" डिफ़ॉल्ट = "डिफ़ॉल्ट-मूल्य" उपयोग = "वैकल्पिक" /> gt; & lt; / मानचित्रण & gt; & lt; / बाध्यकारी & gt;   

यह काम वास्तव में इस तथ्य में है कि नाम "व्यापार" से है। नाम स्थान "http: // webaddress / entity / confirmation / v1_0"। आपका jibx बाध्यकारी यह मानती है कि "व्यापार" नाम स्थान "http: // webaddress / entity / trade / v1_0 "। तार "conf" और "tra" "http: // webaddress / entity / confirmation / v1_0" और "http: // webaddress / entity / trade / v1_0" <पी के लिए संक्षेप हैं > सही जवाब शायद ऐसा कुछ दिखता है:

  & lt; मानचित्रण नाम = "व्यापार" ns = "http: // webaddress / entity / confirmation / v1_0" वर्ग = om.webaddress.Traade "& gt; & lt; नामस्थान उपसर्ग =" tra "uri =" http: // webaddress / संस्था / व्यापार / v1_0 "डिफ़ॉल्ट =" तत्वों "/ & gt; & lt; नाम स्थान uri =" http: // webaddress / संस्था / पुष्टि / V1_0 "/ & gt; मूल्य नाम =" व्यापार आईडी "फ़ील्ड =" ट्रेडआईड "डिफ़ॉल्ट =" डिफ़ॉल्ट-मूल्य "उपयोग =" वैकल्पिक "/ & gt; & lt; मान नाम =" क्लाइंट आईडी "फ़ील्ड =" क्लाइंट आईडी "उपयोग =" वैकल्पिक "Deserializer =" com.package.trades.JibxConfirmationUmarshaller.deserializeBigInt "/> gt; मूल्य नाम =" व्यापार तिथि "फ़ील्ड =" व्यापार तिथि "उपयोग =" वैकल्पिक "deserializer =" com.package.trades.JibxConfirmationUmarshaller.deserializeDate "/ & gt ; & Lt; मान नाम = "गतिविधि" क्षेत्र = "गतिविधि" डिफ़ॉल्ट = "डिफ़ॉल्ट-मूल्य" उपयोग = "वैकल्पिक" /> gt; & lt; / मानचित्रण & gt;   

आप उस टैग की आवश्यकता है जिसमें आप उपयोग करने की योजना बना रहे हैं, लेकिन फिर आपको उस नाम स्थान का उपयोग करने वाले किसी तत्व को "ns =" ​​जोड़ना होगा (जब तक कि "डिफ़ॉल्ट =" खंड लागू नहीं होता है)। इस स्थिति में, आप "व्यापार" तत्व के लिए डिफ़ॉल्ट नेमस्पेस का उपयोग नहीं करना चाहते हैं आप अन्य नामस्थान का उपयोग करना चाहते हैं।

उपसर्ग = केवल तभी आवश्यक है यदि आप आउटपुट के लिए इस बाइंडिंग का उपयोग करना चाहते हैं।

No comments:

Post a Comment