gpt4 book ai didi

java - XJC 生成的命名空间

转载 作者:行者123 更新时间:2023-11-29 07:21:41 32 4
gpt4 key购买 nike

我正在尝试使用 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 并将生成的 java 文件从 "...x.y.z"xsd 命名空间放置在那里

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

com.domain.foo.bar.x  
com.domain.foo.bar.x.y
com.domain.foo.bar.x.y.z package names

这有可能吗?也许使用自定义 JAXB 绑定(bind)?我研究了 jaxb 自定义绑定(bind)文档,但不确定是否可行。

基本上我希望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>

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

关于java - XJC 生成的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463432/

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