使用 JAXB 编译多个包含同一元素的重复定义的 XSD

2023-12-28

问题:如何使 xjc/Jaxb 为同一命名空间中包含重复元素定义的多个模式生成正确的 java 类?

信息:我有三个 .xsd 模式:A、B 和 C。它们都具有相同的目标命名空间。 它们都是给我的 3 个 shemas,我无论如何都不允许以任何方式改变它们。

它们 A 有一些在 B 或 C 中也可以找到的元素(但 A 也有很多自我声明的元素) 示例:A 和 C 的“代码”相同:

<xs:simpleType name="y_ym_ymdDatoType">
    <xs:union memberTypes="arcgYearType arcgYearMonthType arcDateType"/>
</xs:simpleType>
<xs:simpleType name="arcgYearType">
    <xs:restriction base="xs:gYear">
        <xs:minInclusive value="1700"/>
        <xs:maxInclusive value="2100"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcgYearMonthType">
    <xs:restriction base="xs:gYearMonth">
        <xs:minInclusive value="1700-01"/>
        <xs:maxInclusive value="2100-12"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcDateType">
    <xs:restriction base="xs:date">
        <xs:minInclusive value="1700-01-01"/>
        <xs:maxInclusive value="2100-12-31"/>
    </xs:restriction>
</xs:simpleType>

当使用 xjc 将它们编译成 javaclasses 时,出现以下异常:

[ERROR] 'y_ym_ymdDatoType' is already defined
 line 297 of file:../c.xsd

[ERROR] (related to above error) the first definition appears here
 line 309 of file:../a.xsd

同样的情况也发生在其他元素上:arcgYearType、arcgYearMonthType 和 arcDateType。

我读过有关绑定文件的内容,也许可以解决这个问题,但我不确定如何做到这一点,因此示例将是高度首选。


根据您的描述,我认为 XSD 文件之间不存在包含关系。另外,我必须假设您正在尝试重用内容重叠的类。

简单的方法是独立“编译”每个文件,并为每个 XSD 文件提供不同的 Java 包。这里的问题是,如果您尝试将内容从一个 XML 链接到另一个 XML(即从 A 解组,然后编组到 B),则类 C1 位于包 com.A 中,类 C1 位于包 com.B 中,而匹配相同的 XSD 复杂类型,不可“互换”;你必须在它们之间进行转换。您需要自定义绑定文件,或者如果您使用 NetBeans,只需在 JAXB 向导中设置不同的包即可。

