导入一个架构,该架构使用原始命名空间导入另一个架构

发布于 2025-01-06 20:57:15 字数 659 浏览 1 评论 0原文

我有一组模式,我试图用它们来使用 Nokogiri 验证 XML 文档。

我有一个带有命名空间 http://example.com/root 的顶级架构。它导入另一个架构,Extension.xsd,具有命名空间 http://example.com/extension 并包含架构 Types.xsd(显然其命名空间为 http://example .com/root)。

命名空间为 http://example.com/extension 的 Extension.xsd 架构导入命名空间为 http://example.com/root 的架构 Types.xsd 。

当我尝试让 Nokogiri 加载根架构时,它抱怨 - 元素导入:无法导入架构文档 Types.xsd,因为它已包含或重新定义

当我从 Extension.xsd 文件中删除 import 语句时,Nokogiri 表示不允许引用命名空间 http://example.com/root ,因为没有导入任何内容。 当我从根架构文件中删除 include 语句时,Nokogiri 表示 Types.xsd 的根架构中使用的元素不会解析为元素声明。

知道如何让 Nokogiri 接受这个模式结构吗?这是否有效?

I have a collection of schemas that I am trying to use to validate an XML document using Nokogiri.

I have a top-level schema with the namespace http://example.com/root. It imports another schema, Extension.xsd, with a namespace http://example.com/extension and includes the schema Types.xsd (which obviously has a namespace of http://example.com/root).

The Extension.xsd schema, with a namespace of http://example.com/extension, imports the schema Types.xsd, with a namespace of http://example.com/root.

When I try to get Nokogiri to load the root schema it complains - Element import: The schema document Types.xsd cannot be imported, since it was already included or redefined.

When I get rid of the import statement from the Extension.xsd file Nokogiri says that references to the namespace http://example.com/root aren't allowed because nothing was imported.
When I get rid of the include statement from the root schema file Nokogiri says that an element used in the root schema from Types.xsd doesn't resolve to an element declaration.

Any idea how I can get Nokogiri to accept this schema structure? Is this even valid schema?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半透明的墙 2025-01-13 20:57:15

在架构中使用循环 xs:import 声明是完全有效的,事实上,正如本例所示,这通常是必要的。我不认识Nokogiri,所以我不知道是否有解决办法。

It's perfectly valid to have cyclic xs:import declarations in a schema, indeed, as this example shows, it is often necessary. I don't know Nokogiri, so I don't know if there is a fix.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文