XML Attribute

From the Oblivion ConstructionSet Wiki
Revision as of 12:47, 19 December 2009 by imported>JRoush
Jump to navigation Jump to search

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 Menu 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 "contents" of 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 menu element by it's name, or can use one of the "relative" sources:

  • Me() - refers to the menu element whose property the operator element is modifying.
  • Parent() - refers to the parent of Me(), the menu element of which Me() is a child.
  • Sibling(SiblingName) - refers to one of the siblings of Me() - that is, the menu 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 trait.
  • Child(ChildName) - refers to one of the menu elements that are children of Me(). Again, the name must be specified.

The trait trait can refer to any property of the source element. The current value of this property is used as the "contents", or second operand, of the operator.