我有一个 WSDL + XSD 需要转换为 Java 类。 简单得多 - < code> wsimport code > 将无争议地处理。 但是, 我还需要能够在生成的类别中添加附加说明, 这些说明需要包含 XSD 中包含的信息( 特别是, 它们需要引用 < code> xsd:maxLength code > 或 < code>xd: long 属性 )。
为什么?因为我计划事后用Bindy 来将它们转换成平坦的文件。为了参考,我知道我可以使用Annox 来为生成的分类添加自定义的批注,但据我所知,这将要求要么所有说明都是相同的,所有参数都是相同的,或者为每个元素逐个指定说明,但不能在指定一个注释的同时以某种方式(例如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 装订文件 。 我的意思是, 我可以,但只要每个网络服务方法可能包含数百个元素, 以及几十种方法, 就会变得非常非常非常老旧, 非常快。 到那时,我可能不得不使用另一个工具从COBOL 生成 XSD 和 JAXB 装订文件!
有人知道这是否可能吗?我是不是错过了安诺克斯的东西?