使用XMLSpy校验xml是否合法

背景说明

近期大部分地区都在做或将要做数据迁移,基本所有产品的迁移工具底层都依赖了XSD文件对迁移的结构化数据对应XML文件进行初步校验,但有些XSD的问题提示不太容易理解,正好N年前我做XX数据上报时用过XMLSpy可以直接校验每个xml是否合法,在这里分享给大家。

前置条件

  • 有问题的xml(必须是具体的xml,如“0206_05532022020607xxxx.xml”)
  • 问题xml对应的完整xsd(必须是问题xml对应的xsd,如“0206_刑事xxxx案件_all.xsd”;注意必须是完整的,合并过的xsd,否则可能不能正确解析,如“0206_刑事xxxx案件.xsd”里面引用了好几个其他的xsd,最终经过merge才整合成了“0206_刑事xxxx案件_all.xsd”)

使用方法

  • 打开问题xml(如“0206_05532022020607xxxx.xml”)
  • 修改xml顶部的“xsi:schemaLocation=“http://EDI.court.gov.cn/2016 0206_刑事xxxx案件_all.xsd”” 元素,一个是删除前半段“/2016/data”中的“/data”,另一个是将后半段的xsd改成具体的xsd(一般merge后的末尾会加_all)
  • 将修改后的xml和xsd放在同一目录(理论上xml中写xsd的绝对路径也行,但一般放相同目录比较省事儿)
  • 打开“XMLSpy.exe”
  • 将修改后的xml拖到XMLSpy窗口中(或者用XMLSpy单独打开也行)
  • 点击XMLSpy上方“XML”-“验证”按钮(或者打开后默认会有校验,右下角可以点击重新验证)
  • 根据XMLSpy定位的问题位置进行问题定位
    ​​使用XMLSpy校验xml是否合法_第1张图片

补充说明

  • 也可以用XMLSpy直接打开整合后的XSD,并点击顶部“DTD/Schema”-“生成样例XML文件”,生成一份符合XSD规范的XML样例,然后比较问题XML位置的差异

你可能感兴趣的:(xml)