2

XJC を使用して XSD (作成者ではない) をコンパイルしようとすると、問題が発生します。

具体的には、エラーが発生します(実際にはこれらのようなものがあります):

 [ERROR] src-resolve: Cannot resolve the name "ifopt:CountryRefStructure" to a(n) 'type definition' component.
   line 131 of file:/E:/ansdef/schema/siri-1.3/siri/siri_situationIdentity-v1.1.xsd

siri_situationIdentity-v1.1.xsd上記のファイル ( ) は、疑わしいタイプが宣言されている別の XSD を参照しているため、これは奇妙です。

私はいくつかのことを試しました

  • Java のバージョンを切り替えて別の xjc を取得する
  • java.netから直接いくつかの異なるxjcを試しました
  • インクルード/インポートに関して現在適用されているJAXBの回避策が削除されるように、ファイルにいくつかの変更を適用しました
  • 依存スキーマを持つディレクトリ全体を xjc のターゲットとして使用しようとしました
  • Altova XMLSpy Java コード生成はエラーなしでうまく機能します (しかし、私にはどうしようもありません)

それらのどれも機能しませんでした。

エラーメッセージの原因を知っている人はいますか? 要点がわかりません。ここからすべての XSD を直接入手できます: Verband Deutscher Verkehrsunternehmen (VDV) - Ist-Daten-Schnittstellen

私が(とりわけ)試したコマンドラインは次のとおりです。

xjc -readOnly -d generated -npa -target 2.1 -verbose VDV453_incl_454_V2.3e.xsd

どんな助けやヒントも大歓迎です。

よろしく

4

2 に答える 2

3

ここでの解決策は、-nvスイッチを使用して厳密な検証を無効にすることでした。

于 2012-10-15T11:46:25.133 に答える
1

このエラー メッセージは、XJC が他のスキーマ ドキュメントを正常にロードできなかったことが原因で発生します。いくつかのオプションがあります。

  • xjc のドキュメントでは、複数のコマンドライン引数を受け入れることが示唆されているため、コマンドライン引数として読み取らせたいすべてのスキーマ ドキュメントを指定してみてください。
  • また、相対参照の解決に使用しているベース URI を特定することもできます。または (より直接的に) ...
  • どのベース URI を使用するかを XJC に伝える方法を (試して) 理解することができます。
  • XJC は XML カタログもサポートしているため、カタログを使用して、最上位のスキーマ ドキュメントが参照しているファイルの場所を XJC に伝えることができます。
于 2012-09-14T17:50:35.357 に答える