ġƮ ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏ XML Çü½Ä

¹öÀü 3.0

ÀÌ ¹®¼­¿¡¼­´Â ġƮ ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏ ±¸Á¶¸¦ ÀÏ·ÃÀÇ DTD ´ÜÆí(½Ã½ºÅÛ Àб⠰¡´É XML ½ºÅ°¸¶)À¸·Î ¼³¸íÇÕ´Ï´Ù.

cheatsheet

<!ELEMENT cheatsheet (intro, item+)> 
<!ATTLIST cheatsheet 
  title               CDATA #REQUIRED
>

<cheatsheet> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏÀÇ º»¹®À» Á¤ÀÇÇÕ´Ï´Ù. <cheatsheet> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

intro

<!ELEMENT intro (description)>
<!ATTLIST intro 
  contextId           CDATA #IMPLIED 
  href                CDATA #IMPLIED 
>

<intro> ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© Ç¥½ÃÇÒ Ä¡Æ® ½ÃÆ® ¼Ò°³¸¦ ¼³¸íÇÕ´Ï´Ù. <description> ºÎ¼Ó ¿ä¼Ò¿¡´Â ¼Ò°³ º»¹®ÀÌ µé¾î ÀÖ½À´Ï´Ù. <intro> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

description

<!ELEMENT description EMPTY>
<!ATTLIST description 
>

