If I remember right it is only some of the enum values that is different, such as instantActionTriggerType and weaponType, plus i think some buffInstantActionTypes are not useable within the ability (they will create an multi target required error if I remember right).
In my tool all enum "lines" are different instances of the same class instead of xml files (the enum values are txt files though), I have classes for different roles which all inherit the TreeNode Class.
The enum values are added to the required enum lines contextmenues by loading the txt file as "_" + extension + label (the word infront of the enum value, label and extension (optional) is given as input parameters in the constructor) so when the instantActionTriggerType is added it look like this:
Public Overrides Function ToString() As String
Nodes.Clear()
Nodes.Add(New EnumTreeNode("instantActionTriggerType", Tablevel, _extend))
Select Case Split(Text)(1)
Case """ApplyBuffToIncomingHyperSpacers"""
ApplyBuffToIncomingHyperSpacers
...
End Select
Return ""
End Function
My knowledge with xml is very limited so I am not sure if there is an easy way to implement this. The only thing I can think of is to have different xml files for the different enum values and the refer to those where they should be used.
I hope this helped you