Set an XJC javaType adapter in external binding file

前端 未结 1 797
旧时难觅i
旧时难觅i 2020-12-07 04:21

I\'ve an XSD file containing this:



        
相关标签:
1条回答
  • 2020-12-07 05:00

    Change your xsd in

    <xsd:complexType name="Certificate">
        <xsd:sequence>
            <xsd:element name="certificate" type="xsd:base64Binary"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="User">
        <xsd:sequence>
            <xsd:element name="certificate" type="xsd:base64Binary"/>
            <xsd:element name="name" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="Server">
        <xsd:sequence>
            <xsd:element name="document" type="xsd:base64Binary" />
        </xsd:sequence>
    </xsd:complexType>
    

    and add this binding configuration

    <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>
    
    0 讨论(0)
提交回复
热议问题