मैं जावा क्लास में गुणों के क्रम को सम्मानित करने के लिए अपने जावा क्लास से क्रमबद्ध एक्सएमएल आउटपुट चाहता हूं।जेएक्सबी और संपत्ति आदेश
ऐसा लगता है कि जेएक्सबी वर्णानुक्रम के अनुसार आदेश देता है।
मैं propOrder साथ @XmlType
का उपयोग करने और संपत्तियों की सभी निर्दिष्ट करके इस ओवरराइड कर सकते हैं, लेकिन मैं कई गुणों के साथ एक वर्ग है और इन अभी तक अंतिम रूप नहीं कर रहे हैं।
मैंने पढ़ा है कि एक खाली propOrder निर्दिष्ट करना है लेकिन ऐसा नहीं है।
मेरे उदाहरण वर्ग:
package test;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement
//@XmlType(propOrder={"company", "scheme", "agreementNumber"})
@XmlType(propOrder={}) // makes no difference - still alphabetical in XML
public class CustomerPlan2 {
private String company;
private String scheme;
private String agreementNumber;
@XmlElement(name="Company")
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
@XmlElement(name="Scheme")
public String getScheme() {
return scheme;
}
public void setScheme(String scheme) {
this.scheme = scheme;
}
@XmlElement(name="AgreementNumber")
public String getAgreementNumber() {
return agreementNumber;
}
public void setAgreementNumber(String agreementNumber) {
this.agreementNumber = agreementNumber;
}
}
मेरे serialize कोड:
CustomerPlan2 cp2 = new CustomerPlan2();
cp2.setCompany("company");
cp2.setScheme("scheme");
cp2.setAgreementNumber("agreementnumber");
JAXBContext context = JAXBContext.newInstance(CustomerPlan2.class);
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(cp2, new FileWriter("C:\\temp\\out.xml"));
आउटपुट:
<customerPlan2>
<AgreementNumber>agreementnumber</AgreementNumber>
<Company>company</Company>
<Scheme>scheme</Scheme>
</customerPlan2>
मैं अपने उत्पादन होना चाहता हूँ (मेरी कक्षा की संपत्ति आदेश के रूप में) :
<customerPlan2>
<Company>company</Company>
<Scheme>scheme</Scheme>
<AgreementNumber>agreementnumber</AgreementNumber>
</customerPlan2>
इस पर किसी भी मदद के लिए धन्यवाद।
क्या यह आपके सुपरक्लास से विरासत में संपत्तियों के साथ भी काम करना चाहिए? –
मैंने ऐसा किया और एक पर्यावरण में marshalling चलाने और एक और पर्यावरण में marshalling चलाने के दौरान सामान्य अल्फा आदेश चलाने के दौरान रिवर्स अल्फा आदेश मिला। कोई विचार/सुझाव? – Achilles929