我正在尝试使用JAXB解析带有名称空间的XML。
XML具有以下示例结构:
<?xml version="1.0" encoding="UTF-8"?>
<myns:root attr1="val1" attr2="val2" xmlns:myns="http://host.domain/sample/test">
<myns:child anotherNs:attr="myns:element" attr3="val3" xmlns:anotherNs="http://host.domain/sample2/test2">
</myns:child>
</myns:root>
我想创建一个Root
类和一个Child
类,这样两个名称空间“myns”和“anotherNs”将自动识别为名称空间。
我想了解是否有办法“指示”JAXB两个特定属性(在我的例子中,“xmlns:myns”和“xmlns:anotherNs”)是必须在编组中使用的名称空间/解组过程。
可能吗?如果是,可能的实施方式如何?
这里是部分Root
类:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
private String attr1;
private String attr2;
private String xmlnsMyns; // what to do here with this attribute??
}
这里是部分Child
类:
@XmlAccessorType(XmlAccessType.FIELD)
public class Child {
private String anotherNsAttr; // What to do with this attribute??
private String attr3;
private String xmlnsAnotherNs; // what to do here with this attribute??
}
提前致谢。