У меня есть файл WSDL, который импортирует несколько XML-схем, каждая из которых имеет одно и то же пространство имен (назовем его A). Я пытаюсь использовать файл внешней привязки JAXB для изменения сгенерированного имени пакета (скажем, B) для этих схем. Вот пример:
У меня есть файл POM, содержащий конфигурацию для генерации кода из WSDL (с использованием плагина cxf-codegen-plugin).
Мой WSDL:
<definitions ...>
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="C">
<xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
<xsd:import namespace="A" schemaLocation="SCHEMA_REF"/>
...
</xsd:schema>
</types>
...
</definitions>
Вот мой фактический файл привязки, который вообще не работает, кажется, он вообще не применяется (нет сообщения об ошибке ...).
<jaxws:bindings wsdlLocation="WSDL_LOCATION" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" jaxb:version="2.0">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='C']/xs:import[@namespace='A']">.
<jaxb:schemaBindings>
<jaxb:package name="B" />
</jaxb:schemaBindings>
</jaxws:bindings>
</jaxws:bindings>
Поскольку у меня нет сообщений об ошибках в генерации, возможно, это потому, что выражение XPath, используемое для доступа к импортированной схеме, не подходит ...
Ребята, вы понимаете?
Я застрял здесь ...
Заранее спасибо за ваш вклад!