4

置換グループを含む xsd があります。List ではなく cxf wsdl2java JAXB 生成 List> を使用して Java クラスを生成しようとしている場合。JAXBElement を回避するにはどうすればよいですか? binding.xml を試してみましたが、うまくいきません。これを解決するのを手伝ってください

ありがとうございました

4

2 に答える 2

1

置換グループを使用する場合、JAXBElement を避けることはできません。JAXBElement が作成されている理由は、複数の型が要素の代わりになる可能性があるため、どの型をスキーマに入れるかを伝えるのに十分な情報がないためです。

于 2010-11-12T22:31:20.310 に答える
0

getDeclaredType を使用して、実行時に型の安全性を確認できます。例えば

JAXBContext jc = JAXBContext.newInstance("com.foo");
Unmarshaller u = jc.createUnmarshaller();

File f = new File("src/Sample.xml");
SomeObject d = (SomeObject ) u.unmarshal(f);
AnyTypeContainerObject c = d.getBody();
JAXBElement<?> any = (JAXBElement<?>) c.getAny();
if ((AnyTypeObject.class.equals(any.getDeclaredType()))) {
    AnyTypeObject value = (AnyTypeObject ) any.getValue();
    ...
}
于 2011-02-01T18:58:49.413 に答える