向 MSXML 添加命名空间时出现问题(使用 setProperty('SelectionNamespaces', ...))

问题描述 投票:0回答:1

不久前,我问了一个关于 MSXML 中命名空间的使用的问题。起初,我用 XPath

*[local-name()]
-hack 绕过了整个事情(请参阅我之前的帖子),但由于良心危机,我决定以正确的方式做事。 (噢!)

考虑以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<Root xsi:schemaLocation="http://www.foo.bar mySchema.xsd" xmlns="http://www.foo.bar" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <MyElement>
  </MyElement>
</Root>

当我尝试使用

IXMLDOMDocument3.setProperty('SelectionNamespaces', NSString);
添加这些命名空间时,出现以下错误:

“SelectionNamespaces 属性值无效。仅格式正确的 xmlns 允许使用属性。”。

删除命名空间

xsi:schemaLocation="http://www.foo.bar mySchema.xsd"
后,一切都运行顺利。我在这里做错了什么? XML 中是否有错误? MSXML 是罪魁祸首吗?

namespaces msxml
1个回答
1
投票

xsi:schemaLocation="..."
不是命名空间定义,它是 xsi 命名空间中
<Root>
元素的属性。 因此,像您一样从命名空间列表中删除它已经是解决方案了。

© www.soinside.com 2019 - 2024. All rights reserved.