Java 如何使用类定制来解决从xsd生成jaxb对象时的冲突
当我在下面的xsd上运行Java 如何使用类定制来解决从xsd生成jaxb对象时的冲突,java,xsd,jaxb,ifc,Java,Xsd,Jaxb,Ifc,当我在下面的xsd上运行xjc-dsrc/-pcom.testifc2x3.xsd命令时,它给出了冲突 .... <xs:element name="IfcCondenserTypeEnum" nillable="true"> <xs:complexType> <xs:simpleContent> <xs:extension base="ifc:IfcCondenserTypeEnu
xjc-dsrc/-pcom.testifc2x3.xsd
命令时,它给出了冲突
....
<xs:element name="IfcCondenserTypeEnum" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcCondenserTypeEnum">
<xs:attributeGroup ref="ex:instanceAttributes">
</xs:attributeGroup>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="IfcCondenserTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="watercooledshelltube">
</xs:enumeration>
<xs:enumeration value="watercooledshellcoil">
</xs:enumeration>
<xs:enumeration value="watercooledtubeintube">
</xs:enumeration>
<xs:enumeration value="watercooledbrazedplate">
</xs:enumeration>
<xs:enumeration value="aircooled">
</xs:enumeration>
<xs:enumeration value="evaporativecooled">
</xs:enumeration>
<xs:enumeration value="userdefined">
</xs:enumeration>
<xs:enumeration value="notdefined">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
....
我发现了一些关于这个的问题,但它没有回答这个问题。如何按照建议解决此问题使用类自定义使用下面的绑定
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:annox="http://annox.dev.java.net"
xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
<bindings schemaLocation="../schema.xsd">
<bindings node="//xs:schema//xs:element[@name='IfcCondenserTypeEnum']">
<class name="CondenserType" />
</bindings>
</bindings>
</bindings>
您可以使用-autonamesolution
例如,您可以调用wsdl2java-frontendjaxws21-impl-server-d../java-autonamesolution-pcom.yourClasshttps://webservice.xxxx.com.tr/Sms.asmx?wsdl
我也面临类似的问题。但我有大约20-30个这样的变量。还有其他解决方案吗?@wib:创建一个一次性的XSLT转换样式表可以为您创建这些绑定,这很简单。使用绑定和模式文件,而不是本地文件,我指向xsd的url,在绑定中,我只为一个元素定义了绑定,它正在工作。他要求xjc,而不是wsdl2java。这一问题也在近5年前得到了回答和解决。
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:annox="http://annox.dev.java.net"
xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
<bindings schemaLocation="../schema.xsd">
<bindings node="//xs:schema//xs:element[@name='IfcCondenserTypeEnum']">
<class name="CondenserType" />
</bindings>
</bindings>
</bindings>