मैं एक रेपो की स्थापना मार्शल unmarshal नहीं किया जा सकता जो मेरी समस्या पता चलता है:दस्तावेज़ जब इस्तेमाल किया डिफ़ॉल्ट नाम स्थान
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<for:document xmlns:for="http://www.adcubum.com/wsdl/global/callout/syrius/modul_bl/doc/service/documentrenderer/forwktbx">
<Export xmlns="urn:adcubum:Syrius">
<ExportInhalt/>
<ExportKopf>
<Quelle>lokal</Quelle>
</ExportKopf>
<SchemaVersion>bec811a9807a8c8da403d70b9b5e22ad</SchemaVersion>
</Export>
</for:document>
इस दस्तावेज़ को मैं मिलता है: https://github.com/Waxolunist/stackoverflow.34392476
मैं एक सरल एक्सएमएल दस्तावेज़ unmarshal करने की कोशिश निम्नलिखित कोड से:
Document document = new Document();
Export export = new Export();
ExportKopf exportKopf = new ExportKopf();
exportKopf.setQuelle("lokal");
export.setExportKopf(exportKopf);
ExportInhalt exportInhalt = new ExportInhalt();
export.setExportInhalt(exportInhalt);
export.setSchemaVersion("bec811a9807a8c8da403d70b9b5e22ad");
document.setExport(export);
JAXBContext jaxbContext = JAXBContext.newInstance(Document.class);
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(document, System.out);
दस्तावेज़ के रूप में निम्नानुसार है:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "document", namespace = "http://www.adcubum.com/wsdl/global/callout/syrius/modul_bl/doc/service/documentrenderer/forwktbx")
public class Document {
@XmlElement(name = "Export", namespace = "urn:adcubum:Syrius")
private vo.dom.common_service.modul_bl.syrius.Export export;
}
package-info.java
@XmlSchema(
namespace = "urn:adcubum:Syrius",
xmlns = {
@XmlNs(prefix = "for", namespaceURI = "http://www.adcubum.com/wsdl/global/callout/syrius/modul_bl/doc/service/documentrenderer/forwktbx"),
@XmlNs(prefix = "", namespaceURI = "urn:adcubum:Syrius")
},
elementFormDefault = XmlNsForm.UNQUALIFIED)
डेटा जब मैंने इसे unmarshal करने की कोशिश, मैं नहीं मिलता मैप किया गया:
JAXBContext jaxbContext = JAXBContext.newInstance(Document.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
InputStream is = this.getClass().getResourceAsStream("/requests/document_simple3.xml");
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader xmlsr = factory.createXMLStreamReader(is);
Document document = unmarshaller.unmarshal(xmlsr, Document.class).getValue();
ExportKopf और ExportInhalt अशक्त लौट रहे हैं।
इसके बजाय xml काम करता है। केवल अंतर ही नामस्थान उपसर्ग है:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<for:document xmlns:for="http://www.adcubum.com/wsdl/global/callout/syrius/modul_bl/doc/service/documentrenderer/forwktbx">
<ns3:Export xmlns:ns3="urn:adcubum:Syrius">
<ExportInhalt/>
<ExportKopf>
<Quelle>lokal</Quelle>
</ExportKopf>
<SchemaVersion>bec811a9807a8c8da403d70b9b5e22ad</SchemaVersion>
</ns3:Export>
</for:document>
मैं eclipselink moxy का उपयोग कर रहा हूं।
मुझे क्या बदलना है, ताकि मार्शल दस्तावेज़ काम को अनमोल किया जा सके।
मैं भी GitHub रेपो में अपने कोड तय है, ताकि आप इसे पा सकते हैं इसके लिए एक पुल का अनुरोध किया। यहां मेरा क्लोन है: https://github.com/nfekete/stackoverflow.34392476/commit/3b980248b05403a51b9b53c90176bc5361772b9a –
यह प्रश्न आपको 'elementFormDefault': http: // stackoverflow के योग्य योग्य बनाम अयोग्य मूल्य के साथ मदद कर सकता है।कॉम/प्रश्न/1463138/क्या-करता-elementformdefault-do-for-xml-when-is-it-used- –
आपके काम के लिए धन्यवाद। यह मदद करता है। – Christian