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

¹öÀü 3.2

ÀÌ ¹®¼­¿¡¼­´Â ġƮ ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏ ±¸Á¶¸¦ ÀÏ·ÃÀÇ 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|command|perform-when] | (subitem|repeated-subitem|conditional-subitem)*) [onCompletion])> 
<!ATTLIST item 
  title               CDATA #REQUIRED
  dialog              ("true" | "false") "false"
  skip                ("true" | "false") "false"
  contextId           CDATA #IMPLIED 
  href                CDATA #IMPLIED
>

°¢ <item> ¿ä¼Ò¿¡¼­´Â ġƮ ½ÃÆ®¿¡ ÀÖ´Â ÇϳªÀÇ ÃÖ»óÀ§ ·¹º§À» ¼³¸íÇÕ´Ï´Ù. <item>Àº <subitem> ¿ä¼Ò¸¦ Æ÷ÇÔÇÕ´Ï´Ù. <item> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

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

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

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

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

subitem

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

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

ÇÏÀ§ Ç׸ñ¿¡´Â ¼±ÅÃÀû Á¶Ä¡³ª ¸í·ÉÀÌ ÀÖ½À´Ï´Ù. <action>, <command> ¶Ç´Â <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> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

command

<!ELEMENT command EMPTY> 
<!ATTLIST command 
  serialization       CDATA #REQUIRED
  returns             CDATA #IMPLIED
  confirm             ("true" | "false") "false"
  when                CDATA #IMPLIED
>

°¢ <command> ¿ä¼Ò´Â ġƮ ½ÃÆ®ÀÇ ¸í·ÉÀ» ¼³¸íÇÕ´Ï´Ù. <command> ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

´ÙÀ½Àº ´ëÈ­ »óÀÚ¸¦ ¿­°í °á°ú¸¦ ġƮ ½ÃÆ® º¯¼ö "result"¿¡ ÀúÀåÇÏ´Â ¸í·ÉÀ» »ç¿ëÇÏ´Â Ç׸ñÀÇ ¿¹ÀÔ´Ï´Ù.

  <item title="View Selection">
     <description>Select a view which will be opened in the next step.</description>
     <command returns = "result"
      serialization="org.eclipse.ui.dialogs.openMessageDialog(title=Select View,buttonLabel0=Package Explorer,message=Select a view ,buttonLabel1=Search View)"/>  
      <onCompletion> Selected the ${result}. </onCompletion>
</item>

onCompletion

<!ELEMENT onCompletion EMPTY>
<!ATTLIST onCompletion 
>

<onCompletion> ¿ä¼Ò¿¡´Â Ç׸ñÀÌ ¿Ï·áµÇ¾úÀ» ¶§ Ç¥½ÃµÇ´Â ÅØ½ºÆ®°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ´Â Àüü Ÿ½ºÅ© ¿Ï·á¸¦ Å뺸Çϵµ·Ï Çϴ ġƮ ½ÃÆ®ÀÇ ¸¶Áö¸· ´Ü°è¿¡¼­ À¯¿ëÇÏ°Ô »ç¿ëµË´Ï´Ù. ¼³¸íÀº ´Ü¼ø Çü½ÄÈ­ űװ¡ ÀÖ´Â ÅØ½ºÆ®·Î ±¸¼ºµÇ°í <description> ¿ä¼Ò¿Í µ¿ÀÏÇÑ ±ÔÄ¢À» »ç¿ëÇÕ´Ï´Ù. <onCompletion> ¿ä¼Ò¿¡´Â "${var}" ¾ç½ÄÀÇ Ä¡Æ® ½ÃÆ® º¯¼ö¿¡ ´ëÇÑ ÂüÁ¶°¡ Æ÷ÇԵǸç ÀÌ ´Ü°è°¡ ¿Ï·áµÉ ¶§ ġƮ ½ÃÆ® º¯¼ö varÀÇ ½ÇÁ¦ °ªÀ» »ç¿ëÇÏ¿© È®ÀåµË´Ï´Ù.

perform-when

<!ELEMENT perform-when ((action|command)+)> 
<!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" />
        <command when="c" serialization="org.eclipse.search.ui.views.SearchView"/>
     </conditional-subitem>
  </subitem>
</item>
±×·± ´ÙÀ½ µÎ ¹øÂ° Á¶Ä¡°¡ ¼±Åõǰí ÇØ´ç Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ È®ÀåµË´Ï´Ù.
<item ...> 
  <subitem label="Main step">
     <action class="com.xyz.action2" pluginId="com.xyz" />
  </subitem>
</item>

¿¹Á¦

´ÙÀ½Àº perform-when ¸í·É »ç¿ë ¹× Á¶°ÇºÎ ÇÏÀ§ Ç׸ñÀ» ¼³¸íÇÏ´Â ´Ü¼ø ġƮ ½ÃÆ® ÄÁÅÙÃ÷ ÆÄÀÏÀÇ ¿¹ÀÔ´Ï´Ù.

<?xml version="1.0" encoding="UTF-8" ?>
<cheatsheet title="Sample Cheat Sheet">
  <intro>
    <description>A cheat sheet which demonstrates the use of perform-when and conditional subitems</description>
  </intro>
  <item title="View Selection">
     <description>Select a view which will be opened in the following steps.</description>
     <command returns = "result"
      serialization="org.eclipse.ui.dialogs.openMessageDialog(title=Select View,buttonLabel0=Package Explorer,message=Select a view ,buttonLabel1=Search View)"/>  
      <onCompletion> Selected the ${result}. </onCompletion>
</item>
  <item title="Close Views">
     <description>Close the search view and package explorer if open</description>
</item>
  <item title="Open the view from a perform when item" skip = "true">
     <description>Uses perform when to open the view seleted previously.</description> 
     <perform-when condition = "${result}">
           <command when = "Package Explorer" 
            serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.jdt.ui.PackageExplorer)"/>
           <command when = "Search View" 
            serialization="org.eclipse.ui.views.showView(org.eclipse.ui.views.showView.viewId=org.eclipse.search.ui.views.SearchView)"/>      
	</perform-when>
</item>
  <item title="Close Views">
     <description>Close the search view and package explorer if open</description>
</item>
  <item title="Open the view from a perform when subitem">
     <description>Uses perform when to open the view seleted previously.</description> 
     <subitem label="Perform when subitem" skip = "true">
     <perform-when condition = "${result}">
           <command when = "Package Explorer" 
            serialization="org.eclipse.jdt.ui.PackageExplorer"/>
           <command when = "Search View" 
            serialization="org.eclipse.search.ui.views.SearchView"/>      
	</perform-when>
  </subitem>
</item>
  <item title="Close Views">
     <description>Close the search view and package explorer if open</description>
</item>
  <item title="Open the view from a conditional subitem">
     <description>Uses perform when to open the view seleted previously.</description> 
      <conditional-subitem condition="${result}">
         <subitem when="Package Explorer" label="Open package explorer.">
             <command serialization = "org.eclipse.jdt.ui.PackageExplorer"/>
  </subitem>
         <subitem when="Search View" label="Open Search View">
             <command serialization = "org.eclipse.search.ui.views.SearchView"/>
  </subitem>
     </conditional-subitem>
</item>
</cheatsheet>