·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[Ç÷¡½Ã MX¸¦ ÀÌ¿ëÇÑ SW °³¹ß] ¨è XML°úÀÇ Âû¶±±ÃÇÕ

À̽ÂÁØ   2004/08/13
¿¬Àç¼ø¼­
1ȸ. ±âº»ÀûÀÎ HTTP Åë½Å 2ȸ. XML°úÀÇ Âû¶±±ÃÇÕ
3ȸ. º¸¾È°ú Ç÷¡½Ã ¸®¸ðÆÃ (³¡)
[Áöµð³ÝÄÚ¸®¾Æ]Áö³­ ±Û¿¡¼­ ¿ì¸®´Â Ç÷¡½ÃÀÇ Åë½Å ¹æ¹ý¿¡ ´ëÇØ »ìÆìºÃ´Ù. Áö³­ ±Û¿¡ »ìÆìº» Åë½Å ¹æ¹ý ¿Ü¿¡ Áß¿äÇÑ Åë½Å ¹æ¹ýÀÌ Àִµ¥ ¹Ù·Î XMLÀÌ´Ù. XML¿¡ ´ëÇÑ Á߿伺Àº ´õ ¾ê±âÇÒ Çʿ䰡 ¾øÀ» °ÍÀÌ´Ù. ´õ±¸³ª ´ÙÀ½°ú °°Àº Ç÷¡½ÃÀÇ ÀÌÁ¡°ú ÇÔ²² XMLÀÇ À¯¿¬¼ºÀ» ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é, ±Ý»ó÷ȭ¶ó°í ÇØ¾ß ÇÒ °ÍÀÌ´Ù.

¡ß ¸®Ä¡ ÀÎÅÍ³Ý ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸Çö
¡ß µ¿Àû ¾÷µ¥ÀÌÆ®
¡ß ¹é±×¶ó¿î ´Ù¿î·Îµå, Æ®·¡ÇÈ °¨¼Ò

XML ÀÚü°¡ ¸¹Àº À̽´¸¦ °¡Áö°í ÀÖÁö¸¸, °¡Àå Áß¿äÇÑ ºÎºÐÀº ¹°·Ð XML À¥ ¼­ºñ½º(SOAP)ÀÌ´Ù. ¸¹Àº Åë½Å ±Ô¾àµéµµ XML·Î ¸¸µé¾îÁö°í ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿ÀÇ ¼Ò½º ¸Þ½ÅÀúÀÎ Jabber °°Àº °æ¿ì°¡ ±×·¸°í, B2B¿Í EAI µîÀÇ À̽´¿Í ÇÔ²² Ç×»ó ºüÁöÁö ¾Ê°í µîÀåÇÏ´Â °Ô ¹Ù·Î XMLÀÌ´Ù. ÀÌÁ¦ Ç÷¡½Ã°¡ Áö¿øÇÏ´Â XML°ú ASP.NETÀÇ À¥ ¼­ºñ½º µîÀÌ ¾î¶»°Ô ¼­·Î ¿¬µ¿µÉ ¼ö ÀÖ´ÂÁö ±× ³ÐÀº °¡´É¼ºÀ» ÇϳªÇϳª ¤¾î º¸ÀÚ(ÀÌ ±Û¿¡¼­´Â Ç÷¡½ÃÀÇ È­¸é Ãâ·Â ¹æ¹ýÀ̳ª ¾Ö´Ï¸ÞÀÌ¼Ç µî¿¡ ´ëÇØ¼­´Â ¼³¸íÇÏÁö ¾Ê´Â´Ù).

Ç÷¡½Ã 5 ÀÌ»óÀÇ ¹öÀü¿¡¼­ µÎµå·¯Áø º¯È­ Áß Çϳª°¡ ¹Ù·Î XML¿¡ ´ëÇÑ Áö¿ø ±â´ÉÀÌ´Ù. Ç÷¡½Ã´Â ±âº»ÀûÀ¸·Î XML ¹®¼­¸¦ ÆÄ½ÌÇϰí, DOMÀ» ´Ù·ç±â À§ÇÑ ´Ù¾çÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. XML ¹®¼­ ±¸Á¶¸¦ ¸¸µé°Å³ª XMLÀ» Àоî¿Í¼­ DOMÀ¸·Î ±¸¼ºÇϰųª ³»ºÎ¿¡¼­ DOMÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù. ´Ù¸¸, XPath¿Í °°Àº ±â´ÉÀÌ ¾ø¾î XML ³»¿ëÀ» ÂüÁ¶Çϱâ À§ÇØ hasChildNodes(), firstChild, nextSibling µîÀ» ¹Ýº¹ÀûÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ ¾Æ½±Áö¸¸, Ç÷¡½Ã ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ÇÊ¿äÇÑ XML°ú XML À¥ ¼­ºñ½º °ü·Ã ±â´ÉÀ» ´ëºÎºÐ Á¦°øÇϰí ÀÖ´Ù. XMLÀ» »ç¿ëÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ XML Ŭ·¡½º¸¦ ÀÌ¿ëÇØ ÀνºÅϽº¸¦ ¸¸µç´Ù.

xmldoc = new XML(); // XML °´Ã¼ »ý¼º

ȤÀº, ´ÙÀ½°ú °°ÀÌ XML¸¦ »ý¼ºÀÚ¿¡ Á÷Á¢ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.

xmldoc = new XML("<book><title>¾î¶»°Ô ¹®Á¦¸¦ Ç® °ÍÀΰ¡</title></book>");

ÇÏÁö¸¸, ¹®ÀÚ ¹è¿­À» »ç¿ëÇÏ´Â °ÍÀÌ ÈξÀ °£ÆíÇϱ⠶§¹®¿¡ ÀÌ·¸°Ô ³»ºÎ¿¡¼­ DOMÀ» »ý¼ºÇÏ´Â °æ¿ìº¸´Ù´Â ¿ÜºÎ¿¡¼­ XML ¹®¼­¸¦ Àо ó¸®ÇÏ´Â °æ¿ì°¡ ÈξÀ ¸¹´Ù. Ç÷¡½Ã¿¡¼­ XML Á¶ÀÛ°ú °ü·ÃÇØ ÀÚÁÖ »ç¿ëÇÏ´Â ¸Þ½îµå¸¦ Á¤¸®Çϸé <Ç¥ 1>°ú °°´Ù.

<Ç¥ 1> XML¿¡ ¾²ÀÌ´Â ¸Þ½îµå

 

getByteLoaded()

·ÎµùµÈ XML ¹®¼­ÀÇ Å©±â¸¦ ¾ò´Â´Ù.

hasChildNodes()

ÀÚ½Ä ³ëµå°¡ ÀÖ´ÂÁö È®ÀÎÇÑ´Ù.

load()

XML ¹®¼­¸¦ ·ÎµåÇÑ´Ù.

