代码之家  ›  专栏  ›  技术社区  ›  Kris C

.NET WebServices与其他平台(例如Java)一起使用复杂类型

  •  1
  • Kris C  · 技术社区  · 14 年前

    我正在研究一个.NET系统,它将公开和使用另一个系统来传递Web服务,以来回传递数据——另一个系统是基于Java的。

    我们提出的XSD包含复杂类型,并且已经对使用复杂类型以及如何更好地坚持简单类型表示了一些关注。我本以为.NET能够支持复杂的类型,所以希望有人能详细说明我可能面临的问题。我试过谷歌搜索,但没有发现任何具体的信息。

    这个 Exposing .NET WebService to Other Platform (Java) StackOverflow问题的答案是

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

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

    编辑-注意,我不打算在这些服务上传输特定于平台的对象,相反,我希望在共享的XSD中将业务实体建模为复杂的类型,这些类型是由简单的类型构建的(这样它们就可以很容易地控制并在其他XSD中重用),这些是引起关注的元素。

    我计划对此做一些概念验证,看看我是否能证明这个工作/表面上的任何问题,但我认为我会得到一些以前做过这件事的SO用户的意见,首先。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Marc Gravell    14 年前

    有许多特定于平台的类型,只要两个端点都是同构的,就可以很容易地使用,但这些类型不能清晰地映射到XSD或其他平台。例如 DataTable 在.NET中是来自其他任何地方的皇家PITA;以及任何实现 IXmlSerializable 在.NET中,很可能完全位于架构中。

    在互操作场景中,通常从XSD开始是值得的,因为这提供了所有合理的客户机都应该期望的公共标准。