将 XML 对象解组到 Java

Unmarshallig XML Objects to Java

提问人:Daniel Pomrehn 提问时间:10/24/2023 更新时间:10/24/2023 访问量:33

问:

我正在开发一个Spring-ws SOAP Web服务。基于WSDL,我生成了Java类。

这是我输入XML的一小部分,这让我有些麻烦:

    <tar:Verkaufsprodukt>
        <pm:Produkt xsi:type="pm-kf:CT_KfzVersicherung">
        </pm:Produkt>
    </tar:Verkaufsprodukt>

当我尝试在 Java 中访问 Product 对象时,我希望它的类型为 CT_KfzVersicherung。但它属于 Produkt 类型。

通过 jaxws-maven-plugin 生成的 Java 类如下所示(缩短为相关部分):

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CT_Produkt", namespace = "http://www.bipro.net/namespace/produktmodell", propOrder = {
    "sparte"
})
@XmlSeeAlso({
    CTProdukt2 .class
})
public class CTProdukt
    extends CTProduktbaustein
{
}

CTProdukt2 是这样的:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CT_Produkt", namespace = "http://www.bipro.net/namespace/versicherung/produktmodell", propOrder = {
    "leistungsausschluss",
    "selbstbeteiligung",
    "klausel",
    "bezugsrecht",
    "wechselVN"
})
@XmlSeeAlso({
    CTKfzVersicherung.class
})
public class CTProdukt2
    extends CTProdukt
{
}

而 CTKfzVersicherung 就是这样:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CT_KfzVersicherung", namespace = "http://www.bipro.net/namespace/versicherung/produktmodell/kraftfahrt", propOrder = {
    "versichertesFahrzeug",
    "versicherteFahrzeuggruppe",
    "flottenVersicherungsnehmer",
    "vorversicherung",
    "summeLeistungWert"
})
public class CTKfzVersicherung
    extends CTProdukt2
{
}

我是否需要从 WSDL 修改 Java 生成过程中的任何内容?

Java XML JAXB 弹簧-WS

评论


答: 暂无答案