मैं इस XML संरचना है:मिश्रित सामग्री डेटा के साथ जेएक्सबी कॉम्प्लेक्स टाइप के साथ कैसे निपटें?
<Tax>
<Money currency="USD">0.00</Money>
<Description xml:lang="en">
17.5% Non-Recoverable
<ShortName>vatspecial</ShortName>
</Description>
</Tax>
सूचना है कि Description
नोड MixedContent
(पाठ और XML के साथ बना) है और इस Description
नोड के बारे में XSD
हिस्सा है:
<xsd:complexType name="TaxDescriptionType">
<xsd:sequence>
<xsd:element name="ShortName" type="xsd:string" />
</xsd:sequence>
<xsd:attribute ref="xml:lang" />
</xsd:complexType>
इस बिंदु पर सबकुछ ठीक है, XJC
जेनरेट आउटपुट करता है ऊपर class
मैं इस तरह तत्वों के साथ आस-पास काम करने में सक्षम हूँ के साथ
package org.com.project;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
/**
* <p>Java class for TaxDescriptionType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="TaxDescriptionType">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="ShortName" type="{http://www.w3.org/2001/XMLSchema}string"/>
* </sequence>
* <attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TaxDescriptionType", propOrder = {
"shortName"
})
public class TaxDescriptionType {
@XmlElement(name = "ShortName", required = true)
protected String shortName;
@XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "NCName")
protected String lang;
/**
* Gets the value of the shortName property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getShortName() {
return shortName;
}
/**
* Sets the value of the shortName property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setShortName(String value) {
this.shortName = value;
}
/**
* Gets the value of the lang property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getLang() {
return lang;
}
/**
* Sets the value of the lang property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setLang(String value) {
this.lang = value;
}
}
फिर,: TaxDescriptionType
के बारे में इस तरह एड कक्षाएं
taxDescriptionType.setLang("en");
taxDescriptionType.setShortName("vatspecial");
/* missing value: 17.5% Non-Recoverable */
लेकिन समस्या यह है कि मैं get
या set
17.5% Non-Recoverable
MixedContent-ComplexType
के ऊपर XML
उदाहरण से पाठ का कोई तरीका नहीं मिला है।
यह है कि मैं क्या करने की कोशिश की है और यह काम नहीं कर रहा:
- प्रयुक्त
mixed="true"
इस तरह विशेषता:
<xsd:complexType name="TaxDescriptionType" mixed="true">
(मुझे लगता है कि XJC है एल को अनदेखा करना ast विशेषता)
कुछ शोध कर रहा है, मैं इस पाया:
JAXB XJC compiler disregarding mixed=true on XML Schema documents
लेकिन मुझे यकीन है कि अगर यह इस को हल करने के तरीका है नहीं कर रहा हूँ। जवाब में से एक ने कहा कि यह एक बग है और अन्य एक में एक कोड है कि एक List<Serializable>
में MixedContent
बदल देती है और हो सकता है अगले स्थिति यह कैसे से निपटने के लिए के बारे में हो जाएगा पता चलता है:
taxDescriptionType.getContent().add(Serializable element);
(और मैं वास्तव में एक Serializable
तत्व से निपटने के लिए कैसे)
क्या 'सूची' का 'Serializable' प्रकार पैरामीटर महत्वपूर्ण है? –