parseXML()

¹®ÀÚ¿­·Î µÈ XML ¼Ò½º¸¦ ÆÄ½ÌÇÑ´Ù.

send()

XML ¹®¼­¸¦ ¿ÜºÎ·Î º¸³½´Ù.

sendAndLoad()

XML ¹®¼­¸¦ ¿ÜºÎ·Î º¸³»°í ¸®ÅϵǴ XML ¹®¼­¸¦ ·ÎµåÇÑ´Ù.

toString()

XML °´Ã¼¸¦ ¹®ÀÚ¿­·Î ¸®ÅÏÇÑ´Ù.

firstChild

ù ¹øÂ° ÀÚ½Ä ³ëµå¿¡ ´ëÇÑ ÂüÁ¶

ignoreWhite

XML ¼Ò½º¿¡¼­ ¿©¹éÀ» ¹«½ÃÇÒ °ÍÀÎÁö ¿©ºÎ

loaded

load(), sendAndLoad() ÀÛ¾÷ ¿Ï·á ¿©ºÎ

nextSibling

ÇöÀç ³ëµå¿Í °°Àº ·¹º§¿¡ ÀÖ´Â ´ÙÀ½ ÇüÁ¦ ³ëµå

previousSibling

ÇöÀç ³ëµå¿Í °°Àº ·¹º§¿¡ ÀÖ´Â ÀÌÀü ÇüÁ¦ ³ëµå

nodeName

ÇöÀç ³ëµåÀÇ À̸§

nodeValue

ÇöÀç ³ëµåÀÇ °ª

onData

µ¥ÀÌÅ͸¦ ¼ö½ÅÇßÀ» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®

onLoad

µ¥ÀÌÅ͸¦ ¼ö½ÅÇÑ ÈÄ XML ¹®¼­¸¦ ÆÄ½ÌÇßÀ» ¶§ ¹ß»ýÇÏ´Â À̺¥Æ®


XML ÆÄÀÏ Àоî¿À±â
loadVars °´Ã¼¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù ¾à°£ ¹ø°Å·ÓÁö¸¸, XMLÀ» Àаí Á¶ÀÛÇÏ´Â °ÍÀº ¸Å¿ì Áß¿äÇÏ´Ù. XML ÀÚü°¡ °¡Áö´Â ÀåÁ¡ ¿Ü¿¡µµ XML À¥ ¼­ºñ½º¸¦ ÀÌÇØÇϰí Ȱ¿ëÇϱâ À§ÇÑ ÇʼöÀûÀÎ ´Ü°èÀ̱⠶§¹®ÀÌ´Ù. ¿ì¼± XML ¹®¼­¸¦ ·ÎµåÇϰí, ³»¿ëÀ» ¾î¶»°Ô Àо´ÂÁö »ìÆìº¸ÀÚ. ³ëÆ®ÆÐµå¿Í °°Àº ÅØ½ºÆ® ÆíÁý±â·Î <È­¸é 1>°ú °°Àº ³»¿ëÀ» °¡Áø ¡°sample.xml¡±À̶õ XML ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¸¸µç´Ù.

<È­¸é 1> sample.xml

ÀÌ ÆÄÀÏÀ» Ç÷¡½Ã¿¡¼­ ¾î¶»°Ô Àо´ÂÁö »ìÆìº¸ÀÚ. »õ·Î¿î Ç÷¡½Ã ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. ù ¹øÂ° ÇÁ·¹ÀÓ¿¡ <¸®½ºÆ® 1>°ú °°Àº ¾×¼Ç½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÑ´Ù(ÀÌ´ÞÀÇ µð½ºÄÏ : loadxml_sample1.fla ÆÄÀÏ¿¡ Æ÷ÇÔµÈ ¾×¼Ç½ºÅ©¸³Æ®ÀÌ´Ù).

 <¸®½ºÆ® 1> XML ¹®¼­¸¦ Àд °£´ÜÇÑ ¿¹Á¦

Áö³­ ±Û¿¡ ¼Ò°³ÇÑ ´ë·Î useCodepage´Â ÄÚµå ÆäÀÌÁö¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù. Ç÷¡½Ã ³»ºÎÀûÀ¸·Î´Â ±âº»ÀûÀ¸·Î ¸ðµÎ À¯´ÏÄÚµå ¹®ÀÚ¸¦ »ç¿ëÇϴµ¥, ¿ÜºÎ ÆÄÀÏÀ̳ª Åë½ÅÇÒ ¶§ À¯´ÏÄÚµå(UTF-8)·Î µÇ¾î ÀÖ´Â °æ¿ì´Â ±×·¸°Ô ¸¹Áö ¾Ê´Ù. µû¶ó¼­ °ÅÀÇ ´ëºÎºÐ ù ÇÁ·¹ÀÓ¿¡ ´ÙÀ½°ú °°ÀÌ ±â¼úÇØ À¯´ÏÄڵ带 »ç¿ëÇÏÁö ¾Ê°í, Çö ½Ã½ºÅÛÀÇ ÄÚµå ÆäÀÌÁö¸¦ »ç¿ëÇÑ´Ù(ÀÌ·¸°Ô Çϸé ÇÑ±Û À©µµ¿ìÀÇ °æ¿ì ±âº»ÀûÀ¸·Î ¡®euc-kr¡¯À» »ç¿ëÇÏ°Ô µÈ´Ù).

System.useCodepage = true;

XML.ignoreWhite ÇÁ·ÎÆÛƼ´Â ¿ø¹® XML¿¡¼­ °ø¹é¹®ÀÚ¸¦ ¹«½ÃÇϵµ·Ï ÇÑ´Ù. ¸¸ÀÏ, À̰ÍÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é °ø¹é ¹®ÀÚ ºÎºÐµµ ÇϳªÀÇ ³ëµå°¡ µÇ¾î ´Ù·ç±â°¡ ¸Å¿ì Èûµé¾îÁø´Ù.

xmldoc.ignoreWhite = true;

ŸÀÓ¶óÀÎÀÇ 5¹ø Ű ÇÁ·¹ÀÓÀ» Ãß°¡Çϰí, <¸®½ºÆ® 1.1>ÀÇ ¾×¼Ç½ºÅ©¸³Æ®¸¦ ÀÔ·ÂÇÑ´Ù. <Ctrl+Enter>¸¦ ´­·¯ ¼öÇà½ÃŰ¸é ´ÙÀ½°ú °°Àº ¼öÇà °á°ú¸¦ º¼ ¼ö ÀÖ´Ù.

isbn = 8981723427
title = ¾î¶»°Ô ¹®Á¦¸¦ Ç®°ÍÀΰ¡
author = G.Æú¸®¾Æ
review = ÀÌÃ¥Àº ¼öÇÐÀû »ç°í ¹æ¹ý¿¡ ´ëÇØ¼­ ¼³¸íÇϰí ÀÖ´Ù.

