【问题标题】:wsdl2java generate List<JAXBElement<?>> instead of propertieswsdl2java 生成 List<JAXBElement<?>> 而不是属性
【发布时间】:2021-06-25 09:31:14
【问题描述】:

我正在开发一个基于 wsdl 的 Web 服务实现。 在链接到 wsdl 的 xsd 中有一个复杂的选择,如下所示:

 <xs:sequence>
            <xs:choice>
                <xs:element name="BinaryTerm" type="TermType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
                <xs:element name="BinaryExpression" type="ExpressionType"/>
            </xs:choice>
            <xs:element name="Operator" type="SimpleOperatorType"/>
            <xs:choice>
                <xs:element name="BinaryTerm" type="TermType"/>
                <xs:element name="BinaryExpression" type="ExpressionType"/>
            </xs:choice>
        </xs:sequence>

每次生成类实现时,我都会获得一个类 ExpressionType,其中包含一个列表 由于重复名称 BinaryTerm 和 BinaryExpression 而导致的 JAXBElement。 我已经阅读了很多建议将 bindings.xml 与这些选项一起使用的线程:

<jaxb:globalBindings generateElementProperty="false" fixedAttributeAsConstantProperty="true" choiceContentProperty="true">

但我的 ExpressionType 类没有任何变化。 任何人都可以建议如何管理这个与 WSDL 相关的 XSD。 我无法更改这些定义文件。 谢谢,安德里亚

【问题讨论】:

    标签: java web-services cxf collision wsdl2java


    【解决方案1】:

    当我想生成没有 JAXBElement 的类时,请使用此绑定。测试一下。

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
        elementFormDefault="qualified" attributeFormDefault="unqualified"
        jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.1">
        <xs:annotation>
            <xs:appinfo>
                <jaxb:globalBindings generateElementProperty="false">
                    <xjc:serializable />
                </jaxb:globalBindings>
            </xs:appinfo>
        </xs:annotation>
    </xs:schema>
    

    【讨论】:

    • 就像我之前所说的,我只是尝试使用此选项但不起作用,与以前的行为相同。
    • 你说得对,安德里亚。我测试了它,我得到了 JAXBElements。看看这个评论。我认为没有办法因为选择元素stackoverflow.com/a/31478362/9047449而逃离JAXBElement。
    猜你喜欢
    • 2013-09-05
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2013-12-05
    • 2011-05-19
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多