기본 네임 스페이스와 접두사가 붙은 네임 스페이스가 동일한 네임 스페이스 URI를 해결할 때 접두사가없는 특성이 접두사가 붙은 특성과 같지 않은데 왜 둘 다 동일한 로컬 이름을 사용합니까?XMLNS 접두어가없는 XML 속성이 동일한 로컬 이름을 가진 접두어가 붙은 속성과 같지 않은 이유는 무엇입니까?
"Namespaces in XML"사양은 단지 그렇게 말합니다. 그러나 그 이유는 매우 짧습니다. 누구나 이런 이유인지 알 수 있습니까? http://www.w3.org/TR/xml-names11/#uniqAttrs에서 섹션 "속성의 6.3 고유성"에서는
발췌 : 그러나 각
<!-- http://www.w3.org is bound to n1 and n2 -->
<x xmlns:n1="http://www.w3.org"
xmlns:n2="http://www.w3.org" >
<bad a="1" a="2" />
<bad n1:a="1" n2:a="2" />
</x>
:
예를 들어, 나쁜 빈 엘리먼트 태그의 각은 다음의 불법 두 번째는 기본 네임 스페이스가 특성 이름에 적용되지 않기 때문입니다.
<!-- http://www.w3.org is bound to n1 and is the default --> <x xmlns:n1="http://www.w3.org" xmlns="http://www.w3.org" > <good a="1" b="2" /> <good a="1" n1:a="2" /> </x>
파서는 두 속성의 존재를 확인하고 하나를 선택해야하기 때문에 네임 스페이스 XML을 구문 분석하기가 더 어려워집니다. 내 경우를 들어
,이 같은 내 XML 문서에 아톰 링크를 추가하려면 : 링크 요소의 네임 스페이스를 상속합니다 :
이<root xmlns="..." xmlns:atom="...">
<atom:link rel="self" type=".." href=".." />
</root>
내가 원자의 특성이라고 생각합니다. Java에서 DOM을 사용하여 XML을 구문 분석하면 요소의 Atom 네임 스페이스가보고되었지만 특성의 네임 스페이스는보고되지 않았습니다.
나는 오늘 같은 실수를 범벅으로한다. 그러나이 경우, 왜 <좋은 ns2 : a = "1"xmlns : ns2 = ""/>'가 허용되지 않는지 이해할 수 없다. – rds
'xmlns : ns2 = ""'는 NS를 언인 블레이 'ns2' 접두사를 사용하여 선언 바인딩을 만들고 그 범위가 될 것입니다. 따라서 이것을 쓰면, 접두어'ns2 '는 사용할 수 없습니다. NS에 구속력이 없습니다. – lkuty
"비어있는 NS"가 존재하지 않습니다. 그것이 존재한다고 생각하면 혼란을 겪을 것입니다. Ronald Bourret의 [Namespace Myths Exploded] (http://www.rpbourret.com/xml/NamespaceMyths.htm)를 참조하십시오. – lkuty