blob: f0cbdd8ec992a6b9e079edc73cae1ca9b33f229b [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xtdl="http://ttcn.ericsson.se/protocolModules/xtdp/xtdl"
xmlns="http://ttcn.ericsson.se/protocolModules/xtdp/xtdp"
targetNamespace="http://ttcn.ericsson.se/protocolModules/xtdp/xtdp"
>
<!-- 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 and xtdl prefixes are added, the xul: namespace
is removed and all xul: prefixes are changed to xtdl:;
the default namespace is set to this document; -->
<!--
***********************************************************************
***********************************************************************
** THE VERSION OF THIS XTDP DOCUMENT IS 1.0 **
** VERSION SHALL BE INCREASED WHEN ANY NEW INFORMATION OR **
** MESSAGES ARE ADDED OR A NON-BACKWARD COMPATIBLE CHANGE IS DONE! **
***********************************************************************
***********************************************************************
-->
<xsd:import namespace="http://ttcn.ericsson.se/protocolModules/xtdp/xtdl" schemaLocation="XTDL.xsd" />
<!-- ***********************************************************************
* XTDP ELEMENT TYPES *
***********************************************************************-->
<xsd:simpleType name="XTDP-Identifier">
<xsd:restriction base="xsd:string">
<!--Corrected by ethgry from: "(\p{L}|\d|_|\-|\.|\/){1,}"/>-->
<!-- FIXME: IDENTIFIER CONVENSION IS CHANGED! FIRST CHARACTER SHALL NOT BE "_" "-" OR "."; IS IT OK?-->
<xsd:pattern value="[a-zA-Z0-9]([a-zA-Z0-9]|_| |\-|\.|/){1,}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="XTDP-Widget">
<xsd:sequence>
<xsd:element name="widgetId" type="XTDP-Identifier" minOccurs="1" maxOccurs="1" />
<xsd:element name="widgetType" type="xtdl:widgettype" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<!--
***********************************************************************
* XTDP INFORMATION ELEMENTS *
***********************************************************************
-->
<xsd:simpleType name="XTDP-Version">
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="1.0"/> <!-- ethgry: this is added only as Titan currently does not enforce pattern subtyping -->
<xsd:pattern value="[123456789]\d*\.\d"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ethgry: XTDP-Request has been completely re-designed: arguments of each action has been defined precisely -->
<xsd:complexType name="XTDP-Request">
<xsd:sequence>
<xsd:element name="requestId" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<xsd:element name="action" type="XTDP-Actions" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-Actions">
<!-- NOTE: AN OMITTED widget ELEMENT MEANS THE WHOLE DISPLAY AREA -->
<xsd:choice>
<xsd:element name="get">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end get -->
<xsd:element name="put">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="1" maxOccurs="1" />
<xsd:element name="argument" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end put -->
<xsd:element name="increase">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="1" maxOccurs="1" />
<!-- ethgry: if argument is omitted, value shall be increased by 1 or 1.0 -->
<xsd:element name="argument" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end increase -->
<xsd:element name="decrease">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="1" maxOccurs="1" />
<!-- ethgry: if argument is omitted, value shall be increased by 1 or 1.0 -->
<xsd:element name="argument" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end decrease -->
<xsd:element name="enable">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end enable -->
<xsd:element name="disable">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end disable -->
<xsd:element name="getfocus"/> <!-- end getfocus -->
<xsd:element name="setfocus">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end setfocus -->
<xsd:element name="gettooltip">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end gettooltip -->
<xsd:element name="settooltip">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
<xsd:element name="argument" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end settooltip -->
<xsd:element name="replaceimage">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="widget" type="XTDP-Widget" minOccurs="0" maxOccurs="1" />
<xsd:element name="argument" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <!-- end replaceimage -->
</xsd:choice>
</xsd:complexType> <!-- end XTDP-Actiontypes -->
<xsd:simpleType name="XTDP-Result">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="success"/>
<xsd:enumeration value="pending"/>
<xsd:enumeration value="error"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="XTDP-ErrorSource">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="other"/>
<xsd:enumeration value="requestor"/>
<xsd:enumeration value="responder"/>
<xsd:enumeration value="thirdParty"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="XTDP-ActionErrorCode">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="syntaxError"/>
<xsd:enumeration value="timeOut"/>
<xsd:enumeration value="illegalArgument"/>
<xsd:enumeration value="illegalAction"/>
<xsd:enumeration value="illegalWidget"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="XTDP-ARErrorCode">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="parentWidgetDoesNotExists"/>
<xsd:enumeration value="timeOut"/>
<xsd:enumeration value="illegalWidget"/>
</xsd:restriction>
</xsd:simpleType>
<!-- ethgry: added for the version compatibility procedure -->
<xsd:simpleType name="XTDP-CompatibilityErrorCode">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="xtdpIncompatibleVersion"/>
<xsd:enumeration value="xtdlIncompatibleVersion"/>
<xsd:enumeration value="procedureUnsupported"/>
<xsd:enumeration value="directionUnsupported"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="XTDP-Response">
<xsd:sequence>
<xsd:element name="requestId" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<xsd:element name="responseCode" type="XTDP-Result" minOccurs="1" maxOccurs="1" />
<xsd:element name="argument" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="errorSource" type="XTDP-ErrorSource" minOccurs="0" maxOccurs="1" />
<xsd:element name="errorCode" type="XTDP-ActionErrorCode" minOccurs="0" maxOccurs="1" />
<xsd:element name="errorMessage" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-AddRequest">
<xsd:sequence>
<xsd:element name="requestId" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<xsd:element name="parentWidgetId" type="XTDP-Identifier" minOccurs="0" maxOccurs="1" />
<xsd:group ref="xtdl:widgets"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-RemoveRequest">
<xsd:sequence>
<xsd:element name="requestId" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<xsd:element name="widgetId" type="XTDP-Identifier" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-ARResponse">
<xsd:sequence>
<xsd:element name="requestId" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<xsd:element name="responseCode" type="XTDP-Result" minOccurs="1" maxOccurs="1" />
<xsd:element name="errorSource" type="XTDP-ErrorSource" minOccurs="0" maxOccurs="1" />
<xsd:element name="errorCode" type="XTDP-ARErrorCode" minOccurs="0" maxOccurs="1" />
<xsd:element name="errorMessage" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<!-- FIXME: ethgry: where these types are used (not referenced in this document!)? -->
<xsd:simpleType name="XTDL-Config">
<xsd:restriction base="xsd:string">
<xsd:minLength value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="XTDP-AuthData">
<xsd:sequence>
<xsd:element name="guiID" type="XTDP-Identifier" minOccurs="1" maxOccurs="1" />
<xsd:element name="guiAuth" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="TTCN3Types">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="charstring"/>
<xsd:enumeration value="universalCharstring"/>
<xsd:enumeration value="bitstring"/>
<xsd:enumeration value="hexstring"/>
<xsd:enumeration value="octetsring"/>
</xsd:restriction>
</xsd:simpleType>
<!--
***********************************************************************
* XTDP MESSAGES *
***********************************************************************-->
<xsd:complexType name="XTDP-HandshakeRequest" >
<xsd:sequence>
<xsd:element name="xtdpRequiredVersion" type="XTDP-Version"
minOccurs="1" maxOccurs="1" />
<xsd:element name="xtdlRequiredVersion" type="XTDP-Version"
minOccurs="0" maxOccurs="1" />
<xsd:element name="xtdpMyVersion" type="XTDP-Version"
minOccurs="0" maxOccurs="1" />
<xsd:element name="xtdlMyVersion" type="XTDP-Version"
minOccurs="0" maxOccurs="1" />
<!--
********************************************************************
* THIS ELEMENT SHALL NEVER BE USED FOR SENDING INFORMATION! *
* The only purpose of having it in the spec. is to allow entities *
* supporting this version of the protocol accepting any future *
* additions without XML validation failure *
********************************************************************
-->
<xsd:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-Outcome" >
<xsd:sequence>
<xsd:element name="responseCode" type="XTDP-Result" minOccurs="1" maxOccurs="1" />
<xsd:element name="errorCode" type="XTDP-CompatibilityErrorCode" minOccurs="0" maxOccurs="2" />
<xsd:element name="errorMessage" type="xsd:string" minOccurs="0" maxOccurs="1" />
<!--
********************************************************************
* THIS ELEMENT SHALL NEVER BE USED FOR SENDING INFORMATION! *
* The only purpose of having it in the spec. is to allow entities *
* supporting this version of the protocol accepting any future *
* additions without XML validation failure *
********************************************************************
-->
<xsd:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-Requests">
<xsd:sequence>
<!-- ethgry: minOccurs="0" changed to "1": there shall be at least one Request -->
<xsd:element name="XTDP-Request" type="XTDP-Request" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
<!-- ethgry: ackRequested is added to identify acknowledged procedure;
default is unacknowledged; clarify if needed at all -->
<xsd:attribute name="ackRequested" type="xsd:boolean" default="false" />
</xsd:complexType>
<xsd:complexType name="XTDP-Responses">
<xsd:sequence>
<!-- ethgry: minOccurs="0" changed to "1": there shall be at least one Response -->
<xsd:element name="XTDP-Response" type="XTDP-Response" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-LayoutRequest">
<xsd:sequence>
<!-- ethgry: requestId element removed: what is it used for, when there is only one request? -->
<xsd:element name="widgetId" type="XTDP-Identifier" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-LayoutResponse">
<xsd:sequence>
<!-- ethgry: requestId element removed, once deleted in the request -->
<xsd:group ref="xtdl:widgets"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-AddRequests">
<xsd:sequence>
<xsd:element name="XTDP-AddRequest" type="XTDP-AddRequest" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-RemoveRequests">
<xsd:sequence>
<xsd:element name="XTDP-RemoveRequest" type="XTDP-RemoveRequest" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-ARResponses">
<xsd:sequence>
<xsd:element name="XTDP-ARResponse" type="XTDP-ARResponse" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="XTDP-Container">
<xsd:sequence>
<xsd:element name="contentType" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:element name="ttcn3Type" type="TTCN3Types"/>
<xsd:element name="other" type="xsd:string"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:choice>
<xsd:element name="textual" type="xsd:string" />
<xsd:element name="binary" type="xsd:hexBinary" />
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="XTDP-Message">
<xsd:complexType>
<xsd:choice>
<xsd:element name="XTDP-HandshakeRequest" type="XTDP-HandshakeRequest" />
<xsd:element name="XTDP-Outcome" type="XTDP-Outcome" />
<xsd:element name="XTDP-Requests" type="XTDP-Requests" />
<xsd:element name="XTDP-Responses" type="XTDP-Responses" />
<xsd:element name="XTDP-LayoutRequest" type="XTDP-LayoutRequest" />
<xsd:element name="XTDP-LayoutResponse" type="XTDP-LayoutResponse" />
<xsd:element name="XTDP-AddRequests" type="XTDP-AddRequests" />
<xsd:element name="XTDP-RemoveRequests" type="XTDP-RemoveRequests" />
<xsd:element name="XTDP-ARResponses" type="XTDP-ARResponses" />
<xsd:element name="XTDP-AuthChallenge" type="xsd:string" />
<xsd:element name="XTDP-AuthResponse" type="xsd:string" />
<!-- this message allows using XTDP for any user-defined protocol, even not using XTDL at all -->
<xsd:element name="XTDP-Container" type="XTDP-Container" />
<xsd:element name="XTDP-Bye" type="xsd:string" />
</xsd:choice>
<!-- ethgry: "noNamespaceSchemaLocation" is deleted; how to know about this attribute,
if the schema is not available? -->
<!-- ethgry: transactionID is added to allow handling several procedures at the same time -->
<xsd:attribute name="transactionID" type="xsd:nonNegativeInteger"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>