WSDL ファイルがweatherservice.wsdl
あり、 を使用してこの WSDL のバインディングを生成しようとしていxjc
ます。xjc を使用してこれを行うにはどうすればよいですか?
xjc から実行するためのコマンド ライン引数が見つかりませんでした。 xjc -p com -wsdl weatherservice.wsdl
通常.xjb
、WSDL またはスキーマ内の競合を解決するために、拡張子付きのバインディング ファイルを作成します。たとえば、2 つの要素が同じ名前を持ち、それらを区別したい場合は、バインディング ファイルを指定して名前を変更できます。
次に例を示します。
<jaxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
version="2.1">
<jaxb:globalBindings generateIsSetMethod="true" fixedAttributeAsConstantProperty="true">
<xjc:serializable uid="1" />
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="abcd.xsd">
<jaxb:bindings node="//xs:element[@name='Event']/xs:simpleType">
<jaxb:typesafeEnumClass name="EventEnumType" />
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
この単純なバインドを使用してみてください。それを WSDL の隣に保存し、それを使用するように XJC に指示します。
<bindings version="2.0"
xmlns="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"
>
<globalBindings>
<xjc:simple/>
</globalBindings>
</bindings>