2011-11-10 1 views
2

XML의 네임 스페이스 (xmlns = "...")가 E4X (예 : ActionScript 3)를 사용하여 XML 탐색에 사용되는 방법을 설명 할 수 있습니까?XML, 네임 스페이스 및 E4X

나는 그 목적과 사용법을 완전히 이해하지 못했습니다.

답변

1

이론적으로 XML 네임 스페이스는 태그 이름과의 충돌을 피하기 위해 사용됩니다. 따라서 "mytag"라는 태그가 포함 된 네임 스페이스를 만들 수 있고 다른 누군가는 "mytag"라는 태그를 사용하여 다른 네임 스페이스를 만들고 충돌이 발생하지 않습니다. 각 "mytag"태그는 명확하게 구분됩니다.

사실, XML 네임 스페이스는 거의 쓸모가 없다는 것을 알았습니다. (동일한 XML 파일에 대해 태그를 만드는 개발자가 얼마나 자주 있습니까?) 파싱을 어렵게 만들었습니다.

EX4에서는 네임 스페이스를 가져온 다음 각 태그 앞에 네임 스페이스를 추가해야합니다. 당신은 당신이 쓸 것 <somenamespace::somename> 태그에 액세스하려는 경우 따라서, 예를 들어, :

var somenamespace:Namespace = xml.namespace("somenamespace"); 
var sometag:XML = somenamespace::somename[0]; 

를 Google에서 검색하는 경우를, 당신은 쉽게 분석하기 위해 XML에서 이러한 쓸모없는 네임 스페이스를 제거 일부 AS3 클래스를 찾을 수 있습니다.

+0

괜찮아을 - 지금은 명확 난 내 노드의 데이터에 액세스 할 수없는 이유! 고맙습니다! – Mat

+0

각 XML 문서에는 접두사가없는 deault 네임 스페이스가 있습니다. XSD 파일을 사용하여 검증 할 수있는 잘 정의 된 XML 구조로 작업하고 있고 XSD 파일을 수정할 수 없다면 (예 : MathML의 경우) XML을 "확장"하는 유일한 방법은 자신의 요소를 자신이 소유 한 별도의 네임 스페이스. (각 XSD는 이러한 extensoins이 허용되는 위치를 정의 할 수 있습니다. 예를 들어 AIR SDK에 사용 된 app XML 파일은 이것을 허용하지 않습니다.) – karfau