将名称空间添加到MSXML的问题(使用setProperty('SelectionNamespaces',...))

时间:2010-04-03 19:30:57

标签: namespaces msxml

前段时间,我向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的责任吗?

1 个答案:

答案 0 :(得分:0)

xsi:schemaLocation =“...”不是命名空间定义,它是&lt; Root&gt;的属性。 xsi名称空间中的元素。 因此,正如您所做的那样,从命名空间列表中删除它已经是解决方案。