Я пытаюсь сгенерировать файлы классов с помощью плагина wsdl2java cxf в maven. Для моего wsdl есть два ресурса (XSD) с разными именами с одинаковым структурным содержимым. Я попытался использовать связывание jaxb xml для генерации java-класса таким образом, чтобы один из этих XSD указывал на другой пакет. Но все равно он генерирует исключение типа «Уже определено» для каждого простого и сложного типа в XSD. Прикрепление моего jaxb переплета xml.
Ниже приведена структура XSD (не полная).
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.check.com/zsoa/nac/webservices/Services/Definitions/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pdt="http://www.check.com/zsoa/nac/schemas/PrimitiveDatatypes/" xmlns:def="http://www.check.com/zsoa/nac/webservices/Services/Definitions/" xmlns:com="http://www.check.com/zsoa/nac/schemas/TransferObjects/Common/"> <xsd:import namespace="http://www.check.com/zsoa/nac/schemas/PrimitiveDatatypes/" schemaLocation="BusinessPerformanceMonitoring_V1_1.xsd"/> <xsd:import namespace="http://www.check.com/zsoa/nac/schemas/TransferObjects/Common/" schemaLocation="BusinessPerformanceMonitoring_V1_1_2.xsd"/> <xsd:simpleType name="ApplicationType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Batch"/> <xsd:enumeration value="Conversational"/> <xsd:enumeration value="Olap"/> <xsd:enumeration value="Oltp"/> <xsd:enumeration value="Web"/> </xsd:restriction> </xsd:simpleType>
Jaxb переплет xml
<?xml version="1.0" encoding="UTF-8"?> <jaxws:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" wsdlLocation="../BusinessPerformanceMonitoring-V1.wsdl"> <jaxb:bindings schemaLocation="http://test-int-api.checkna.com/commonSchema/BusinessPerformanceMonitoring_V1.2?xsd=Definitions.xsd" node="wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='http://www.check.com/zsoa/nac/webservices/Services/Definitions/']"> <jaxb:schemaBindings> <jaxb:package name="com.test.pso.check.webservice.address"/> </jaxb:schemaBindings> </jaxb:bindings>