XML Attribute

Revision as of 12:42, 14 March 2011 by imported>Kyoma

Normal XML uses named attributes for specifying additional info for an element. The XML syntax doesn't specify what attributes are possible, only that they be given as AttributeName="Value" in the opening tag of an element. Oblivion XML recognizes only three true XML attributes: name, src, and trait.

The name attribute provides a way to identify elements in a menu file. This attribute 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' attribute of this element has the value "PictureFrame" -->
<rect name="PictureFrame"> </rect> 

The src and trait attributes 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 attribute 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 can be provided as an argument - this is why no two siblings should have the same name. When omitted it will use the sibling that came before it - the one that was defined above it in the XML. Although this does not work for the very first element.
  • Child(ChildName) - a child object of Me(). Again, the name must be specified.

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