1

私はJAXB初心者です。プロジェクトの場合、スキーマクラスを使用できるように、xsdを含むバインディングファイルが提供されました。Jaxbバインディングファイル(mainbindings.xjb)は次のようになります。

<jxb:bindings version="2.0">
   <jxb:bindings schemaLocation="main.xsd" node="/xsd:schema">  
      <jxb:globalBindings fixedAttributeAsConstantProperty="true" collectionType="com.example.Impl" choiceContentProperty="false" typesafeEnumMemberName="generateName" enableFailFastCheck="false" generateIsSetMethod="true" underscoreBinding="asWordSeparator">
         <xjc:serializable uid="100"/>
         <xjc:superClass name="com.example.mySuperClass"/>
         <jxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
      </jxb:globalBindings>
   </jxb:bindings>
</jxb:bindings>

xjcコンパイラエラーなしでクラスを生成しました:

xjc -b mainbindings.xjb -b main.xsd -extension

このサイトから、コンパイラがスーパークラスを生成しないことがわかりました:http: //blog.frankel.ch/customize-your-jaxb-bindings

ただし、これらのクラスをeclipseプロジェクトでコピーすると、ほとんどすべてのクラスで次のエラーが表示されます。 タイプの階層に一貫性がありません。

このエラーをグーグルで検索したところ、このサイト(http://java.syntaxerrors.info/index.php?title=Inconsistent_hierarchy)から、スーパークラスが存在しない場合にこのエラーが表示されることがわかりました。ここで提案されているように更新を試みましたが、エラーはまだ存在します。

また、xjcがスーパークラスを生成しない場合、ランダムなスーパークラスを手動で作成せずに、他にどのように解決できますか?

前もって感謝します

4

1 に答える 1

1

この拡張機能は、生成されたクラスに既存のクラスを拡張させることを目的としています。このクラスを提供する必要があります。ところで-現在、この拡張機能をどのように使用しようとしていますか?

于 2012-08-23T11:36:29.000 に答える