Difference between revisions of "XML Attribute"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Kyoma
m
imported>Low Post
(Added a warning about child() not being restricted to direct children.)
Line 22: Line 22:
*'''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.
*'''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.
*'''Child(''ChildName'')''' - a child object of Me().  Again, the name must be specified.
**The search for ''ChildName'' isn't restricted to direct children of Me(). Also a children of a child of (a child of ...) Me() are valid values. If multiple children with the same name exist the last one specified in the xml is used.


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.
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.


[[Category:Oblivion XML]]
[[Category:Oblivion XML]]

Revision as of 07:17, 15 April 2011

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 search for ChildName isn't restricted to direct children of Me(). Also a children of a child of (a child of ...) Me() are valid values. If multiple children with the same name exist the last one specified in the xml is used.

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.