2012-02-16 56 views
0

我有一组模式,我试图用它来验证使用Nokogiri的XML文档。导入使用原始名称空间导入另一个模式的模式

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

Extension.xsd模式使用名称空间http://example.com/extension导入模式Types.xsd,命名空间为http://example.com/root

当我尝试让Nokogiri加载根架构时,它会投诉 - Element import: The schema document Types.xsd cannot be imported, since it was already included or redefined

当我摆脱Extension.xsd文件中的导入语句时,Nokogiri说不允许引用命名空间http://example.com/root,因为没有导入任何内容。 当我摆脱根模式文件中的include语句时,Nokogiri说,来自Types.xsd的根模式中使用的元素不会解析为元素声明。

任何想法如何让Nokogiri接受这种模式结构?这甚至是有效的模式?

回答

1

在模式中使用循环xs:import声明是完全有效的,事实上,正如本例所示,它通常是必需的。我不知道Nokogiri,所以我不知道是否有修复。

相关问题