我正在开发一个.net系统,它将公开和使用另一个系统的Web服务来回传递数据 - 另一个系统是基于java的。
我们提出的XSD包含复杂的类型,并且已经表达了关于使用复杂类型以及我们如何更好地坚持简单类型的一些关注。我曾经想过.net本来可以支持复杂的类型,所以希望有人可以详细说明我可能面临的问题。我试过谷歌搜索,但没有找到任何具体的。
Exposing .NET WebService to Other Platform (Java) stackoverflow问题的答案是
“这应该开箱即用,但是 我建议不要回来 复杂的数据结构或期望 比如输入参数。如果你需要 这种复杂性,我愿意 建议返回/接受XML 代替“。
但并没有真正解释原因,所以任何想法/解释都非常感激
编辑 - 注意我并不打算通过这些服务传输特定于平台的对象,而是希望将共享XSD中的业务实体建模为复杂类型,由简单类型构建(以便它们可以轻松控制和在其他XSD中重复使用)这些是引起关注的元素。
我计划对此进行一些概念验证,看看我是否可以证明这个工作/表面存在任何问题,但我想我会先得到一些SO用户的观点,这些用户之前已经这样做了。
答案 0 :(得分:2)
有许多特定于平台的类型可以轻松使用,只要两个端点是同构的,但不能完全映射到xsd或其他平台。例如,.NET中的DataTable
是来自其他任何地方的皇家PITA;在.NET中实现IXmlSerializable
的任何东西都很可能完全位于模式中。
在互操作方案中,通常值得从xsd开始,因为它提供了所有合理客户应该期望的通用标准。