ÄÁÅÙÃ÷ À¯Çü

org.eclipse.core.runtime.content ÆÐŰÁö´Â µ¥ÀÌÅÍ ½ºÆ®¸²¿¡ ´ëÇÑ ÄÁÅÙÃ÷ À¯Çü Á¤ÀǸ¦ Áö¿øÇÕ´Ï´Ù. ÄÁÅÙÃ÷ À¯ÇüÀº ÀÚµ¿ ÀÎÄÚµù ÆÇº°, ºñ±³ ÆíÁý±â ¼±Åà ¹× ¸Þ´º Á¦°ø°ú °°ÀÌ EclipseÀÇ ¿©·¯ ÄÁÅÙÃ÷ ±â´É¿¡¼­ »ç¿ëµË´Ï´Ù. IContentTypeManager¿¡¼­ °ü¸®ÇÏ´Â Áß¾Ó ÄÁÅÙÃ÷ ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇϸé Ç÷¯±×ÀÎÀÌ ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÒ ¼ö ÀÖÀ¸¸ç, ÄÁÅÙÃ÷¸¦ ÀÐ°í ¼³¸íÇÏ´Â ¹æ¹ýÀ» ¾Ë°í Àִ Ŭ·¡½º¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅÙÃ÷ À¯ÇüÀ» Á¦°øÇÏ·Á¸é ÄÁÅÙÃ÷ ÇÁ·¹ÀÓ¿öÅ©¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ°¡ ÇÊ¿äÇÕ´Ï´Ù.

Âü°í: ÀÌ ¼³¸íÀÇ °æ¿ì ÄÁÅÙÃ÷¿¡ ´ëÇØ ³íÀÇÇÒ ¶§ ƯÈ÷ ´Ü¾î fileÀ» »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ·±Å¸ÀÓ ÄÁÅÙÃ÷ ¿£ÁøÀº ÄÁÅÙÃ÷°¡ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖ´Â ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖ´Ù°í °¡Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ÄÁÅÙÃ÷´Â ÄÁÅÙÃ÷ À¯ÇüÀ» ÆÄÀÏ À̸§ ÁöÁ¤ ÆÐÅϰú ¿¬°ü½Ãų ¼ö ÀÖ´Â ÇÁ·ÎÅäÄÝÀ» Æ÷ÇÔÇÕ´Ï´Ù. ½ÇÁ¦·Î ÀÌ·¯ÇÑ ÆÄÀÏ À̸§Àº ÆÄÀÏ ½Ã½ºÅÛÀÇ ÆÄÀÏÀ» ³ªÅ¸³»Áö¸¸ ÄÁÅÙÃ÷ ½Ã½ºÅÛ ±¸ÇöÀÇ ¾î¶°ÇÑ Ç׸ñµµ ÄÁÅÙÃ÷°¡ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÖÀ½À» °¡Á¤ÇÏÁö ¾Ê½À´Ï´Ù. ÆÄÀÏ ÀÎÄÚµù ¹× ÄÁÅÙÃ÷ À¯Çü¿¡¼­´Â Ç÷§Æû ÀÚ¿ø Ç÷¯±×Àο¡¼­ Á¦°øÇÏ´Â ÆÄÀÏ ÁöÇâ ÄÁÅÙÃ÷ À¯ÇüÀ» ¼³¸íÇÕ´Ï´Ù.

ÄÁÅÙÃ÷ Á¤ÀÇ ¹× ¼³¸í

Ç÷§ÆûÀº ÀÏ¹Ý ÅØ½ºÆ® ¹× XML µ¥ÀÌÅÍ ½ºÆ®¸²°ú °°Àº ÀϺΠ±âº» ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÄÁÅÙÃ÷ À¯ÇüÀº ±âŸ Ç÷¯±×Àο¡¼­ Á¦°øÇÏ´Â À¯Çü°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î Á¤Àǵ˴ϴÙ. ÄÁÅÙÃ÷ À¯Çü ÇÁ·¹ÀÓ¿öÅ©¸¦ ´õ Àß ÀÌÇØÇϱâ À§ÇØ Ç÷§ÆûÀÌ ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» »ìÆì º¸±â·Î ÇÕ´Ï´Ù.