<¸®½ºÆ® 1.1> ·Îµå »óŸ¦ È®ÀÎ : <¸®½ºÆ® 1>¿¡¼­ À̾îÁü(loadxml_sample1.fla)

if(xmldoc.loaded = true )
{
   var ref = xmldoc.firstChild.firstChild.firstChild;
   for( var ch = ref; ch != null; ch = ch.nextSibling ) {
      trace ( ch.nodeName + " = "
+ ch.firstChild.nodeValue );
   }
   this.stop();
} else {
   gotoAndPlay(2);
}

¿¹Á¦¿¡¼­ »ç¿ëÇÑ gotoAndPlay()´Â Ç÷¡½Ã¿¡¼­ ÈçÈ÷ »ç¿ëÇÏ´Â ±â¹ýÀ¸·Î, µ¥ÀÌÅÍ ·ÎµùÀ̳ª º¹ÀâÇÑ °è»êó·³ ½Ã°£ÀÌ ¸¹ÀÌ °É¸®´Â ÀÏÀÌ ³¡³µ´ÂÁö¸¦ È®ÀÎÇÑ´Ù. Áï, ´ÙÀ½°ú °°ÀÌ ³¡³ªÁö ¾Ê¾ÒÀ¸¸é ÀÌÀüÀÇ ´Ù¸¥ ÇÁ·¹ÀÓÀ¸·Î À̵¿ÇØ Ã³¸®ÁßÀÓÀ» Ç¥½ÃÇÏ´Â ¿ëµµ·Î Á¾Á¾ »ç¿ëÇÑ´Ù.

if( ÀÛ¾÷ÀÌ ³¡³µ´ÂÁö È®ÀÎ )
{
} else {
   gotoAndPlay(2);
}

ÀÌ·± ¹æ¹ýº¸´Ù ´õ ¸í½ÃÀûÀ̰í È¿°úÀûÀÎ °ÍÀº XML.onLoad()¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù(<¸®½ºÆ® 2>). onLoad()´Â ·Îµå°¡ ³¡³µÀ» ¶§ Áï, load() ȤÀº sendAndLoad() ¸Þ½îµå ¼öÇàÀÌ ³¡³µÀ» ¶§ ºÒ·ÁÁö´Â À̺¥Æ®ÀÌ´Ù. <¸®½ºÆ® 2>´Â onLoad()¸¦ »ç¿ëÇØ ¾ÕÀÇ ¿¹Á¦¿Í ºñ½ÁÇÑ ±â´ÉÀ» ¼öÇàÇϵµ·Ï ÇÑ ÄÚµåÀÌ´Ù. ¼öÇà °á°ú´Â ¶È°°´Ù.

<¸®½ºÆ® 2> onLoad()À» ÀÌ¿ëÇÑ XML ó¸®

XMLSQLÀÇ ¿ªÇÒ
¿À¶óŬ ¿ª½Ã XML¿¡ ´ëÇÑ Áö¿øÀÌ ¸¹Áö¸¸ SQL ¼­¹ö 2000Àº XML¿¡ ´ëÇÑ ´Ù¾çÇÏ°í ¸¹Àº ±â´ÉÀ» Á¦°øÇÑ´Ù. SQL ¼­¹ö°¡ Á¦°øÇÏ´Â XML ±â´É °¡¿îµ¥ XMLSQLÀÌ Àִµ¥, À̰ÍÀÇ Å« Ư¡Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» °ÅÄ¡Áö ¾Ê°í À¥ ¼­¹ö(IIS)¸¦ ÅëÇØ DBMS¿¡ ¹Ù·Î Äõ¸®ÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ASP.NET ÄÚµå ¾øÀ̵µ ¹Ù·Î DBMS¸¸À¸·Î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.

µû¶ó¼­ °³¹ßÀÚ´Â XML°ú °ü°èÇü µ¥ÀÌÅÍÀÇ Â÷À̸¦ ±Øº¹ÇÒ ¼ö ÀÖ´Ù. Äõ¸® °á°ú¸¦ XML·Î »ý¼ºÇѴٵ簡 ȤÀº XML ¹®¼­¸¦ ¹Ù·Î °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåÇÏ´Â °ÍÀº °ü°èÇü µ¥ÀÌÅ͸¦ ÀÏÁ¾ÀÇ XML ÆÄÀÏó·³ ÀÛ¾÷ÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. °£´ÜÇÑ ¿¹¸¦ ÅëÇØ ±¸ÇöÇØ º¸ÀÚ. SQL ¼­¹ö¿¡ ´ÙÀ½°ú °°Àº ½ºÅ°¸¶ÀÇ Å×À̺íÀ» ÀÛ¼ºÇÏ°í µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑ´Ù.

CREATE TABLE article (
id int IDENTITY (1, 1) NOT NULL ,
c_time datetime NULL ,
u_time datetime NULL ,
title varchar (128) NULL ,
content varchar (2000) NULL
)

SQL ¼­¹ö ÇÁ·Î±×·¥ ±×·ì¿¡¼­ ¡°Configure SQL XML Support in IIS¡±À» ¼±ÅÃÇØ ¼öÇàÇÏ°í ´ÙÀ½°ú °°Àº ÀýÂ÷·Î °¡»ó µð·ºÅ丮¸¦ ¸¸µç´Ù(<È­¸é 2>, <È­¸é 3>).

1 General Virtual Directory NameÀ» ÀÔ·Â(¿©±â¼­´Â "board"), ¹°¸®ÀûÀÎ °æ·Î¸¦ ¼³Á¤ÇÑ´Ù("C:\Inetpub\wwwroot\board").
2 Security ÅÇ¿¡¼­ Windows ÅëÇÕ ÀÎÁõÀ» ¼±ÅÃ
3 DataSource ÅÇ SQL Server("(local)")¿Í Database À̸§("board")À» °¢°¢ ¼±ÅÃ
4 Virtual Names ÅÇ New¸¦ ¼±ÅÃÇϰí, type¿¡¼­ dbobject¸¦ ¼±ÅÃÇÑ ÈÄ ÀûÀýÇÑ °¡»ó À̸§À» ÀÔ·Â("dbo_board")

<È­¸é 2> SQL ¼­¹ö IIS °¡»ó µð·ºÅ丮 °ü¸®ÀÚ

<È­¸é 3> SQLXML µî·ÏÁ¤º¸

