使用 XJC 生成 Java 源代码时使用 JAXWS enableWrapperStyle

2024-01-29

我正在尝试从 XSD 生成 Java 源代码,并且必须使用 JAXWS 禁用包装器样式。我已经编写了自定义绑定,但 JAXWS 似乎不适用于 XJC。我使用的绑定非常简单。

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

<jaxb:bindings>
    <jaxb:globalBindings typesafeEnumMaxMembers="2000" generateElementProperty="false" >
         <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
    </jaxb:globalBindings>
</jaxb:bindings>

如果我尝试运行 ant 脚本,我会收到以下错误消息。

 [xjc] [ERROR] Unsupported binding namespace "http://java.sun.com/xml/ns/jaxws". Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc"?
  [xjc]   line 2 of file:/D:/xxxxxxxxxx/xxxxx/xxxx.xsd
  [xjc] [ERROR] cvc-complex-type.2.4.a: Invalid content was found starting with element 'jaxws:enableWrapperStyle'. One of '{"http://java.sun.com/xml/ns/jaxb":javaType, "http://java.sun.com/xml/ns/jaxb":serializable, "http://java.sun.com/xml/ns/jaxb/xjc":serializable, "http://java.sun.com/xml/ns/jaxb/xjc":superClass, "http://java.sun.com/xml/ns/jaxb/xjc":superInterface, "http://java.sun.com/xml/ns/jaxb/xjc":typeSubstitution, "http://java.sun.com/xml/ns/jaxb/xjc":smartWildcardDefaultBinding, "http://java.sun.com/xml/ns/jaxb/xjc":simple, "http://java.sun.com/xml/ns/jaxb/xjc":treatRestrictionLikeNewType, "http://java.sun.com/xml/ns/jaxb/xjc":javaType, "http://java.sun.com/xml/ns/jaxb/xjc":generateElementProperty, "http://java.sun.com/xml/ns/jaxb/xjc":noMarshaller, "http://java.sun.com/xml/ns/jaxb/xjc":noUnmarshaller, "http://java.sun.com/xml/ns/jaxb/xjc":noValidator, "http://java.sun.com/xml/ns/jaxb/xjc":noValidatingUnmarshaller}' is expected.
  [xjc]   line 8 of file:/D:/xxxxxxxxxx/xxxxx/xxxx/xsd/xsd-binding.xml

我已经尝试仅使用 jaxws,但 XJC 期望 JAXB 作为主要绑定。 通过此绑定:

<bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://java.sun.com/xml/ns/jaxws"
    jaxb:version="2.1" extensionBindingPrefixes="xjc annox">
    <enableWrapperStyle>false</enableWrapperStyle>
    <jaxb:bindings>
        <jaxb:globalBindings typesafeEnumMaxMembers="2000" generateElementProperty="false" />
    </jaxb:bindings>
</bindings>

我收到错误:

