2012-10-09 3 views
0
<linkbase xsi:schemaLocation="http://www.w3.org/1998/linkbase http://www.xbrl.org/2003/schema.xml" xmlns="http://www.noprefix.org/2003/linkbase" xmlns:xlink="http://www.w3.org/2005/xlink" xmlns:xsi="http://www.w3.org/1999/XMLSchema"> 
    <roleRef roleURI="http://www.greenserve.com/role/Commitgencies" xlink:href="Commitmentsngencies" xlink:type="simple" /> 
    </linkbase> 

이 xml에는 xmlns 속성이 있으며 뒤에는 :과 접두어 이름이옵니다.xmlns 형식 혼동

xmlns="http://www.noprefix.org/2003/linkbase"

그러나 다른 사람은 XMLNS 후 콜론과 접두사가. 따라서이 XML을 구문 분석하여 "자손"함수가있는 roleref 태그를 얻으려고하면 아무 것도 표시되지 않습니다. 하지만 :을 추가하고 xmlns 다음에 접두사를 추가하면 올바르게 구문 분석 할 수 있습니다. 아무도 설명 할 수있는 것처럼 행동하는 이유는 무엇입니까? 감사.

답변

1

콜론과 접두어가없는 xmlns 특성이있는 경우 전체 문서의 기본 네임 스페이스이므로 접두사가없는 모든 요소가 기본 네임 스페이스에 포함됩니다. 그러나 네임 스페이스가없는 것과는 다릅니다. 네임 스페이스는 사실 URI가 아니라 접두어가 아니라는 것을 기억하십시오. 접두어는이를 참조하는 바로 가기입니다. 이 같은 XML 파일이있는 경우 이렇게 :

<xml xmlns="http://example.org" xmlns:ex="http://example2.org"> 
<element1/> 
<element2/> 
<ex:element3> 
</xml> 

가 네임 스페이스 http://example.org에 아직도으로, 혼자 요소 이름에 의해 해결 될 수없는 네임 스페이스 접두사가없는 요소.

이제 파싱하는 방법에 대해 ...이 모든 것은 도구에 따라 다릅니다. 그것이 XSLT라면 XSLT 파일에서 네임 스페이스에 임시 접두어를 붙여서 해당 요소를 처리 할 수 ​​있습니다. 모든 프로그래밍 언어의 모든 라이브러리는 다른 방법을 사용할 수 있습니다 (많은 예제 중 하나 인 python의 lxml은 {http://example.org} element1과 같은 기본 네임 스페이스 요소를 처리합니다). 기본 네임 스페이스에있는 요소를 처리하는 방법에 대한 도움말을 보려면 구문 분석을 위해 사용중인 것을 참조해야합니다.

+0

나는이 파일을 액션 스크립트 3에서 파싱 중이다. 어떻게 해석 할 것인가? 답장을 보내 주셔서 감사합니다. – Tahlil