태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'Namespace'에 해당되는 글 2건

  1. 2008.07.25 Namespace 예제 (1)
  2. 2007.11.24 [AS3] XML Namespace(네임스페이스)


Namespace에 대한 괜찮은 예제같아서 올려 놓습니당..

==============================================================================

var message:XML =
 <soap:Envelope xmlns:soap="http://1" soap:encodingStyle="style1">
  <soap:Body xmlns:w="w1">
   <w:getWeather>
    <w:temp>78</w:temp>
   </w:getWeather>
  </soap:Body>
 </soap:Envelope>;

var soapNS:Namespace = message.namespace("soap");
trace(soapNS);

var wNS:Namespace = new Namespace("w", "w1");
message.addNamespace(wNS);
trace(message);

var es:XMLList = message.@soapNS::encodingStyle;
trace(es);
var body:XMLList = message.soapNS::Body;
trace(body);

trace(body.wNS::getWeather.wNS::temp)








신고
Posted by 원강민


딴동네 스터디 2회 때 숙제를 내줬습니다..XML 파일을 주고 그걸로 RSS리더를 만드는 것이었는데 조금 어려운 모양이더군요..질문을 올렸길래 보니 설명을 잠깐 하고 넘어갔던 네임스페이스 부분이었습니다..

var xml:XML =
 <feed version="0.3" xmlns="http://purl.org/atom/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>Adobe Labs</title>
  <tagline>News and information on Adobe Labs.</tagline>
 </feed>;

위 XML은 Adobe labs의 피드입니다..위 XML에서 title값을 불러오려면 어떻게 해야할까요?

trace(xml.title.toXMLString());

될까요? 안됩니다..왜냐면 xmlns="http://purl.org/atom/ns#" 이 부분 때문이죠..이게 뭐냐면 '기본 네임스페이스'라는 건데요..아래를 잠깐 보시죠..

default xml namespace = new Namespace("http://airdev.tistory.com/092NS");
var xml:XML = <root/>;
trace(xml.toXMLString()); //<root xmlns="http://airdev.tistory.com/092NS"/>

위와 같이 생성된 기본 네임스페이스는 이하 노드에서 prefix(<prefix:node>, 접두사) 없이 사용할 수 있기 때문에 다른 사용자가 가져다 쓸 때 주의할 필요가 있습니다..

그럼 네임스페이스를 참조해서 처음 위에서 하려고 했던 title을 가져와 보겠습니다..

var xml:XML =
 <feed version="0.3" xmlns="http://purl.org/atom/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
  <title>Adobe Labs</title>
  <tagline>News and information on Adobe Labs.</tagline>
 </feed>;

var ns:Namespace = xml.namespace(); //기본 네임스페이스 참조
trace(xml.ns::title.toXMLString());
/*
<title xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">Adobe Labs</title>
*/


참고로 'dc' 네임스페이스를 참조하려면..

var dcNS:Namespace = xml.namespace("dc");

이와 같이 하면 됩니다..

만약 네임스페이스가 뭔지, 왜 써야 하는지 궁금하다면 며칠전 소개해 드렸던 아래 사이트를 참고하시기 바랍니다..
http://www.cadvance.org/?leftmenu=doc/include/total_menu.asp&mainpage=doc/xml/xml_doc/xml_namespace.asp 






신고
Posted by 원강민

티스토리 툴바