Kickshaw支持以下XML元素及其属性名、属性值和与这些元素相关的内容：

<tt><b>元素：</b>				<b>属性名：</b>
menu           		id, label, icon, execute
separator      		label
item           		label, icon
↳action        		name
 ↳prompt       		不适用
 ↳command      		不适用
 ↳startupnotify		不适用
  ↳enabled     		不适用
  ↳icon        		不适用
  ↳name        		不适用
  ↳wmclass     		不适用

					<b>属性值：</b>
action         		Execute, Exit, Reconfigure,
               		Restart, SessionLogout

					<b>内容：</b>
enabled        		yes, no</tt>

由空字符串组成的菜单ID是有效的，但就像任何其他菜单ID一样，在菜单中只能出现一次。

— — —

以下菜单是等效的，同时被Openbox和Kickshaw支持。

<tt><b>(1)</b> &lt;openbox_menu&gt;

      &lt;menu id="menu1" label="Menu1"&gt;
        &lt;item label="item"/&gt;
      &lt;/menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1"/&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

<tt><b>(2)</b> &lt;openbox_menu&gt;

      &lt;menu id="root-menu"&gt;
        &lt;menu id="menu1" label="Menu1"&gt;
          &lt;item label="item"/&gt;
        &lt;/menu&gt;
      &lt;/menu&gt;

    &lt;/openbox_menu&gt;</tt>

在Kickshaw中，菜单总是如同在Openbox中一样显示，因此两个示例中的后者更接近于所见即所得方法。缺点是对于大型菜单，这可能使菜单文件显得较难理解。因此，默认方式下，Kickshaw总是以前者格式保存菜单（这可以在选项中更改）。

保存文件时，程序默认使用制表符进行缩进；但在读取文件时，缩进使用空格还是制表符并不重要，其他空白字符也是如此。

— — —

一个菜单可以包含矛盾的菜单属性，如下面的示例：

<tt>&lt;openbox_menu&gt;

  &lt;menu id="menu1" label="outside" icon="out.jpg" execute="out" /&gt;

  &lt;menu id="root-menu"&gt;
    &lt;menu id="menu1" label="inside" icon="in.jpg" execute="in" /&gt;
  &lt;/menu&gt;

&lt;/openbox_menu&gt;</tt>

在这种情况下，Kickshaw遵循Openbox的示例，显示来自根菜单内部的icon属性值，而从根菜单外部显示label和execute属性值。
