3

我有 20,000 行+ ACORD(保险业的标准架构)架构。我想“精简”或“切片”模式以仅包含我们将在事务中使用的那些数据元素。虽然我当然可以手动完成,但这是一个艰苦的过程。

有没有人使用实用程序来促进这些子模式的定义?非常感谢您的帮助。

4

1 回答 1

2

QTAssistant(我与它相关联) XML Schema Refactoring (XSR) 是一个可以很容易做到这一点的工具。

从概念上讲,它涉及两个工作模块:

  • 在架构集合中组织源 XSD。
  • 使用一个或多个 XSD 文件集定义“发布”。

支持交互式(使用图形用户界面)和命令行,后者用于持续集成堆栈等。

假设您想要只发布 UserAuthRequest/Response 和所有其他依赖项。示例设置如下所示;主要内容是:

  • 合集(这里是v2.26.0)
  • 引用此特定版本的版本(ACORD 版本)。这个想法是,如果将来您添加另一个版本,您可以“升级”您的版本以引用新版本,从而轻松保持对新版本标准的遵守,而无需重做“编辑”。
  • 带有关联过滤器的文件集(20% 发布)。在这种情况下,我设置了一个文件,该文件是“播种”的,其中包含两个元素 UserAuthRequest 和 UserAuthResponse。

QTAsistant ACORD 设置

然后,您可以通过注入序列、排除、重命名、重新键入、XML 命名空间“重定向”等来进一步定制内容模型——我们称之为“重构”。单击引用,然后展开局部排除(如果您想摆脱粒子等)。完成后,单击生成- 就完成了。

QTAssistant 过滤 ACORD 版本

然后可以将保存的 XSR 文件作为参数传递给命令行实用程序,以从标签生成相同的文件,并将生成的文件重新签入,传递给 xsd.exe 或 xjc

从统计数据可以看出,从 4633 个元素、1123 个复杂类型和 589 个简单类型中,剩下 40 个元素、14 个复杂类型和 6 个简单类型。

通过选择所需的特定组件,您可以根据需要在输出文件中添加/调整;重构引擎将自动引入所有依赖项。

默认情况下,生成的文件是排序的:简单类型、复杂类型、元素。您可以通过指向“模型文件”来覆盖它并保持“原始”布局 - 可以是原始 XSD 或任何其他文件。当人们出于任何合规原因想要依赖“愚蠢的”文本/xml比较工具时,这会派上用场。

在此处输入图像描述

额外的东西包括显示 XSD 组件之间关系的视图......

在此处输入图像描述

或者,在“可推断”的情况下,XSD 的关系视图(在 .NET 上称为 DataSet):

在此处输入图像描述

于 2013-03-06T02:35:21.733 回答