Revision control

++ <?xml version="1.0" encoding="utf-8" ?>
++ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
++
++ <xs:element name="UI">
++ <xs:complexType>
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="actions">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="action">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="property" type="property" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="author" type="xs:string" />
++ <xs:element name="class" type="xs:string" />
++ <xs:element name="comment" type="xs:string" />
++ <xs:element name="connections">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="connection">
++ <xs:complexType>
++ <xs:sequence>
++ <xs:element name="sender" type="xs:string" />
++ <xs:element name="signal" type="xs:string" />
++ <xs:element name="receiver" type="xs:string" />
++ <xs:element name="slot" type="xs:string" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="customWidgets" type="xs:string" />
++ <xs:element name="exportmacro" type="xs:string" />
++ <xs:element name="forwards">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="forward" type="xs:string" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="images">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="image">
++ <xs:complexType>
++ <xs:sequence>
++ <xs:element name="data">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="format" type="xs:string" />
++ <xs:attribute name="length" type="xs:integer" />
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ <xs:attribute name="name" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="includes">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="include">
++ <xs:complexType>
++ <xs:simpleContent>
++ <xs:extension base="xs:string">
++ <xs:attribute name="location" type="xs:string" />
++ <xs:attribute name="impldecl" type="xs:string" />
++ </xs:extension>
++ </xs:simpleContent>
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="layoutDefaults">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="spacing" type="xs:integer" />
++ <xs:attribute name="margin" type="xs:integer" />
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="layoutFunctions">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="spacing" type="xs:string" />
++ <xs:attribute name="margin" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="menubar">
++ <xs:complexType>
++ <xs:sequence>
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="property" type="property" />
++ <xs:element name="item">
++ <xs:complexType>
++ <xs:sequence>
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="action">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="name" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="item">
++ </xs:element>
++ <xs:element name="separator" type="xs:string" />
++ </xs:choice>
++ </xs:sequence>
++ <xs:attribute name="name" type="xs:string" />
++ <xs:attribute name="text" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ </xs:choice>
++ <xs:element name="class" type="xs:string" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="pixmapfunction" type="xs:string" />
++ <xs:element name="signals">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="signal" type="xs:string" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="slots">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="slot">
++ <xs:complexType>
++ <xs:simpleContent>
++ <xs:extension base="xs:string">
++ <xs:attribute name="access" type="xs:string" />
++ <xs:attribute name="specifier" type="xs:string" />
++ <xs:attribute name="language" type="xs:string" />
++ <xs:attribute name="returnType" type="xs:string" />
++ </xs:extension>
++ </xs:simpleContent>
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="tabstops">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="tabstop" type="xs:string" />
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="toolbars">
++ <xs:complexType>
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="toolbar">
++ <xs:complexType>
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="property" type="property" />
++ <xs:element name="action">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="name" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="separator" type="xs:string" />
++ </xs:choice>
++ <xs:attribute name="dock" type="xs:integer" />
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="variables">
++ <xs:complexType>
++ <xs:sequence>
++ <xs:element name="variable">
++ <xs:complexType>
++ <xs:sequence />
++ <xs:attribute name="access" type="xs:string" />
++ </xs:complexType>
++ </xs:element>
++ </xs:sequence>
++ </xs:complexType>
++ </xs:element>
++ <xs:element name="widget" type="widget" />
++ <xs:element name="include" type="xs:string" />
++ <xs:element name="variable" type="xs:string" />
++ </xs:choice>
++ <xs:attribute name="version" type="xs:string" />
++ <xs:attribute name="stdsetdef" type="xs:integer" />
++ </xs:complexType>
++ </xs:element>
++
++ <xs:complexType name="layout">
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="property" type="property" />
++ <xs:element name="widget" type="widget" />
++ <xs:element name="spacer" type="spacer" />
++ </xs:choice>
++ </xs:complexType>
++
++ <xs:complexType name="widget">
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="class" type="xs:string" />
++ <xs:element name="property" type="property" />
++ <xs:element name="hbox" type="layout" />
++ <xs:element name="vbox" type="layout" />
++ <xs:element name="grid" type="layout" />
++ <xs:element name="widget" type="widget" />
++ </xs:choice>
++ <xs:attribute name="class" type="xs:string" />
++ <xs:attribute name="row" type="xs:integer" /> <!-- ### remove me -->
++ <xs:attribute name="column" type="xs:integer" /> <!-- ### remove me -->
++ </xs:complexType>
++
++ <xs:complexType name="spacer">
++ <xs:sequence maxOccurs="unbounded">
++ <xs:element name="property" type="property" />
++ </xs:sequence>
++ <xs:attribute name="row" type="xs:integer" /> <!-- ### remove me -->
++ <xs:attribute name="column" type="xs:integer" /> <!-- ### remove me -->
++ <xs:attribute name="rowspan" type="xs:integer" /> <!-- ### remove me -->
++ <xs:attribute name="colspan" type="xs:integer" /> <!-- ### remove me -->
++ </xs:complexType>
++
++ <xs:complexType name="color">
++ <xs:sequence>
++ <xs:element name="red" type="xs:integer" />
++ <xs:element name="green" type="xs:integer" />
++ <xs:element name="blue" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="colorGroup">
++ <xs:choice maxOccurs="unbounded">
++ <xs:element name="color" type="color" />
++ <xs:element name="pixmap" type="xs:string" />
++ </xs:choice>
++ </xs:complexType>
++
++ <xs:complexType name="palette">
++ <xs:sequence>
++ <xs:element name="active" type="colorGroup" />
++ <xs:element name="inactive" type="colorGroup" />
++ <xs:element name="disabled" type="colorGroup" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="font">
++ <xs:sequence>
++ <xs:element name="family" type="xs:string" />
++ <xs:element name="pointSize" type="xs:integer" />
++ <xs:element name="weight" type="xs:integer" />
++ <xs:element name="italic" type="xs:boolean" />
++ <xs:element name="bold" type="xs:boolean" />
++ <xs:element name="underline" type="xs:boolean" />
++ <xs:element name="strikeout" type="xs:boolean" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="point">
++ <xs:sequence>
++ <xs:element name="x" type="xs:integer" />
++ <xs:element name="y" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="rect">
++ <xs:sequence>
++ <xs:element name="x" type="xs:integer" />
++ <xs:element name="y" type="xs:integer" />
++ <xs:element name="width" type="xs:integer" />
++ <xs:element name="height" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="sizePolicy">
++ <xs:sequence>
++ <xs:element name="hsizetype" type="xs:integer" />
++ <xs:element name="vsizetype" type="xs:integer" />
++ <xs:element name="horstretch" type="xs:integer" />
++ <xs:element name="verstretch" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="size">
++ <xs:sequence>
++ <xs:element name="width" type="xs:integer" />
++ <xs:element name="height" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="date">
++ <xs:sequence>
++ <xs:element name="year" type="xs:integer" />
++ <xs:element name="month" type="xs:integer" />
++ <xs:element name="day" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="time">
++ <xs:sequence>
++ <xs:element name="hour" type="xs:integer" />
++ <xs:element name="minute" type="xs:integer" />
++ <xs:element name="second" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="dateTime">
++ <xs:sequence>
++ <xs:element name="hour" type="xs:integer" />
++ <xs:element name="minute" type="xs:integer" />
++ <xs:element name="second" type="xs:integer" />
++ <xs:element name="year" type="xs:integer" />
++ <xs:element name="month" type="xs:integer" />
++ <xs:element name="day" type="xs:integer" />
++ </xs:sequence>
++ </xs:complexType>
++
++ <xs:complexType name="property">
++ <xs:choice>
++ <xs:element name="bool" type="xs:boolean" />
++ <xs:element name="color" type="color" />
++ <xs:element name="cstring" type="xs:string" />
++ <xs:element name="cursor" type="xs:integer" />
++ <xs:element name="enum" type="xs:string" />
++ <xs:element name="font" type ="font" />
++ <xs:element name="iconset" type="xs:string" />
++ <xs:element name="palette" type="palette" />
++ <xs:element name="point" type="point" />
++ <xs:element name="rect" type="rect" />
++ <xs:element name="set" type="xs:string" />
++ <xs:element name="sizePolicy" type="sizePolicy" />
++ <xs:element name="size" type="size" />
++ <xs:element name="string" type="xs:string" />
++ <xs:element name="number" type="xs:integer" />
++ <xs:element name="date" type="date" />
++ <xs:element name="time" type="time" />
++ <xs:element name="dateTime" type="dateTime" />
++ </xs:choice>
++ <xs:attribute name="name" type="xs:string" />
++ <xs:attribute name="stdset" type="xs:integer" />
++ </xs:complexType>
++
++ </xs:schema>