Java クラスに変換する必要がある WSDL + XSD があります。それは非常に簡単です-wsimport
問題なく処理します。ただし、生成されたクラスに注釈を追加できるようにする必要もあり、それらの注釈には XSD に含まれる情報が含まれている必要があります (特に、xsd:maxLength
またはxsd:length
プロパティを参照する必要があります)。
なんで?Bindyを使用して、後でフラット ファイルに変換する予定があるためです。参考までに、Annoxを使用して生成されたクラスにカスタム アノテーションを追加できることは知っていますが、私の知る限り、すべてのアノテーションが同一である、すべてのパラメーターが同一である、または各要素にアノテーションを指定する必要があります。個々に、パラメーターの 1 つの値が要素ごとに異なる必要があることを指定する何らかの方法 (xpath など) と共に注釈を一度指定する方法はありません。
つまり、次のようなスキーマ抽出が与えられた場合
<xsd:element name="smapleRequest">
<xsd:sequence>
<xsd:element name="ELEMENT_ONE">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:length value="3" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ELEMENT_TWO">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:element>
私はこのように見えるクラスを見たいです:
.
.
.
@FixedLengthRecord
public class SampleRequest {
@XmlElement(name = "ELEMENT_ONE", required = true)
@DataField(pos = 1, length=3)
protected String elementOne;
@XmlElement(name = "ELEMENT_TWO", required = true)
@DataField(pos = 4, length=8)
protected String elementTwo;
.
.
.
}
理想的には、XSD からのすべての情報を JAXB バインディング ファイルに複製することなく、これを実行できるようにしたいと考えています。つまり、できますが、Web サービスメソッドごとに数百の要素があり、数十のメソッドが存在する可能性があるため、非常に速く非常に古くなります。その時点で、おそらく別のツールを使用して、COBOL から XSD および JAXB バインディング ファイルを生成する必要があります。
それで、これが可能かどうか誰にもわかりますか?Anox で何か見逃したことがありますか? それとも、ここで求めすぎですか?