wsdl: проблема импорта с пользовательским связыванием в CXF - PullRequest
5 голосов
/ 14 марта 2012

Я не могу получить пользовательскую привязку для XSD, импортированного в WSDL с использованием тега wsdl:import.

Я думаю, wsdl:type и xsd:import - лучший способ импортировать схему изXSD, но мне нужно решение, в котором мне не нужно менять WSDL.

Я использую CXF для генерации артефактов из WSDL, и он отлично работает, когда я не использую никакой пользовательской привязки, но так какмое требование состоит в том, чтобы изменить имя классов, определенных в схеме, я намерен использовать пользовательскую привязку.

WSDL содержит:

<definitions name="MMMWS" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xmmmd="http://xyz.com/abcdata"
    xmlns:xmmms="http://xyz.com/abcservice"
    targetNamespace="http://xyz.com/abcservice">

    <import namespace="http://xyz.com/abcdata" location="abcdata.xsd"/>

.....

Файл привязки (.xjb) содержит:

<jaxb:bindings version="2.0"
        xmlns:jaxb="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"
        jaxb:extensionBindingPrefixes="xjc"
        schemaLocation="abcdata.xsd">

.....

Я получаю ошибку:

[ERROR] "file:abcdata.xsd" is not a part of this compilation. Is this a mistake for "file:abcdata.xjb"?
[ERROR] at line 7 column 51 of schema file:abcdata.xjb
...