有一个包含以下无聊根元素的模式:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
据我所知,此架构在有效性方面是正确的,例如Excel可以轻松读取它。
然而,当我尝试使用MSXML(v3或v4或v6)根据此架构验证内容时,会出现上述错误。(我创建了XMLSchemaCache,并且当我将已加载的架构添加到其中时出现错误。)
从谷歌上了解到,MS XML引擎存在一个概念问题,不符合W3标准,必须使用不同的命名空间定义。然而,我无法找到更正确的定义,也找不到任何有关该问题的合理解释。我只能在论坛上找到许多没有答复的帖子。
请问能否有人友好地解释一下这个问题?
编辑
由于某种原因,尽管我已经循环使用版本3、4和6的项目引用,但始终使用的是版本3。强制切换到4/6就解决了问题。因此,v3无法解析架构,其他版本都可以。我相信现在可以关闭这个问题了。
xsd := CreateOleObject('Msxml2.DOMDocument.6.0') as IXMLDOMDocument2;
自己构建了 XSD 文档,然后当我尝试将其应用于IXMLDOMDocument2
时,出现了这个错误。当我将 XSD 从字符串重新加载到自身中时:xsd.loadXML(xsd.xml);
错误消失了。我不知道可能出了什么问题。 - Paul