XML Attribute

Revision as of 14:59, 31 March 2010 by imported>JRoush

XML traits are named attributes of XML elements. The XML syntax doesn't specify what traits are possible, only that they be given as TraitName="TraiValue" in the opening tag of an element. Oblivion XML recognizes only three true XML traits: name, src, and trait.

The name trait provides a way to identify elements in a menu file. This trait is used only for Object Elements - property or operator elements are never named. The name of an element need not be unique within the entire menu, but every element should at least have a different name from it's siblings (as discussed below).

<!-- the 'name' trait of this element has the value "PictureFrame" -->
<rect name="PictureFrame"> </rect> 

The src and trait traits are always provided together (except for the special case of the Include Element). They are used only in empty Operator elements, to specify the value used by the operator:

<!-- Good -->
<image>
   <x>
     <!-- Add the value of SomeElement's width property -->
     <!-- to the current x value of this image -->
     <add src="SomeElement" trait="width" /> 
   </x>
</image>

The src trait can refer to any Object Element by it's name, or can use one of the "relative" sources:

  • Me() - the object whose property the operator is modifying.
  • Parent() - the parent of Me(), that is the element of which Me() is a child.
  • Sibling(SiblingName) - a the siblings of Me(), that is the elements that are also children of Parent(). The name of the sibling must be provided as an argument - this is why no two siblings should have the same name.
  • Child(ChildName) - a child object of Me(). Again, the name must be specified.

The trait trait can refer to any property of the source object. The current value of this property is used as value (operand) of the operator.