4

标题可能说明了一切,我想知道是否可以告诉 cxf-codegen-plugin 添加例如 xsd-patterns 作为@Pattern注释。模式验证很好,但有时我只想检查单个元素而不是无数的 xml 行。

因此,我想知道是否有一个技巧/选项/肮脏的黑客可以帮助我转身

<xs:simpleType name="string2000">
    <xs:restriction base="xs:string">
        <xs:maxLength value="2000"/>
        <xs:minLength value="1"/>
        <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}-[ \t\r\n]][\p{IsBasicLatin}\p{IsLatin-1Supplement}-[\t\r\n]]*"/>
    </xs:restriction>
</xs:simpleType>

进入

@Pattern(regexp = "\\p{IsBasicLatin}\\p{IsLatin-1Supplement}-[ \\t\\r\\n]][\\p{IsBasicLatin}\\p{IsLatin-1Supplement}-[\\t\\r\\n]]*")
@Size(min = 1, max = 2000)

因为手动添加它对于这么多的 xml 来说是不行的,而且它确实会让事情变得更容易。

4

1 回答 1

1

我没有使用 cxf-codegen-plugin 的直接经验,但是我也需要在我的 JAXB 生成的类中包含@Pattern、、@Size和其他<xs:restriction />从 XSD 派生的注释,并最终使用了 krasa-jaxb-tool,它就是这样做的。

请参阅Blaise Doughan包括-xsrestrictions-as-annotations-in-moxy-generated-java-classes 中的回答。

于 2012-11-18T18:05:54.310 回答