Category:Oblivion XML
This article has been marked by editors or authors as incomplete. Please see the Talk page for details. Discussion and collaboration can improve an article and lead to a better Wiki.
What is XML?
XML stands for eXtensible Markup Language, a generic syntax used to encode data in a series of parent-child relationships. An XML document contains a hierarchical list of elements, each of which is described by a set of traits. In Oblivion, XML is used to encode various customizable properties of the user interface. Every button, box, piece of text, and colorful widget in a menu (or the HUD) is an element in that menu's XML document, where it is described by traits such as position, color, and graphical texture.
General Syntax
XML markup syntax is largely based on HTML. An XML element is defined by an pair of opening and closing tags - matching angle brackets "<>" enclosing the type of the element. For example, the following xml code defines a text element:
<text> </text>
Note that the closing tag is denoted by slash. Anything in between an element's tags is considered to be a child of that element. For example, the following defines an image element which has a child text element:
<image> <text> </text> </image>
If an element has no children, like the first example above, then the opening/closing tag syntax can be abbreviated to:
<text />
Element traits are written as name/value pairs in the opening tag:
<image traitname="traitvalue"> </image>
Comments can be added to the code by enclosing them with "<!--" and "-->":
<!-- this is a comment -->
To learn more about XML syntax, read the complete specification or one of the tutorials provided by the World Wide Web Consortium.
Oblivion XML Schema
XML is a general syntax - the meaning of specific elements depends entirely on the program parsing the file.
The elements recognized by the Oblivion parser can be divided into three basic categories. "Menu" Elements define actual objects in the menu, such as buttons or text. "Property Elements" are always children of Menu Elements, evaluated by Oblivion to parameters like the position or color of their parent. "Operator" Elements are always the children of Value Elements, which Oblivion uses to construct algebraic expressions for the value of their parent.
Oblivion only recognizes three element Traits: "name", "src", and "trait".
Oblivion Menu Files
Menu xml data is stored in the Oblivion\Data\Menus directory. Each menu is stored in it's own file. Oblivion reloads a menu from disk every time it is opened, so changes to the file can be seen by closing and re-opening the menu - a very useful trick for editing. Note, however, that some menus are never closed (e.g. the HUD). These menus can be reloaded in game using "Reload menuname" console function.
Pages in category "Oblivion XML"
The following 7 pages are in this category, out of 7 total.