Ç÷¯±×ÀÎÀº È®ÀåÁ¡ org.eclipse.core.runtime.contentTypes¿¡ ´ëÇÑ È®ÀåÀ» Á¦°øÇÏ¿© ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ È®Àå¿¡¼­ Ç÷¯±×ÀÎÀº ÄÁÅÙÃ÷ À¯ÇüÀÇ ID¿Í À̸§ ¹× ÀÔ·Â ½ºÆ®¸²À» Àаí ÄÁÅÙÃ÷¿¡ ´ëÇÑ ¼³¸íÀ» Á¦°øÇÒ ¼ö ÀÖ´Â IContentDescriber¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯Çü¿¡ ´ëÇÑ ·±Å¸ÀÓ Ç÷¯±×ÀÎÀÇ Áö½Ã¹®ÀÔ´Ï´Ù.

	<extension point="org.eclipse.core.runtime.contentTypes">
		<content-type id="text" name="%textContentTypeName">
			priority="high"
			file-extensions="txt">
			<describer class="org.eclipse.core.internal.content.TextContentDescriber"/>	
		</content-type>
		...

TextContentDescriber´Â ÀÔ·Â ½ºÆ®¸²À» Àаí Á¦°øµÈ ÄÁÅÙÃ÷°¡ ¿Ã¹Ù¸¥ ÅØ½ºÆ® »ùÇÃÀÎÁö¸¦ ½Å¼ÓÈ÷ ÆÇº°ÇØ¾ß ÇÕ´Ï´Ù. ¸Þ¼Òµå describe(inputStream, description)´Â Ç÷§ÆûÀÌ Æ¯Á¤ µ¥ÀÌÅÍ ½ºÆ®¸²ÀÇ ÄÁÅÙÃ÷¸¦ ÆÇº°ÇÏ·Á°í ½ÃµµÇÒ ¶§¸¶´Ù È£ÃâµË´Ï´Ù. IContentDescriber´Â ÄÁÅÙÃ÷°¡ ÇØ´ç ÄÁÅÙÃ÷ À¯ÇüÀÇ ¿Ã¹Ù¸¥ »ùÇÃÀ» Ç¥½ÃÇÏ´ÂÁö ¿©ºÎ¸¦ ½Å¼ÓÈ÷ ÆÇº°Çϰí ÄÁÅÙÃ÷°¡ ÇØ´ç À¯Çü°ú ÀÏÄ¡ÇÏ´ÂÁö¸¦ Ç¥½ÃÇÏ´Â »ó¼ö¸¦ ¸®ÅÏÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ÄÁÅÙÃ÷°¡ ÇØ´ç À¯Çü°ú ÀÏÄ¡ÇÒ °æ¿ì ¼³¸íÀÚ´Â ÇØ´ç µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¤º¸·Î Á¦°øµÈ IContentDescriptionÀ» ä¿ö¾ß ÇÕ´Ï´Ù.

IContentDescriptionÀº ÄÁÅÙÃ÷ ƯÁ¤ ¼Ó¼ºÀ» Ű/°ª ½ÖÀ¸·Î ÀúÀåÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¼Ó¼ºÀº ƯÁ¤ ÄÁÅÙÃ÷ À¯Çü¿¡ ƯÁ¤ÇÕ´Ï´Ù. Ç÷§ÆûÀº ÅØ½ºÆ® ÆÄÀÏ¿¡ ´ëÇÑ ¹ÙÀÌÆ® ¼ø¼­ ¹× ¹®ÀÚ ¼¼Æ®ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÏÁö¸¸ ´Ù¸¥ ¼Ó¼ºÀÌ Á¤ÀÇµÉ ¼ö ÀÖ½À´Ï´Ù.

ÄÁÅÙÃ÷ À¯Çü ã±â

IContentTypeManager´Â ÄÁÅÙÃ÷ ·¹Áö½ºÆ®¸®ÀÇ ÇÁ·ÎÅäÄÝÀ» Á¤ÀÇÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ¿© ÄÁÅÙÃ÷ ½ºÆ®¸²À» Å×½ºÆ®Çϰųª ½Ã½ºÅÛ¿¡ ÀÖ´Â ±âŸ ÄÁÅÙÃ÷ À¯ÇüÀ» ã½À´Ï´Ù.

