Java XJC生成的名称空间

Java XJC生成的名称空间,java,namespaces,jaxb,xjc,Java,Namespaces,Jaxb,Xjc,我正在尝试使用xjc代码生成工具从*.xsd文件包生成java源文件 这些*.xsd文件中使用的名称空间如下所示: http://www.domain.com/foo/bar.x http://www.domain.com/foo/bar.x.y http://www.domain.com/foo/bar.x.y.z XJC生产的软件包如下: com.domain.foo.bar.x并将从…x和…x.y xsd命名空间生成的java文件放在那里 com.domain.foo.bar

我正在尝试使用xjc代码生成工具从*.xsd文件包生成java源文件

这些*.xsd文件中使用的名称空间如下所示:

http://www.domain.com/foo/bar.x  
http://www.domain.com/foo/bar.x.y  
http://www.domain.com/foo/bar.x.y.z  
XJC生产的软件包如下:

com.domain.foo.bar.x并将从…x和…x.y xsd命名空间生成的java文件放在那里

com.domain.foo.bar.x_y并将从…x.y.z xsd命名空间生成的java文件放在那里

我想在这里实现的是正确的:

com.domain.foo.bar.x  
com.domain.foo.bar.x.y  
com.domain.foo.bar.x.y.z package names  
这有可能吗?也许使用自定义JAXB绑定?我已经研究过jaxb定制绑定文档,但我不确定这是否可行

基本上,我希望xjc同时处理/和。作为包装分离器

谢谢你的帮助

Adalbert使用jaxb:包定制:

<jaxb:bindings
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
        <jaxb:schemaBindings>
            <jaxb:package name="com.domain.foo.bar.x.y.z"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>
或者,您可以将名称空间重命名为http://www.domain.com/foo/bar/x/y/z.

使用jaxb:包定制:

<jaxb:bindings
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
        <jaxb:schemaBindings>
            <jaxb:package name="com.domain.foo.bar.x.y.z"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>

或者,您可以将名称空间重命名为http://www.domain.com/foo/bar/x/y/z.

我通过为特定XSD文件提供自定义绑定部分解决了此问题我通过为特定XSD文件提供自定义绑定部分解决了此问题