java - 是否有支持泛型类型的 XML 模式的替代方案?

标签 java generics inheritance cross-platform xsd

您好, 在模型驱动架构的实现过程中,我遇到了很多问题。有一个信息模型规范,它使用了通用类型和继承。它旨在跨多个平台(MS、*nix、OsX..)以各种语言实现

问题是,XML 模式被视为表示此信息模型的第一个工具。假设一切都连接到 XML。然而,XML schema 不支持泛型类型,这对应于 Java、C# 等中的泛型。Java 泛型实现中的类型删除也是另一个大问题,但是有了支持泛型的建模形式主义,我可以找到一个 walk around for这个。

所以我需要一个可计算的标准,它可以让我使用通用类型和继承来表达这个信息模型。使用 XML 模式,我无法表达通用类型,因此从 [信息模型规范] -- ~~~ --> [XML 模式] 开始时会丢失信息,这会导致很多问题。

Protocol buffers 在很多方面都很有吸引力,因为它似乎允许快速的跨平台/语言通信,但我还没有机会看到它的建模能力..

我觉得被所有这些限制困住了。目前,我不得不在 xml 模式之上使用某种其他形式的表示来跟踪通用类型,这不是一个好的解决方案。

如有任何建议,我们将不胜感激

问候 塞夫

最佳答案

我觉得你可能对你的模型层要求太多了。

XML 通常用于集成任务,因为您可以用半标准化的方式表示和序列化结构化数据。但是,对于每个子系统,您仍然必须解决在(取消)编码实时数据时出现的问题;几乎总是有一点阻抗不匹配。

所以我认为您应该接受您的规范数据模型(表示为 XML 类型和事件)与每个子系统的 OO 或关系模型一对一匹配,或涵盖它们的所有细节,例如泛型的使用。连接器(SOAP 网络服务、文件解析器、ESB 或您将使用的任何基础设施)应该与规范模型相互转换。规范数据模型应该是“领先的”,足够详细以允许所有业务需求,并且足够通用以便为具有不同内部表示的不同子系统留有一些余地。

希望这能提供新的见解并帮助您找到正确的解决方案。

关于java - 是否有支持泛型类型的 XML 模式的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132786/

相关文章:

java - BouncyCaSTLe - 从 X509Certificate 对象创建 Store

Java 泛型 : Error when using innerclass

c# - 在运行时使用动态泛型参数转换泛型

java - 为什么 ArrayList 在内部使用 Object[](而不是 E[])?

使用prototype属性的javascript继承

c++ - 多态继承不覆盖基类方法

java - 使用 do/while 循环对用户输入进行错误检查

java - 绘制的字符串(使用drawString)闪烁

java - org.bsc.maven.maven-processor-plugin 不适用于 java 1.7 及更高版本

java - 方法链接+继承2次或多次