XML format for game data
I'd wrap the &lt;Component&gt;s in a &lt;Components&gt; tag. Maybe you want to add more attributes to spells later. In fact, I'd probably make &lt;ItemComponents&gt; and &lt;SpellComponents&gt;.

I'm also thinking you might be better off here and there by using some sort of "quantity". Lets say a spell had 10 components (for some arbitrary game design reason)...

    &lt;Spell name="RestoreMana"&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
        &lt;Component&gt;Mana&lt;/Component&gt;
    &lt;/Spell&gt;


or

    &lt;Spell name="RestoreMana"&gt;
        &lt;Component quantity="10"&gt;Mana&lt;/Component&gt;
    &lt;/Spell&gt;


I like the second one more, it's smaller. Plus, I don't wanna be the one who has to check if the balancing is done right by counting whether this spell has 10 components via a process which includes manually counting lines.

From this point, however, you can go pretty much everywhere. Future proofing your schema is hard without fully knowing what data it will have to support, so I'd focus on getting the domain model right and then looking at the xml schema again.