最好的方法可能是使用剧集(请参阅这对SO https://stackoverflow.com/questions/5869547/jaxb-creating-modules-for-reuse)。处理 A.xsd,然后使用该情节处理 B.xsd 等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JAXB 编译多个包含同一元素的重复定义的 XSD 的相关文章

  • java字符串索引越界异常

    从类中调用函数时出现以下错误 java lang StringIndexOutOfBoundsException 字符串索引超出范围 1 尽管我使用系统打印来查看我在 substring 函数中传递的输入 但一切似乎都是正确的 函数 isC
  • 超立方体错误。非法的最小或最大规格

    尝试从这里运行示例代码http tess4j sourceforge net codesample html http tess4j sourceforge net codesample html我收到一条错误消息 Error Illega
  • CXF 客户端异常:{XXX} 的拦截器已引发异常,现在展开

    我遇到以下 CXF 异常 warning Interceptor for http example com wsdl esc 2011 12 12 AmazonEC2 http example com wsdl esc 2011 12 12
  • 如何使用 hibernate 过滤器过滤 hibernate 中的实体

    我需要过滤对象列表中的实体 例如 public class Student private int id private List
  • Hazelcast Jet 变更数据捕获

    我在我的应用程序中使用 Hazelcast 更改数据捕获 CDC 我使用 CDC 的原因是 如果使用 jdbc 或其他替代功能将数据加载到缓存中 会花费大量时间 所以CDC将在数据库和 Hazelcast Jet 之间进行数据同步 Stre
  • 椭圆与椭圆如何相交?

    我用的是JAVA Ellipse2D s1 new Ellipse2D Float 0 0 100 100 System out println s1 intersects 99 30 100 100 应该返回 false 但它返回 tru
  • Mac OSX 上使用 Java 7 的透明 JFrame/JWindow

    我们有一个屏幕共享小程序 它打开 Swing JFrame 并使用 Robot 类捕获空框架后面的屏幕 用户可以单击框架并与小程序后面的任何内容进行交互 这在 Windows 上运行良好 并且用于 Apple 的 Java 版本 但对于 M
  • 如何跨工作区保存 E​​clipse 启动配置文件?

    当我复制 Eclipse 项目目录时 它包含 classpath 和 project 文件 这样当我将同一目录带到另一个 Eclipse 实例时 我不必设置我的构建路径等 假设所有资源都包含在在项目中 而不是外部 但是 此过程不会导致启动配
  • 在 Android 上解析 RSS

    我有几个 RSS 源需要为我的应用程序进行解析 我按照这里的优秀教程进行操作 http w2davids wordpress com android rssatom feeds parsing with rome http w2davids
  • 使用java将文件从GCS存储桶传输到SFTP服务器

    我能够从 GCS 存储桶读取文件 但所有库都喜欢jsch将文件传输到 SFTP 服务器时会查找文件路径 而不是内存中的文件 我不想将从GCS读取的文件写入磁盘 如何将内存中的文件传输到SFTP 我假设您想上传内存中的数据 JSch 实际上有
  • 在 Scala 中创建 Java 对象

    我有一个 Java 类 Listings 我在 Java MapReduce 作业中使用它 如下所示 public void map Object key Text value Context context throws IOExcept
  • IntelliJ 对于 Java 项目使用的默认构建过程是什么?

    直接从 IntelliJ 中的 IDE 构建 Java 项目非常好 它速度很快 而且很有效 我无法找到任何有关 IntelliJ 如何进行这些默认构建的文档 我猜它使用Ant 我想做的是为下载我的项目的任何人自动化这个快速 轻松的构建过程
  • 将带有 md5 消息摘要和 DESede/CBC/PKCS5Padding 的 3DES 加密的 java 代码转换为 python

    我有这个工作java代码 它使用3DES加密对密码进行加密 import java security MessageDigest import java util Arrays import java util Base64 import
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • 选择活动时运行时崩溃

    首先我想说我几乎没有 Android 经验 这是我在 Android 中的第一个项目 而且我的老师不太擅长教学 所以我对任何过度的无知表示歉意 在进一步讨论之前先解释一下 我的应用程序的目标本质上是能够记录您在某些活动上花费了多少时间 记录
  • 从 Spring 启动运行 Java 类

    我使用的是Java8和Spring4 3 1 我有一个 Java Spring 应用程序托管由浏览器和移动应用程序客户端访问的 RESTfult 服务 其次 我编写了一个侦听事件的聊天服务器 socket io 来自客户 该聊天服务器正在从
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 我们可以将请求分派到 servlet 内的 HTML

    这可能吗 RequestDispatcher rd request getRequestDispatcher index html rd forward request response 是的 您可以将请求分派到 HTML 页面
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • 是否可以从外部闪存驱动器运行 java (jdk-windows)、Eclipse (indigo) 和 Android-sdk 进行 Android 应用程序开发

    我想知道我们是否可以通过在外部闪存驱动器上保存所需的软件来在我们使用的任何计算机上开发我们的android应用程序 我的意思是在闪存驱动器上安装java eclipse和android sdk 所以最后我们可以将闪存带到任何地方计算机并在任

随机推荐

  • Git Pull:更改身份验证

    我对 git 很陌生 我在服务器 A 上设置了一个存储库 其中通过 ssh rsa 密钥进行访问 我在那里有一些用户 包括我自己 现在我做git clone在我的本地计算机上获取本地副本 进行更改 然后push origin master
  • html 在所有设备上保持相同的字符大小

    我用几个输入按钮做了一个关于 html 的练习 http bullmalay appspot com http bullmalay appspot com 我在手机上访问它 但我发现文字尺寸真的很小 我认为原因在于分辨率 谁能帮我调整一下文
  • Java 中的连接字符串是否总是会导致在内存中创建新字符串?

    我有一条很长的字符串 不适合屏幕的宽度 例如 String longString This string is very long It does not fit the width of the screen So you have to
  • 无法使用带有节点的express使用res.send()发送数字

    我正在尝试使用节点中的 Express 获得 imdb 评级 但我很挣扎 电影 json id 3962210 order 4 361276149749756 1988 fields year 2015 title David and Go
  • 单击时导航项标题消失

    我创建了带有导航视图的抽屉 我有正在调用其他活动的导航项目 问题是当我单击导航项时 其他活动启动 如果我返回主活动并打开抽屉 则单击的导航项的标题消失 只有我可以看到该项目的图标 code public class MainActivity
  • 带有文本、复选框、选择的 jQuery 表过滤器

    需要使用文本搜索 复选框和选择从表外部过滤表 PicNet 表过滤器 http www picnet com au resources tablefilter demo htmfor jQuery 适用于搜索和使用表外的复选框 尽管我找不到
  • Twitter Bootstrap - 100% 高度

    我正在尝试使用 twitter bootstrap 框架为我的应用程序设计一个管理面板 但我无法让我的布局正常工作 I was inspired by this design It would be a two column layout
  • 如何将不同的 DataFrame 组合成一个分组条形图

    我正在尝试复制答案this https stackoverflow com questions 65052443 creating a grouped bar plot with seaborn问题 我看不出我在做什么有什么不同 我的输出
  • 无法从 Linux 连接到 SQL Server

    我正在尝试连接到 CentOS 5 8 上的 SQL Server 2008 我正在使用 unixODBC 2 3 0 和 SQL Server ODBC 驱动程序 www microsoft com en us download deta
  • 链接描述文件中的 KEEP 是什么意思?

    The LD手册 http ftp gnu org old gnu Manuals ld 2 9 1 html mono ld html SEC2没有解释什么KEEP命令执行 下面是第三方链接描述文件的一个片段 其特点是KEEP 什么是KE
  • 在php中组合两个(或更多..)多维数组

    我有一个使用不同参数运行多次的查询 我正在使用 xml 解析器将结果返回给 jQuery 我似乎无法找到一种方法来组合第一个 节点 上的结果而不覆盖第一个条目 简化的代码示例 temp1 returnArray 0 temp2 return
  • 如何像 DevTools 那样突出显示 Chrome 扩展中的元素?

    我有兴趣创建一个 Chrome 扩展程序 它列出了网页上菜单中具有 id 属性的所有元素 然后 当用户单击菜单中的元素时 网页上相应的元素就会突出显示 当您右键单击并检查某个元素时 我看到 Chrome 开发工具会突出显示该元素 我很好奇是
  • uint32_t 和 uint8_t[4] 未定义行为的联合? [复制]

    这个问题在这里已经有答案了 在评论中这个答案 https stackoverflow com a 8568531 1025391据说使用如下联合将整数分割成字节将是未定义的行为 该位置给出的代码与此相似但不完全相同 如果我更改了代码的未定义
  • 使用 SIS 执行 postgres db init 的批处理文件给出权限被拒绝

    跟随我的上一个问题 https stackoverflow com questions 30924913 how to install postgres with nsis with all parameters我现在尝试通过 NSIS 代
  • 将 StackNavigator 与 TabNavigator 集成

    如何组合 StackNavigator 和 TabNavigator 我的以下代码有效 索引 android js import React Component from react import AppRegistry Text View
  • SQL Server 错误:“SQL Server 子查询返回超过 1 个值”

    子查询返回超过 1 个值 当子查询跟在 gt 后面或子查询用作表达式时 这是不允许的 我在调试以下代码时收到此有线错误消息 WHEN NOT EXISTS SELECT 1 FROM defs WITH NOLOCK WHERE defau
  • Neo4J 数据库大小/缩小

    我们有一个包含约 1000 万个节点和约 3 亿个关系的 Neo4j 数据库 数据库已增长至约 80 Gig 日常工作会删除旧数据并添加新数据 因此节点和关系的大约数量保持相当恒定 然而 db 文件的物理文件大小不断增长 例如 relati
  • 具有多核 CPU 的 JAX pmap

    使用多核CPU的正确方法是什么jax pmap 以下示例在 CPU 核心后端上为 SPMD 创建环境变量 测试 JAX 是否识别设备 并尝试设备锁定 import os os environ XLA FLAGS xla force host
  • 使用 XUnit 进行 .Net Core DynamodDB 单元测试

    使用C net core 2 0 dynamo db 我有我的 Web api 它与我的 dynamo db 数据库交互 具有 Get 和 Post 方法 方法示例 HttpGet api data public async Task
  • 使用 JAXB 编译多个包含同一元素的重复定义的 XSD

    问题 如何使 xjc Jaxb 为同一命名空间中包含重复元素定义的多个模式生成正确的 java 类 信息 我有三个 xsd 模式 A B 和 C 它们都具有相同的目标命名空间 它们都是给我的 3 个 shemas 我无论如何都不允许以任何方