2012-05-10 12 views
4

で複数のXSDからJavaクラスを生成します:main.xsdたちはからタイプを使用するスキーマである私は2つのXSDファイルが持っているXJC

<schema 
    targetNamespace="http://www.myorg.com/base" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified" 
    xmlns="http://www.w3.org/2001/XMLSchema"> 
... 
<complexType name="NrmClass"> 
    ... 
</complexType> 
... 
</schema> 

base.xsdをbase.xsd

<schema 
    targetNamespace="http://www.myorg.com/main" 
    elementFormDefault="qualified" 
    xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:xn="http://www.myorg.com/base"> 

<import namespace="http://www.myorg.com/base"/> 
... 
<element> 
    <complexType> 
    <complexContent> 
     <extension base="xn:NrmClass"> 
... 

     </extension> 
    </complexContent> 
    </complexType> 
</element> 
... 
</schema> 

私は両方をコンパイルしようとすると、私は次のエラーが表示されます

> xjc base.xsd main.xsd 
parsing a schema... 
[ERROR] src-resolve: Cannot resolve the name 'xn:NrmClass' to a(n) 'type definition' component. 
    line 48 of file:/main.xsd 

ここで何が間違っていますか?

答えて

5

のようにあなたは、あなたが輸入しているXSD用のファイルを指定して試してみたい:あなたがそれらを保つ場合、これはうまく機能

<xsd:import namespace="http://www.myorg.com/base" schemaLocation="base.xsd"/> 

とにかく並んでいます。そうすれば、1回の操作でそれらをコンパイルできます。

別々のモジュールとしてビルドされているように、xjcを別々に実行する場合は、エピソードファイルを使用できます。

+0

ありがとう!これは問題を解決しました! – kavai77

2

は「エピソード」を見てみましょう: http://weblogs.java.net/blog/kohsuke/archive/2006/09/separate_compil.html

+0

答えをいただきありがとうございます。これは間違いなく良いヒントですが、残念ながらサイトの例でさえ私のために働いていません。私は別の質問を投稿しました:http://stackoverflow.com/questions/10532780/xjc-multiple-xsd-class-generation-using-episode – kavai77

関連する問題