XMLSQLÀº º°µµ ¼³Ä¡°¡ °¡´ÉÇϸç, SQL ¼­¹ö 2000 SP3¿¡ Ãß°¡µÈ ³»¿ëÀÌ´Ù. SQL ¼­¹öÀÇ µµ¿ò¸»¿¡¼­ ¡°SQL ¼­¹ö¿ë IIS °¡»ó µð·ºÅ͸® °ü¸® À¯Æ¿¸®Æ¼ »ç¿ë¡±, ¡°nwind °¡»ó µð·ºÅ丮 ¸¸µé±â¡± Ç׸ñÀ» ÂüÁ¶Ç϶ó. ´ÙÀ½°ú °°Àº URLÀ» ºê¶ó¿ìÀú¿¡ ÀÔ·ÂÇØ º¸ÀÚ.

http://plusjune/board?sql=SELECT * FROM article FOR XML AUTO, ELEMENTS&root=Articles

¾Õ¿¡ ÀÔ·ÂÇÑ URLÀº ÀÚµ¿À¸·Î ÀÎÄÚµùµÅ ´ÙÀ½°ú °°Àº ÇüŰ¡ µÈ´Ù.

http://plusjune/board?sql=SELECT%20*%20FROM%20article%20FOR%20XML%20AUTO,%20ELEMENTS&root=Articles

ÀÌ·¯ÇÑ ³»¿ëÀ» ÀÔ·ÂÇßÀ» ¶§ Äõ¸®ÀÇ °á°ú°¡ Ç¥½ÃµÈ´Ù. <È­¸é 4>´Â ¼öÇà °á°ú¸¦ º¸¿©ÁØ´Ù.

<È­¸é 4> SQL ¼­¹öÀÇ HTPP Äõ¸®

SQL ¼­¹öÀÇ HTTP-XML Äõ¸®´Â Ƽ¾î¸¦ ºÐ¸®ÇÏÁö ¾Ê±â ¶§¹®¿¡, ´Ù¼Ò À¯¿¬¼ºÀº ¶³¾îÁöÁö¸¸ °£ÆíÇÏ°Ô Äõ¸®ÇÏ°í ±× °á°ú¸¦ XML·Î °¡Á®¿À°Å³ª XML ¹®¼­¸¦ °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ¶§¹®¿¡ °ü¸®ÀÚ ÆäÀÌÁö³ª µ¥ÀÌÅͺ£À̽ºÀÇ ³»¿ëÀ» ¸ð´ÏÅ͸µÇÏ´Â - Áß¿äÇÑ ºñÁî´Ï½º ·ÎÁ÷°ú Å©°Ô °ü·ÃÀÌ ¾ø´Â - ³»¿ëÀ̶ó¸é ÃæºÐÈ÷ µµÀÔÀ» »ý°¢ÇØ º¼¸¸ÇÏ´Ù. <È­¸é 4>¿Í °°ÀÌ XML·Î °á°ú°¡ ³ª¿À¸é XSLÀ» Àû¿ëÇØ ¹Ù·Î °Ô½ÃÆÇÀ» ¸¸µé ¼öµµ ÀÖ´Ù. ¾Õ¼­ »ìÆìº» Ç÷¡½ÃÀÇ XML ·ÎµùÀ» ¿©±â¿¡ Á÷Á¢ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. XML.load() ¸Þ½îµå´Â ±âº»ÀûÀ¸·Î URLÀ» ·ÎµåÇϱ⠶§¹®¿¡, XMLSQLÀ» ÀÌ¿ëÇÏ¸é µ¥ÀÌÅͺ£À̽º¿¡ Á÷Á¢ Á¢±ÙÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÒ ¼ö ÀÖ´Ù.

XMLSocket¸¦ ÀÌ¿ëÇÑ ´ÙÁß »ç¿ëÀÚ Ã¤ÆÃ ÇÁ·Î±×·¥ °³¹ß
Ç÷¡½ÃÀÇ getURL(), LoadVars, XML µîÀÇ ¸Þ½îµå´Â ¸ðµÎ URL¿¡¼­ ÁöÁ¤µÈ ¸®¼Ò½º¸¦ Àоî¿À°Å³ª HTTP ¿¬°áÀ» »ç¿ëÇÏ´Â ºñ ¿¬°áÇü(non-connection oriented) Åë½ÅÀÌ´Ù.

XMLSocketÀº Ç÷¡½Ã 5¿¡ Ãß°¡µÈ Ŭ·¡½º·Î SWF¿Í ¼­¹ö »çÀÌ¿¡ TCP ¿¬°áÀ» ¸ÎÀ» ¼ö Àֱ⠶§¹®¿¡. äÆÃÀ̳ª °ÔÀÓ°ú °°ÀÌ ¿¬°áÀÌ ÇÊ¿äÇÑ ¼­ºñ½º¸¦ À§ÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¬°áÇü(connection oriented) ¼­ºñ½º´Â ¼­¹ö¿¡¼­ Ŭ¶óÀÌ¾ðÆ®·Î ¾Ë·ÁÁÙ ¼ö Àֱ⠶§¹®¿¡ ÈξÀ ´Ù¾çÇÑ ÀÀ¿ëÀÌ °¡´ÉÇÏ´Ù. Áï, Ŭ¶óÀÌ¾ðÆ®°¡ ÁÖ±âÀûÀ¸·Î º¯µ¿ »çÇ×À» Á¶È¸ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó º¯È­°¡ »ý°åÀ» ¶§ ¼­¹ö°¡ Ŭ¶óÀÌ¾ðÆ®¿¡ Á¤º¸¸¦ ÁÙ ¼ö Àֱ⠶§¹®¿¡ ÈξÀ ´Ù¾çÇÏ°í ´ëÈ­ÀûÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀÌ °¡´ÉÇÏ´Ù. XMLSocket °´Ã¼´Â ´ÙÀ½°ú °°ÀÌ »ý¼ºÇÑ´Ù.

socket= new XMLSocket();

¼­¹ö¿¡ ¿¬°áÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. ¼­¹ö¸¦ ÁöÁ¤ÇÏ°í Æ÷Æ®¸¦ ÁöÁ¤Çϴµ¥, Æ÷Æ® ¹øÈ£´Â 1024¹ø ÀÌ»óÀ̾î¾ß ÇÑ´Ù.

sock.connect( "192.168.0.55", 65000);

<Ç¥ 2>´Â XMLSocket Ŭ·¡½º¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â ¸Þ½îµå¿Í À̺¥Æ®¸¦ Á¤¸®ÇÑ °ÍÀÌ´Ù. ´ë·« »ìÆìºÁµµ »ç¿ë ¹æ¹ýÀº ´Ù¸¥ Åë½Å °´Ã¼µé°ú Å©°Ô ´Ù¸£Áö ¾ÊÁö¸¸ close(), onCloseó·³ ¿¬°á¿¡ °ü·ÃµÈ ¸Þ½îµå¿Í À̺¥Æ®°¡ ÀÖ´Ù.

<Ç¥ 2> XMLSocket Ŭ·¡½º¿ë ¸Þ½îµå¿Í À̺¥Æ®

 

