203 lines
7.4 KiB
XML
203 lines
7.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
<xs:element name="scada">
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="name" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="backgroundImagePath" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="isInProductionPage" type="xs:boolean" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="layers">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="layer" minOccurs="1" maxOccurs="unbounded">
|
|
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="buttons">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="button" type="buttonType" minOccurs='0' maxOccurs='unbounded'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="images">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="image" type="imageType" minOccurs='0' maxOccurs='unbounded'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="labels">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="label" type="labelType" minOccurs='0' maxOccurs='unbounded'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="progressBars">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="progressBar" type="progressType" minOccurs='0' maxOccurs='unbounded'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="inputs">
|
|
<xs:complexType>
|
|
<xs:sequence maxOccurs="unbounded">
|
|
<xs:element name="input" type="inputType" minOccurs='0' maxOccurs='unbounded'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
|
|
<!-- Button type-->
|
|
<xs:complexType name="buttonType">
|
|
<xs:all>
|
|
<xs:element name="label" type="subLabelType" minOccurs='0' maxOccurs='1' />
|
|
<xs:element name="position" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="size" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="status" minOccurs='1' maxOccurs='1'>
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="memClickIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memEnabledIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
|
|
<!-- Image type-->
|
|
<xs:complexType name="imageType">
|
|
<xs:all>
|
|
<xs:element name="imageName" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="position" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="size" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="status" minOccurs='1' maxOccurs='1'>
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="memClickIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memVisibleIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
</xs:all>
|
|
<xs:attribute name="negate" type="xs:boolean"/>
|
|
<xs:attribute name="clickEnabled" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
|
|
<!-- label type-->
|
|
<xs:complexType name="labelType">
|
|
<xs:all>
|
|
<xs:element name="label" type="subLabelType" minOccurs='1' maxOccurs='1' />
|
|
<xs:element name="position" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="size" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memEnabledIndex" type="xs:string" minOccurs='0' maxOccurs='1'/>
|
|
|
|
</xs:all>
|
|
</xs:complexType>
|
|
|
|
<!-- progress type-->
|
|
<xs:complexType name="progressType">
|
|
<xs:all>
|
|
<xs:element name="position" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="size" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memValueIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
|
|
<!-- input type-->
|
|
<xs:complexType name="inputType">
|
|
<xs:all>
|
|
<xs:element name="label" type="subLabelType" minOccurs='0' maxOccurs='1' />
|
|
<xs:element name="position" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="size" type="xyType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="status" minOccurs='1' maxOccurs='1'>
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="type" type="inputNumberType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="action" type="inputAction" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memEnabledIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="memValueIndex" type="xs:string" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="round" type="xs:int" minOccurs='0' maxOccurs='1'/>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
|
|
<!-- XY type -->
|
|
<xs:complexType name="xyType">
|
|
<xs:attribute name="x" type="xs:int" use="required"/>
|
|
<xs:attribute name="y" type="xs:int" use="required"/>
|
|
</xs:complexType>
|
|
|
|
<!-- subLabel type -->
|
|
<xs:complexType name="subLabelType">
|
|
<xs:sequence>
|
|
<xs:element name="backgroundColor" type="hexcolorType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="textAlign" type="alignType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="textColor" type="hexcolorType" minOccurs='1' maxOccurs='1'/>
|
|
<xs:element name="textContent" type="langType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="textSize" type="xs:int" minOccurs='1' maxOccurs='1'/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<!-- Language Type -->
|
|
<xs:complexType name="langType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="langKey" use="required" type="xs:string" />
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
|
|
<!-- inputAction simpleType -->
|
|
<xs:simpleType name="inputAction" final="restriction" >
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="READ" />
|
|
<xs:enumeration value="WRITE" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- inputNumberType simpleType -->
|
|
<xs:simpleType name="inputNumberType" final="restriction" >
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="BOOL" />
|
|
<xs:enumeration value="BYTE" />
|
|
<xs:enumeration value="WORD" />
|
|
<xs:enumeration value="INT" />
|
|
<xs:enumeration value="REAL" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- align simpleType -->
|
|
<xs:simpleType name="alignType" final="restriction" >
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="left" />
|
|
<xs:enumeration value="right" />
|
|
<xs:enumeration value="center" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- hexcolor simpleType -->
|
|
<xs:simpleType name="hexcolorType" final="restriction" >
|
|
<xs:restriction base="xs:token">
|
|
<xs:pattern value="#[\dA-Fa-f1-9]{6}([\dA-Fa-f1-9][\dA-Fa-f1-9])?" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|
|
|
|
|
|
|