EclipseLink JAXB (MOXy) đang xử lý giấy chứng nhận tiền tố cho các phần tử khác nhau tùy thuộc vào tiêu chuẩn của biểu mẫu thuộc tính (như minh họa bên dưới).
Tiêu chuẩn không gian tên không sai, nhưng tôi đồng ý rằng việc sử dụng không gian tên mặc định sẽ tốt hơn khi có thể. Bạn có thể theo dõi sự tiến bộ về vấn đề này bằng cách sử dụng lỗi sau:
Một
package forum6808921;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class A {
private String b;
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
Demo
package forum6808921;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(A.class);
A a = new A();
a.setB("Hello World");
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(a, System.out);
}
}
gói-info mà không attributeFormDefault thiết
@XmlSchema(
namespace = "sample.com/x"
, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
)
package forum6808921;
import javax.xml.bind.annotation.*;
Output:
<?xml version="1.0" encoding="UTF-8"?>
<a xmlns="sample.com/x">
<b>Hello World</b>
</a>
gói-info với attributeFormDefault thiết
@XmlSchema(
namespace = "sample.com/x"
, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
, attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED
)
package forum6808921;
import javax.xml.bind.annotation.*;
Output:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:a xmlns:ns0="sample.com/x">
<ns0:b>Hello World</ns0:b>
</ns0:a>
Nguồn
2011-07-25 20:06:08
Cảm ơn bạn đã xác nhận vấn đề này. –