私のカタログでは、xjc や Oxygen や Eclipse xml プラグインなどのツールに問題はありませんでしたが、wsimport コマンドで動作するフレーバーが見つからないようです。
名前空間を解決に使用すると、次のエントリは xjc では機能しますが、wsimport では機能しません。
<public publicId="http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0" uri="./MessageTypes/ServiceMessageTypes.xsd"/>
ここに私が発行したコマンドがあります
xjc /data/catalog.work/wsdefs/HSTypes/HealthAndStatusV1.xsd -catalog /data/catalog.work/wsdefs/catalog3.xml
wsimport -verbose /data/catalog.work/wsdefs/HealthAndStatusServiceV1.wsdl -catalog /data/catalog.work/wsdefs/catalog5.xml
wsimport で表示されるエラーは、スキーマの場所をマッピングしていないことを示しています。カタログまたは wsdl ホーム ディレクトリに関連するもののみを検索します (これらは同じです)。
[エラー] /data/catalog.work/wsdefs/ServiceMessageTypes.xsd (そのようなファイルまたはディレクトリはありません)
wsdlのインポートステートメントは次のとおりです
<xs:schema>
<xs:import
namespace="http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0"
schemaLocation="ServiceMessageTypes.xsd"/>
</xs:schema>
カタログファイルで次のエントリを再度使用すると、xjc で処理が機能します
<systemSuffix systemIdSuffix="ServiceMessageTypes.xsd" uri="./MessageTypes/ServiceMessageTypes.xsd"/>
ただし、wsimport を使用すると、すべての要素で次のようなエラーが発生します。最初のエラー行番号は、endpointStatusEnumType に続く要素の開始の行番号を参照し、2 番目のエラー行番号は、EndpointStatusEnumType 要素の開始を参照します。スキーマに到達するためにファイルの場所を解決していることに注意してください。
[エラー] 'EndpointStatusEnumType' は、ファイルの 38 行目で既に定義されています:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd
[エラー] (上記のエラーに関連) 最初の定義は、ファイルの 23 行目に表示されます:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd
23 <xs:simpleType name="EndpointStatusEnumType"> Web サービスのエンドポイントの現在のステータス。>
</xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="NORMAL"/> <xs:enumeration value="COMMS_ERROR"/> <xs:enumeration value="DISABLED"/> </xs:restriction> </xs:simpleType> <!-- Complex Types --> <!-- -->
38 <xs:complexType name="ヘッダータイプ">"
xjc で作業するだけでなく、両方のフォーマットは OXYGEN および Eclipse XML エディターおよびバリデーターでも使用できます。
wsimport は xjc と同じコードを呼び出すと想定しているため、スキーマを wsdl ファイルにインポートする方法に何か問題があると推測していますが、それは非常に単純であるか、使用している wsimport のバージョンのバグです。
wsimport -バージョン JDK 6 の JAX-WS RI 2.1.6
xjc バージョン "JDK 6 の JAXB 2.1.10" JavaTM Architecture for XML Binding(JAXB) リファレンス実装 (JDK 6 で JAXB 2.1.10 をビルド)
カタログを wsimport で動作させる方法について提案がある人はいますか?