如何使用jaxb获取anyType值?

时间:2011-08-15 15:09:28

标签: java xml jaxb

我有一个看起来像这样的xml:

<Root>
   <tag1>4</tag1>
   <tag2>aa</tag2>
   <tag3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <anyType xsi:type="xsd:string">bla bla bla</anyType>
      <anyType xsi:type="xsd:string">3</anyType>
   </tag3>
</Root>

xjc生成的对象是:

public class Root {
  @XmlElement(name="tag1")
  protected short tag1;

  @XmlElement(name="tag2")
  protected String tag2;

  @XmlElement(name="tag3")
  protected Object tag3;
}

当我解组xml时,我在tag3中获得了某种xml元素。 我需要一些通用的东西来将tag3中的值放到列表中。

任何想法?

感谢。

2 个答案:

答案 0 :(得分:0)

创建任何类型的类。并将tag3声明为AnyType

的数组
 @XmlElement(name="tag3")
 protected AnyType[] tag3;

答案 1 :(得分:0)

嗯,答案结果很简单。 我只是改变了

  @XmlElement(name="tag3")
  protected Object tag3;

为:

 @XmlWrapper(name = "tag3")
 @XmlElements(@XmlElement(name="anyType"))
  protected List<Object> list;

我的问题在于xjc生成的对象。