का उपयोग कर तो मेरी समस्या है। मुझे एक एक्सएसडी दिया गया है जिस पर मेरी जेनरेट की गई एक्सएमएल फ़ाइल का पालन करना चाहिए। org.apache.cxf.cxf-xjc-plugin
मेवेन प्लगइन और बाहरी बाध्यकारी फ़ाइल का उपयोग करके मैं स्रोत कोड उत्पन्न करता हूं। लेकिन जब मैं मार्शल की कोशिश कर रहा हूं तो मेरी ऑब्जेक्ट जेनरेट एक्सएमएल मेरी आवश्यकताओं को पूरा नहीं करता है।BigDecimal के लिए JAXB marshalling fractionDigits
मेरे XSD शामिल निम्नलिखित:
<xsd:element maxOccurs="1" minOccurs="0" name="amount">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="13" />
<xsd:fractionDigits value="2" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
...
<xsd:element maxOccurs="1" minOccurs="0" name="rate">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="8" />
<xsd:fractionDigits value="5" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
और XML के उत्पन्न टुकड़ा इस तरह दिखता है:
<amount>109.50</amount>
...
<rate>10.25000</rate>
:
<amount>109.5</amount>
...
<rate>10.25</rate>
जब मैं इसे होने की उम्मीद कर रहा था
क्या इस समस्या को साफ तरीके से हल करने का कोई तरीका है?
मैं प्रत्येक totalDigits
, fractionDigits
संयोजन के लिए कई एडेप्टर लिखना पसंद नहीं करूंगा। और चूंकि एक्सएसडी परिवर्तन के अधीन है, इसलिए मैं जेनरेट किए गए स्रोत कोड को छूना चाहता हूं।
दशमलव डेटाप्रकार पर W3C दस्तावेज़ कहते हैं 'fractionDigits' दशमलव विभाजक के बाद अंकों की संख्या पर ऊपरी सीमा निर्दिष्ट करता है। दाएं हाथ के शून्य अनुपस्थित होने पर डेटा को पढ़ने के लिए इससे कोई फर्क नहीं पड़ता। उपयोग केस क्या है जिसके लिए शून्य पैडिंग की आवश्यकता होती है? –
@Jim (जेनरेशन) मेरे जेनरेट किए गए एक्सएमएल फ़ाइल को पार्स करने के लिए शून्य पैडिंग की आवश्यकता है ;-) – Jasper
क्या आप मेरे उत्तर में 'सटीकडिमल' का उपयोग कर सकते हैं? –