Я не могу получить пользовательскую привязку для 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