368 lines
14 KiB
XML
368 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xsd:schema
|
|
xml:lang="en"
|
|
targetNamespace="urn:trch"
|
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
xmlns:t1="urn:trch"
|
|
xmlns:c="urn:adf:Common"
|
|
elementFormDefault="qualified"
|
|
version="2.1.0">
|
|
|
|
<xsd:import schemaLocation="./Common.xsd" namespace="urn:adf:Common"/>
|
|
|
|
<xsd:simpleType name="DataTypeType">
|
|
<xsd:restriction base="xsd:string">
|
|
<!-- Base types -->
|
|
<xsd:enumeration value="Boolean"/>
|
|
<xsd:enumeration value="Buffer"/>
|
|
<xsd:enumeration value="S8"/>
|
|
<xsd:enumeration value="S16"/>
|
|
<xsd:enumeration value="S32"/>
|
|
<xsd:enumeration value="S64"/>
|
|
<xsd:enumeration value="String"/>
|
|
<xsd:enumeration value="U8"/>
|
|
<xsd:enumeration value="U16"/>
|
|
<xsd:enumeration value="U32"/>
|
|
<xsd:enumeration value="U64"/>
|
|
|
|
<!-- Derived types -->
|
|
<!-- Derived from S32, U32, or U64 depending on platform -->
|
|
<xsd:enumeration value="Socket"/>
|
|
<!-- Derived from "String" -->
|
|
<xsd:enumeration value="IPv4"/>
|
|
<xsd:enumeration value="IPv6"/>
|
|
<xsd:enumeration value="LocalFile"/>
|
|
<!-- Derived from U16 -->
|
|
<xsd:enumeration value="TcpPort"/>
|
|
<xsd:enumeration value="UdpPort"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType name="ParamTypeType">
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:enumeration value="Scalar"/> <!-- in the sense of Perl's scalar -->
|
|
<xsd:enumeration value="List"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:attributeGroup name="NameDescription">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="description" type="xsd:string" use="required"/>
|
|
</xsd:attributeGroup>
|
|
|
|
<xsd:attributeGroup name="NameDescDfltValu">
|
|
<xsd:attributeGroup ref="t1:NameDescription"/>
|
|
<xsd:attribute name="default" type="xsd:string"/>
|
|
<xsd:attribute name="value" type="xsd:string"/>
|
|
</xsd:attributeGroup>
|
|
|
|
<xsd:complexType name="ParameterType">
|
|
<xsd:sequence>
|
|
<xsd:element name="default" type="xsd:string" minOccurs="0"/>
|
|
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
|
|
</xsd:sequence>
|
|
<xsd:attributeGroup ref="t1:NameDescription"/>
|
|
<xsd:attribute name="format" type="t1:ParamTypeType"/>
|
|
<!-- format assumed to be "Scalar" if not specified -->
|
|
<xsd:attribute name="type" type="t1:DataTypeType" use="required"/>
|
|
<xsd:attribute name="required" type="xsd:boolean"/>
|
|
<!-- required assumed to be true if not specified -->
|
|
<xsd:attribute name="hidden" type="xsd:boolean"/>
|
|
<!-- hidden assumed to be false if not specified -->
|
|
<xsd:attribute name="valid" type="xsd:boolean"/>
|
|
<xsd:attribute name="xdevmap" type="xsd:string"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ParamGroupType">
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
<xsd:element name="parameter" type="t1:ParameterType"/>
|
|
<xsd:element name="paramchoice" type="t1:ParamChoiceType"/>
|
|
</xsd:choice>
|
|
<xsd:attributeGroup ref="t1:NameDescription"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ParamChoiceType">
|
|
<xsd:sequence>
|
|
<xsd:element name="default" type="xsd:string" minOccurs="0"/>
|
|
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
|
|
<xsd:element name="paramgroup" type="t1:ParamGroupType"
|
|
minOccurs="1" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:attributeGroup ref="t1:NameDescription"/>
|
|
<xsd:attribute name="xdevmap" type="xsd:string"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ParametersType">
|
|
<xsd:choice maxOccurs="unbounded">
|
|
<xsd:element name="parameter" type="t1:ParameterType"/>
|
|
<xsd:element name="paramchoice" type="t1:ParamChoiceType"/>
|
|
</xsd:choice>
|
|
</xsd:complexType>
|
|
|
|
<!-- Error codes -->
|
|
<xsd:simpleType name="numericErrorCode">
|
|
<xsd:restriction base="xsd:positiveInteger">
|
|
<xsd:minInclusive value="64"/>
|
|
<xsd:maxInclusive value="127"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType name="symbolicErrorCode">
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:pattern value="EDF_.*"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType name="errorCode">
|
|
<xsd:union memberTypes="t1:numericErrorCode t1:symbolicErrorCode"/>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:complexType name="ErrorcodeType">
|
|
<xsd:attributeGroup ref="t1:NameDescription"/>
|
|
<xsd:attribute name="value" type="t1:errorCode" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ErrorsType">
|
|
<xsd:sequence>
|
|
<xsd:element name="errorcode" type="t1:ErrorcodeType"
|
|
minOccurs="1" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
|
|
<!-- Redirection -->
|
|
<xsd:complexType name="LocalRedirType">
|
|
<xsd:attribute name="name" type="xsd:string"/>
|
|
<xsd:attribute name="protocol" type="c:ProtocolType" use="required"/>
|
|
<xsd:attribute name="listenaddr" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="listenport" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="srcport" type="xsd:string"/>
|
|
<xsd:attribute name="srcportlist" type="xsd:string"/>
|
|
<xsd:attribute name="srcportrange" type="xsd:string"/>
|
|
<!-- srcport will be arbitrarily chosen if not specified -->
|
|
<xsd:attribute name="destaddr" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="destport" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="closeoncompletion" type="xsd:boolean"/>
|
|
<!-- closeoncompletion defaults to false if not specified -->
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="RemoteRedirType">
|
|
<xsd:attribute name="name" type="xsd:string"/>
|
|
<xsd:attribute name="protocol" type="c:ProtocolType" use="required"/>
|
|
<xsd:attribute name="listenaddr" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="listenport" type="xsd:string"/>
|
|
<xsd:attribute name="listenportlist" type="xsd:string"/>
|
|
<xsd:attribute name="listenportrange" type="xsd:string"/>
|
|
<xsd:attribute name="listenportcount" type="xsd:positiveInteger"/>
|
|
<xsd:attribute name="destaddr" type="xsd:string"/>
|
|
<!-- destaddr assumed to be "0.0.0.0" (INADDR_ANY) if not specified -->
|
|
<xsd:attribute name="destport" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="closeoncompletion" type="xsd:boolean"/>
|
|
<!-- closeoncompletion defaults to false if not specified -->
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="RedirectionType">
|
|
<xsd:choice maxOccurs="unbounded">
|
|
<xsd:element name="local" type="t1:LocalRedirType"/>
|
|
<xsd:element name="remote" type="t1:RemoteRedirType"/>
|
|
</xsd:choice>
|
|
</xsd:complexType>
|
|
|
|
<!-- Binding -->
|
|
<xsd:group name="BINDING-GROUP">
|
|
<xsd:choice>
|
|
<xsd:element name="bindtopath" type="t1:BindToPathType"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="bindtovalue" type="t1:BindToValueType"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
<xsd:element name="enabletunnel" type="t1:EnableTunnelType"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:choice>
|
|
</xsd:group>
|
|
|
|
<xsd:complexType name="BindToPathType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="path" type="xsd:string" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="BindToValueType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="value" type="xsd:string" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="EnableTunnelType">
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<!-- Boolean Logic -->
|
|
<xsd:group name="BOOLEANLOGIC-GROUP">
|
|
<xsd:choice>
|
|
<xsd:element name="and" type="t1:AndType"/>
|
|
<xsd:element name="not" type="t1:NotType"/>
|
|
<xsd:element name="or" type="t1:OrType"/>
|
|
</xsd:choice>
|
|
</xsd:group>
|
|
|
|
<xsd:group name="BOOLEANLOGIC-LINKAGE">
|
|
<xsd:sequence>
|
|
<xsd:choice minOccurs="2" maxOccurs="unbounded">
|
|
<xsd:group ref="t1:BOOLEANLOGIC-GROUP"/>
|
|
<xsd:group ref="t1:TOUCHINFO-GROUP"/>
|
|
</xsd:choice>
|
|
<xsd:group ref="t1:BINDING-GROUP"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:group>
|
|
|
|
<xsd:group name="UNARY-BOOLEANLOGIC-LINKAGE">
|
|
<xsd:sequence>
|
|
<xsd:choice>
|
|
<xsd:group ref="t1:BOOLEANLOGIC-GROUP"/>
|
|
<xsd:group ref="t1:TOUCHINFO-GROUP"/>
|
|
</xsd:choice>
|
|
<xsd:group ref="t1:BINDING-GROUP"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:group>
|
|
|
|
<xsd:complexType name="AndType">
|
|
<xsd:group ref="t1:BOOLEANLOGIC-LINKAGE"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="NotType">
|
|
<xsd:group ref="t1:UNARY-BOOLEANLOGIC-LINKAGE"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="OrType">
|
|
<xsd:group ref="t1:BOOLEANLOGIC-LINKAGE"/>
|
|
</xsd:complexType>
|
|
|
|
<!-- Touchinfo -->
|
|
<xsd:group name="TOUCHINFO-GROUP">
|
|
<xsd:choice>
|
|
<xsd:element name="os" type="t1:OperatingSystemType"/>
|
|
<xsd:element name="os_patch" type="t1:PatchType"/>
|
|
<xsd:element name="patch" type="t1:PatchType"/>
|
|
<xsd:element name="product" type="t1:ProductType"/>
|
|
<xsd:element name="service" type="t1:ServiceType"/>
|
|
<xsd:element name="misc_service_info" type="t1:MiscInfoType"/>
|
|
<xsd:element name="contract" type="t1:ContractType"/>
|
|
</xsd:choice>
|
|
</xsd:group>
|
|
|
|
<xsd:group name="TOUCHINFO-LINKAGE">
|
|
<xsd:sequence>
|
|
<xsd:choice minOccurs="0">
|
|
<xsd:group ref="t1:BOOLEANLOGIC-GROUP"/>
|
|
<xsd:group ref="t1:TOUCHINFO-GROUP"/>
|
|
</xsd:choice>
|
|
<xsd:group ref="t1:BINDING-GROUP"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:group>
|
|
|
|
<xsd:complexType name="OperatingSystemType">
|
|
<xsd:complexContent>
|
|
<xsd:extension base="c:OperatingSystemType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ServiceType">
|
|
<xsd:complexContent>
|
|
<xsd:extension base="c:ServiceType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="ProductType">
|
|
<xsd:complexContent>
|
|
<xsd:extension base="c:ProductType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="MiscInfoType">
|
|
<xsd:complexContent>
|
|
<xsd:extension base="c:MiscInfoType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="PatchType">
|
|
<xsd:complexContent>
|
|
<xsd:extension base="c:PatchType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
</xsd:extension>
|
|
</xsd:complexContent>
|
|
</xsd:complexType>
|
|
|
|
<xsd:attributeGroup name="contractattrgroup">
|
|
<xsd:attribute name="value" type="xsd:string"/>
|
|
</xsd:attributeGroup>
|
|
|
|
<xsd:complexType name="ContractType">
|
|
<xsd:group ref="t1:TOUCHINFO-LINKAGE" minOccurs="0"/>
|
|
<xsd:attributeGroup ref="t1:contractattrgroup"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:group name="LOGIC-LINKAGE">
|
|
<xsd:sequence>
|
|
<xsd:choice minOccurs="0">
|
|
<xsd:group ref="t1:BOOLEANLOGIC-GROUP"/>
|
|
<xsd:group ref="t1:TOUCHINFO-GROUP"/>
|
|
</xsd:choice>
|
|
<xsd:group ref="t1:BINDING-GROUP"
|
|
minOccurs="0" maxOccurs="unbounded"/>
|
|
</xsd:sequence>
|
|
</xsd:group>
|
|
|
|
<xsd:complexType name="LogicType">
|
|
<xsd:sequence>
|
|
<xsd:group ref="t1:LOGIC-LINKAGE"/>
|
|
</xsd:sequence>
|
|
</xsd:complexType>
|
|
|
|
<xsd:simpleType name="VersionType">
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:pattern value="((\d|[\d-[0]]\d+)\.){2}(\d|[\d-[0]]\d+)"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType name="ConfigVersionType">
|
|
<xsd:restriction base="xsd:string">
|
|
<xsd:pattern value="((\d|[\d-[0]]\d+)\.){3}(\d|[\d-[0]]\d+)"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
<xsd:complexType name="ConfigType">
|
|
<xsd:sequence>
|
|
<xsd:element name="inputparameters" type="t1:ParametersType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
<xsd:element name="constants" type="t1:ParametersType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
<xsd:element name="outputparameters" type="t1:ParametersType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
<xsd:element name="errors" type="t1:ErrorsType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
<xsd:element name="redirection" type="t1:RedirectionType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
<xsd:element name="logic" type="t1:LogicType"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
</xsd:sequence>
|
|
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
|
<xsd:attribute name="name" type="xsd:string"/>
|
|
<xsd:attribute name="version" type="t1:VersionType"/>
|
|
<xsd:attribute name="configversion"
|
|
type="t1:ConfigVersionType"
|
|
use="required"/>
|
|
<xsd:attribute name="schemaversion"
|
|
type="t1:VersionType" use="required"/>
|
|
</xsd:complexType>
|
|
|
|
<xsd:element name="config" type="t1:ConfigType"/>
|
|
|
|
</xsd:schema>
|