将Java转换为XSD的用例与使用JAXB将XSD转换为Java不同吗?

时间:2014-11-30 15:52:54

标签: java xml jaxb xsd

我已经看到类似的问题说要采取的方向(java到xsd或xsd到java)取决于你的焦点,换句话说你想要创建完美的模式或完美的Java设计。

但是我很想知道用例是否真的相同。一位心智的同事评论说,"你为什么要从java转到xsd?"如果你这样做,你已经创建了一个实现。哪种问题确实存在问题,为什么要从手工编写java开始,转换为xsd,然后最终转换为生成的java。

尝试以不同的方式提出问题,你选择哪条路径(java到xsd或xsd到java)真的很重要,因为最后你需要的人工制品是xsd,当和如果你可以将其转换为java。必需的。

1 个答案:

答案 0 :(得分:1)

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

<强> XML到Java:

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

<强> Java到XML:

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