gpt4 book ai didi

java - 如何基于XSD "Auto-Repair"XML?

转载 作者:行者123 更新时间:2023-11-29 05:30:16 24 4
gpt4 key购买 nike

我有一个 XML 和 XSD 文件。 XML 文件是在 tomcat/ubuntu 平台上使用 Java 生成的。

它用于系统之间的集成。第二个系统正在使用 XSD 验证我的 XML,它说我的 XML 不正确。

我想慢慢修复 XML 文件,但是有时间问题。他们希望我的 XML 尽快通过 XSD 正确。

是否有任何工具/算法可以处理我的 XML 和 XSD。添加不存在的模拟字段。

我想要的:我尚未正确的 XML 进入方法并返回 XSD 正确的 XML。

听起来有些测试框架应该能够做到这一点。

请帮忙。

最佳答案

你描述为 f(invalid XML, target XSD) = valid XML 的内容几乎不可能以通用方式构建,除了琐碎的 XML/XSD 之外……这可能是一个原因为什么(至少)我不知道有任何主流工具会做这样的事情......(只是给了你我对你问题的简短回答)。

鉴于在 XSD 中描述相同 XML 的方式多种多样,并且可能使无效 XML 符合的方式多种多样(严格来说,有些情况是不可能修复的)......找出修复 XML 所需的模式(假设它们的错误是一致的)并通过自定义脚本应用这些更正(XSLT 可能是一个,但我我还看到了基于“diffgram”的方法,具体取决于您拥有的工具和/或技能)。

我个人对在这里回复的兴趣...与这样一个事实有关,即测试框架(我们有一个,仅在 Windows 上运行)通常能够从各种数据源收集测试数据,并从中创建有效的 XML它基于指定的 XSD 和某种映射元数据。 “映射元数据”可能包含我在上面提到的模式所需的数据......

虽然配置这样一个框架可能需要时间,具体取决于您的 XML/XSD 中的复杂性...这里的要点是,除了微不足道的事情,测试框架中也没有太多的“自动魔术”。

(更新回复:评论中的模拟/框架方面)

您似乎正在尝试修复本应修复其他问题的问题(即模拟)。如果模拟是您所需要的,那么我的模拟方法有点不同,如果只是因为我在很多年前遇到过同样的问题(甚至在 XQuery 或 XML 数据库之类的东西被发明之前)。在最简单的设置中,数据驻留在电子表格中;专有的 XML Builder shapes 数据到层次结构中,通过遍历(任意)XSD 描述的内容模型将其拉入;数据可以从 Excel 中提取,从外部数据源中查找,默认等。结果可以是一个或多个 XML 片段,然后可以使用 XSLT 或 COBOL copybooks 对其进行转换,并保存为文件,或作为基于 TCP/IP 的模拟框架(用于 Web 服务、IMS 事务等)

我所描述的这种模拟方法...将“数据放在首位”,因为我们意识到相同的数据/测试用例可用于测试 Web 服务、IMS 事务、驱动 UI 自动化测试...或其他任何内容一个人在企业环境中遇到。 “塑造”数据以符合特定规范(XSD、COBOL Copybook、CSV 等)是“表示”……因此关注点分离。想象一下我“注入(inject)”您似乎缺少的字段并获取新的 XML 是多么容易...

关于java - 如何基于XSD "Auto-Repair"XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21334078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com