view gpf/cfg/emw_gui_def.xsd @ 16:dc9d25ac72a9

initial preparations for building both 2091 and 2092 configs
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sun, 06 Sep 2015 02:28:00 +0000
parents 509db1a7b7b8
children
line wrap: on
line source

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Steve Farmwald (private) -->
<!--
This schema file defines the possible tags for use in defining a dynamic User Interface for the 
EMW.  

Displayable items are of 2 types.   Simple Displayables are entities that are displayed within the UI.
 Items are those Displayables that may be updated by the backend.  (They are a subset of Displayable).
 
 Vectors of Items may be defined using the Vector tag.  A Vector defines a series of identical Items aligned
 within a row or column.  The items are differentiated by an index.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:simpleType name="ColorSpec">
		<xs:annotation>
			<xs:documentation>This defines the legal color specifications</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="white|black|red|green|blue|yellow|magenta|cyan|orange|redorange|purple|greenblue|[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}|0x[0-9a-f]{2},0x[0-9a-f]{2},0x[0-9a-f]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PageTag">
		<xs:annotation>
			<xs:documentation>This defines a page (tab).</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="Label" type="LabelTag"/>
			<xs:element name="TextItem" type="TextTag"/>
			<xs:element name="LabelFrame" type="LabelFrameTag"/>
			<xs:element name="CheckItem" type="CheckItemTag"/>
			<xs:element name="Vector" type="VectorTag"/>
		</xs:choice>
		<xs:attribute name="title" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:attributeGroup name="DisplayAttributes">
		<xs:annotation>
			<xs:documentation>This defines a set of attributes common to all displayables.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="row" type="xs:nonNegativeInteger" use="required"/>
		<xs:attribute name="column" type="xs:nonNegativeInteger" use="required"/>
		<xs:attribute name="row_span" type="xs:nonNegativeInteger" use="optional" default="1"/>
		<xs:attribute name="column_span" type="xs:nonNegativeInteger" use="optional" default="1"/>
		<xs:attribute name="tool_tip" type="xs:string" use="optional"/>
		<xs:attribute name="text_alignment" use="optional" default="right">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="center"/>
					<xs:enumeration value="left"/>
					<xs:enumeration value="right"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="background_color" type="ColorSpec" use="optional"/>
		<xs:attribute name="text_color" type="ColorSpec" use="optional" default="black"/>
		<xs:attribute name="font_size" type="xs:nonNegativeInteger" use="optional" default="12"/>
		<xs:attribute name="font_name" type="xs:string" use="optional" default="system"/>
		<xs:attribute name="visible" type="xs:boolean" use="optional" default="true"/>
	</xs:attributeGroup>
	<xs:attributeGroup name="ItemAttributes">
		<xs:annotation>
			<xs:documentation>this defines a set of attributes common to items.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="item_id" type="xs:string" use="required"/>
		<xs:attribute name="add_to_history" type="xs:boolean" use="optional" default="false"/>
		<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional"/>
		<xs:attributeGroup ref="DisplayAttributes"/>
	</xs:attributeGroup>
	<xs:complexType name="LabelTag">
		<xs:annotation>
			<xs:documentation>This defines a label.(This is not considered an item. ie, it is passive)</xs:documentation>
		</xs:annotation>
		<xs:attribute name="label_id" type="xs:string" use="required"/>
		<xs:attributeGroup ref="DisplayAttributes"/>
	</xs:complexType>
	<xs:complexType name="LabelFrameTag">
		<xs:annotation>
			<xs:documentation>This defines a labeled frame.  (This is not considered an item. ie, it is passive)</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="Label" type="LabelTag"/>
			<xs:element name="TextItem" type="TextTag"/>
			<xs:element name="CheckItem" type="CheckItemTag"/>
			<xs:element name="LabelFrame" type="LabelFrameTag"/>
			<xs:element name="Vector" type="VectorTag"/>
		</xs:choice>
		<xs:attribute name="label_id" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="DisplayAttributes"/>
	</xs:complexType>
	<xs:complexType name="CheckItemTag">
		<xs:annotation>
			<xs:documentation>This defines  a checkbox (boolean) item.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="label_position" use="optional" default="left">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="left"/>
					<xs:enumeration value="right"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="label_id" type="xs:string" use="required"/>
		<xs:attributeGroup ref="ItemAttributes"/>
	</xs:complexType>
	<xs:simpleType name="VectorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="row"/>
			<xs:enumeration value="column"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="VectorTag">
		<xs:annotation>
			<xs:documentation>This is a shorthand for defining a number of items in a row or column</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:element name="TextItem" type="TextTag"/>
			<xs:element name="CheckItem" type="CheckItemTag"/>
		</xs:choice>
		<xs:attribute name="type" type="VectorType" use="required"/>
		<xs:attribute name="length" type="xs:positiveInteger" use="required"/>
		<xs:attributeGroup ref="DisplayAttributes"/>
	</xs:complexType>
	<xs:complexType name="TextTag">
		<xs:annotation>
			<xs:documentation>This defines a Text Box item</xs:documentation>
		</xs:annotation>
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:element name="Threshhold">
				<xs:complexType>
					<xs:attribute name="expression" type="xs:string" use="required"/>
					<xs:attribute name="action" type="xs:string" use="required"/>
					<xs:attribute name="add_to_history" type="xs:boolean" use="optional" default="false"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="width_in_chars" type="xs:nonNegativeInteger" use="optional" default="3"/>
		<xs:attributeGroup ref="ItemAttributes"/>
	</xs:complexType>
	<!--The GUIDescription consists of a number of pages (tabs) containing data items-->
	<xs:element name="GuiDefinition">
		<xs:annotation>
			<xs:documentation>
This schema file defines the possible tags for use in defining a dynamic User Interface for the 
EMW.  

Displayable items are of 2 types.   Simple Displayables are entities that are displayed within the UI.
 Items are those Displayables that may be updated by the backend.  (They are a subset of Displayable).
 
 Vectors of Items may be defined using the Vector tag.  A Vector defines a series of identical Items aligned
 within a row or column.  The items are differentiated by an index.
</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Page" type="PageTag" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>