Извините за necro-threading, я столкнулся с этой проблемой, и хотя это один из первых ответов, который появился в Google с различными комбинациями ключевых слов, он не содержал ответ, который я в конечном итоге использовал.
Для импортированных схем самый простой способ указать привязку JAXB для импортированного XSD в WSDL - это ... рассматривать его как совершенно другую схему!
Краткий пример:
MyXSD.xsd
<xsd:schema targetNamespace="whatever"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ThingThatNeedsToBeBound">
<!-- Whatever this is made of -->
</xs:complexType>
</xsd:schema>
Независимо от того, куда импортирован этот xsd (находится ли он в корне моего wsdl или во вложенном импорте), все, что мне нужно написать вbind my "ThingThatNeedsToBeBound" в моей пользовательской привязке:
customBindings.xml
<jaxb:bindings schemaLocation="Path/To/MyXSD.xsd" node="/xs:schema/xs:complexType[@name='ThingThatNeedsToBeBound']">
<!-- your custom binding -->
</jaxb:bindings>
Итак, это как обычный случай, за исключением того, что вы указываете schemaLocation, но тогда вы можете рассматривать импортированную схему как единое целое, а не как часть чего-либо.
Надеюсь, это поможет другим людям наткнуться на эту проблему.
Источник: http://www.oracle.com/technetwork/articles/grid/jax-ws-jaxb-customization-082750.html
(Примечание: в источнике решение кажется более сложным, поэтому мой случай, возможно, был проще, чем то, что они описали, но я нашел свое решение, используя это!)