А вот и пользовательская привязка xml. Я надеюсь, что это помогает кому-то еще. Это была настоящая боль, чтобы решить!

аюсь использовать wsimport наhttps://api.sendwordnow.com/webservices/v3/users.svc?wsdl, Вот wsimport, который я использую.

wsimport -B-XautoNameResolution -d C:\temp -extension -J-Djavax.xml.accessExternalSchema=all -J-Djavax.xml.accessExternalDTD=all -keep -verbose -XadditionalHeaders -Xnocompile https://api.sendwordnow.com/webservices/v3/users.svc?wsdl

И здесь ошибка.

парсинг WSDL ...

    [WARNING] unknown extensibility element or attribute "EndpointReference" 
    (in namespace "http://www.w3.org/2005/08/addressing") line 1 of 
    https://api.sendwordnow.com/webservices/v3/users.svc?wsdl
    [ERROR] Two declarations cause a collision in the ObjectFactory class. 
    line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3
    [ERROR] (Related to above error) This is the other declaration. 
    line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3
    [ERROR] Two declarations cause a collision in the ObjectFactory class. 
    line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2
    [ERROR] (Related to above error) This is the other declaration. 
    line 1 of https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2
    Exception in thread "main" com.sun.tools.internal.ws.wscompile.AbortException 
    at com.sun.tools.internal.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:129)at
    com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2283)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:183)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:126)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.buildWsdlModel(WsimportTool.java:429)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:190)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:168) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) at 
    com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:159) at 
    com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)

Я искал вокруг на StackOverflow и нашелwsimport - два объявления вызывают коллизию, одна и та же строка но это 4 года назад, и я не знаю, применимо ли решение до сих пор. Рекомендовалось удалить -p, что я и сделал, но я все еще получаю сообщение об ошибке выше. Есть идеи, что я делаю не так? Я могу подключить wsdl к SoapUI и генерировать тестовые заглушки, но я просто не могу преодолеть горб wsimport.

ОБНОВЛЕНИЕ 1 Я также попытался использовать привязку схемы.

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0"
              xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
              xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd0">
        <jxb:schemaBindings>
            <jxb:package name="com.users" />
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd1">
        <jxb:schemaBindings>
            <jxb:package name="com.serialization"/>
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2">
        <jxb:schemaBindings>
            <jxb:package name="com.datacontractsv2"/>
        </jxb:schemaBindings>
    </jxb:bindings>    
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3">
        <jxb:schemaBindings>
            <jxb:package name="com.datacontractsv1"/>
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd4">
        <jxb:schemaBindings>
            <jxb:package name="com.arrays"/>
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd5">
        <jxb:schemaBindings>
            <jxb:package name="com.location"/>
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd6">
        <jxb:schemaBindings>
            <jxb:package name="com.datacontractsv3"/>
        </jxb:schemaBindings>
    </jxb:bindings>
</jxb:bindings>

Вот обновленный wsimport.

wsimport -b "C:\temp\Customization.xml" -B-XautoNameResolution -d C:\temp -extension -J-Djavax.xml.accessExternalSchema=all -J-Djavax.xml.accessExternalDTD=all -keep -verbose -XadditionalHeaders -Xnocompile https://api.sendwordnow.com/webservices/v3/users.svc?wsdl

Я все еще получаю то же сообщение об ошибке, что и выше.

ОБНОВЛЕНИЕ 2 Окончательно решено с помощью следующих обновлений.

<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd2">
    <jxb:schemaBindings>
        <jxb:package name="com.datacontractsv2"/>
        <jxb:nameXmlTransform>
            <jxb:typeName suffix="Type" /> 
            <jxb:elementName suffix="Element"/> 
        </jxb:nameXmlTransform>
    </jxb:schemaBindings>
</jxb:bindings>    
<jxb:bindings schemaLocation="https://api.sendwordnow.com/webservices/v3/Users.svc?xsd=xsd3">
    <jxb:schemaBindings>
        <jxb:package name="com.datacontractsv1"/>
        <jxb:nameXmlTransform>
            <jxb:typeName suffix="Type" /> 
            <jxb:elementName suffix="Element"/> 
        </jxb:nameXmlTransform>
    </jxb:schemaBindings>
</jxb:bindings>

Я не уверен на 100%, что это лучшее или даже правильное разрешение, но ошибки исчезли и сгенерирован код.

Ответы на вопрос(1)

Ваш ответ на вопрос