ÀÚ. ¿©·¯ºÐµéÀº XMLÀ̶õ ¿ë¾î¿¡ ´ëÇÏ¿© ¸¹ÀÌ µé¾îºÃÀ» °ÍÀÌ´Ù. ÀÌ ±ÛÀ» Àд ºÐÀÌ XML¿¡ ´ëÇÏ¿©
Àß ÇÒ¼öµµ ÀÖ°í Á¢Çغ¸Áö ¸øÇÒ ¼ö ÀÖ´Ù. Á¢Çغ» ºÐÀ̶ó¸é À̹ø±ÛÀº ¼Ò°³¿¡ ´ëÇÑ ¼º°ÝÀÌ °Çϱâ
¶§¹®¿¡ ±×³É ´Ù¸¥ XML¾ÆƼŬ·Î ³Ñ¾î°¡µµ ¹«¹æÇϸ®¶ó º»´Ù.
¿©±â¼ »ìÆ캼 ³»¿ëÀº XMLÀÌ ¹«¾ùÀ̸ç, ¹«¾ùÀÌ well-formedÀ̸ç validÇÑ ¹®¼ÀÎÁö¿¡ ´ëÇÏ¿©
³îÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ namespace¶ó´Â °Í¿¡ ´ëÇÑ À̾߱⸦ °£·«ÇÏ°Ô Çغ¸µµ·Ï ÇÒ °ÍÀÌ´Ù.
¢º XMLÀ̶õ?
XMLÀº eXtensible Markup LanguageÀÇ ¾àÀÚ·Î ±âÁ¸ HTMLÀÌ °¡Áö°í Àִ ű×(tag)ÀÇ ÇÑ°è¿Í SGMLÀÇ
º¹À⼺À» º¸¿ÏÇϱâ À§ÇØ ¸¸µé¾îÁø °ÍÀ¸·Î, À¥¿¡¼ÀÇ µ¥ÀÌÅÍ ¹× ±¸Á¶ÈµÈ ¹®¼µéÀ» À§ÇÑ º¸ÆíÀûÀÎ
Ç¥ÁØÀ̸ç, W3C¿¡ 1996³â¿¡ Á¦¾ÈµÇ¾î 1998³â 2¿ù¿¡ W3CÇ¥ÁØÀÌ µÇ¾ú´Ù. À̸§¿¡¼ º¸¿©Áöµí XMLÀº
°íÁ¤µÈ ű׸¦ °¡Áö°í ÀÖ´ø HTML°ú ´Þ¸® ¹®¼ÀÇ ³»¿ë¿¡ °ü·ÃµÈ ű׸¦ »ç¿ëÀÚ°¡ Á¤ÀÇÇÏ¿© È®ÀåÇÒ
¼ö ÀÖµµ·Ï ÇÏ¿© ³»¿ëÁ¤º¸ÀÇ Á߿伺À» °Á¶ÇÑ´Ù. ¶ÇÇÑ XSLÀ» »ç¿ëÇÏ¿© ¹®¼ÀÇ ¿Ü¾çÀ» Ç¥ÇöÇϱ⠶§¹®¿¡,
³»ºÎ ±¸Á¶¿Í Ç¥ÇöÀÇ ºÐ¸®¸¦ ÅëÇÑ ´Ù¾çÇÑ È°¿ë °¡´É¼ºÀ» Á¦°øÇÔÀ¸·Î½á ÀÎÅͳݿ¡¼ Àü´ÞµÇ¾î¾ß ÇÒ
¸¹Àº Á¤º¸µéÀ» ±â¼úÇÏ´Â µ¥ ÀÖ¾î »ç¿ëÀÚ¿Í °³¹ßÀÚ ¸ðµÎ¿¡°Ô Æí¸®ÇÔÀ» Á¦°øÇÑ´Ù.
eXtensible ? SGMLÀ̳ª HTMLó·³ ÀÌ¹Ì Á¤ÇØÁø ű׿¡ ´ëÇÑ Á¦¾àÀ» ¹ÞÁö ¾Ê´Â´Ù.
ÀڽŸ¸ÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ ¸Â°Ô²û ±¸¼ºÇÒ ¼ö ÀÖ´Ù.
¢º XMLÀÇ Æ¯Â¡
´Ü¼ø¼º:XMLÀº ´Ù¸¥ ÄÚµå¼ÂÀÌ ¾Æ´Ñ ÀÏ¹Ý text·Î µÇ¾î ÀÖ¾î ½±°Ô Æǵ¶ÀÌ °¡´ÉÇϸç, H/W or S/W¿¡
ÀÇÁ¸ÇÏÁö ¾ÊÀ¸¹Ç·Î simpleÇØÁú¼ö Àִ Ư¡À» °¡Áö°í ÀÖ´Ù.
Ç¥Áؼº:W3C°¡ ÁÖµµÇϹǷΠ½ºÆåÀÇ Ç¥ÁØȸ¦ ÀÌ·ê ¼ö ÀÖ´Ù.
È®À强:»ç¿ëÀÚ ÀÓÀÇ´ë·ÎÀÇ ¹«ÇÑÇÑ Å±×È®ÀåÀÌ ÀÌ·ç¾îÁú ¼ö ÀÖÀ¸¸ç, »óȲ¿¡ µû¶ó ÀûÀýÇÑ
ű×ÀÇ ºÎ¿©°¡ °¡´ÉÇÏ´Ù.
½ºÅ¸ÀϽÃÆ®:¹®¼ÀÇ ³í¸®±¸Á¶¸¦ ±â¼úÇϱâ À§ÇÑ ¾ð¾î·Î XSL°ú °°Àº Ç¥ÁØ ½ºÅ¸ÀÏ ½ÃÆ®¾ð¾î°¡ Á¸ÀçÇÑ´Ù.
Character Set: UTF-8 or UTF-16 Äڵ尡 °¡´ÉÇѵ¥, ¸ðµç XMLÇÁ·Î¼¼¼´Â 16bit Unicode¸¦ Áö¿øÇϵµ·Ï
ÇϹǷΠÇѱ۰ú °°Àº 2byte¹®ÀÚ±ÇÀÇ µ¥ÀÌÅ͵µ 󸮰¡ °¡´ÉÇÏ´Ù.
¢º Well-formed Document±¸Á¶
¾Æ·¡¿Í °°Àº »çÇ×À» °¡Áø´Ù¸é Well-Formed¹®¼¶ó ºÎ¸¥´Ù
- Prolog : <?xml version="1.0"?>
- Root Element : XML Document½ÃÀÛÁ¡
- Miscellaneous : Element, Entity, Comment, PI, DTD declaration, CDATA Section µîµî
Prolog:XMLÀÇ ¼±¾ðºÎ¿Í °°Àº ÇüÅÂÀÌ´Ù. À§¿¡¼´Â ¾î¶°ÇÑ ÀÎÄÚµù¹æ½Äµµ ÃëÇÏ°í ÀÖÁö ¾Ê´Ù.
À§Ã³·³ ¾Æ¹«·± ¹æ½Äµµ ÃëÇÏÁö ¾Ê¾Ò´Ù¸é ¹®¼´Â ¿ÀÁ÷ UTF-8À̳ª UTF-16¸¸À» ÃëÇØ¾ß ÇÑ´Ù.
Root Element : XML DocumentÀÇ ½ÃÀÛÁ¡À̸ç, ¿À·ÎÁö ¹®¼³»¿¡ Çϳª¸¸ Á¸ÀçÇÑ´Ù.
Miscellaneous : ·çÆ® ¿ø¼Ò µÚ¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Â ´Ù¸¥ ¿ä¼ÒµéÀ̸ç À§ÀÇ ¿¹ ÀÌ¿Ü¿¡µµ
whitespace characterµîÀÌ ¿Ã ¼ö ÀÖ´Ù.
À§¿¡¼ ¸»ÇÑ ¼¼°¡ÁöÀÇ ±¸¼º¿ä¼Ò´Â XML Specification v1.0¿¡ Ç¥±âµÇ¾î ÀÖ´Â ³»¿ëÀÌ´Ù.
ÀÌµé ¸ðµÎ´Â EBNF¸¦ »ç¿ëÇϸç, À̵鿡 ´ëÇÑ ³»¿ëÀº
http://www.w3c.org/TR/2000/REC-xml-20001006
¿¡¼ ãÀ» ¼ö ÀÖ´Ù.
¢º Valid XML Document conditions
- Valid XML Description
- DTD¸¦ µû¸£´Â Well-formed XML ¹®¼
- Valid XML Requirement
- DTD¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù.
- DTD¿¡¼ Á¤ÀÇÇÑ ¹®¹ýÀ» µû¶ó¾ß ÇÑ´Ù
Well-Formed documentÀ̱â À§Çؼ ¿ä±¸µÇ¾îÁö´Â Á¦¾àÁ¶°ÇµéÀº ÃæºÐÈ÷ ÀǹÌÀÖ°í À¯¿ëÇÑ´Ù.
ÇÏÁö¸¸ well-formed document³»¿¡ µé¾îÀÖ´Â µ¥ÀÌÅ͵éÀ» Á¤È®ÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Ù´Â º¸ÀåÀº
¾ø´Â °ÍÀÌ´Ù. À̵¥ µû¶ó XML ½ºÆå»ó¿¡ Á¤ÀǵǾî ÀÖ´Â Á¶°Ç(validity constraints)¸¦ ÀÌ¿ëÇÏ°Ô µÇ´Â
ÀÌ ÀûÇÕ¼º°Ë»ç¿¡ DTD¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
¢º NamespaceÀÇ Çʿ伺
ÇÁ·Î±×·¥À» ¸¹ÀÌ Â¥º¸¾Ò´Ù¸é ÇÁ·Î±×·¥»ó¿¡¼ °°Àº º¯¼öÀ̸§À» »ç¿ëÇÏ¿© ÄÄÆÄÀÏ ¿¡·¯¸¦ ¸¸³µ´ø
°æÇèÀ» ´©±¸³ª Çѹø¾¿ °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. °¡·É i, number, countµîµîÀÇ º¯¼öÀ̸§À̶ó¸é ±×·¯ÇÒ
°ÍÀÌ´Ù.
±×·¯ÇÑ °æ¿ì°¡ XML document¿¡¼µµ ³ªÅ¸³¯ ¼ö Àִµ¥ ÀÌ´Â XMLÀÌ °¡Áø È®À强ÀÇ Æ¯Â¡ ¶§¹®ÀÌ´Ù.
ÀÛ¼ºÀÚ ³ª¸§´ë·ÎÀÇ Å±׸¦ Á¤ÀÇÇÏ´Ùº¸¸é ÇÁ·Î±×·¥»óÀÇ ¿À·ù¸¦ ÃæºÐÈ÷ ¸¸³¯ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
ÇØ°á¹æ¾ÈÀº ÀÏ¹Ý ÀÚ¹ÙÇÁ·Î±×·¥À» »ý°¢Çغ¸¸é µÉ °ÍÀÌ´Ù. °°Àº count¶ó´Â º¯¼ö¶óµµ ¼·Î ´Ù¸¥
Ŭ·¡½ºÀÇ attribute·Î ¼ÓÇØ ÀÖ´Ù¸é ±×°ÍÀ» °°Àº À̸§À¸·Î º¼ °ÍÀΰ¡ ÇÏ´Â °ÍÀÌ´Ù.
±×°ÍÀº ºÐ¸íÈ÷ ´Ù¸£´Ù. ÀÚ¹Ù¿¡¼ attribute scope¸¦ ÀÌ¿ëÇÏ¿© ÇØ°áÇÏ´Â °Íó·³ XMLµµ °°Àº À̸§¿¡
´ëÇÏ¿© ´Ù¸¥ scope¸¦ ÇÒ´çÇÔÀ¸·Î¼ À̸§Ãæµ¹À» ÇÇÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù
¢º Namespace Prefix
Namespace¿¡ ´ëÇÑ À¯Àϼº º¸Àå
: (colon)À» ÀÌ¿ëÇÏ¿© ±¸ºÐ
<prefix:name>
(¿¹) <person:leg>2</person:leg>
<horse:leg>4</horse:leg>
½ÇÁ¦ XML¹®¼ÀÇ ÀÛ¼º±ÔÄ¢¿¡ :À» »ç¿ëÇÒ ¼ö ¾ø°Ô µÇ¾î Àִµ¥ ÀÌ´Â ÀÌ NamespaceÀÇ ¿µ¿ªÀ» À§ÇÑ
°ÍÀ̱⠶§¹®ÀÌ´Ù. ¶ÇÇÑ namespace´Â °¢°¢ÀÇ À̸§¿µ¿ª¿¡ ´ëÇÑ À¯ÀϼºÀ» º¸ÀåÇؾ߸¸ ÇÑ´Ù.
¸¸¾à º¸ÀåÀÌ ¾ÈµÇ´Ù¸é °á±¹ ¶Ç ´Ù¸¥ À̸§ÀÇ Ãæµ¹À» ÇÇÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.
NamespaceÀÇ ±¸ºÐÀº °£´ÜÈ÷ :À» ÀÌ¿ëÇÏ¿© ±¸ºÐÇÏ¿© À§ÀÇ ¿¹Á¦°°Àº °æ¿ì leg¶ó´Â ±âÁ¸ÀÇ
À̸§ Ãæµ¹À» ¸¸³¯ ¼ö°¡ Àִµ¥ À̸§ namespaceÀÇ Á¢µÎ¾î¸¦ ÀÌ¿ëÇÏ¿© ÇØ°áÇÏ°í ÀÖ´Ù.
¢º Namespace Declaration
- Namespace»ç¿ëÀü ¹Ýµå½Ã ¼±¾ð
- ElementÀÇ attribute·Î ¼±¾ð
- Attribute name˼ xmlns or xmlns:
- xmlns: ÀÇ °æ¿ì URI¿Í prefix·Î ±¸¼º
- xmlns:prefix=¡°URI¡±
Namespace¸¦ »ç¿ëÇϱâ À§Çؼ´Â ½ÇÁ¦ namespaceÀÇ ¿ä¼ÒÀÇ ¼Ó¼ºÀ¸·Î ¹Ýµå½Ã ¼±¾ðÇϵµ·Ï ÇÑ´Ù.
ÇÁ·Î±×·¥ ÄÚµù½Ã º¯¼ö¸¦ »ç¿ëÇϱâ Àü ¼±¾ðÀ» ÇÏ´Â °Í°ú °°Àº ³í¸®¶ó°í º¸¸é ¹«¹æÇÒ µí ÇÏ´Ù.
xmlns¿¡´Â ÆøÆ÷È¿°ú(waterfall effect)°¡ Àִµ¥ ÀÌ´Â ¾î¶² prefix°¡ element³ª attribute¿¡¼ »ç¿ëµÇ¾ú°í,
ÇØ´ç ¿ä¼Ò¿¡´Â ±× Á¢µÎ¾î¿¡ ´ëÇÑ xmlns attribute°¡ »ç¿ëµÇÁö ¾Ê¾Ò´Ù¸é ÀÚµ¿À¸·Î ±× ¿ä¼ÒÀÇ ºÎ¸ð¸¦
°Ë»çÇϸç, ¹Ýº¹ÀûÀÎ ¹æ¹ýÀ¸·Î ·çÆ®¿ø¼Ò±îÁö ã¾Æ ¿Ã¶ó°¡°Ô µÈ´Ù. µû¶ó¼ º¸Åë xmlns attribute¸¦
·çÆ®¿ø¼Ò¿¡ ¼±¾ðÇÏ´Â°Ô ÀϹÝÀûÀÌ´Ù.
°£´ÜÇÏ°Ô À̹ø ±Û¿¡¼´Â XMLÀÇ ±âº»ÀûÀÎ ³»¿ëÀ» »ìÆ캸¾Ò°í ´ÙÀ½ ±Û¿¡¼´Â SAXÆļ ¹×
DOMÆļ¿¡ ´ëÇÑ ¼³¸íÀ» Çϵµ·Ï ÇÑ´Ù.
»ó´çÈ÷ °£·«ÇÑ ¼Ò°³ÀÇ ³»¿ëÀ̾ú´Âµ¥ ´Ù¸¥ °ÍÀº ´Ù ±×¸¸µÎ´õ¶óµµ È®½ÇÇÏ°Ô ¾Ë¾ÆµÎ¾î¾ß ÇÒ°ÍÀº
tag, attribute, content¿¡ ´ëÇÑ ³»¿ëÀ̸é ÃßÈÄ ÇÁ·Î±×·¥°úÀÇ ¿¬µ¿À¸·Î Â÷Â÷ ÀÍÇô³ª°¡µµ·Ï ÇÏÀÚ.
Written by Carouser - 2002-08-05
|