gpt4 book ai didi

java - 使用 XJC(of JAXB) 从 XML 模式定义生成 Java 类的问题

转载 作者:行者123 更新时间:2023-12-04 07:04:50 26 4
gpt4 key购买 nike

我有一个看起来像这样的 XML 和一个相应的 xsd。

<books>
<book name="book1" id="book1">
<name>Harry Potter</name>
...........
</book>
...........
</books>

请注意,“名称”出现了两次,一次作为标签中的属性,一次作为标签下的元素。显然这是无效的语法,我不确定。

当我尝试使用 xjc 命令(JAXB)为此生成 java 类时,它对 xsd 文件中的无效重复条目进行了比较。

但是,我可以在 VS 2008 中使用 xsd 命令为 xsd 生成 C# 类。

我有三个问题。
  • 那个 XML 语法错了吗?
  • 为什么 xjc(of JAXB) 报告错误而 xsd(of VS2008) 没有?
  • 有什么方法可以让 xjc(of JAXB) 生成类(我不必更改 XML/XSD 文件)?

  • 我不想更改 XML/XSD 文件,因为它是 20,000 行文件。但这对我来说是最后的选择。

    最佳答案

  • 架构没有错,但设计得很糟糕。对属性和子元素使用相同的名称会造成混淆,尽管这是合法的。
  • 因为它们是为不同语言生成代码的不同工具。
  • XJC 可以使用“绑定(bind)自定义”,它允许您影响它生成代码的方式。这包括为任何给定模式元素更改生成的 java 名称的能力。这记录在 JAXB tutorial (见第 5 章,特别是 5.3)
  • 关于java - 使用 XJC(of JAXB) 从 XML 模式定义生成 Java 类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1269890/

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