java - 将 Java 转换为 XSD 的用例与使用 JAXB 将 XSD 转换为 java 的用例是否不同?

标签 java xml jaxb xsd

我见过类似的问题,说采取的方向(java到xsd或xsd到java)取决于你的重点,换句话说,你是在寻找创建完美的模式还是完美的java设计。

但是我很想知道用例是否真的相同。一位同事评论道:“你为什么要从 java 转向 xsd?”,如果你这样做,你就已经创建了一个实现。哪一种确实引出了一个问题,为什么你要从手写java开始,转换为xsd,然后最终转换为生成的java。

要尝试以不同的方式问它,您采取哪条路线(java 到 xsd 或 xsd 到 java)真的很重要,因为最终您需要的工件是 xsd,当并且如果必填。

最佳答案

每种方法都有其优点和缺点:

XML 到 Java:

  • PRO:接口(interface)契约是一流的工件。它是明确设计和编码的。 XSD 直接且自然地支持约束的表达(例如元素可以/应该出现的次数)。
  • CON:难度。根据我的经验,我发现大多数专业 Java 开发人员往往不熟悉 XML Schema。因此可能会有一个学习曲线。

Java 到 XML:

  • PRO:快速、高效的开发。查看 JAX-RS 和 JAX-WS 规范(在 Apache CXF 等工具中实现)。这些 API 将注释应用于 Java 接口(interface)以生成 Web 服务。 Web 服务合约(即 XSD 中的 WDSL/WADL)由 Web 服务框架自动生成。这里的优点是 Java 开发人员可以完全使用 Java 工作。无需学习 XSD。
  • CON:因为接口(interface)是生成的,所以它不是一流的工件。它不能轻易地与您的服务的消费者共享。这也意味着 Java 开发人员可能会更改部分 Java 接口(interface),并无意中更改服务契约。我见过这种情况发生。对对象结构的更改(顺便说一句,甚至不是方法签名更改)可以更改 XSD。

关于java - 将 Java 转换为 XSD 的用例与使用 JAXB 将 XSD 转换为 java 的用例是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215058/

相关文章:

gradle - 无法成功建立gradle

Java 中的 Java 多重比较

java - 如何使用 Java 创建 PostgreSQL 连接池?

java - 更改 Java Swing 应用程序上的标题

java - 如何将字符串格式化为一行,StringUtils?

ruby-on-rails - 从 ActiveResource 请求中删除 .xml 扩展名

xml - 用于欧洲字符的 XSLT 字符填充至固定宽度输出

java - Java上的PreparedStatement以及设置参数的概率

java - JAXB Marshal 异常 : . Impl 类或其任何父类(super class)都不为任何此上下文所知

java - 使用 Java XML 注释将列表保存为字符串