在外部绑定文件中设置 XJC javaType 适配器 [英] Set an XJC javaType adapter in external binding file
本文介绍了在外部绑定文件中设置 XJC javaType 适配器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含此内容的 XSD 文件:
I've an XSD file containing this:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
elementFormDefault="qualified"
targetNamespace="http://example.org/">
<xsd:complexType name="Certificate">
<xsd:sequence>
<xsd:element name="certificate" type="xsd:base64Binary">
<xsd:annotation>
<xsd:appinfo>
<xjc:javaType name="java.security.cert.X509Certificate" adapter="adapters.X509CertificateAdapter" />
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<xsd:complexType name="User">
<xsd:sequence>
<xsd:element name="certificate" type="xsd:base64Binary">
<xsd:annotation>
<xsd:appinfo>
<xjc:javaType name="java.security.cert.X509Certificate" adapter="adapters.X509CertificateAdapter" />
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<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>
我想将 xjc javaType 适配器导出到外部 .xjb 文件.在此文件中,我想为 xsd:base64Binary
类型的所有 certificate
元素设置此适配器,但不为 中的
复杂类型,也有 document
元素设置此适配器Serverxsd:base64Binary
类型.
I would like to export xjc javaType adapter to an external .xjb file. In this file, I would like to set this adapter for all certificate
elements with xsd:base64Binary
type but not for document
element in Server
complex type which also has xsd:base64Binary
type.
我该怎么做?
推荐答案
改变你的 xsd
<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>
并添加此绑定配置
<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>
这篇关于在外部绑定文件中设置 XJC javaType 适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文