¸Þ½îµå

connect  ¼­¹ö¿¡ TCP ¿¬°áÇÑ´Ù.

send

¼­¹ö¿¡ ¹®ÀÚ¿­ Àü¼ÛÇÑ´Ù.   close   ¿¬°áÀ» ´Ý´Â´Ù.

À̺¥Æ®

¼­¹ö¿Í ¿¬°áÀÌ ¿¬°áÀÌ ²÷°åÀ» ¶§ ¹ß»ý

onConnect

¼­¹ö·Î ¿¬°áµÆÀ» ¶§(ȤÀº ¿¬°á ½Ãµµ°¡ ½ÇÆÐÇßÀ» ¶§)

onData

¼­¹ö¿¡¼­ µ¥ÀÌÅͰ¡ µµÂøÇßÀ» ¶§

onXML

¼­¹ö¿¡¼­ µµÂøÇÑ XML ¹®ÀÚ¿­ ÆÄ½ÌÀÌ ³¡³µÀ» ¶§


onConnect(success)´Â XMLSocket.connect ¸Þ½îµå¸¦ ÅëÇØ ÃʱâÈ­µÈ ¿¬°á ¿äûÀÌ ¼º°øÇϰųª ½ÇÆÐÇßÀ» ¶§ ºÒ·ÁÁö´Â À̺¥Æ®ÀÌ´Ù. onData()¿Í onXML()´Â µÑ ´Ù ¼­¹ö·ÎºÎÅÍ µ¥ÀÌÅͰ¡ µµÂøÇßÀ» ¶§ ºÒ¸®´Âµ¥ ¿ëµµ°¡ ´Ù¸£´Ù. ¼ø¼­»óÀ¸·Î´Â onData()°¡ ¸ÕÀú ºÒ¸°´Ù. onData()´Â µ¥ÀÌÅͰ¡ µµÂøÇßÀ» ¶§, onXML()´Â µµÂøÇÑ µ¥ÀÌÅͰ¡ XML·Î ÆÄ½ÌµÆÀ» ¶§ ºÒ¸°´Ù.

<¸®½ºÆ® 3>Àº XMLSocketÀ» »ý¼ºÇØ ¿¬°áÇϰí onXML()À» »ç¿ëÇØ ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ÄÚµåÀÌ´Ù. OnConnect()¸¦ »ç¿ëÇØ ¿¬°áÀÇ ¼º°ø¿©ºÎ¸¦ È®ÀÎÇÏ´Â ³»¿ëµµ Àß »ìÆìº¸ÀÚ. <¸®½ºÆ® 3>À» ¼öÇàÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú°¡ Ãâ·ÂµÈ´Ù.

>>¼­¹ö¿¡ ¿¬°áµÇ¾úÀ¾´Ï´Ù
PeerAddress = 192.168.0.55:2231
DateTime = ¿ÀÈÄ 1:53:34
Context = ¾È³çÇϼ¼¿ä?

<¸®½ºÆ® 3> XMLSocket °´Ã¼¸¦ ÀÌ¿ëÇÑ ¿¬°á

¼­¹ö´Â C#À¸·Î ÀÛ¼ºµÆÀ¸¸ç, ¼­¹ö·Î Àü´ÞµÈ ³»¿ëÀ» XML·Î ¸¸µé¾î ¿¬°áµÈ ¸ðµç Ŭ¶óÀÌ¾ðÆ®¿¡ º¸³»ÁÖ´Â °£´ÜÇÑ Ã¤ÆÃ ¼­¹öÀÌ´Ù. ÀÌÁ¦ C# äÆÃ ¼­¹ö¸¦ Á¦ÀÛÇØ º¸ÀÚ. äÆÃ ¼­¹ö¿¡¼­ ¿©·¯ Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÀ» ó¸®Çϱâ À§Çؼ­´Â ¼ÒÄÏ ¿¬°á °´Ã¼ÀÇ ¸ñ·ÏÀ» °ü¸®ÇÒ Çʿ䰡 ÀÖ´Ù. <¸®½ºÆ® 4>´Â XmlChatServer.csÀÇ ÁÖ¿ä ºÎºÐÀÌ´Ù. ÀüüÀûÀÎ È帧À» »ìÆìº¸ÀÚ. ÀÌ Äڵ忡´Â ´ë·« ´ÙÀ½°ú °°Àº ÁÖ¿äÇÑ À̽´µéÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù.

¡ß ´ÙÁß »ç¿ëÀÚ ¿¬°á À§ÇØ ClientSocekt ¸ñ·Ï °ü¸®
¡ß ºñµ¿±â I/O
¡ß ¼ÒÄÏ ÀÔÃâ·Â¿¡ ¡®euc-kr¡¯ ÀÎÄÚµù

ÀÌ Áß ºñµ¿±â ÇÁ·Î±×·¡¹Ö°ú ´ÙÁß »ç¿ëÀÚ Ã¤ÆÃÀ» À§ÇÑ ¸ñ·Ï °ü¸® ºÎºÐÀº ÀÌ ±ÛÀÇ ¹üÀ§¸¦ ¹þ¾î³ª¹Ç·Î ³í¿Ü·Î ÇÑ´Ù.

<¸®½ºÆ® 4> XmlChatServer.csÀÇ ÁÖ¿ä ºÎºÐ

ÀÎÄÚµù ¹®Á¦¸¦ Àá±ñ »ìÆìº¸ÀÚ. XML ¹®¼­¸¦ ó¸®ÇÒ ¶§ ¸î °¡Áö À̽´°¡ Àִµ¥, °¡Àå ¸ÕÀú ±Øº¹ÇØ¾ß ÇÒ °ÍÀÌ ¹Ù·Î ÀÎÄÚµù ¹®Á¦ÀÌ´Ù. ÀÌÀü¿¡µµ À̾߱âÇßµí ¾ÖÇø®ÄÉÀÌ¼Ç ¿ÜºÎÀÇ µ¥ÀÌÅÍ´Â ´ëºÎºÐÀÇ KSC5601(¡°euc-kr¡±) ÀÎÄÚµùÀÌ´Ù. ¹°·Ð À¯´ÏÄÚµå·Î Åë½ÅÇÒ ¼öµµ ÀÖ°ÚÀ¸³ª ȯ°æÀ» »ý°¢ÇØ º¸¸é ¹Ýµå½Ã ÀÎÄÚµùÀ» °í·ÁÇØ¾ß ÇÑ´Ù. ´å³Ý¿¡¼­ ÀÎÄÚµùÀº System.Text.Encoding ³×ÀÓ½ºÆäÀ̽º¸¦ »ç¿ëÇÑ´Ù. ¿ì¸®¿¡°Ô´Â À¯´ÏÄڵ峪 ¾Æ½ºÅ° ÀÎÄÚµùº¸´Ù Çѱۿ¡ ´ëÇÑ Áö¿øÀÌ ¿ì¼±À̹ǷΠÁÖ·Î ´ÙÀ½À» »ç¿ëÇÏ°Ô µÈ´Ù.