ÄÁÅÙÃ÷ À¯ÇüÀº IContentTypeÀ¸·Î Ç¥½ÃµË´Ï´Ù. ÀÌ Å¬·¡½º´Â µ¥ÀÌÅÍ ½ºÆ®¸²À» Àаí ÄÁÅÙÃ÷ À¯Çü ƯÁ¤ Á¤º¸¸¦ ÇØ¼®ÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ´Â °íÀ¯ ÄÁÅÙÃ÷ À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù. ÄÁÅÙÃ÷ À¯ÇüÀº º»ÁúÀûÀ¸·Î °èÃþ ±¸Á¶ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î XML µ¥ÀÌÅÍÀÇ ÄÁÅÙÃ÷ À¯ÇüÀº ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀÇ ÇÏÀ§·Î °£Áֵ˴ϴÙ.

		<content-type id="xml" name="%xmlContentTypeName" 	
			base-type="text"
			priority="high"			
			file-extensions="xml"
			default-charset="UTF-8">
			<describer class="org.eclipse.core.internal.content.XMLContentDescriber"/>
		</content-type>

À̸¦ ÅëÇØ »õ ÄÁÅÙÃ÷ À¯ÇüÀº ´õ¿í ÀϹÝÀûÀÎ ÄÁÅÙÃ÷ À¯ÇüÀÇ ¼Ó¼º ¶Ç´Â ÀÛµ¿¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.

¹®ÀÚ ¼¼Æ®

Ç÷§Æû ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀº ÅØ½ºÆ® ÄÁÅÙÃ÷ÀÇ ¹®ÀÚ ¼¼Æ®¸¦ Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù. ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀÇ ÇÏÀ§´Â XML ÄÁÅÙÃ÷ À¯ÇüÀÌ ÁöÁ¤ÇÏ´Â °Íó·³ ÀûÀýÇÑ °æ¿ì ´Ù¸¥ ±âº» ¹®ÀÚ ¼¼Æ®¸¦ ÀÚÀ¯·Ó°Ô ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. XML ½ºÆ®¸²ÀÇ ±âº» ¹®ÀÚ ¼¼Æ®´Â UTF-8À̸ç, À̰ÍÀº ÄÁÅÙÃ÷¿¡ ¸í½ÃÀûÀ¸·Î ¼³¸íµÈ ÀÎÄÚµùÀÌ XML ÆÄÀÏ¿¡ ¾øÀ» ¶§ ÇØ´ç ÀÎÄÚµùÀÌ UTF-8·Î °£ÁÖµÊÀ» ÀǹÌÇÕ´Ï´Ù.

ÄÁÅÙÃ÷ À¯Çü Ãæµ¹

µÎ °³ÀÇ µ¶¸³ Ç÷¯±×ÀÎÀÌ µ¿ÀÏÇÑ À¯ÇüÀÇ ÄÁÅÙÃ÷¿¡ ´ëÇÑ ÄÁÅÙÃ÷ À¯ÇüÀ» Á¦°øÇÏ´Â °æ¿ì¸¦ »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì¿¡ Ç÷§ÆûÀº ÇØ´ç ÄÁÅÙÃ÷¿¡ ´ëÇØ ÇϳªÀÇ ÄÁÅÙÃ÷ ¼³¸íÀÚ¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ ¼³¸íÀÚ´Â contentTypes È®Àå¿¡ ÁöÁ¤µÉ ¼ö ÀÖ´Â priority ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÆÇº°µË´Ï´Ù. µÎ °³ÀÇ Ç÷¯±×ÀÎÀÌ µ¿ÀÏÇÑ ¿ì¼±¼øÀ§ÀÇ µ¿ÀÏÇÑ ÄÁÅÙÃ÷¿¡ ´ëÇÑ ÄÁÅÙÃ÷ À¯ÇüÀ» Á¦°øÇÒ °æ¿ì¿¡´Â ¾î´À ÄÁÅÙÃ÷ ¼³¸íÀÚ°¡ ¼±ÅÃµÉ °ÍÀÎÁö°¡ ¸íÈ®ÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ÄÁÅÙÃ÷ ¼³¸íÀÚ°¡ ¼±ÅõǸé "¼Õ½ÇµÈ" ÄÁÅÙÃ÷ ¼³¸íÀÚ¿¡ ´ëÇÑ ¸ðµç ·¹Áö½ºÆ®¸® ÂüÁ¶´Â ¼±ÅÃµÈ ¼³¸íÀÚÀÇ º°¸íÀ¸·Î ÁöÁ¤µË´Ï´Ù.

¹ýÀû ÁÖÀÇ»çÇ×