2010-07-21 8 views
0

두 개의 네임 스페이스가있는 XML DOM 문서를 사용하고 있습니다. 예를 들어, 다음과 같은 문서를 고려해XML DOM 충돌하는 네임 스페이스 문제

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:libx="http://libx.org/xml/libx2"> 
    <id>5</id> 
    <title>Put Google Book results into Addison</title> 
    <updated>2009-02-23T10:12:15Z</updated> 
    <author> 
    <name>LibX Team</name> 
    <uri>http://libx.org</uri> 
    <email>[email protected]</email> 
    </author> 
    <libx:libapp> 
    <libx:entry xmlns:libx="http://libx.org/xml/libx2" src="6"/> 
    <libx:entry xmlns:libx="http://libx.org/xml/libx2" src="7"/> 
    </libx:libapp> 
</entry> 

을 나는 네임 스페이스에 대한 다음과 같은 의문을 가지고 :

1) 내가 노드 (ID, 제목, 저자 등의 접두어를 사용할 수없는 경우) 위의 예와 같이 기본 네임 스페이스 인 "http://www.w3.org/2005/Atom"이 할당됩니까? 그렇지 않은 경우 어떤 네임 스페이스에 할당됩니까?

2) 노드의 getNameSpaceURI 메소드는 노드의 이름 공간 URI를 반환하고, 지정되지 않은 경우 null을 반환합니다. 그러나 지정되지 않은 경우 노드의 네임 스페이스를 어떻게 알 수 있습니까? 의미는 기본 네임 스페이스가 노드에 할당되는지 또는 다른 네임 스페이스가 할당되는지 여부를 알 수있는 방법입니까?

3) 특정 문서의 노드 (기본 네임 스페이스 포함)를 다른 문서로 복사 할 때 노드가 원래 네임 스페이스를 유지합니까? 아니면 노드가 복사되는 새 문서의 기본 네임 스페이스를 차지합니까? ? 후자가 사실이라면 어떻게 원래의 네임 스페이스를 유지합니까?

마지막으로 누군가가 이러한 충돌하는 네임 스페이스 문제를 더 잘 이해할 수있는 온라인 자료를 제공 할 수 있습니까?

덕분에, 네임 스페이스 자습서 Sidhartha

답변

0

this, this를 참조하십시오. 귀하의 질문에 대한 지금 this

:

  1. 의 xmlns으로 당신은 기본 네임 스페이스를 선언 -> 기본 네임 스페이스 요소 정의에 대해 검색됩니다 요소를 접두사하지 않는 경우.
  2. 내 이해가 맞으면 접두사가없는 노드에 대해 getNameSpaceURI이 기본 네임 스페이스를 반환하거나 기본 네임 스페이스가 선언되지 않은 경우 null을 반환합니다.
  3. 솔루션은 복사를 수행하는 데 사용하는 도구 (XSLT, .net 래퍼 등)에 따라 다릅니다. .net을 사용하여 복사를 수행하려면 this 자습서 (중요한 노드 : 올바르게 노드를 이동하려면 ImportNode을 사용하십시오)를 살펴보십시오.