- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我正在运行一个具有 1 个数据中心(6 个节点)和 Cassandra 3.11.0 的集群,复制因子为 2。我知道 nodetool repair -pr将对该节点上的主要范围进行修复。我的问题是如
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 已关闭8
我正在尝试在我的网站上使用 th:each 函数来查找数据库中的所有狗,并使用以下代码。在我的 Controller 中,我有: @Controller public class DogControl
我的 IDE 不知道我在使用 Subversion,并且每当我重命名类 (Java) 时,它都会重命名文件而不通知版本控制系统。我当然希望保留文件的历史记录。我知道在 TortoiseSVN 中有一个
考虑我当前的 Cassandra 集群如下,DC1:2 DC2:2 每个数据中心有2个节点,RF=2。现在我又添加了 2 个数据中心DC1:2、DC2:2、DC3:2、DC4:2。那么是否需要在DC3
会定期运行nodetool repair在我的 Cassandra 节点上使它们瘫痪? Planet Cassandra FAQ注意(强调), Anti-Entropy Node Repair – F
大约 4 天前我开始了一个修复表: 查询 | 351804 |排序修复 |修复表 它用完了磁盘上的所有空间: /dev/md0 9.2G 8.8G 0 100%/ 一旦我删除某些内容,空间就会很快用完
有谁知道当您在网络连接上单击“修复”时 Windows XP 会做什么?我想以编程方式或从命令行执行相同的操作。 我进行了 Google 搜索并找到了 this article ,其中有一个很好的解释
我已经执行了这个命令,现在码头不起作用了.。我怎样才能正确修理(或重新安装)码头?。我试着去做。但它并没有奏效。以下是我的错误消息:
我已经执行了这个命令,现在码头不起作用了.。我怎样才能正确修理(或重新安装)码头?。我试着去做。但它并没有奏效。以下是我的错误消息:
查询mysql表是否被损坏命令,如下: # CHECK TABLE 表名 mysql的长期使用,肯定会出现一些问题,一般情况下mysql表无法访问,就可以修复表了,优化时减少磁盘占用空间。方便备份
我正在尝试在我添加到由 850 万行组成的 MyISAM 表的新字段上添加索引。查询从“REPAIR BY SORTING”变为“REPAIR BY KEYCACHE”,这似乎是由于排序期间磁盘空间不
来自 http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_repair_nodes_c.html这个我知道 The n
我每天都会将数据摄入到 HDFS 中。从数据到 HDFS,我生成按日期分区的 Hive 外部表。我的问题如下,我是否应该在每次数据摄取后运行 MSCK REPAIR TABLE tablename ,
来自documentation : Using the nodetool repair -pr (–partitioner-range) option repairs only the primary
我有一个 XML 和 XSD 文件。 XML 文件是在 tomcat/ubuntu 平台上使用 Java 生成的。 它用于系统之间的集成。第二个系统正在使用 XSD 验证我的 XML,它说我的 XML
我有一个产品页面,每个产品都有一个模态,每个模态都有一个猫头鹰 slider 。 当我第一次使用某个产品时,它显示得很好,但是当我关闭该产品并打开另一个产品时,猫头鹰 slider 就损坏了。 我尝试
我正在尝试解决以下难题。我对其中一个测试用例感到困惑。 问题是: Byteland 的国家包含 N 个城市和它们之间的 N - 1 条双向道路,使得任意两个城市之间都有一条路径。 Byteland 的
我在 linux 上工作,我正在使用 pthread_rwlock,它存储在共享内存中并在多个进程之间共享。这大部分工作正常,但是当我杀死一个持有锁的进程 (SIGKILL) 时,看起来锁仍然持有(无
我在包含超过 28K 分区的配置单元表上运行 MSCK REPAIR TABLE 表名,我们将每 10 分钟接收一个分区。 当我们每 10 分钟在此表上运行一次 MSCK REPAIR TABLE 时
我是一名优秀的程序员,十分优秀!