2010-04-03 2 views
1

MSXML에서 네임 스페이스의 사용에 관해서는 question을 물었습니다. 처음에는 XPath *[local-name()] -hack (이전 게시물 참조)을 사용하여 모든 것을 우회했지만 양심의 위기를 겪어 올바른 방법으로 작업하기로 결정했습니다. (DOH!)MSXML에 네임 스페이스를 추가 할 때 문제가 발생합니다 ('SelectionNamespaces', ...))

는 다음과 같은 XML 고려 : 나는 IXMLDOMDocument3.setProperty('SelectionNamespaces', NSString);를 사용하여 이러한 네임 스페이스를 추가하려고하면

<?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> 

, 나는 다음과 같은 오류가 발생합니다 : "하여 SelectionNamespaces 속성 값이 잘못되었습니다 만 잘 형성의 xmlns 속성이 있습니다. 허용. " 네임 스페이스 xsi:schemaLocation="http://www.foo.bar mySchema.xsd"을 제거하면 모든 것이 원활하게 실행됩니다. 여기서 내가 뭘 잘못하고 있니? XML에 오류가 있습니까? MSXML이 책임이 있습니까?

답변

0

xsi : schemaLocation = "..."은 네임 스페이스 정의가 아니며 XSi 네임 스페이스에있는 요소의 < 요소의 특성입니다. 그래서 이것을 네임 스페이스 목록에서 제거하는 것은 이미 해결책입니다.

+0

네, 어쨌든 이해합니다. 감사. – conciliator