.net Web服务与其他平台(如Java)一起使用复杂类型

.net Web服务与其他平台(如Java)一起使用复杂类型,java,.net,xml,web-services,xsd,Java,.net,Xml,Web Services,Xsd,我正在开发一个.net系统,该系统将使用另一个系统公开和使用web服务来来回传递数据,另一个系统是基于java的 我们提出的XSD包含复杂类型,人们对使用复杂类型以及如何更好地坚持使用简单类型表示了一些担忧。我原以为.net能够支持复杂类型,所以希望有人能详细说明我可能会面临的问题。我尝试过谷歌搜索,但没有找到任何具体的东西 stackoverflow问题的答案是 “这应该是开箱即用的,但是 我劝你不要回来 复杂的数据结构或预期 例如输入参数。如果需要 那种复杂性,我会的 建议返回/接受XML

我正在开发一个.net系统,该系统将使用另一个系统公开和使用web服务来来回传递数据,另一个系统是基于java的

我们提出的XSD包含复杂类型,人们对使用复杂类型以及如何更好地坚持使用简单类型表示了一些担忧。我原以为.net能够支持复杂类型,所以希望有人能详细说明我可能会面临的问题。我尝试过谷歌搜索,但没有找到任何具体的东西

stackoverflow问题的答案是

“这应该是开箱即用的,但是 我劝你不要回来 复杂的数据结构或预期 例如输入参数。如果需要 那种复杂性,我会的 建议返回/接受XML 相反。”

但并没有真正解释原因,所以任何想法/解释都非常感谢

编辑-注意我不打算在这些服务上传输特定于平台的对象,相反,我希望将共享XSD中的业务实体建模为复杂类型,由简单类型构建而成(以便它们可以在其他XSD中轻松控制和重用),而这正是引起关注的因素


我计划对此进行一些概念验证,看看我是否能证明这项工作/解决任何问题,但我想我会先了解一些以前做过这项工作的用户的看法。

有许多特定于平台的类型,只要两个端点都是同质的,就可以轻松使用,但它们不能清晰地映射到xsd或其他平台。例如,.NET中的
DataTable
是来自其他任何地方的皇家PITA;在.NET中实现
IXmlSerializable
的任何东西都很可能完全位于模式中


在互操作场景中,从xsd开始通常是值得的,因为它提供了所有合理的客户端都应该期望的通用标准

如果在我的XSD中,我创建了一个新的复杂类型来表示一个业务实体(而不是使用一系列简单类型),那么这两个平台都应该能够解释这一点,因为它对两个平台都不是“特定的”?@Kris-希望如此;唯一确定的方法是通过你希望支持的各种平台进行尝试。这将是我的下一步,从一端到另一端发射一些“跟踪子弹”,但我想我会先到这里看看其他人有什么经历。