System.Text.Encoding.GetEncoding(int codepage)

¿©±â¼­ ÄÚµåÆäÀÌÁö¶õ ÄÚµå ü°è¿¡ ºÎ¿©µÇ´Â ¹øÈ£ÀÌ´Ù. Çѱ¹¾î(KSC5601) ÄÚµå ÆäÀÌÁö´Â 949¹øÀ̸ç, ¹®ÀÚ¿­·Î´Â ¡°euc-kr¡±·Î Ç¥½ÃÇÑ´Ù. ¼ÒÄÏÀ» ÅëÇØ ¼Û¼ö½ÅµÇ´Â µ¥ÀÌÅÍ´Â ¹ÙÀÌÆ® ¹è¿­Àε¥, À̰ÍÀ» À¯´ÏÄÚµå StringÀ¸·Î ¹Ù²Ù·Á¸é ÀÎÄÚµùÀ» ÇØ¾ß ÇÑ´Ù. <¸®½ºÆ® 5>´Â KSC5601°ú À¯´ÏÄÚµå »çÀÌ¿¡ ÀÎÄÚµùÇÏ´Â °£´ÜÇÑ ¿¹¸¦ º¸¿©ÁØ´Ù.

<¸®½ºÆ® 5> KSC5601°ú À¯´ÏÄÚµå ÀÎÄÚµù ¿¹Á¦

onData Ȱ¿ë
XMLSocket °´Ã¼ÀÇ onData´Â µ¥ÀÌÅͰ¡ µµÂøÇßÀ» ¶§ ºÒ¸°´Ù. ƯÀÌÇÒ ¸¸ÇÑ Á¡Àº onData¸¦ »ç¿ëÇϸé XMLÀÌ ¾Æ´Ï¾îµµ 󸮰¡ °¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. µû¶ó¼­ XMLSocketÀ¸·Î ¹Ýµå½Ã XML¸¸À» ´Ù·ï¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. Áï, XMLSocketÀº XML»Ó¸¸ ¾Æ´Ï¶ó ÀϹÝÀûÀÎ TCP Åë½ÅÀ» À§ÇÑ ¼ÒÄÏÀ¸·Îµµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ³»ºÎÀûÀ¸·Î ¿ø·¡ onData´Â ´ÙÀ½°ú °°ÀÌ µ¿ÀÛÇÑ´Ù.

XMLSocket.onData = function (src) {
  this.onXML(new XML(src));
}

ÇÁ·Î±×·¡¸Ó°¡ onDataÀ» ¿À¹ö¶óÀ̵ùÇϸé, Áï Äڵ忡¼­ onData¸¦ ÀçÁ¤ÀÇÇϸé onXMLÀÌ ºÒ¸®Áö ¾Ê´Â´Ù(¸¸ÀÏ, onData¿Í onXMLÀ» µÑ ´Ù »ç¿ëÇÏ°í ½Í´Ù¸é onDataÀÇ Çڵ鷯 ÇÔ¼ö ³¡¿¡¼­ onXML Çڵ鷯¸¦ ºÒ·¯ÁÖ¸é µÈ´Ù). <¸®½ºÆ® 6>Àº ¿ÏÀüÇÑ ¿¹Á¦ÀÌ´Ù. onData¸¦ »ç¿ëÇØ XMLÀ» ÆÄ½ÌÇϵµ·Ï Çß´Ù. ÀÌ·¸°Ô ÇÏ´Â ÀÌÀ¯´Â ignoreWhite¸¦ »ç¿ëÇϱâ À§Çؼ­ÀÌ´Ù. ÀÌ·¸°Ô ÇÏ¸é ´Ù¾çÇÑ Ã³¸®°¡ °¡´ÉÇÏ´Ù.

<¸®½ºÆ® 6> onData(), onXML()À» ÀÌ¿ëÇÑ ÆÄ½Ì

<È­¸é 5>´Â <¸®½ºÆ® 6>¿¡¼­ ¸¸µé¾îÁø SWF¸¦ ¿©·¯ °³ ¼öÇàÇϰí XmlChatServer¸¦ ¼öÇàÇÑ °á°úÀÌ´Ù. ¿©·¯ °³ÀÇ SWF ¿¬°áÀÌ °ü¸®µÇ°í, ¸Þ½ÃÁö°¡ °¢ SWF¿¡ Àü´ÞµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. UI´Â ¾øÁö¸¸ ¿©·¯ Ŭ¶óÀÌ¾ðÆ®°¡ ¿¬°áµÈ Ç÷¡½Ã äÆÃÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ´Ù.

<È­¸é 5> XmlChatServer ¼öÇà °á°ú

XML À¥ ¼­ºñ½º ÁÖ°¡ Á¶È¸ ÇÁ·Î±×·¥
´ÙÀ½ URLÀ» ºê¶ó¿ìÀú â¿¡ ÀÔ·ÂÇØ º¸ÀÚ.

¾ßÈÄ¿¡¼­ Á¦°øÇÏ´Â ÁÖ°¡ Á¶È¸ ¼­ºñ½ºÀÌ´Ù. °¢°¢ ½ã°ú MSÀÇ ÁÖ°¡ ÇöȲ(20ºÐ ´ÜÀ§ °»½Å)À» º¸¿©ÁØ´Ù. ¾à°£ ¾ÏÈ£ °°¾Æ º¸ÀÌÁö¸¸, ´ÙÀ½°ú °°Àº °á°ú°¡ ºê¶ó¿ìÀú â¿¡ Ç¥½ÃµÈ´Ù.

"MSFT",26.1801,"6/20/2003","3:45pm",+0.1101,26.344,26.38,26.01,71121984,281.1B,26.07,"+0.42%","20.705 - 29.48",0.88,29.62,"MICROSOFT CP"

<¸®½ºÆ® 7>Àº ÀÌ ³»¿ëÀ» À¥ ¼­ºñ½º·Î ±¸ÇöÇÑ °ÍÀÌ´Ù. <¸®½ºÆ® 7>ÀÇ ³»¿ëÀº quote.yahoo.com¿¡¼­ ¸®ÅÏµÈ ¹®ÀÚ¿­À» ¡®,¡¯¸¦ ºÐ¸®ÇÏ¿© °´Ã¼·Î ¸¸µé°í, ÀÌ °´Ã¼¸¦ ¸®ÅÏÇÏ´Â À¥ ¼­ºñ½º·Î µÇ¾î ÀÖ´Ù(Stock Ŭ·¡½ºÀÇ ¼Ó¼ºÀÌ [Serializable]·Î µÇ¾î ÀÖ´Ù´Â Á¡À» ÁÖ¸ñÇÏÀÚ). °´Ã¼¸¦ ¸®ÅÏÇϸé XML ÇüÅ·Π¸¸µé¾îÁø´Ù. Áï, °´Ã¼¸¦ XML·Î ½Ã¸®¾ó¶óÀÌÁîÇÑ´Ù).

