English 中文(简体)
添加批注到基于 XSD 中信息的 JAXB 生成的类类
原标题:Adding annotations to JAXB-generated classes which depend on information in XSD

我有一个 WSDL + XSD 需要转换为 Java 类。 简单得多 - < code> wsimport 将无争议地处理。 但是, 我还需要能够在生成的类别中添加附加说明, 这些说明需要包含 XSD 中包含的信息( 特别是, 它们需要引用 < code> xsd:maxLength 或 < 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 装订文件!

有人知道这是否可能吗?我是不是错过了安诺克斯的东西?

问题回答

您有几个选项: XJC 插件是一条路径, 安诺克斯看起来很有趣。 但我不是专家, 所以我会让其他人与您一起探索它 。

我建议你考虑的另一个路线是,如果你被第一个路径卡住,就是通过 rel=“nofollow”> annotation process (原为“javac工具”,现为“javac工具”的一部分), 来访问 XSD, 并将您的批注附在苍蝇上。不能肯定这将对您的所有案例有效,但以您提供的例子为例, JA XPox 生成的批注应足以构建 XPath 表达来读取相应的 XPath 元素类型特性。假设您的需求基本上围绕字段长度, 这应该是很少使用的案例和 XPath 表达方式 。

要自动添加 XJsr303 注释 说明, 您可以使用 xjc 插件 >https://github.com/krasa/krasa-jaxb-tools

普列谢见我的回答在由Java JA Xxub 和附加说明的等级





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签