gpt4 book ai didi

c++ - QXmlSchema 是否管理包含?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:53 26 4
gpt4 key购买 nike

我复制并修改了"schema validation" Qt example .我只是在资源中添加了我自己的 xsd 文件和一个 xml 文件。但是行:

schema.load(schemaData);

每当我尝试使用自己的架构时都会失败。 我知道它应该可以工作,因为我可以使用使用 xerces 的命令行工具执行验证。我相信问题出在包括:

<xsd:include schemaLocation="whatever.xsd"/>
  1. xsd和xml文件不变
  2. 文件路径不变,我将 xml 文件和“main”xsd 添加到 Qt 资源文件“qrc”。

问题:我还应该在资源中添加每个包含的模式吗?有什么特别的设置吗?我应该用加载模式加载它们吗? ...

最佳答案

对我来说,这是通过将所有 XSD 添加为资源来实现的。我使用了以下行:

<xsd:include schemaLocation="qrc:///xsd/commondefinitions.xsd"/>

其中“xsd”是虚拟资源路径,而不是物理路径。这意味着路径按以下方式指定:

<qresource prefix="/xsd/">
<file alias="commondefinitions.xsd">../framework/data/xml/commondefinitions.xsd</file>
</qresource>

如你所见,物理路径完全不同

关于c++ - QXmlSchema 是否管理包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24405756/

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