我有20,000行+ ACORD(保险行业的标准架构)架构。我想“缩小”或“切片”架构,只包括我们将在事务中使用的那些数据元素。虽然我当然可以手动完成,但这是一个艰苦的过程。
是否有人使用过实用工具来促进这些子模式的定义?非常感谢帮助。
答案 0 :(得分:2)
QTAssistant(我与之相关)XML Schema Refactoring(XSR)是一种可以非常轻松地完成此任务的工具。
从概念上讲,它涉及两个工作模块:
支持交互式(使用图形用户界面)和命令行,后者用于连续集成堆栈等。
让我们假设你想要的只是发布UserAuthRequest / Response和所有其他依赖项。示例设置如下所示;主要内容是:
然后,您可以通过注入序列,排除,重命名,重新键入,XML命名空间“重定向”等来进一步自定义内容模型 - 我们称之为“重构”。单击引用,然后展开本地排除,如果有要删除的粒子等等。完成后,单击生成 - 您就完成了。
然后可以将保存的XSR文件作为参数传递给命令行实用程序,以从标签生成相同的文件,并将生成的文件重新签入,传递给xsd.exe或xjc
从统计数据中可以看出,从4633个元素,1123个复杂类型和589个简单类型中,你剩下40个元素,14个复杂类型和6个简单类型。
您可以通过选择所需的特定组件,根据需要在输出文件中添加/调整您想要的内容;重构引擎将自动引入所有依赖项。
默认情况下,生成的文件是排序的:简单类型,复杂类型,元素。您可以通过指向“模型文件”来覆盖它并维护“原始”布局 - 可以是原始XSD或任何其他XSD。当人们想要依赖“哑”文本/ xml比较工具时,无论出于何种合规原因,这都会派上用场。
奖励包括显示XSD组件之间关系的视图......
或者,在“可推断”的情况下,XSD的关系视图(在.NET上称为DataSet):