<description> ¿ä¼Ò¿¡´Â ġƮ ½ÃÆ® ¶Ç´Â ġƮ ½ÃÆ® Ç׸ñÀÇ ¼³¸íÀÌ µé¾î ÀÖ½À´Ï´Ù. ÇØ´ç ¼³¸íÀº ´Ü¼ø Çü½ÄÈ­ űװ¡ ÀÖ´Â ÅØ½ºÆ®·Î ±¸¼ºµË´Ï´Ù. ġƮ ½ÃÆ®´Â ÅØ½ºÆ®¸¦ UI¿¡ Á¦´ë·Î Ç¥½ÃÇϵµ·Ï ÀÚµ¿À¸·Î Çü½ÄÈ­ ¹× ¹èÄ¡ÇÕ´Ï´Ù. ÅØ½ºÆ®¿¡¼­ ¦ÀÌ ¸Â´Â <b>...</b> ű׸¦ »ç¿ëÇϸé ÇØ´ç ű׷ΠµÑ·¯½ÎÀÎ ÅØ½ºÆ®¸¦ ±½ÀºÃ¼ ±Û²Ã·Î ·»´õ¸µÇÒ ¼ö ÀÖ°í <br/> ¿ä¼Ò¸¦ »ç¿ëÇϸé Çà ¹Ù²Ù±â¸¦ °­Á¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Å±װ¡ ÀÌ °æ¿ì¿¡ Áö¿øµÇ´Â À¯ÀÏÇÑ Çü½ÄÈ­ ű×ÀÔ´Ï´Ù. ÇÏÁö¸¸ ³ªÁß¿¡ ´Ù¸¥ ű׸¦ Ãß°¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. XML ±¸¹® ºÐ¼®±â¿¡¼­ Áß¿äÇÑ ÅØ½ºÆ®ÀÇ Æ¯Á¤ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù. ƯÈ÷ "&lt;", "&gt;", "&amp;", "&apos;" ¹× "&quot;"¸¦ ¾²´Â ´ë½Å "<", ">", "&", "'" ¹× """(¹°À½Ç¥)¸¦ ¾¹´Ï´Ù. °ø¹é(°ø¹é ¹× Çà ¹Ù²Ù±â)Àº ´Ü¾î ºÐ¸®ÀڷΠ󸮵ǰí ÀÎÁ¢ °ø°£ ¹× Çà ¹Ù²Ù±â´Â ´ÜÀÏ ÀåÄ¡·Î ó¸®µÇ¾î ´ÜÀÏ °ø¹é ¶Ç´Â Çà ¹Ù²Ù±â·Î ·»´õ¸µµË´Ï´Ù. </description> ÅÇ±× ¾ÕÀÇ °ø¹é°ú ¸¶Âù°¡Áö·Î <description> ¹× <br/> ÅÂ±× ¹Ù·Î µÚÀÇ °ø¹éµµ ¹«½ÃµË´Ï´Ù.

item

<!ELEMENT item (description ([action|perform-when] | (subitem|repeated-subitem|conditional-subitem)*))> 
<!ATTLIST item 
  title               CDATA #REQUIRED
  skip                ("true" | "false") "false"
  contextId           CDATA #IMPLIED 
  href                CDATA #IMPLIED
>

°¢ <item> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ®¿¡ ÀÖ´Â ÇϳªÀÇ ÃÖ»óÀ§ ·¹º§À» ¼³¸íÇÕ´Ï´Ù. <item>Àº ´Ü¼ø ¶Ç´Â º¹ÇÕ Ç׸ñÀÏ ¼ö ÀÖ½À´Ï´Ù. <item> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

org.eclipse.ui.cheatsheets.cheatSheetItemExtensionÀ» »ç¿ëÇϸé Ç׸ñÀÇ Ãß°¡ »ç¿ëÀÚ Á¤ÀÇ Á¦¾î¸¦ UI¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ È®ÀåÁ¡À» Á¦°øÇÒ ¶§ <item> ¿ä¼Ò¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ¹®ÀÚ¿­ °ªÀÇ Ãß°¡ ¼Ó¼º À̸§À» ¼±¾ðÇÕ´Ï´Ù.

´Ü¼ø Ç׸ñ¿¡´Â ¼³¸í ¹× ¼±ÅÃÀû Á¶Ä¡°¡ ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì ÀÏ¹Ý ÇÁ¸®Á¨Å×À̼ǿ¡¼­ ġƮ ½ÃÆ® Ç׸ñÀÇ Á¦¸ñÀÌ »ç¿ëÀÚ¿¡°Ô Ç¥½ÃµË´Ï´Ù. ´Ü°è¸¦ ½ÇÇàÇÏ´Â µ¿¾È¿¡¸¸ Ç׸ñÀÇ ¼³¸íÀÌ Ç¥½ÃµË´Ï´Ù. <action>(¶Ç´Â <perform-when>) ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì ÇØ´ç ¿ä¼Ò´Â º¸Åë ÇϳªÀÇ ´ÜÃß¿Í ¿¬°üµÇ¸ç »ç¿ëÀÚ°¡ ÀÌ ´ÜÃ߸¦ Ŭ¸¯ÇÏ¿© ´Ü°èÀÇ Á¶Ä¡¸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶Ä¡°¡ ¾ø´Â °æ¿ì ÀÌ ´Ü°è¿¡¼­´Â »ç¿ëÀÚ°¡ Á÷Á¢ ÇØ´ç ´Ü°è¸¦ ¼öÇàÇÏ¿© Á¦´ë·Î ¿Ï·áÇßÀ½À» Ç¥½ÃÇØ¾ß ÇÕ´Ï´Ù.

º¹ÇÕ ´Ü°è´Â <subitem> ºÎ¼Ó ¿ä¼Ò¿¡¼­ ÁöÁ¤ÇÑ ´ë·Î ÇÏÀ§ ´Ü°è·Î ³ª´©¾îÁý´Ï´Ù. ¼ø¼­¸¦ ¾ö°ÝÈ÷ ÁöÄÑ¾ß ÇÏ´Â Ç׸ñ°ú´Â ´Þ¸® ÇØ´ç Ç׸ñÀÇ ÇÏÀ§ Ç׸ñÀº ÀÓÀÇÀÇ ¼ø¼­·Î ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç׸ñ ³»ÀÇ ¸ðµç ÇÏÀ§ Ç׸ñÀ» ´ÙÀ½ Ç׸ñÀ¸·Î ÁøÇàÇϱâ Àü¿¡ ¸ÕÀú ½ÃµµÇϰųª °Ç³Ê¶Ù¾î¾ß ÇÕ´Ï´Ù. ÀÌ´Â Á¤ÇØÁø ¼ø¼­´ë·Î ¼öÇàÇØ¾ß ÇÏ´Â Á¶Ä¡´Â ÇÏÀ§ Ç׸ñÀ¸·Î Ç¥½ÃÇÒ ¼ö ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù.

<conditional-subitem> ºÎ¼Ó ¿ä¼Ò¸¦ »ç¿ëÇϸé ÀÌÀü ´Ü°è¿¡¼­ °ªÀ» È®º¸ÇÑ Ä¡Æ® ½ÃÆ® º¯¼ö¿¡ ±âÃÊÇÏ¿© ÇÑ ´Ü°è¿¡¼­ ÇÏÀ§ ´Ü°èÀÇ ÇÁ¸®Á¨Å×À̼ÇÀ» Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. <repeated-subitem> ºÎ¼Ó ¿ä¼Ò¸¦ »ç¿ëÇϸé ÇÑ ´Ü°è¿¡ À¯»çÇÑ ÇÏÀ§ ´Ü°è ¼¼Æ®¸¦ Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù. Áï, ÇÏÀ§ ´Ü°èÀÇ ÇØ´ç ¼¼Æ®´Â ÀÌÀü ´Ü°è¿¡¼­ °ªÀ» È®º¸ÇÑ Ä¡Æ® ½ÃÆ® º¯¼ö¿¡ ±âÃÊÇÕ´Ï´Ù.

subitem

<!ELEMENT subitem ( [action|perform-when] )> 
<!ATTLIST subitem 
  label               CDATA #REQUIRED
  skip                ("true" | "false") "false"
  when                CDATA #IMPLIED
>

°¢ <subitem> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ®¿¡ ÀÖ´Â ÇÏÀ§ ´Ü°è¸¦ ¼³¸íÇÕ´Ï´Ù. <subitem>¿¡ ´Ü¼ø ÅØ½ºÆ® ·¹À̺íÀº ÀÖÁö¸¸ ±ä ¼³¸íÀ̳ª ÇÏÀ§ Ç׸ñÀº µé¾î ÀÖÁö ¾Ê½À´Ï´Ù. <subitem> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÇÏÀ§ Ç׸ñ¿¡´Â ¼±ÅÃÀû Á¶Ä¡°¡ ÀÖ½À´Ï´Ù. <action>(¶Ç´Â <perform-when>) ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì ÇØ´ç ¿ä¼Ò´Â º¸Åë ÇϳªÀÇ ´ÜÃß¿Í ¿¬°üµÇ¸ç »ç¿ëÀÚ°¡ ÀÌ ´ÜÃ߸¦ Ŭ¸¯ÇÏ¿© ÇÏÀ§ ´Ü°èÀÇ Á¶Ä¡¸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶Ä¡°¡ ¾ø´Â °æ¿ì ÀÌ ÇÏÀ§ ´Ü°è¿¡¼­´Â »ç¿ëÀÚ°¡ Á÷Á¢ ÇØ´ç ´Ü°è¸¦ ¼öÇàÇÏ¿© Á¦´ë·Î ¿Ï·áÇßÀ½À» Ç¥½ÃÇØ¾ß ÇÕ´Ï´Ù.

¼ø¼­¸¦ ¾ö°ÝÈ÷ ÁöÄÑ¾ß ÇÏ´Â Ç׸ñ°ú´Â ´Þ¸® ÇØ´ç Ç׸ñÀÇ ÇÏÀ§ Ç׸ñÀº ÀÓÀÇÀÇ ¼ø¼­·Î ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç׸ñ ³»ÀÇ ¸ðµç ÇÏÀ§ Ç׸ñÀ» ´ÙÀ½ Ç׸ñÀ¸·Î ÁøÇàÇϱâ Àü¿¡ ¸ÕÀú ½ÃµµÇϰųª °Ç³Ê¶Ù¾î¾ß ÇÕ´Ï´Ù. ÀÌ´Â Á¤ÇØÁø ¼ø¼­´ë·Î ¼öÇàÇØ¾ß ÇÏ´Â Á¶Ä¡´Â ÇÏÀ§ Ç׸ñÀ¸·Î Ç¥½ÃÇÒ ¼ö ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù.

conditional-subitem

<!ELEMENT conditional-subitem (subitem+)> 
<!ATTLIST conditional-subitem 
  condition               CDATA #REQUIRED
>

°¢ <conditional-subitem> ¿ä¼Ò¿¡¼­´Â Ç׸ñÀ» È®ÀåÇÒ ¶§ ¾Ë·ÁÁø Á¶°Ç¿¡ ±âÃÊÇÏ¿© ¾ç½ÄÀÌ ´Þ¶óÁú ¼ö ÀÖ´Â ´ÜÀÏ ÇÏÀ§ ´Ü°è¸¦ ¼³¸íÇÕ´Ï´Ù. <conditional-subitem> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

<conditional-subitem> ¿ä¼ÒÀÇ condition ¼Ó¼º¿¡¼­´Â ġƮ ½ÃÆ® º¯¼ö¿¡ µû¶ó ¹®ÀÚ¿­ °ªÀ» Á¦°øÇÕ´Ï´Ù. °¢ ÇÏÀ§ <subitem>¿¡¼­´Â ƯÁ¤ ¹®ÀÚ¿­ °ª°ú ÇÔ²² when ¼Ó¼ºÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. Ç׸ñÀ» È®ÀåÇÒ ¶§ <conditional-subitem> ¿ä¼Ò´Â °ªÀÌ ÀÏÄ¡ÇÏ´Â <subitem> ¿ä¼Ò·Î ´ëüµË´Ï´Ù. °ªÀÌ ÀÏÄ¡ÇÏ´Â <subitem> ¿ä¼Ò°¡ ¾ø´Â °æ¿ì ¿À·ù·Î °£Áֵ˴ϴÙ.

¿¹¸¦ µé¾î ´ÙÀ½ Ç׸ñÀ» È®ÀåÇÒ ¶§ ġƮ ½ÃÆ® º¯¼ö "v1"ÀÇ °ªÀÌ "b"ÀÎ °æ¿ì ´ÙÀ½°ú °°½À´Ï´Ù.

<item ...> 
  <conditional-subitem condition="${v1}">
     <subitem when="a" label="Step for A." />
     <subitem when="b" label="Step for B." />
  </conditional-subitem>
</item>
±× ´ÙÀ½ µÎ ¹øÂ° ÇÏÀ§ Ç׸ñÀÌ ¼±Åõǰí ÇØ´ç Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ È®ÀåµË´Ï´Ù.
<item ...> 
  <subitem label="Step for B."/>
</item>

repeated-subitem

<!ELEMENT repeated-subitem (subitem)> 
<!ATTLIST repeated-subitem 
  values               CDATA #REQUIRED
>

°¢ <repeated-subitem> ¿ä¼Ò¿¡¼­´Â 0 ¶Ç´Â Çϳª ÀÌ»óÀÇ À¯»çÇÑ ÇÏÀ§ ´Ü°è·Î È®ÀåÇÏ´Â ÇÏÀ§ Ç׸ñÀ» ¼³¸íÇÕ´Ï´Ù. <repeated-subitem> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

values ¼Ó¼º¿¡¼­´Â ½°Ç¥·Î ±¸ºÐµÈ ¹®ÀÚ¿­ ¸ñ·ÏÀ» Á¦°øÇÕ´Ï´Ù. ÇÏÀ§ <subitem>¿¡¼­´Â ÅÛÇø®Æ®¸¦ Á¦°øÇÕ´Ï´Ù. Ç׸ñÀ» È®ÀåÇÒ ¶§ <repeated-subitem> ¿ä¼Ò´Â ÇØ´ç ¹®ÀÚ¿­ °ªÀ¸·Î ´ëüµÇ´Â "this" º¯¼öÀÇ ¹ß»ý°ú ÇÔ²² <subitem> ¿ä¼ÒÀÇ »çº»À¸·Î ´ëüµË´Ï´Ù.

¿¹¸¦ µé¾î ´ÙÀ½ Ç׸ñÀ» È®ÀåÇÒ ¶§ ġƮ ½ÃÆ® º¯¼ö "v1"ÀÇ °ªÀÌ "1,b,3"ÀÎ °æ¿ì ´ÙÀ½°ú °°½À´Ï´Ù.

<item ...> 
  <repeated-subitem values="${v1}">
     <subitem label="Step ${this}.">
        <action class="com.xyz.myaction" pluginId="com.xyz" param1="${this}"/>
     </subitem>
  </repeated-subitem>
</item>
±× ´ÙÀ½ ÇØ´ç Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ È®ÀåµË´Ï´Ù.
<item ...> 
  <subitem label="Step 1.">
     <action class="com.xyz.myaction" pluginId="com.xyz" param1="1"/>
  </subitem>
  <subitem label="Step b.">
     <action class="com.xyz.myaction" pluginId="com.xyz" param1="b"/>
  </subitem>
  <subitem label="Step three.">
     <action class="com.xyz.myaction" pluginId="com.xyz" param1="three"/>
  </subitem>
</item>

action

<!ELEMENT action EMPTY> 
<!ATTLIST action 
  class               CDATA #REQUIRED
  pluginId            CDATA #REQUIRED
  param1              CDATA #IMPLIED
  ...
  param9              CDATA #IMPLIED
  confirm             ("true" | "false") "false"
  when                CDATA #IMPLIED
>

°¢ <action> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ®¿¡ ÀÖ´Â Á¶Ä¡¸¦ ¼³¸íÇÕ´Ï´Ù. <action> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

perform-when

<!ELEMENT perform-when (action+)> 
<!ATTLIST perform-when 
  condition               CDATA #REQUIRED
>

°¢ <perform-when> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ®¿¡ ÀÖ´Â Á¶Ä¡¸¦ ¼³¸íÇÕ´Ï´Ù. <perform-when> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

<conditional-subitem> ¿ä¼ÒÀÇ condition ¼Ó¼º¿¡¼­´Â ġƮ ½ÃÆ® º¯¼ö¿¡ µû¶ó ¹®ÀÚ¿­ °ªÀ» Á¦°øÇÕ´Ï´Ù. °¢ ÇÏÀ§ <subitem>¿¡¼­´Â ƯÁ¤ ¹®ÀÚ¿­ °ª°ú ÇÔ²² when ¼Ó¼ºÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. Ç׸ñÀ» È®ÀåÇÒ ¶§ <conditional-subitem> ¿ä¼Ò´Â °ªÀÌ ÀÏÄ¡ÇÏ´Â <subitem> ¿ä¼Ò·Î ´ëüµË´Ï´Ù. °ªÀÌ ÀÏÄ¡ÇÏ´Â <subitem> ¿ä¼Ò°¡ ¾ø´Â °æ¿ì ¿À·ù·Î °£Áֵ˴ϴÙ.

¿¹¸¦ µé¾î ´ÙÀ½ Ç׸ñÀ» È®ÀåÇÒ ¶§ ġƮ ½ÃÆ® º¯¼ö "v1"ÀÇ °ªÀÌ "b"ÀÎ °æ¿ì ´ÙÀ½°ú °°½À´Ï´Ù.

<item ...>
  <subitem label="Main step">
     <perform-when condition="${v1}">
        <action when="a" class="com.xyz.action1" pluginId="com.xyz" />
        <action when="b" class="com.xyz.action2" pluginId="com.xyz" />
     </conditional-subitem>
  </subitem>
</item>
±× ´ÙÀ½ µÎ ¹øÂ° Á¶Ä¡°¡ ¼±Åõǰí ÇØ´ç Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ È®ÀåµË´Ï´Ù.
<item ...> 
  <subitem label="Main step">
     <action class="com.xyz.action2" pluginId="com.xyz" />
  </subitem>
</item>

¿¹Á¦:

´ÙÀ½Àº ¸Å¿ì ´Ü¼øÇÑ Ä¡Æ® ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏ¿¡ °üÇÑ ¿¹Á¦ÀÔ´Ï´Ù.

<?xml version="1.0" encoding="UTF-8" ?>
<cheatsheet title="Example">
  <intro>
    <description>Example cheat sheet with two steps.</description>
  </intro>
  <item title="Step 1">
     <description>This is a step with an action.</description>
     <action class="com.xyz.myaction" pluginId="com.xyz"/>
  </item>
  <item title="Step 2">
     <description>This is a fully manual step.</description>
  </item>
</cheatsheet>