एक्सएमएल गुणों के लिए डिफ़ॉल्ट मान गेटटर विधि के अंदर जाता है।
उदाहरण के लिए
,
customer.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="Customer">
<complexType>
<sequence>
<element name="element" type="string" maxOccurs="1" minOccurs="0" default="defaultElementName"></element>
</sequence>
<attribute name="attribute" type="string" default="defaultAttributeValue"></attribute>
</complexType>
</element>
</schema>
यह नीचे की तरह वर्ग उत्पन्न होगा।
@XmlRootElement(name = "Customer")
public class Customer {
@XmlElement(required = true, defaultValue = "defaultElementName")
protected String element;
@XmlAttribute(name = "attribute")
protected String attribute;
......
public String getAttribute() {
//here the default value is set.
if (attribute == null) {
return "defaultAttributeValue";
} else {
return attribute;
}
}
बनाया गया नमूना XML को पढ़ने के लिए
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Customer><element/></Customer>
जब हम अपने मुख्य वर्ग में मार्शल के तर्क लिखें।
File file = new File("...src/com/testdefault/xsd/CustomerRead.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);
System.out.println(customer.getElement());
System.out.println(customer.getAttribute());
यह कंसोल में प्रिंट करेगा। डिफ़ॉल्ट एलिमेंटनाम डिफ़ॉल्ट एट्रिब्यूट वैल्यू
पीएस -: तत्वों का डिफ़ॉल्ट मान प्राप्त करने के लिए आपको xml में तत्व की रिक्त प्रति प्राप्त करने की आवश्यकता है जिसे मार्शल किया जा रहा है।
स्रोत
2016-04-05 10:07:45
क्या ... एनोटेशन प्रभावी रूप से कुछ डिफ़ॉल्ट वैल्यू कुंजी नहीं है। मैं वास्तव में काफी हैरान हूँ। –
तत्वों के लिए डिफ़ॉल्ट मानों पर चर्चा की गई है [यहां] (http://stackoverflow.com/questions/371127) - शायद आपको विशेषताओं के लिए मदद करेगा। –