架构切片/减肥工具

时间:2013-03-05 23:50:22

标签: xml xsd

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

是否有人使用过实用工具来促进这些子模式的定义?非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

QTAssistant(我与之相关)XML Schema Refactoring(XSR)是一种可以非常轻松地完成此任务的工具。

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

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

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

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

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

QTAssistant ACORD setup

然后,您可以通过注入序列,排除,重命名,重新键入,XML命名空间“重定向”等来进一步自定义内容模型 - 我们称之为“重构”。单击引用,然后展开本地排除,如果有要删除的粒子等等。完成后,单击生成 - 您就完成了。

QTAssistant filtered ACORD release

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

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

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

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

enter image description here

奖励包括显示XSD组件之间关系的视图......

enter image description here

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

enter image description here