gpt4 book ai didi

xml - 如何针对多个 XSD 文件验证 XML?

转载 作者:行者123 更新时间:2023-12-01 23:13:47 25 4
gpt4 key购买 nike

我需要针对给定的 XSD 文件验证多个 XML 文件。问题是 XSD 是由两个文件组成的。它们是嵌套的,但我知道哪个是第一个(其他人的“ parent ”)。在 XML 文件中,我使用命名空间来定义子节点在哪个 XSD 中定义 (<CBIBdySDDReq xmlns="urn:CBI:xsd:CBIBdySDDReq.00.00.06" xmlns:msg="urn:CBI:xsd:CBISDDReqLogMsg.00.00.06"> )。
我正在使用用于 Notepad++ 的 XMLTools 插件进行其他测试,但它无法找到并验证这些 XSD 文件,因为我只能提供一个 XSD 作为参数进行验证。

是否有一种工具能够针对多个 XSD 文件测试我生成的 XML 文件?

最佳答案

你应该认为自己很幸运,你没有被严重低估......如果只是因为做事的工具(推荐)不在范围内here ...

尽管如此,如果这是关于如何使用您已经在使用的工具来实现您所需要的......并且我已经看到了很多关于 SO 的问题......那么一种方法可以在任何时候有人拥有能够提供单个 XSD 文件的限制...是创建这样一个 XSD 文件,该文件下面将导入您需要引用的所有其他 XSD 文件。

这是一个适用于您的情况的 stub XSD 示例:

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="(a)" schemaLocation="(b)"/>
</xsd:schema>

在哪里:

(a) 是您在希望引用的 xsd:schema 的 targetNamespace 属性中看到的值;如果没有 targetNamespace,则删除命名空间属性(并将包含一些虚拟值的 targetNamespace 添加到 stub XSD)

(b) 包含要引用的 XSD 的文件的位置。首先使用这里的完整路径;随着您更多地了解 XSD 或您的工具,您可能会得出结论,如果您的工具支持,最好提供相对 URI,即在您的“ stub ”XSD 的位置之间(它确实是一个“聚合器”) ") 和另一个引用的 XSD。相对 URI 在移动你的东西方面更友好(作为一个整体,就像压缩你的所有文件并发送给其他人一样)。一个例子...如果文件在同一个文件夹中,你只需要把文件名放在这里。

为无法通过所有其他 XSD“访问”的每个 XSD 添加一个 xsd:import 行,或者您的工具似乎提示无法访问。

关于xml - 如何针对多个 XSD 文件验证 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157448/

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