java - JAXB 使用 Maven 插件编码 CDATA

标签 java maven jaxb cdata maven-jaxb2-plugin

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

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

非常欢迎使用任何其他方法来解决我的问题。 :)

编辑: 我遇到了一个子问题,它在此处进行了描述:JAXB binding - "unable to honor this conversion customization" .

最佳答案

试试这个配置

<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>

我在这个 link 上解决了这个问题

如果是 xs:string、xs:date 等 xml 类型,此配置工作正常

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

关于java - JAXB 使用 Maven 插件编码 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163837/

相关文章:

java - Android 不会根据不同的屏幕布局调整大小

java - 我应该为我的简单流程使用内存映射文件吗?

java - 主应用程序下载另一个应用程序然后使用它

java - 如何解码包裹在另一个元素中的元素

java - 如何让弹跳球移动得更快?动态速度?

java - 在 tomcat v 8.5 上部署 spring boot 应用程序失败

java - Maven、Vaadin 和资源文件夹

java - 带有 spring-boot-maven 插件的 Spring Boot - 运行集成测试后无法重启应用服务器

.net - 将 JSON 对象反序列化到 .NET 列表中

java - 使用 xmldsig 签名的 JAXB 编码