使用外部绑定生成具有多个前缀的JAXB类

时间:2012-11-01 03:06:33

标签: java jaxb jaxb2 xjc

我有一组XSD文件,如下所示:

它们中的大多数彼此依赖,因此我创建了以下目录文件以允许JAXB编译器(XJC)生成类。

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
    <public publicId="urn:ietf:params:xml:ns:contact-1.0" uri="contact-1.0.xsd"/>
    <public publicId="urn:ietf:params:xml:ns:domain-1.0" uri="domain-1.0.xsd"/>
    <public publicId="urn:ietf:params:xml:ns:epp-1.0" uri="epp-1.0.xsd"/>
    <public publicId="urn:ietf:params:xml:ns:eppcom-1.0" uri="eppcom-1.0.xsd"/>
    <public publicId="urn:ietf:params:xml:ns:host-1.0" uri="host-1.0.xsd"/>
    <public publicId="urn:ietf:params:xml:ns:rgp-1.0" uri="rgp-1.0.xsd"/>
</catalog>

不幸的是,我必须解决一些生成的类名之间的冲突 - 根据我需要创建外部绑定文件的一些研究。

我想在每个XSD上生成直接生成的所有类前缀。

应忽略导入的XSD(例如,epp-1.0导入eppcom-1.0.xsd),因为如果我为每个XSD重复该过程,它们就已经生成了。 (如果可能,请按XSD命名空间加上前缀)

有谁知道如何解决这个问题?

由于XSD文件由第三方维护,因此我无法直接修改XSD。我尝试了以下外部绑定,但它不起作用:

<jxb:bindings version="2.0"
              xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
              xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <jxb:bindings scd="x-schema:epp" node="/xs:schema">
        <jxb:schemaBindings>
            <jxb:nameXmlTransform>
                <jxb:typeName prefix="Epp" />
                <jxb:elementName prefix="Epp" />
                <jxb:modelGroupName prefix="Epp" />
                <jxb:anonymousTypeName prefix="Epp" />
            </jxb:nameXmlTransform>
        </jxb:schemaBindings>
    </jxb:bindings>
    <jxb:bindings scd="x-schema:eppcom" node="/xs:schema">
        <jxb:schemaBindings>
            <jxb:nameXmlTransform>
                <jxb:typeName prefix="EppCom" />
                <jxb:elementName prefix="EppCom" />
                <jxb:modelGroupName prefix="EppCom" />
                <jxb:anonymousTypeName prefix="EppCom" />
            </jxb:nameXmlTransform>
        </jxb:schemaBindings>
    </jxb:bindings>
</jxb:bindings>

输出:

parsing a schema...
[ERROR] XPath evaluation of "/xs:schema" results in empty target node
line 4 of file:/C:/Users/Jin%20Kim/workspace/registry/server/src/main/resources/xsd/bindings.xjb

[ERROR] XPath evaluation of "/xs:schema" results in empty target node
line 14 of file:/C:/Users/Jin%20Kim/workspace/registry/server/src/main/resources/xsd/bindings.xjb

Failed to parse a schema.

0 个答案:

没有答案