Woj*_*zyk 1 java namespaces jaxb xjc
我正在尝试*.xsd
使用xjc代码生成工具从文件包生成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
Run Code Online (Sandbox Code Playgroud)
XJC生成包如下:
com.domain.foo.bar.x并从"... x"和"... xy"xsd名称空间放置生成的java文件
com.domain.foo.bar.x_y并从"... xyz"xsd名称空间放置生成的java文件
我想在这里实现的是正确的:
com.domain.foo.bar.x
com.domain.foo.bar.x.y
com.domain.foo.bar.x.y.z package names
Run Code Online (Sandbox Code Playgroud)
这有点可能吗?也许使用自定义JAXB绑定?我研究过jaxb自定义绑定文档,但我不确定它是否可行.
基本上我希望xjc同时处理"/"和"." 作为包分隔符.
任何帮助赞赏.
阿德尔伯特
使用jaxb:package
自定义:
<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>
Run Code Online (Sandbox Code Playgroud)
或者,您可以将命名空间重命名为http://www.domain.com/foo/bar/x/y/z
.