gpt4 book ai didi

jaxb - xjc 生成的代码引用来自 sun 内部包的 OverrideAnnotationOf 注解

转载 作者:行者123 更新时间:2023-12-01 03:59:17 34 4
gpt4 key购买 nike

我正在尝试从一组 XML 模式生成 Java 类。以下绑定(bind)文件用于处理模式中的混合内容:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"
xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings generateMixedExtensions="true"/>
</jaxb:bindings>

代码生成工作正常,但其中一个生成的类具有来自 com.sun.xml.internal.bind.annotation 包的 @OverrideAnnotationOf。这个包包含在 rt.jar 中,但是常规的 java 编译器找不到它(并且可能不应该找到它,因为它是 sun 内部的)。

有没有办法处理混合内容并且在我生成的代码中没有来自 sun 内部包的 OverrideAnnotationOf?

最佳答案

在 Java 6 及更高版本中,oracle 将 JRE 中嵌入的 JAXB 实现移动到不同的包中,以防止与外部 JAXB reference implementation 的潜在冲突。 .

所以类OverrideAnnotationOf从包中移出 com.sun.xml.bind.annotation打包com.sun.xml.internal.bind.annotation .

然而,嵌入式 xjc 仍会生成带有 com.sun.xml.bind.annotation.OverrideAnnotationOf 注释的 java 文件。 (!)

因此,Java 7 附带的 JAXB 实现将无法理解它自己使用 generateMixedExtensions="true" 生成的输出。 .即使您使用 -XDignore.symbol.file选项。

关于jaxb - xjc 生成的代码引用来自 sun 内部包的 OverrideAnnotationOf 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592637/

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