2017-10-24 1 views
0

したがって、私はそのタイプのオブジェクトのリストを含むことができるオブジェクトを持っています。私はこのようになりますXSDを書いた:再帰的なxsdは、指定されたタイプの代わりにオブジェクトを使ってJavaクラスを生成します。

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="myNamespace" elementFormDefault="qualified"> 
    <complexType name="BinModel"> 
     <sequence> 
     <element type="string" name="min" /> 
     <element type="string" name="max" /> 
     <element type="string" name="fieldname" /> 
     <element type="int" name="defaultValue" /> 
     <element xmlns:ref="BinModel" name="innerBins" maxOccurs="unbounded" minOccurs="0" /> 
     </sequence> 
    </complexType> 
    <element name="AllBins"> 
     <complexType> 
     <sequence> 
      <element type="string" name="fieldnames" maxOccurs="unbounded" minOccurs="0"/> 
      <element type="int" name="defaultValue"/> 
      <element xmlns:type="BinModel" name="outerBins" maxOccurs="unbounded" minOccurs="0" /> 
     </sequence> 
     </complexType> 
    </element> 
</schema> 

それは、それが生成する、私は彼らがタイプBinModelのリストが含まれていることを指定していても、それぞれ2つのJavaクラス、BinModelとAllBinsを生成するが、それらのクラスのそれぞれにタイプObjectのリスト

BinModelのListを持つクラスを生成するにはどうすればよいですか?

答えて

0

xmlnsの前にtyperefを追加すると、エディタにエラーが表示されないことがありました。私は愚かな巨大なコードベースの中で、再帰的に定義されたObjectの別のxsdを探して解決策を見つけ出し、2つのことを発見しました。 1.独自の名前空間を定義していました 2.その名前空間内で独自のオブジェクトを参照しました。

<?xml version="1.0" encoding="UTF-8"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:myProject="projectNamespace" targetNamespace="myNamespace" elementFormDefault="qualified"> 
    <complexType name="BinModel"> 
    <sequence> 
     <element type="string" name="min" /> 
     <element type="string" name="max" /> 
     <element type="string" name="fieldname" /> 
     <element type="int" name="defaultValue" /> 
     <element type="myProject:BinModel" name="innerBins" maxOccurs="unbounded" minOccurs="0" /> 
    </sequence> 
    </complexType> 
    <element name="AllBins"> 
    <complexType> 
     <sequence> 
      <element type="string" name="fieldnames" maxOccurs="unbounded" minOccurs="0"/> 
      <element type="int" name="defaultValue"/> 
      <element type="myProject:BinModel" name="outerBins" maxOccurs="unbounded" minOccurs="0" /> 
     </sequence> 
    </complexType> 
    </element> 
</schema> 

だから修正されたコードは次のようになります

関連する問題