blob: 4d0b15200d80765db94e079c4ec848b797543c7a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns="http://ttcn.ericsson.se/protocolModules/xtdp/xtdl"
targetNamespace="http://ttcn.ericsson.se/protocolModules/xtdp/xtdl"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
>
<!-- ethgry: version is removed from targetNamespace: ttcn file names are generated from the namespace
and having the version in it could cause project and importing problems later -->
<!-- ethgry: targetNamespace is changed to the TCC xtdl one; xtdl is the default nameSpace;
consequently, all xul: prefixes are removed in the document -->
<!-- ethgry: in all over the document type names are unified (there were 3 different name conventions before)
all type names are written in all small font and without any separator character like - or _ -->
<!-- ethgry(2010-08-24): choice lists of widgets from window, tabpanel and hbox are moved to the group embeddedwidgets -->
<!--
***********************************************************************
***********************************************************************
** THE VERSION OF THIS XTDL DOCUMENT IS 1.0 **
** VERSION SHALL BE INCREASED WHEN ANY NEW INFORMATION OR **
** MESSAGES ARE ADDED OR A NON-BACKWARD COMPATIBLE CHANGE IS DONE! **
***********************************************************************
***********************************************************************
-->
<!-- ethgry: group is renamed from xul to widgets -->
<xsd:group name="widgets">
<xsd:choice>
<xsd:element name="window" type="windowtype" />
<xsd:element name="tabpages" type="tabpages" />
<xsd:element name="tabpage" type="tabpage" />
<xsd:element name="tree" type="tree" />
<xsd:element name="hbox" type="hbox" />
<xsd:element name="label" type="label" />
<xsd:element name="spacer" type="spacer" />
<xsd:element name="button" type="button" />
<xsd:element name="textbox" type="textbox" />
<xsd:element name="chart" type="chart" />
<xsd:element name="toolbar" type="toolbar" />
<xsd:element name="listbox" type="listbox" />
<xsd:element name="numericalwidget" type="numericalwidget" />
<xsd:element name="menulist" type="menulist" />
<xsd:element name="distributionchart" type="distributionchart" />
<xsd:element name="image" type="image" />
<xsd:element name="treecols" type="treecols" />
<xsd:element name="treecol" type="treecol" />
<xsd:element name="treechildren" type="treechildren" />
<xsd:element name="treeitem" type="treeitem" />
<xsd:element name="treerow" type="treerow" />
<xsd:element name="treecell" type="treecell" />
<xsd:element name="tracelist" type="tracelist" />
<xsd:element name="trace" type="trace" />
<xsd:element name="toolbarelements" type="toolbarelements" />
<xsd:element name="toolbarbutton" type="toolbarbutton" />
<xsd:element name="separator" type="separator" />
<xsd:element name="listitem" type="listitem" />
<xsd:element name="menuitem" type="menuitem" />
<xsd:element name="valuelist" type="valuelist" />
<xsd:element name="pushbutton" type="pushbutton" />
<xsd:element name="togglebutton" type="togglebutton" />
<xsd:element name="iterator" type="iterator"/>
<xsd:element name="tabpagelist" type="tabpagelist"/>
<xsd:element name="condition" type="condition"/>
<xsd:element name="insertif" type="insertif"/>
<xsd:element name="externalvalue" type="iterator"/>
<xsd:element name="htmlcode" type="htmlcode"/>
<xsd:element name="metaiterator" type="metaiterator"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="metaiterator">
<xsd:attribute name="id" type="xsd:string" use="required" />
</xsd:complexType>
<!-- Bind widgets to data
Valid widgets are:
Button, Toolbarbutton, Pushbutton, Togglebutton,
Treecell,
Textbox, Trace
-->
<!-- Commont attributes -->
<!--<xsd:attributeGroup ref="commonAttrs" /> -->
<xsd:attributeGroup name="commonAttrs">
<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="disabledongui" type="xsd:boolean" />
<xsd:attribute name="customclass" type="xsd:string"/>
</xsd:attributeGroup>
<xsd:complexType name="tabpagelist">
<xsd:sequence>
<xsd:group ref="tabpagegroups" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="dataparams">
<xsd:sequence>
<xsd:element name="dataparam" type="dataparam" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="dataparam">
<xsd:attribute name="name" use="required" type="xsd:string"/>
<xsd:attribute name="value" use="required" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="datadescription">
<xsd:sequence>
<xsd:element name="params" type="dataparams" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="source" type="xsd:string" use="required"/>
<xsd:attribute name="element" type="xsd:string" use="required"/>
<xsd:attribute name="ptcname" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="datadescriptionlist">
<xsd:sequence>
<xsd:element name="datadescription" type="datadescription" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="iteratordata">
<xsd:complexContent>
<xsd:extension base="datadescription">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="metadata" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="iterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="embeddedwidgets"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="condition">
<xsd:complexContent>
<xsd:extension base="iteratordata" >
<xsd:sequence>
<xsd:group ref="embeddedwidgets"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="if">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="negate" type="xsd:boolean" default="false"/>
</xsd:complexType>
<xsd:complexType name="insertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="embeddedwidgets"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="tracelist">
<xsd:sequence>
<xsd:element name="trace" type="trace" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="toolbarelements">
<xsd:sequence>
<xsd:element name="toolbarelement" type="toolbarelement" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="toolbarelement">
<xsd:choice>
<xsd:element name="toolbarbutton" type="toolbarbutton" />
<xsd:element name="pushbutton" type="pushbutton" />
<xsd:element name="togglebutton" type="togglebutton" />
<xsd:element name="separator" type="separator" />
</xsd:choice>
</xsd:complexType>
<xsd:element name="window" type="windowtype" />
<xsd:group name="embeddedwidget" >
<xsd:choice>
<xsd:element name="iterator" type="iterator"/>
<xsd:element name="tabpages" type="tabpages" />
<xsd:element name="tree" type="tree" />
<xsd:element name="hbox" type="hbox" />
<xsd:element name="label" type="label" />
<xsd:element name="spacer" type="spacer" />
<xsd:element name="button" type="button" />
<xsd:element name="textbox" type="textbox" />
<xsd:element name="numericalwidget" type="numericalwidget" />
<xsd:element name="chart" type="chart" />
<xsd:element name="distributionchart" type="distributionchart" />
<xsd:element name="toolbar" type="toolbar" />
<xsd:element name="listbox" type="listbox" />
<xsd:element name="menulist" type="menulist" />
<xsd:element name="pushbutton" type="pushbutton" />
<xsd:element name="togglebutton" type="togglebutton" />
<xsd:element name="condition" type="condition"/>
<xsd:element name="insertif" type="insertif"/>
<xsd:element name="externalvalue" type="iterator"/>
<xsd:element name="htmlcode" type="htmlcode" />
</xsd:choice>
</xsd:group>
<xsd:group name="embeddedwidgets">
<xsd:sequence>
<xsd:group ref="embeddedwidget" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="windowtype">
<xsd:sequence>
<xsd:element name="image" type="image" minOccurs="0" maxOccurs="unbounded" />
<xsd:group ref="embeddedwidgets"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="title" type="xsd:string" />
<xsd:attribute name="width" type="xsd:decimal" />
<xsd:attribute name="height" type="xsd:decimal" />
<xsd:attribute name="orientation" type="orientation" fixed="vertical" />
<xsd:attribute name="about" type="xsd:string" />
<xsd:attribute name="help" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="tabpages">
<xsd:sequence>
<xsd:group ref="tabpagegroups" />
</xsd:sequence>
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="layout" type="tablayout" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<!---->
<xsd:complexType name="tabpageiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="tabpagegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="tabpagecondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="tabpagegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="tabpageinsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="tabpagegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="tabpagegroup">
<xsd:choice>
<xsd:element name="iterator" type="tabpageiterator" />
<xsd:element name="tabpage" type="tabpage"/>
<xsd:element name="condition" type="tabpagecondition"/>
<xsd:element name="insertif" type="tabpageinsertif"/>
<xsd:element name="externalvalue" type="tabpageiterator"/>
</xsd:choice>
</xsd:group>
<xsd:group name="tabpagegroups">
<xsd:sequence>
<xsd:group ref="tabpagegroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<!---->
<xsd:complexType name="tabpage">
<xsd:group ref="embeddedwidgets" />
<xsd:attribute name="orientation" type="orientation" />
<xsd:attribute name="maxheight" type="xsd:decimal" />
<xsd:attribute name="label" type="xsd:string" use="required" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:simpleType name="tablayout">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="WRAP" />
<xsd:enumeration value="SCROLL" />
<xsd:enumeration value="CARD" />
<xsd:enumeration value="LISTCARD" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="tree">
<xsd:sequence>
<xsd:element name="treecols" type="treecols" minOccurs="1" />
<xsd:element name="treechildren" type="treechildren" />
</xsd:sequence>
<xsd:attribute name="rows" type="xsd:decimal" />
<xsd:attribute name="hidecolumnpicker" type="xsd:boolean" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<!-- THE LOWER BOUND OF treecol ITERATIONS IS SET TO 0 TO ALLOW INITIALIZING TTCN-3 VARIABLES
WITH AN EMPTY LIST, BUT WHEN SENDING, IT SHALL CONTAIN AT LEAST ONE ELEMENT -->
<!---->
<xsd:complexType name="treecoliterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treecolgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treecolcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treecolgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="treecolgroups">
<xsd:sequence>
<xsd:group ref="treecolgroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="treecolinsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="treecolgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="treecolgroup">
<xsd:choice>
<xsd:element name="iterator" type="treecoliterator" />
<xsd:element name="treecol" type="treecol"/>
<xsd:element name="condition" type="treecolcondition"/>
<xsd:element name="insertif" type="treecolinsertif"/>
<xsd:element name="externalvalue" type="treecoliterator"/>
</xsd:choice>
</xsd:group>
<!---->
<xsd:complexType name="treecols">
<xsd:sequence>
<xsd:group ref="treecolgroups"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="treecol">
<xsd:attribute name="label" type="xsd:string" use="required" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="widgetType" type="widgettype" use="required" />
<xsd:attribute name="editable" type="xsd:boolean" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attribute name="align" type="align" />
<xsd:attribute name="treecellalign" type="align" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:group name="treeitemgroups">
<xsd:sequence>
<xsd:group ref="treeitemgroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="treeitemiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treeitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treeitemcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treeitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treeiteminsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="treeitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="treeitemgroup">
<xsd:choice>
<xsd:element name="iterator" type="treeitemiterator" />
<xsd:element name="treeitem" type="treeitem"/>
<xsd:element name="condition" type="treeitemcondition"/>
<xsd:element name="insertif" type="treeiteminsertif"/>
<xsd:element name="externalvalue" type="treeitemiterator"/>
</xsd:choice>
</xsd:group>
<!---->
<xsd:group name="treerowgroups">
<xsd:sequence>
<xsd:group ref="treerowgroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="treechildren">
<xsd:sequence>
<xsd:group ref="treeitemgroups"/>
</xsd:sequence>
</xsd:complexType>
<!---->
<xsd:complexType name="treerowiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treerowgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treerowcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treerowgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treerowinsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="treerowgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="treerowgroup">
<xsd:choice>
<xsd:element name="iterator" type="treerowiterator" />
<xsd:element name="treerow" type="treerow"/>
<xsd:element name="condition" type="treerowcondition"/>
<xsd:element name="insertif" type="treerowinsertif"/>
<xsd:element name="externalvalue" type="treerowiterator"/>
</xsd:choice>
</xsd:group>
<!---->
<xsd:complexType name="treeitem">
<xsd:sequence>
<xsd:group ref="treerowgroups"/>
</xsd:sequence>
</xsd:complexType>
<!---->
<xsd:complexType name="treecelliterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treecellgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treecellcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="treecellgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="treecellinsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="treecellgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="treecellgroup">
<xsd:choice>
<xsd:element name="iterator" type="treecelliterator" />
<xsd:element name="treecell" type="treecell"/>
<xsd:element name="condition" type="treecellcondition"/>
<xsd:element name="insertif" type="treecellinsertif"/>
<xsd:element name="externalvalue" type="treecelliterator"/>
</xsd:choice>
</xsd:group>
<!---->
<xsd:group name="treecellgroups">
<xsd:sequence>
<xsd:group ref="treecellgroup" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="treerow">
<xsd:sequence>
<xsd:group ref="treecellgroups"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="treecell">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="visible" type="xsd:boolean" />
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="imageid" type="xsd:string" />
<xsd:attribute name="align" type="align" />
<xsd:attribute name="customclass" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="hbox">
<xsd:group ref="embeddedwidgets" />
<xsd:attribute name="orientation" type="orientation" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="scrollable" type="xsd:boolean" />
<xsd:attribute name="fixedposition" type="fixedpositions" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="label">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="value" type="xsd:string" use="required" />
<xsd:attribute name="style" type="xsd:string" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="spacer">
<xsd:attribute name="flex" type="xsd:decimal" use="required" />
<xsd:attribute name="id" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="button">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"></xsd:element>
</xsd:sequence>
<xsd:attribute name="checked" type="xsd:boolean" />
<xsd:attribute name="label" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="imageid" type="xsd:string" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="textbox">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"></xsd:element>
</xsd:sequence>
<xsd:attribute name="multiline" type="xsd:boolean" />
<xsd:attribute name="rows" type="xsd:decimal" />
<xsd:attribute name="value" type="xsd:string" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="readonly" type="xsd:boolean" />
<xsd:attribute name="wrap" type="xsd:boolean" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="widgetType" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attribute name="focusafterchange" type="focusafterchange" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:simpleType name="focusafterchange">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Top" />
<xsd:enumeration value="Bottom" />
<xsd:enumeration value="BottomWithTrunc" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="numericalwidget">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="widgetType" type="numericalwidgettype" />
<xsd:attribute name="value" type="xsd:decimal" />
<xsd:attribute name="readonly" type="xsd:boolean" />
<xsd:attribute name="spinner" type="xsd:boolean" />
<xsd:attribute name="slider" type="xsd:boolean" />
<xsd:attribute name="minvalue" type="xsd:decimal" />
<xsd:attribute name="maxvalue" type="xsd:decimal" />
<xsd:attribute name="stepsize" type="xsd:decimal" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:group name="tracegroups">
<xsd:sequence>
<xsd:group ref="tracegroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:group name="tracegroup">
<xsd:choice>
<xsd:element name="trace" type="trace"/>
<xsd:element name="iterator" type="traceiterator" />
<xsd:element name="condition" type="tracecondition"/>
<xsd:element name="insertif" type="traceinsertif"/>
<xsd:element name="externalvalue" type="traceiterator"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="traceinsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="tracegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="tracecondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="tracegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="traceiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="tracegroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="chart">
<xsd:sequence>
<xsd:group ref="tracegroups"/>
</xsd:sequence>
<xsd:attribute name="title" type="xsd:string" use="required" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="zoomable" type="xsd:boolean" />
<xsd:attribute name="axisXType" type="axisType" />
<xsd:attribute name="axisYType" type="axisType" />
<xsd:attribute name="gridX" type="xsd:boolean" />
<xsd:attribute name="gridY" type="xsd:boolean" />
<xsd:attribute name="foregroundColor" type="xsd:string" />
<xsd:attribute name="backgroundColor" type="xsd:string" />
<xsd:attribute name="gridColor" type="xsd:string" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="trace">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="xy_value" type="xyvalue" />
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="maxPoints" type="xsd:nonNegativeInteger" />
<xsd:attribute name="color" type="xsd:string" />
<xsd:attribute name="fill" type="xsd:boolean" />
<xsd:attribute name="physicalUnitX" type="xsd:string" />
<xsd:attribute name="physicalUnitY" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="xyvalue">
<xsd:attribute name="x" type="xsd:decimal" use="required" />
<xsd:attribute name="y" type="xsd:decimal" use="required" />
</xsd:complexType>
<xsd:simpleType name="axisType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="linear" />
<xsd:enumeration value="logE" />
<xsd:enumeration value="log10" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="image">
<xsd:attribute name="imagedata" type="xsd:string" />
<xsd:attribute name="imageurl" type="xsd:string" />
<xsd:attribute name="id" type="xsd:string" use="required" />
</xsd:complexType>
<!-- FIXME iterator -->
<xsd:complexType name="toolbar">
<xsd:choice minOccurs="0" maxOccurs="unbounded" >
<xsd:element name="separator" type="separator" />
<xsd:element name="toolbarbutton" type="toolbarbutton" />
<xsd:element name="pushbutton" type="pushbutton" />
<xsd:element name="togglebutton" type="togglebutton" />
</xsd:choice>
<xsd:attribute name="placement" type="placement" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="toolbarbutton">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="imageid" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="separator">
<xsd:attribute name="id" type="xsd:string" />
</xsd:complexType>
<!---->
<xsd:group name="listitemgroups">
<xsd:sequence>
<xsd:group ref="listitemgroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="listitemiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="listitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="listitemgroup">
<xsd:choice>
<xsd:element name="iterator" type="listitemiterator" />
<xsd:element name="listitem" type="listitem"/>
<xsd:element name="condition" type="listitemcondition"/>
<xsd:element name="insertif" type="listiteminsertif"/>
<xsd:element name="externalvalue" type="listitemiterator"/>
</xsd:choice>
</xsd:group>
<xsd:complexType name="listitemcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="listitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="listiteminsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="listitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="listbox">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
<xsd:group ref="listitemgroups"/>
</xsd:sequence>
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="rows" type="xsd:nonNegativeInteger" />
<xsd:attribute name="seltype" type="seltype" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="listitem">
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="selected" type="xsd:boolean" />
</xsd:complexType>
<xsd:simpleType name="seltype">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="single" />
<xsd:enumeration value="multiple" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="menulist">
<xsd:sequence>
<xsd:element name="menupopup" type="menupopup" />
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="editable" type="xsd:boolean" />
<xsd:attribute name="readonly" type="xsd:boolean" />
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<!---->
<xsd:complexType name="menuitemiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="menuitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="menuitemgroups">
<xsd:sequence>
<xsd:group ref="menuitemgroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="menuitemcondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="menuitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="menuiteminsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="menuitemgroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="menuitemgroup">
<xsd:choice>
<xsd:element name="iterator" type="menuitemiterator" />
<xsd:element name="menuitem" type="menuitem"/>
<xsd:element name="condition" type="menuitemcondition"/>
<xsd:element name="insertif" type="menuiteminsertif"/>
<xsd:element name="externalvalue" type="menuitemiterator"/>
</xsd:choice>
</xsd:group>
<!---->
<xsd:complexType name="menupopup">
<xsd:choice>
<xsd:group ref="menuitemgroups"/>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
<!--
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="menuitemgroups"/>
</xsd:choice>
</xsd:sequence>
-->
</xsd:complexType>
<xsd:complexType name="menuitem">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" />
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="selected" type="xsd:boolean" />
</xsd:complexType>
<xsd:simpleType name="placement">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="north" />
<xsd:enumeration value="east" />
<xsd:enumeration value="south" />
<xsd:enumeration value="west" />
</xsd:restriction>
</xsd:simpleType>
<!--
egbozie: moved to XTDP-Message <xsd:simpleType name="XTDL-WidgetType">
<xsd:restriction base="xsd:string"> <xsd:enumeration
value="pushButton"/> <xsd:enumeration value="checkBox"/>
<xsd:enumeration value="integerField"/> <xsd:enumeration
value="floatField"/> <xsd:enumeration value="statusLED"/>
<xsd:enumeration value="string"/> <xsd:enumeration
value="statusLEDWithText"/> </xsd:restriction> </xsd:simpleType>
--> <!-- from XTDP_Message.xsd - egbozie -->
<xsd:simpleType name="widgettype">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="pushButton" />
<xsd:enumeration value="checkBox" />
<xsd:enumeration value="integerField" />
<xsd:enumeration value="floatField" />
<xsd:enumeration value="statusLED" />
<xsd:enumeration value="string" />
<xsd:enumeration value="statusLEDWithText" />
<xsd:enumeration value="trace" />
<xsd:enumeration value="image" />
<xsd:enumeration value="valueList" />
<xsd:enumeration value="none" />
<xsd:enumeration value="toggleButton" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="numericalwidgettype">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="integerField" />
<xsd:enumeration value="floatField" />
</xsd:restriction>
</xsd:simpleType>
<!---->
<xsd:complexType name="externaldataiterator">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="externaldatagroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="externaldatacondition">
<xsd:complexContent>
<xsd:extension base="iteratordata">
<xsd:sequence>
<xsd:group ref="externaldatagroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="externaldatainsertif">
<xsd:complexContent>
<xsd:extension base="if">
<xsd:sequence>
<xsd:group ref="externaldatagroups"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="externaldatagroups">
<xsd:sequence>
<xsd:group ref="externaldatagroup" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:group>
<xsd:group name="externaldatagroup">
<xsd:choice>
<xsd:element name="iterator" type="externaldataiterator" />
<xsd:element name="condition" type="externaldatacondition"/>
<xsd:element name="insertif" type="externaldatainsertif"/>
<xsd:element name="externalvalue" type="externaldataiterator"/>
<xsd:element name="intervallimits" type="intervallimits"/>
<xsd:element name="valuelist" type="valuelist" minOccurs="0" maxOccurs="unbounded" />
</xsd:choice>
</xsd:group>
<!---->
<xsd:complexType name="distributionchart">
<xsd:sequence>
<xsd:group ref="externaldatagroups"/>
</xsd:sequence>
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="title" type="xsd:string" />
<xsd:attribute name="axisXLabel" type="xsd:string" />
<xsd:attribute name="axisYLabel" type="xsd:string" />
<xsd:attribute name="showlegend" type="xsd:boolean" />
<xsd:attribute name="orientation" type="orientation" />
<xsd:attribute name="backgroundcolor" type="xsd:string" />
<xsd:attribute name="gridcolor" type="xsd:string" />
<xsd:attribute name="labeltype" type="labeltype" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="intervallimits">
<xsd:choice>
<xsd:element name="externaldata" type="datadescription" maxOccurs="1"/>
<xsd:element name="value" type="xsd:float" minOccurs="0" maxOccurs="unbounded" />
</xsd:choice>
<xsd:attribute name="id" type="xsd:string" use="required" />
</xsd:complexType>
<!--The value list can be handled only with the limits together.-->
<!--The limits must be checked each time a new statistic is added to the chart.-->
<!--Therefore adding a standalone valuelist is not permitted.-->
<xsd:complexType name="valuelist">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
<xsd:element name="value" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="color" type="xsd:string" />
<xsd:attribute name="legend" type="xsd:string" />
<xsd:attribute name="labeltype" type="labeltype" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
</xsd:complexType>
<xsd:simpleType name="orientation">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="vertical" />
<xsd:enumeration value="horizontal" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="fixedpositions">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="TopLeft" />
<xsd:enumeration value="TopRight" />
<xsd:enumeration value="BottomLeft" />
<xsd:enumeration value="BottomRight" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="labeltype">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="none" />
<xsd:enumeration value="percentage" />
<xsd:enumeration value="absolute" />
<xsd:enumeration value="mixed" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="pushbutton">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="imageid" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="togglebutton">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="state" type="xsd:boolean" use="required" />
<xsd:attribute name="label" type="xsd:string" />
<xsd:attribute name="imageid" type="xsd:string" />
<xsd:attribute name="tooltiptext" type="xsd:string" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:complexType name="htmlcode">
<xsd:sequence>
<xsd:element name="externaldata" type="datadescription" minOccurs="0" maxOccurs="1"/>
<xsd:element name="value" type="xsd:string" />
</xsd:sequence>
<xsd:attribute name="flex" type="xsd:decimal" />
<xsd:attribute name="disabled" type="xsd:boolean" />
<xsd:attributeGroup ref="commonAttrs" />
</xsd:complexType>
<xsd:simpleType name="align">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="left" />
<xsd:enumeration value="right" />
<xsd:enumeration value="center" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>