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

将Java转换为XSD的用例与使用JAXB将XSD转换为Java的用例不同吗?,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我曾经看到过类似的问题,即方向(java到xsd或xsd到java)取决于您的关注点,换句话说,您是否希望创建完美的模式或完美的java设计 然而,我很想知道这些用例是否真的相同。一位同事评论道:“为什么要从java转到xsd?”,如果这样做,您已经创建了一个实现。什么样的问题才是真正的问题,为什么要从手工编写的java开始,转换成xsd,然后最终转换成生成的java 试着换一种方式问,你选择哪条路线(java到xsd或xsd到java)真的很重要吗?因为最终你需要的人工制品是xsd,在需要时可

我曾经看到过类似的问题,即方向(java到xsd或xsd到java)取决于您的关注点,换句话说,您是否希望创建完美的模式或完美的java设计

然而,我很想知道这些用例是否真的相同。一位同事评论道:“为什么要从java转到xsd?”,如果这样做,您已经创建了一个实现。什么样的问题才是真正的问题,为什么要从手工编写的java开始,转换成xsd,然后最终转换成生成的java


试着换一种方式问,你选择哪条路线(java到xsd或xsd到java)真的很重要吗?因为最终你需要的人工制品是xsd,在需要时可以临时转换成java。

每种方法都有其优缺点:

XML到Java:

  • 赞成:接口契约是一类工件。它是明确设计和编码的。XSD直接自然地支持约束的表示(例如,元素可以/应该出现的次数)
  • 缺点:难度。根据我的经验,我发现大多数专业Java开发人员往往不能熟练使用XML模式。因此,可以有一个学习曲线
Java到XML:

  • 赞成:快速、高效的开发。看看JAX-RS和JAX-WS规范(在ApacheCXF等工具中实现)。这些API将注释应用于Java接口以生成web服务。web服务契约(即XSD中的WDSL/WADL)由web服务框架自动生成。这里的优点是Java开发人员可以完全用Java工作。不需要学习XSD
  • CON:因为接口是生成的,所以它不是一类工件。它不能很容易地与您服务的消费者共享。这还意味着Java开发人员可以更改Java接口的一部分,并在不经意间更改服务契约。我亲眼目睹了这种情况。对象结构的改变(顺便说一句,它甚至不是方法签名的改变)可以改变XSD