<?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> |