5

Antのxjc2タスクを使用していくつかの有効なXMLドキュメントをバインドすると、次の失敗メッセージが表示されます。

[xjc2] [ERROR] null
[xjc2] unknown location

ドキュメントは正常にバインドされた他のファイルと非常によく似ており、インポートされたスキーマはすべて存在します。xjcを冗長モードで実行すると次のようになります。

Parent is not Defined Class...I cannot get the fields from this class

誰かがこれが何を意味するのか分かりますか?

4

1 に答える 1

5

スキーマの正確性のチェック

XJCの使用では、スキーマの正確性チェックを無効にすることで解決された同様の問題(以下のリンクを参照)が見られました。

次のSystemプロパティを試して、スキーマの正確性チェックを無効にします。

-Dcom.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.noCorrectnessCheck=true

Antの場合は、次を試してください。

<xjc target="src">
  <schema dir="src" includes="**/*.xsd" excludes="**/debug.xsd"/>
  <arg value="-nv" />
</xjc>

次のページから、-nvパラメーターはスキーマの正確性チェックに関連しています。

コードに入る

プログラムでXJCを操作し(以下を参照)、独自のEntityResolverをプラグインして、インポート/インクルードが失敗する場所を確認できます。

import com.sun.codemodel.*;
import com.sun.tools.xjc.*;
import com.sun.tools.xjc.api.*;

SchemaCompiler sc = XJC.createSchemaCompiler();
sc.setEntityResolver(new YourEntityResolver());
sc.setErrorListener(new YourErrorListener());
sc.parseSchema(SYSTEM_ID, element);
S2JJAXBModel model = sc.bind();
于 2010-08-16T00:05:35.373 に答える