[xjc] [ERROR] not an external binding file. The root element must be {http://java.sun.com/xml/ns/jaxb}bindings but it is {http://java.sun.com/xml/ns/jaxws}bindings
      [xjc]   line ? of file:/D:/xxxxxx/xsd-binding.xml
      [xjc] [ERROR] Unexpected <bindings> appears at line 4 column 61
      [xjc]   line 4 of file:/D:/xxxxxx/xsd-binding.xml

是否可以使用jaxws:enableWrapperStyle在jaxb里面?如果是的话,我忽略了什么?先感谢您!


我找到了解决方案。 JAXWS 元素必须位于 JAXB 元素内部,并且必须声明如下:

<?xml version="1.0"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.1" jaxb:extensionBindingPrefixes="xjc annox">
    <jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
        <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
    </jaxws:bindings>
    <jaxb:bindings>
        <jaxb:globalBindings typesafeEnumMaxMembers="2000" generateElementProperty="false"/>
    </jaxb:bindings>
</jaxb:bindings>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XJC 生成 Java 源代码时使用 JAXWS enableWrapperStyle 的相关文章

随机推荐

  • 继续 Jenkins 管道过去失败的阶段

    我有一系列执行快速检查的阶段 我想把它们全部完成 即使有失败 例如 stage one node sh exit 0 stage two node sh exit 1 failure stage three node sh exit 0 S
  • 如何使用JPA实现时态表?

    我想知道如何实施时态表 http en wikipedia org wiki Temporal database在带有 EclipseLink 的 JPA 2 中 我所说的时间是指定义有效期的表 我面临的一个问题是 由于引用表的性质 现在它
  • 不安全的指针和 Clang

    也许只是我今天过得很奇怪 但我有几个问题Clang需要一个简短示例的警告 假设有一段时间有这样一段代码 file unsafe c include
  • 如何在 C++ 中检查系统是否处于活动状态?

    我正在编写仅当 PC 上没有人类活动时才需要运行的代码 例如当屏幕保护程序运行时 关于如何在 Windows 下用 C 执行此操作有什么建议吗 talnicolas 只是为了使用未使用的资源 有多少次人们让计算机打开但他们在另一个地方 您可
  • Flutter、Visual Studio 代码项目卡在分析中

    我有一个 flutter 项目 可以使用 git 终端和 flutter 命令毫无问题地运行 flutter run但最近当我尝试使用 Visual Studio Code 打开同一个项目时 我一直面临这个问题 一旦 VS Code 启动
  • ggplot2:用图例制作多条线+带

    我想在 ggplot2 中绘制一个图 多行 每个都有一条环绕的丝带 具有用户指定的颜色 并带有显示线条颜色和色带颜色的图例 向下滚动查看一个绘图示例almost达到我所追求的目标 我见过相关的问题 但没有一个能够一起解决所有这些问题 并且我
  • 将空参数传递给 SignalR 客户端代理时“值不能为空”

    使用 SignalR v2 0 2 我收到此异常 Value cannot be null Parameter name o at Newtonsoft Json Utilities ValidationUtils ArgumentNotN
  • 如何开始编写 iPad 应用程序?

    我从桌面 Apple 编程中了解到 Objective C 但我想跟上 iPad 的潮流 开始开发一些小型的寓教于乐的小程序 iPad API 是否与 iPhone 相同 只是功能更强大 我需要加入 iPhone 开发者计划吗 起价仍然是
  • 窗口形式的一个窗口的 C# 多个 GUI [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我和我的朋友正在尝试使用 Visual Studios Community 开发一款文本游戏 到目前为止 我们已经以 Windows
  • 在ggplot2中,如何选择图例中出现哪个几何图形?

    一些几何图形掩盖了图例中其他几何图形的关键 特别是箱线图 如何选择图例中出现的几何图形 Eg qplot data CO2 x Type y uptake colour Plant shape Treatment geom boxplot
  • microsoft Visual Studio遇到这种情况需要关闭如何解决

    大家好 我遇到了这个问题microsoft visual studio has encountered a problem and needs to close特别是当我打开一个解决方案时 有多种解决方案 但当特别打开一个特定的解决方案时
  • 如何设置指令的动态控制器?

    空谈很便宜 先展示我的代码 HTML div div 指示 angular module attrDirective directive addIcons function compile return restrict A control
  • 如何替换字符串中的QRegExp?

    我有一根绳子 例如 QString myString Today is Tuesday 要求是 当用户输入一个字符串时 如果该字符串包含在myString 那么该部分在myString应该是粗体 并且不区分大小写 Qt CaseInsens
  • 如何在不使用 Transform.Rotate 的情况下在本地轴或世界轴上旋转带有第二个四元数的四元数?

    Transform Rotate https docs unity3d com ScriptReference Transform Rotate html有一个非常有用的界面 用于选择是否相对于世界轴或局部轴进行旋转 在幕后 它对变换进行一
  • 如何在 Magento 中获取可配置项的所有超级属性选项

    我的系统中有可配置的产品 包括颜色和尺寸 我编写了以下代码来获取数据 但它太慢了 在添加这段代码之前 页面加载时间低于 2 秒 添加后则跃升至 15 秒 当然有更快的方法来获取这些信息 我有 2 个超级属性 每个属性大约有 10 个选项 我
  • 我破坏了 npm 吗?

    大约一天前 我发布了一个 npm 模块 从那以后我已经多次更新了版本 一开始是 0 0 0 然后是 0 0 1 现在是 0 1 1 当我访问https www npmjs com package skipper minio https ww
  • 在 Windows 上使用 Makefile 进行编译

    我想在 Windows 环境中使用 MakeFile 编译我的代码 我已经在 Linux 中创建了 Makefile 但不知道如何在 Windows 中创建和运行 我已经安装了 MinGW 并编辑了环境变量路径 我尝试像在 Linux 环境
  • 第二次“显示”后引导工具提示消失

    我想根据一些用户输入生成手动工具提示 最简单的方法是隐藏所有工具提示 然后显示相关的工具提示 我已将代码减少到最基本的部分 并且我的工具提示在第二次 显示 后不断消失 我正在使用 bootstrap 3 3 4 和 jquery 2 1 3
  • 需要 zend 框架 URL 重写帮助

    我需要 zend 框架中 URL 重写的帮助 如果我打印以下 URL echo this gt url array controller gt guestbook action gt edit id gt entry gt id null
  • 使用 XJC 生成 Java 源代码时使用 JAXWS enableWrapperStyle

    我正在尝试从 XSD 生成 Java 源代码 并且必须使用 JAXWS 禁用包装器样式 我已经编写了自定义绑定 但 JAXWS 似乎不适用于 XJC 我使用的绑定非常简单