6

私は2つのxsdファイルを持っています:

base.xsd

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

main.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

ここで何が問題になっていますか?

4

2 に答える 2

5

次のように、インポートするXSDのファイルを指定してみます。

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

とにかくそれらを並べておくと、これはうまく機能します。そうすれば、1回の操作でそれらをコンパイルできます。

xjcを個別に実行する場合(個別のモジュールとして構築されている場合など)、エピソードファイルを使用できます。

于 2012-05-11T02:36:23.190 に答える
2

「エピソード」をご覧ください: http ://weblogs.java.net/blog/kohsuke/archive/2006/09/separate_compil.html

于 2012-05-10T10:11:19.243 に答える