È®ÀåÁ¡ ½ºÅ°¸¶ ÆíÁý±â´Â »õ È®ÀåÁ¡ ½ºÅ°¸¶¸¦ ÀÛ¼ºÇϰųª ±âÁ¸ È®ÀåÁ¡ ½ºÅ°¸¶¸¦ ¼±ÅÃÇÏ¿© ¿ ¼ö ÀÖ½À´Ï´Ù. ±ÔÄ¢¿¡ ÀÇÇØ »õ ½ºÅ°¸¶´Â .xsd ÆÄÀÏ È®ÀåÀÚ°¡ ÀÖ´Â È®ÀåÁ¡ ID¿Í µ¿ÀÏÇÑ À̸§À» °®½À´Ï´Ù. »õ ½ºÅ°¸¶´Â Ç÷¯±×ÀÎ µð·ºÅ丮 Æ®¸®ÀÇ schema µð·ºÅ丮¿¡ ¹èÄ¡µË´Ï´Ù.
PDE¿¡¼ »õ È®ÀåÁ¡ÀÌ ÀÛ¼ºµÉ ¶§ Ãʱ⠽ºÅ°¸¶ ÆÄÀϵµ ÀÛ¼ºµÇ¸ç, ½ºÅ°¸¶ ÆíÁý±â°¡ ÆíÁýÀ» À§ÇØ ¿¸³´Ï´Ù. ¹Ù·Î ½ºÅ°¸¶¸¦ Á¤ÀÇÇϰųª ´Ý¾Ò´Ù°¡ ³ªÁß¿¡ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. Àüü È®ÀåÁ¡ ½ºÅ°¸¶¸¦ ÀÛ¼ºÇϸé PDE°¡ È®ÀåÁ¡ »ç¿ëÀÚ¿¡°Ô ÀÚµ¿ÈµÈ Áö¿øÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
PDE ½ºÅ°¸¶ ÆíÁý±â´Â Ç÷¯±×ÀÎ Manifest ÆíÁý±â¿Í µ¿ÀÏÇÑ °³³äÀ» ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. PDE ½ºÅ°¸¶ ÆíÁý±â¿¡´Â µÎ °³ÀÇ ¾ç½Ä ÆäÀÌÁö¿Í ÇϳªÀÇ ¼Ò½º ÆäÀÌÁö°¡ ÀÖ½À´Ï´Ù. XML ½ºÅ°¸¶´Â º¹ÀâÇÏ¿© ¼Ò½º ¾ç½ÄÀ¸·Î Àбâ´Â ¾î·Æ±â ¶§¹®¿¡ ´ëºÎºÐ ¾ç½Ä ÆäÀÌÁö¸¦ »ç¿ëÇÏ¿© ÆíÁýÇØ¾ß ÇÕ´Ï´Ù. ¼Ò½º ÆäÀÌÁö´Â °á°ú ¼Ò½º Äڵ带 Àд µ¥ À¯¿ëÇÕ´Ï´Ù.
¾Õ¿¡¼ "»ùÇà ±¸¹®ºÐ¼®±â" È®ÀåÁ¡°ú Ãʱ⠽ºÅ°¸¶¸¦ ÀÛ¼ºÇß½À´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ schema Æú´õ·Î À̵¿ÇÏ¿© parsers.xsd ÆÄÀÏÀ» µÎ ¹ø Ŭ¸¯ÇÏ¸é ½ºÅ°¸¶¸¦ ¿ ¼ö ÀÖ½À´Ï´Ù. ½ºÅ°¸¶ ÆíÁý±â°¡ ¿¸³´Ï´Ù.
´ÙÀ½À» ¼öÇàÇÏ·Á°í ÇÕ´Ï´Ù.
¸ðµç È®ÀåÁ¡ ½ºÅ°¸¶´Â "extension" ¿ä¼Ò¿¡ ´ëÇÑ ¼±¾ðÀ¸·Î ½ÃÀÛÇÕ´Ï´Ù. "parser"¶ó´Â »õ XML ¿ä¼Ò¸¦ Ãß°¡ÇÏ·Á°í ÇÕ´Ï´Ù.
Áö±Ý±îÁöÀÇ ÀÛ¾÷À» ¸¶Ä¡¸é ½ºÅ°¸¶ ÆíÁý±â°¡ ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.
ÀÌÁ¦ º°°³ÀÇ ¼±ÅûçÇ× ¸ñ·Ï¿¡¼ °ªÀ» ÃëÇÏ´Â Ãß°¡ ¼Ó¼ºÀ» Ãß°¡ÇÒ Â÷·ÊÀÔ´Ï´Ù. À̰ÍÀº ±âº» ¹®ÀÚ¿ À¯Çü¿¡ ´ëÇÑ ¿°Å Á¦ÇÑ»çÇ×À» ÀÛ¼ºÇØ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù. ¶ÇÇÑ ¼Ó¼º ±âº»°ªµµ ¼³Á¤ÇÏ°Ô µË´Ï´Ù.
"parser" ¿ä¼Ò¸¦ ¼±ÅÃÇÑ »óÅ¿¡¼ »õ ¼Ó¼º ´ÜÃ߸¦ ´©¸£½Ê½Ã¿À. Ư¼º ½ÃÆ®¿¡¼ À̸§À» "mode"·Î º¯°æÇϽʽÿÀ.
"Á¦ÇÑ»çÇ×" Ư¼ºÀÇ °ª ¼¿À» Ŭ¸¯ÇÏ¿© Á¦ÇÑ»çÇ× ´ëÈ »óÀÚ¸¦ Ç¥½ÃÇϽʽÿÀ.
Á¦ÇÑ»çÇ× À¯ÇüÀ» "¾øÀ½"¿¡¼ "¿°Å"·Î º¯°æÇϽʽÿÀ.
¼¼ °³ÀÇ ¼±ÅûçÇ×("never," "always," "manual")À» Ãß°¡ÇϽʽÿÀ. ÀÌ ¼±ÅûçÇ×Àº ±¸¹®ºÐ¼®±â È®ÀåÀÚÀÇ ¼¼ °¡Áö °¡Á¤ ¸ðµåÀÔ´Ï´Ù.
Á¦ÇÑ»çÇ× ´ëÈ »óÀÚ°¡ ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.
´ëÈ »óÀÚ°¡ ´ÝÈ÷¸é "use" ¼Ó¼ºÀ» "default"·Î, "value" ¼Ó¼ºÀ» "always"·Î º¯°æÇϽʽÿÀ. ÀÌ·¸°Ô ÇÏ¸é ±âº»°ªÀÌ ¼³Á¤µË´Ï´Ù. À¯È¿ÇÑ °ªÀ» ¼¼ °³ÀÇ ¿°Å ¼±ÅûçÇ×À¸·Î Á¦ÇÑÇϱ⠶§¹®¿¡ »ç¿ëÀÚ°¡ °ªÀ» ÀÔ·ÂÇÏ´Â µ¿¾È »óÅ ǥ½ÃÁÙ¿¡ ¿À·ù ¸Þ½ÃÁö°¡ ³ªÅ¸³³´Ï´Ù. ÀÏ´Ü ÀÔ·ÂÀ» ¿Ï·áÇϸé "always"°¡ À¯È¿ÇÑ °ªÀ̹ǷΠ¿À·ù ¸Þ½ÃÁö°¡ »ç¶óÁý´Ï´Ù.
¿ä¼Ò¿Í ¼Ó¼ºÀ» ¸ðµÎ Á¤ÀÇÇßÀ¸¹Ç·Î ¹®¹ýÀ» Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ¹®¹ýÀ» Á¤ÀÇÇÏ´Â ¸ñÀûÀº "extension" ¿ä¼Ò°¡ ÀÓÀÇÀÇ ¼öÀÇ "parser" ¿ä¼Ò¸¦ ÇÏÀ§·Î °¡Áú ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.
"extension" ¿ä¼Ò¸¦ ¼±ÅÃÇϽʽÿÀ. ÇØ´ç Ãʱâ ÄÁÅÙÃ÷ ¸ðµ¨ÀÌ ºó ¼ø¼ º¹Çձ⸦ Ç¥½ÃÇÕ´Ï´Ù.
¼ø¼ º¹Çձ⸦ ¼±ÅÃÇÏ°í ÆË¾÷ ¸Þ´º¿¡¼ ½Å±Ô->ÂüÁ¶->±¸¹®ºÐ¼®±â¸¦ ¼±ÅÃÇϽʽÿÀ. ¼ø¼ º¹Çձ⿡ ±¸¹®ºÐ¼®±â ÂüÁ¶°¡ Ãß°¡µË´Ï´Ù.
ÂüÁ¶ÀÇ ±âº» ¿øÄ¢Àº [1,1]·Î Á¤È®È÷ ÇϳªÀÇ "parser" ¿ä¼Ò¸¸ ÀÖÀ» ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ÇÏÁö¸¸ ´Ù¸£°Ô ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. "parser" ÂüÁ¶¸¦ ¼±ÅÃÇÏ°í Æ¯¼º ½ÃÆ®¿¡¼ minOccurs Ư¼ºÀ» 0À¸·Î, maxOccurs¸¦ "unbounded"·Î º¯°æÇϽʽÿÀ.
¹®¹ýÀ» Á¤ÀÇÇÏ°í ³ª¸é, ¹®¹ý ¼½¼Ç ¾Æ·¡ÀÇ DTD ±Ù»ç°ªÀÌ ¼±ÅÃÇÑ ¿ä¼Ò¿¡ ´ëÇÑ ¹®¹ýÀÌ DTD¿¡¼ ¾î¶»°Ô º¸ÀÏÁö¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ Á¤º¸´Â XML ½ºÅ°¸¶º¸´Ù DTD¿¡ Àͼ÷ÇÑ °³¹ßÀÚµéÀ» À§ÇØ Á¦°øµË´Ï´Ù.
¿Ã¹Ù¸¥ ¿ä¼Ò, ¼Ó¼º, ¹®¹ýÀ» Á¤ÀÇÇßÀ¸¹Ç·Î È®ÀåÁ¡¿¡ ´ëÇÑ ÀϺΠÁ¤º¸¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. µÎ °¡Áö À¯ÇüÀÇ ½ºÅ°¸¶ ¹®¼ ½º´ÏÆêÀÌ ÀÖ½À´Ï´Ù.
¿ä¼Ò¿Í ¼Ó¼º¿¡ ´ëÇÑ ¹®¼
È®ÀåÁ¡ »ç¿ë¹ý, API µî¿¡ ´ëÇÑ ¹®¼
ù ¹øÂ° ½º´ÏÆê À¯ÇüÀº ½ºÅ°¸¶ ManifestÀÇ Á¤ÀÇ ÆäÀÌÁö¿¡ Á¦°øµË´Ï´Ù. ¿ä¼Ò¿Í ¼Ó¼ºÀ» ¼±ÅÃÇÒ ¶§ ÀÌ¿¡ ´ëÇÑ Ãà¾àÇü ÅØ½ºÆ®¸¦ "¼³¸í" ¼½¼Ç¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹»óµÇ´Â ¾ç½ÄÀº ¿ø½Ã HTML(JavadocÀÇ °æ¿ìó·³)À̸ç, ÅØ½ºÆ®´Â ÀÖ´Â ±×´ë·Î ÃÖÁ¾ ÂüÁ¶ ¹®¼¿¡ º¹»çµË´Ï´Ù.
"parser" ¿ä¼ÒÀÇ "ID" ¼Ó¼ºÀ» ¼±ÅÃÇϰí
¼³¸í ÆíÁý±â¿¡¼ ´ÙÀ½À» ÀÔ·ÂÇϽʽÿÀ.
ÀÌ ±¸¹®ºÐ¼®±â¸¦ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ëµÉ °íÀ¯ÇÑ À̸§.
"name" ¼Ó¼ºÀ» ¼±ÅÃÇÏ°í ´ÙÀ½ ÅØ½ºÆ®¸¦ Ãß°¡ÇϽʽÿÀ.
ÀÌ ±¸¹®ºÐ¼®±â¸¦ UI·Î Ç¥½ÃÇÏ´Â µ¥ »ç¿ëµÉ º¯È¯ °¡´ÉÇÑ À̸§.
"class" ¼Ó¼ºÀ» ¼±ÅÃÇÏ°í ´ÙÀ½ ÅØ½ºÆ®¸¦
Ãß°¡ÇϽʽÿÀ(HTML ÅÂ±× Âü°í).
<samp>com.example.xyz.IParser</samp> ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â
Java Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§.
"mode" ¼Ó¼ºÀ» ¼±ÅÃÇÏ°í ´ÙÀ½À»
Ãß°¡ÇϽʽÿÀ.
ÀÌ ±¸¹®ºÐ¼®±â ÀνºÅϽº°¡ ½ÇÇàµÉ ºóµµ¸¦ Ç¥½ÃÇÏ´Â ¼±ÅÃÀû
Ç÷¡±×(±âº»°ªÀº <samp>always</samp>).
ÀÌÁ¦ È®ÀåÁ¡ ÀÚü¿¡ ´ëÇÑ Ãà¾àÇü ÅØ½ºÆ® ¼³¸íÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ¼³¸íÀ» Á¦°øÇϱâ À§ÇØ ¹®¼ ÆäÀÌÁö·Î ÀüȯÇÕ´Ï´Ù.
¹®¼ ÆíÁý±â À§ÀÇ ÄÞº¸ »óÀÚ¿¡¼ "°³¿ä"¸¦ ¼±ÅÃÇϰí
´ÙÀ½ ÅØ½ºÆ®¸¦ Ãß°¡ÇϽʽÿÀ.
ÀÌ È®ÀåÁ¡Àº Ãß°¡ ±¸¹®ºÐ¼®±â¸¦ Ç÷¯±×ÀÎÇÏ´Â µ¥
»ç¿ëµË´Ï´Ù. ±¸¹®ºÐ¼®±â´Â ½ÇÁ¦·Î ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù. ±¸¹®ºÐ¼®±â¸¦ È®ÀåÁ¡ ½ºÅ°¸¶ÀÇ ¿¹·Î
¹æ±Ý »ç¿ëÇß½À´Ï´Ù.
Àû¿ëÀ» ´©¸£½Ê½Ã¿À.
ÄÞº¸ »óÀÚ¿¡¼ "¿¹"¸¦ ¼±ÅÃÇÏ°í ´ÙÀ½
ÅØ½ºÆ®¸¦ ÀÔ·ÂÇϽʽÿÀ.
´ÙÀ½Àº È®ÀåÁ¡ »ç¿ë¹ýÀÇ ¿¹ÀÔ´Ï´Ù.
<p>
<pre>
<extension point="com.example.xyz.parsers">
<parser
id="com.example.xyz.parser1"
name="Sample Parser
1"
class="com.example.xyz.SampleParser1">
</parser>
</extension>
</pre>
</p>
Àû¿ëÀ» ´©¸£½Ê½Ã¿À.
Âü°í: ¿¹¸¦ Á¦°øÇÒ ¶§´Â Ưº°ÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î PDE´Â Á¦°øµÈ ÅØ½ºÆ®¸¦ ¿ø½Ã HTML·Î Ãë±ÞÇϱ⠶§¹®¿¡ ÁÙ ¹Ù²Ù±â³ª µÎ ÀÚ ÀÌ»óÀÇ °ø¹é(Áï, ¹«½Ã °¡´ÉÇÑ °ø¹é)À» °í·ÁÇÏÁö ¾Ê½À´Ï´Ù. À̰ÍÀº ÀÏ¹Ý ÅØ½ºÆ®¿¡ ´ëÇØ¼´Â »ó°ü¾øÁö¸¸ ¿¹¸¦ Á¦°øÇÒ ¶§ ¿¹¸¦ º¸±â ÁÁ°Ô Ç¥½ÃÇϱâ À§ÇØ ÅÇ Ç¥½Ã ¹× ¼¼·Î ¸ÂÃ߱⸦ »ç¿ëÇÒ °æ¿ì¿¡´Â ¸Å¿ì ¹ø°Å·Ó½À´Ï´Ù. ÀÌ·± °æ¿ì PDE´Â HTML ÅÂ±× <pre>¸¦ ¹ß°ßÇϸé, ¸¶¹«¸® ÅÂ±× </pre>°¡ ³ªÅ¸³¯ ¶§±îÁö ÄÁÅÙÃ÷¸¦ ÀÖ´Â ±×´ë·Î(¼öÁ¤ ¾øÀÌ ¸ðµç ¹®ÀÚ¸¦ º¸Á¸ÇÏ¿©) ÃëÇÕ´Ï´Ù. ÀÌ·± ¹æ¹ýÀ¸·Î À§¿Í °°Àº ¿¹¸¦ Á¦°øÇÒ ¼ö ÀÖÀ¸¸ç µû¶ó¼ ÃÖÁ¾ ÂüÁ¶ ¹®¼¿¡¼µµ ±× ¿¹°¡ ¿Ã¹Ù·Î Ç¥½ÃµË´Ï´Ù.
¹®¼¸¦ ÀÔ·ÂÇÒ ¶§ ÆíÁý±â ¾Æ¿ô¶óÀÎ º¸±â¿¡¼ Á¡Á¡ ´õ ¸¹Àº ¿ä¼Ò°¡ "Ææ" À̹ÌÁö ¿À¹ö·¹À̸¦ ȹµæÇÑ´Ù´Â »ç½ÇÀ» ÀÌ¹Ì ¾Ë¾ÒÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÀÛÀº Ç¥½Ã±â´Â ¹®Á¦ÀÇ ¿ä¼Ò¿¡ ÀÌ¿Í ¿¬°üµÈ ÀÏºÎ ÅØ½ºÆ®°¡ ÀÖÀ½À» ¾Ë·ÁÁÝ´Ï´Ù. ¹®¼ ¾îµò°¡¿¡ ¹®¼°¡ ´©¶ôµÇ¾ú´ÂÁö¸¦ ½Å¼ÓÈ÷ È®ÀÎÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù.
¹®¼¸¦ ¿Ï·áÇßÀ¸¸é "doc" Æú´õ¿¡¼ ÂüÁ¶ ¹®¼ parsers.htmlÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹®¼´Â È®ÀåÁ¡ ½ºÅ°¸¶ ÆÄÀÏ º¯°æ»çÇ׿¡ ¹ÝÀÀÇϵµ·Ï µî·ÏµÈ PDE ºô´õ¿¡ ÀÇÇØ ºôµåµË´Ï´Ù. ÀÌ ¿¹ÀÇ °á°ú ¹®¼´Â ´ÙÀ½°ú °°½À´Ï´Ù.