我试图通过JAXB和java bean读取xml的属性: 这是完整的xml:
<dad xml:lang="en">
</dad>
我需要获取lang属性: 我的java bean表示如下: 这是xml的java表示形式:
@XmlRootElement(name = "dad")
public class dad {
@XmlAttribute(namespace = "xml", required=true, name = "lang")
@XmlJavaTypeAdapter(NormalizedStringAdapter.class)
protected String xmlLang;
public String getXmlLang() {
return xmlLang;
}
public void setXmlLang(String value) {
this.xmlLang = value;
}
}
这是我在解组时使用的代码:
JAXBContext jc = JAXBContext.newInstance("dad.model");
Unmarshaller unmarshaller = jc.createUnmarshaller();
dad doc = (dad) unmarshaller.unmarshal(new InputStreamReader(new FileInputStream(dad),"UTF-8"));
System.err.println(doc.getXmlLang());
但它让我无效?! 请帮忙。 感谢
答案 0 :(得分:1)
命名空间不是xml
。 xml
只是标识符。实际的保留命名空间是http://www.w3.org/XML/1998/namespace
。所以你的注释应该是
@XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace", required = true, name = "lang")