<È­¸é 6> ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º ¼öÇà È­¸é

<¸®½ºÆ® 7> ¾ßÈÄ ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º

<È­¸é 6>Àº ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º¸¦ ºê¶ó¿ìÀú¿¡¼­ ¼öÇàÇÑ °á°úÀÌ´Ù. ASP.NETÀº SOAPÀ» ÀÌ¿ëÇÏÁö ¾Ê°íµµ HTTP GETÀ̳ª POST·Î À¥ ¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. µû¶ó¼­ ÀÌ À¥ ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ°í ½Í´Ù¸é, ´ÜÁö ´ÙÀ½°ú °°ÀÌ HTTP ¿äûÀ» º¸³»¸é µÈ´Ù.

GET /StockQuote/StockQuote.asmx/GetQuote?symbol=string HTTP/1.1
Host: localhost

¿¹¸¦ µé¾î, MSÀÇ ÁÖ½ÄÀ» Á¶È¸ÇÏ°í ½Í´Ù¸é(MSFT´Â MSÀÇ ÁÖ½Ä ½ÃÀå ÄÚµåÀÌ´Ù),

http://localhost/StockQuote/StockQuote.asmx/GetQuote?symbol=MSFT

°ú °°ÀÌ HTTP ¿äûÀ» ÇÏ¸é µÈ´Ù. Ç÷¡½ÃÀÇ XML °´Ã¼¸¦ ÀÌ¿ëÇϸé, ASP.NET À¥ ¼­ºñ½º¸¦ °£´ÜÇÑ HTTP·Î ¿äÃ»ÇØ ¼ö½ÅÇÒ ¼ö ÀÖ´Ù. ¾Õ URL¿¡¼­ XML °á°ú¸¦ ¸®ÅÏ¹Þ¾Æ Ã³¸®ÇÏ´Â ¾×¼Ç½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØ º¸ÀÚ.

<¸®½ºÆ® 8> ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º

<¸®½ºÆ® 8>Àº <¸®½ºÆ® 7>, <È­¸é 6>ÀÇ ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º¸¦ Á¶È¸ÇÏ´Â ¾×¼Ç½ºÅ©¸³Æ®ÀÌ´Ù. °£´ÜÇÏ°Ô ³ª¿­Çϰí ÀÖ´Ù(ÀÌ Á¶È¸ ³»¿ëÀ» ¡®¾î¶»°Ô ¿¹»Ú°Ô º¸¿©ÁÙ °ÍÀΰ¡¡¯ÇÏ´Â °ÍÀº ÀÌ ±Û¿¡¼­ ´Ù·çÁö ¾Ê´Â´Ù). ´ÙÀ½Àº <¸®½ºÆ® 8>ÀÇ ¾×¼Ç ½ºÅ©¸³Æ®¸¦ ¼öÇàÇÑ °á°úÀÌ´Ù.

Symbol = MSFT
Last = 26.62
Date = 8/19/2003
Time = 4:01pm
Change = +0.92
Open = 25.85
High = 26.65
Low = 25.77
Volume = 73001488
MktCap = 286.7B
PrevClose = 25.70
PctChange = +3.58%
AnnRange = 21.5585 - 29.48
Earns = 0.92
PE = 27.93
Name = MICROSOFT CP
 
624 byte(s) read

Ç÷¡½Ã¿Í SOAP
HTTP GETÀ» ÀÌ¿ëÇØµµ ASP.NETÀÇ À¥ ¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, À¥ ¼­ºñ½º¸¦ Á¦´ë·Î ¾²·Á¸é UDDI¿Í SOAPÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ÁÖ°¡ Á¶È¸ À¥ ¼­ºñ½º¸¦ ÀÌ¿ëÇÏ´Â SOAP ¿äûÀÌ´Ù.

POST /StockQuote/StockQuote.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://elasticware.com/stockwebservices/GetQuote"
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xmlns:xsd="http://www.w3.org/2001/XMLSchema"

     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetQuote xmlns="http://elasticware.com/stockwebservices/">
      <symbol>string</symbol>
    </GetQuote>
  </soap:Body>
</soap:Envelope>

¾ÕÀÇ SOAP ¿äûÀº XML °´Ã¼·Î ¸¸µé¾î XML.sendAndLoad()¸¦ »ç¿ëÇØ È£ÃâÇÒ ¼ö ÀÖ´Ù. sendAndLoad()´Â ±âº»ÀûÀ¸·Î POST·Î ¿äûÀ» º¸³½´Ù. ÀÌ·± SOAP ¿äûÀ» ¸¸µé±â À§ÇØ HTTP Çì´õ¿¡ ¡°SOAPAction¡±À» ³Ö¾î¾ß Çϴµ¥, Ç÷¡½Ã 5.0 ÀÌÇÏÀÇ ¹öÀü¿¡´Â HTTP Çì´õ¸¦ ÇÁ·Î±×·¡¸Ó°¡ Ãß°¡ÇÒ ¹æ¹ýÀÌ ¾ø´Ù(5.0 ÀÌÇÏ ¹öÀü¿¡´Â HTTP Çì´õ¸¦ Ãß°¡Çϰųª Á¶ÀÛÇÏ´Â ±â´ÉÀÌ ¾ø´Ù). Ç÷¡½Ã 5¸¦ ½á¾ß ÇÑ´Ù¸é, GETÀ¸·Î ¿äûÀ» ¹Þ¾Æ SOAP ¿äûÀ» ¸¸µé°í ó¸®µÈ °á°ú¸¦ ¸®ÅÏÇÏ´Â ÆäÀÌÁö¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, soapcall.aspx ÆäÀÌÁö¸¦ ¸¸µé°í ´ÙÀ½°ú °°ÀÌ ÇÊ¿äÇÑ Á¤º¸¸¦ GET ¿äûÀ¸·Î ÆäÀÌÁö¿¡ ³Ñ±ä´Ù.

http://server/soapcall.aspx?url=http://ws_server/StockQuote.asmx&SOAPAction=SoapAction

