1

我想通过绑定.xjb文件覆盖我的架构的包。

它是通过以下方式完成的:

<schemaBindings>
    <package name="com.schema.common" />
</schemaBindings>

JXC 编译器需要上述代码的上下文,通过schemaLocation.

我将文件存储在单独.xsd.xjb目录中,这看起来很难看(就像所有 Java EE 一样):

<bindings schemaLocation="../../../../wsdl/common_v47_0/CommonReqRsp.xsd">
    <schemaBindings>
        <package name="com.schema.common" />
    </schemaBindings>
</bindings>

bindings可以在没有相对路径的情况下定义上下文schemaLocation

我害怕 XML 目录,我们处于 WEB 2.0(或者可能是 4.0?)的世界。

我见过SCD ("schema component designator")。它看起来很有希望,但我找不到这种语法的参考......

4

1 回答 1

1

这是SCD的魔力:

<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version='2.1'
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:tns="http://example/schema/common_v47_0">
    <bindings scd="x-schema::tns">
        <schemaBindings>
            <package name="com.schema.common" />
        </schemaBindings>
    </bindings>
</bindings>

所有部分都很重要。SCD 是在version='2.1'.

我在https://github.com/highsource/maven-jaxb2-plugin/wiki/Configure-Target-Packages-in-Binding-Files找到了参考

SCD 是 JAXB 标准的扩展,可以在 JAXB RI 源代码树中研究实现:

于 2019-02-07T07:59:28.290 回答