在我的代码中,当XmlSchema只有命名空间attr时,我使用JAXB tranlate对象到xmlstring,我可以得到我想要的.像这样的xml字符串:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FoodSchema xmlns="http://www.something.com/something">
<beverage>water</beverage>
<food>steak</food>
</FoodSchema>
Run Code Online (Sandbox Code Playgroud)
但是当我有xmlns attr时,我得到像这样的xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:FoodSchema xmlns:xsi="h" xmlns:ns2="http://www.something.com/something">
<ns2:beverage>water</ns2:beverage>
<ns2:food>steak</ns2:food>
</ns2:FoodSchema>
Run Code Online (Sandbox Code Playgroud)
代码:package-info.java
@XmlSchema(
namespace="http://www.something.com/something",
elementFormDefault=XmlNsForm.QUALIFIED,
xmlns = { @XmlNs(namespaceURI = "h", prefix = "xsi")})//only this make the result different
package com.test;
import javax.xml.bind.annotation.*;
Run Code Online (Sandbox Code Playgroud)
Food.java
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Food {
private String food;
private String beverage;
public String getFood() {
return food;
}
public void setFood(String food) {
this.food = food;
}
public String getBeverage() {
return …Run Code Online (Sandbox Code Playgroud)