前段时间,我向question询问了MSXML中命名空间的用法。起初,我用XPath *[local-name()]
- 黑客(见我之前的帖子)规避了整个事情,但是出于良心的危机,我决定以正确的方式做事。 (DOH!)
考虑以下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的责任吗?
答案 0 :(得分:0)
xsi:schemaLocation =“...”不是命名空间定义,它是&lt; Root&gt;的属性。 xsi名称空间中的元素。 因此,正如您所做的那样,从命名空间列表中删除它已经是解决方案。