2

这是我的普遍问题:我希望一切都尽可能自动化

这是我的具体问题:我想编组/解组 CDATA。我知道我可以在这里指定我自己的适配器。对于构建过程,我使用 Maven 及其maven-jaxb2-plugin。是否有一些选项如何注释元素,.xsd以便我的自定义适配器自动注释它们?我真的不想在每次构建后手动更改它们。

如何解决我的问题的任何其他方法都非常受欢迎。:)

编辑:我遇到了一个子问题,并在此处进行了描述:JAXB binding - "unable to Honor this Conversion Customize"

4

1 回答 1

1

试试这个配置

<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:annox="http://annox.dev.java.net"
    xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
    <bindings schemaLocation="yourXSD.xsd">

            <bindings node="//xsd:complexType[@name='Certificate']//xsd:sequence//xsd:element[@name='certificate']">
                <xjc:javaType name="java.security.cert.X509Certificate" adapter="adapters.X509CertificateAdapter" />
            </bindings>
            <bindings node="//xsd:complexType[@name='User']//xsd:sequence//xsd:element[@name='certificate']">
                <xjc:javaType name="java.security.cert.X509Certificate" adapter="adapters.X509CertificateAdapter" />
            </bindings>

    </bindings>
</bindings>

我在这个链接上解决了这个问题

如果是像 xs:string、xs:date 等这样的 xmltype,则此配置可以正常工作。

尝试使用配置来解决您的问题,使用 XmlJavaTypeAdapter。

于 2014-08-06T15:38:21.487 回答