soapcall.aspx ÆäÀÌÁö¿¡¼­ SOAP ¿äûÀ» ¸¸µé¾î URL ÀÎÀÚ¿Í SOAPAction ÀÎÀÚ¿¡ ÁöÁ¤µÈ ³»¿ëÀ¸·Î SOAP ¸Þ½ÃÁö¸¦ ¸¸µé¾î ¿äûÇÑ ´ÙÀ½ °á°ú XMLÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ ¸®ÅÏÇÏ´Â ¹æ¹ýÀÌ´Ù. Ç÷¡½Ã Ç÷¹À̾î 6.0r65 ÀÌ»óÀÇ ¹öÀü¿¡¼­´Â HTTP Çì´õ¸¦ Á¤ÀÇÇϱâ À§ÇØ XML ¹× LoadVars °´Ã¼°¡ »ç¿ëÇÏ´Â HTTP Çì´õ¿¡ »ç¿ëÀÚ Á¤ÀÇ °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ´ÙÀ½ µÎ °¡Áö »õ·Î¿î ¸Þ½îµå°¡ ÀÖ´Ù.

¡ß addRequestHeader(<header name>, <header value>)
¡ß addRequestHeader(<headers>)

ù ¹øÂ° addRequestHeader´Â ¿©·¯ ¹ø È£ÃâÀÌ °¡´ÉÇÏ´Ù. °°Àº Çì´õ À̸§À» ÁöÁ¤Çϸé, ³ªÁß¿¡ ¼³Á¤ÇÑ °ªÀÌ ÁöÁ¤µÈ´Ù. µÎ ¹øÂ° addRequestHeader´Â ¹®ÀÚ ¹è¿­À» »ç¿ëÇØ ÇѲ¨¹ø¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¸Þ½îµåÀÌ´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°ÀÌ HTTP Çì´õ¿¡ SOAPActionÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù.

xmldoc.addRequestHeader("SOAPAction", "\"GetQuote\"");

addRequestHeader()Àº 6.0r65 ¹öÀü À̻󿡸¸ Àû¿ëµÇ¹Ç·Î, ¹öÀü ȣȯ¼ºÀ» »ý°¢ÇÑ´Ù¸é º°·Î ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù. À̺¸´Ù´Â °£´ÜÇÏ°Ô ÀÌ¿ëÇÏ´Â °æ¿ì¿¡´Â loadVars, XML Ŭ·¡½º¸¦ ÀÌ¿ëÇϰí, º»°ÝÀûÀ¸·Î SOAPÀ» »ç¿ëÇϰíÀÚ ÇÑ´Ù¸é Ç÷¡½Ã ¸®¸ðÆÃÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. Ç÷¡½Ã ¸®¸ðÆÃÀº ÈξÀ °£ÆíÇÑ ¹æ¹ýÀ¸·Î SOAPÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇÒ »Ó¸¸ ¾Æ´Ï¶ó DB¿¡ ´ëÇÑ Á¢±Ù µî ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. Ç÷¡½Ã ¸®¸ðÆÃ¿¡ ´ëÇØ¼­´Â ´ÙÀ½ È£¿¡¼­ ÀÚ¼¼ÇÏ°Ô »ìÆìº¼ °ÍÀÌ´Ù.

Ç÷¡½Ã ÇÁ·Î±×·¡¸Ó
¿äÁòÀº ¡®Ç÷¡½Ã µðÀÚÀ̳ʡ¯¶õ ¸»Àº Àͼ÷ÇÏÁö¸¸ ¡®Ç÷¡½Ã ÇÁ·Î±×·¡¸Ó¡¯¶ó´Â ¿ë¾î´Â ±×¸® ³Î¸® ¾Ë·ÁÁ® ÀÖÁö ¾Ê´Ù. Ç÷¡½Ã Ŭ¶óÀÌ¾ðÆ®°¡ °¡Áø ´Ù¾çÇÑ ±â´ÉÀ» ÃÖ´ëÇÑ È°¿ëÇÏ·Á¸é, ¡®µðÀÚÀ̳ʡ¯·Î¼­°¡ ¾Æ´Ñ ¡®ÇÁ·Î±×·¡¸Ó¡¯·ÎÀÇ Á¢±Ùµµ Áß¿äÇÑ ¿ä¼Ò°¡ µÉ °ÍÀÌ´Ù. ƯÈ÷, ´å³Ýó·³ À¥ ¼­ºñ½º¸¦ ¼Õ½±°Ô ±¸ÃàÇÒ ¼ö Àִ ȯ°æ°ú ¸Â¹°¸°´Ù¸é ¡®Ç÷¡½Ã ÇÁ·Î±×·¡¸Ó¡¯´Â ´õ Å« ÈûÀ» ¾òÀ» ¼ö ÀÖ´Ù.

<È­¸é 8> ´å³Ý PetShop Ç÷¡½Ã ÇÁ·ÐÆ®¿£µå ¼öÇà È­¸é

¸ÅÅ©·Î¹Ìµð¾î Ȩ ÆäÀÌÁö¿¡ º¸¸é PetMarketÀ̶õ ºí·çÇÁ¸°Æ® ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. J2EEÀÇ Ã»»çÁø ÇÁ·Î±×·¥À̾ú´ø ¡®ÀÚ¹Ù Pet Store¡¯¸¦ MS°¡ ¡®'´å³Ý Pet Shop¡¯À̶õ À̸§À¸·Î ´å³Ý ¹öÀüÀ» °³¹ßÇØ À̸¦ ³õ°í ÇÑ µ¿¾È ÀÚ¹Ù¿Í ´å³Ý Áø¿µÀÌ ½Å°æÀüÀ» ¹ú¿´¾ú´Ù. ¸ÅÅ©·Î¹Ìµð¾îÀÇ Pet MarketÀº ¡®ÀÚ¹Ù Pet Store¡¯¿Í ¡®´å³Ý Pet Shop¡¯°ú ºñ½ÁÇÑ ¸Æ¶ôÀ¸·Î ¸¸µé¾îÁø ÇÁ·Î±×·¥ÀÌ´Ù.

¡®Ç÷¡½Ã Ŭ¶óÀÌ¾ðÆ®¡¯ + ¡®´å³Ý Pet Shop¡¯ ¹öÀü(<È­¸é 8>)Àº ´å³Ý °³¹ßÀÚµç Ç÷¡½Ã °³¹ßÀÚµç »ó´çÈ÷ ¿¬±¸ÇØ º¼¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Ù. Ç÷¡½Ã Ŭ¶óÀÌ¾ðÆ®°¡ ASP.NET°ú ¾î¶»°Ô Àß ¿¬µ¿µÉ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ÁÁÀº ¿¹Á¦ÀÌ´Ù. ´ÙÀ½ ±Û¿¡¼­ Ç÷¡½Ã¿Í °ü·ÃÇÑ º¸¾È ¹®Á¦¸¦ ´Ù·ïº¸ÀÚ. @
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨í] Çʼö ¾ÆÀÌ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ì] ÇÁ·Î±×·¡¹Ö...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨è] ¿ëÀ» ¸¸³ª...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ê] ±âº»±â ¾ø...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ë] »õ·Î¿î ½Ã...
[¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨é] ³ª´®°ú ±³...