gpt4 book ai didi

xml - 在外部绑定(bind)文件中设置 XJC javaType 适配器

转载 作者:数据小太阳 更新时间:2023-10-29 02:47:50 25 4
gpt4 key购买 nike

我有一个包含以下内容的 XSD 文件:

<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 元素设置此适配器Server 复杂类型,也有 xsd:base64Binary 类型。

我该怎么做?

最佳答案

改变你的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>

并添加这个绑定(bind)配置

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

关于xml - 在外部绑定(bind)文件中设置 XJC javaType 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com