Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Confidential Doc
Information 12_010
© GSMA 2008. The GSM Association (“Association”) makes no representation, warranty or undertaking (express or implied) with respect to and does not accept any
responsibility for, and disclaims liability for the accuracy or completeness or timeliness of the information contained in this document. The information contained in this
document may be subject to change without prior notice. This document has been classified according to the GSMA Document Confidentiality Policy. GSMA meetings
are conducted in full compliance with the GSMA Antitrust Policy.
48747548.doc Page 1 of 25
GSM Association Confidential Information
48747548.doc Page 2 of 25
GSM Association Confidential Information
1 SCOPE...........................................................................................................5
1.1 WHO SHOULD USE THIS TUTORIAL? 5
1.2 DEPENDENCIES AND PREREQUISITES 5
2 SUBSCRIBER PROFILE WEB SERVICE ACCESS API OVERVIEW.........6
2.1 EXAMPLE USE CASES 6
2.2 SUBSCRIBER PROFILE API 6
2.2.1 Bindings.............................................................................................................. 6
2.2.2 Method Summary: getProfile().............................................................................6
2.2.3 Method Summary: setProfile().............................................................................7
2.2.4 Method Summary: getProfileProperty()...............................................................8
2.2.5 Method Summary: setProfileProperty()...............................................................9
3 WSDL DEFINITION......................................................................................11
4 WORKFLOW................................................................................................12
4.1 VERIFICATION PROCESS 12
4.2 SANDBOX TEST ENVIRONMENT 12
4.3 ACCESSING THE LIVE MESSAGING SERVICES 13
5 EXCEPTIONS..............................................................................................14
6 SAMPLE JAVA APPLICATION CODE.......................................................15
7 QUESTIONS AND FEEDBACK..................................................................17
8 HISTORY......................................................................................................18
APPENDIX – WSDL FILES...................................................................................19
GSMA_SUBSCRIBER_PROFILE_SERVICE_1_0.WSDL 19
GSMA_SUBSCRIBER_PROFILE_INTERFACE_1_0.WSDL 20
PARLAYX_SUB_PROFILE_TYPES_3_0.WSDL 23
PARLAYX_COMMON_FAULTS_2_1.WSDL 24
parlayx_common_types_2_1.xsd 24
48747548.doc Page 3 of 25
GSM Association Confidential Information
References
4. Java, java.sun.com
48747548.doc Page 4 of 25
GSM Association Confidential Information
1 Scope
This tutorial details the GSMA Access API definition for the Subscriber Profile Web
Service. It provides an overview of the API, the WSDL for the service, information on how
to use the API including sample code, and also the verification and access workflow.
GSMA Access is an initiative to provide a standard API to allow mobile (and other network)
operators to expose useful network information and capabilities to Web application
developers. It aims to reduce the effort and time needed to create applications and content
that is portable across mobile operators.
The GSMA Access API is intended to complement existing client- and server-side APIs by
providing the missing piece: access to network capabilities and information regardless of
operator.
For a full list of APIs please got to the GSMA 3rd Party Access Project website [ref 1].
To gain verification and access to both sandbox subscriber profile services, the user must
register at the GSMA TWS Developer Portal. Go to <insert link to GSMA TWS Developer
Portal> [ref 2] and register as follows. To access live networks <TBD need to be defined>:
Click on the Register tab, fill in your details and click Submit.
A confirmation screen will appear, if the details are correct, click Submit, if not click
Edit and update as necessary.
An email will be sent to your email address to verify your registration. Click on the
link in the email to validate your email address. You will receive an email saying
that the account is pending.
Once the email is validated you will receive a further email and also an SMS stating
that you can log in using the username and password you registered.
Go to the portal and click on the Login link in the top right-hand corner. Enter your
username and password.
48747548.doc Page 5 of 25
GSM Association Confidential Information
2. Commercial message
A provider of information to Opt In customers used MMS and SMS for the delivery. In the
case a subscriber is in the home network MMS is used but if the subscriber is roaming SMS
is used avoiding extra charges. The service provider used Subscriber Profile to chec if the
subscriber is roaming before pushing the message.
4. Mood
Service Providers can read and set the mood of the subscriber. Typically can a Subscriber
via a Service Provider or portal change the mood. Other Service Providers can read the
current mood via the Subscriber Profile and use that to send specific messages or to avoid.
Moods can be typically: Happy, Sad, Alone, Going for Party, Open for contact, Like to be
alone, etc.
Request: getProfile
The input message is derived from the proposed Parlay X standard definition.
48747548.doc Page 6 of 25
GSM Association Confidential Information
Response: getProfile
The output message adheres to the proposed Parlay X standard.
Error returns
48747548.doc Page 7 of 25
GSM Association Confidential Information
Response: setProfile
The output message adheres to the proposed Parlay X standard. This is an empty
message containing no data. Upon any error an error exception is returned see below. The
request is atomic meaning that if one value fails to be set no change will be applied to the
subscriber profile.
Error returns
Request: getProfileProperty
The input message is derived from the proposed Parlay X standard definition.
48747548.doc Page 8 of 25
GSM Association Confidential Information
propertyPathName xsd:string Mandatory The relative property path name to the property to read
within the defined Subscriber Profile.
Response: getProfileProperty
The output message adheres to the proposed Parlay X standard.
Error returns
48747548.doc Page 9 of 25
GSM Association Confidential Information
property.
Response: setProfileProperty
The output message adheres to the proposed Parlay X standard. This is an empty
message containing no data. Upon any error an error exception is returned see below. The
request is atomic meaning that if one value fails to be set no change will be applied to the
subscriber profile.
Error returns
Go to the GSMA Access API Wiki and navigate to the Subscriber Profile page for more
information.
48747548.doc Page 10 of 25
GSM Association Confidential Information
3 WSDL Definition
The Web Services Definition Language (WSDL) definition for the Message Web Service
Access API is made up of the following files:
GSMA_subscriber_profile_interface_2_3.wsdl
GSMA_subscriber_profile _service_2_3.wsdl
parlayx_common_faults_2_1.wsdl
parlayx_common_types_2_1.xsd
These files are available for download from the GSMA TWS Developer Portal <insert link>.
The content of the files is also listed in the Appendix.
48747548.doc Page 11 of 25
GSM Association Confidential Information
4 Workflow
In order to gain access to the sandbox and the live messaging services the user must first
perform a verification check of their application against an API Reference Implementation
(RI).
48747548.doc Page 12 of 25
GSM Association Confidential Information
If you wish to have any of the above configured or for any queries during testing, please
contact <insert aepona gsma support email address>.
If you wish to have any of the above configured or for any queries using the live service,
please contact <insert aepona gsma support email address>.
48747548.doc Page 13 of 25
GSM Association Confidential Information
5 Exceptions
See the API descriptions in Section <TBD> above.
48747548.doc Page 14 of 25
GSM Association Confidential Information
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import org.apache.axis.types.URI;
import org.apache.axis.types.URI.MalformedURIException;
import org.csapi.www.schema.parlayx.common.v2_1.PolicyException;
import org.csapi.www.schema.parlayx.common.v2_1.ServiceException;
import org.csapi.www.wsdl.parlayx.subscriber_profile.v1_0.interface.
GetSusbcriberProfile;
import org.csapi.www.wsdl.parlayx.subscriber_profile.v1_0.service.
GetSusbcriberProfileServiceLocator;
/**
* Get Susbcriber Profile application to retrieve a subscriber profile data
*
*/
public class GetSusbcriberInfoOneApiSampleApplication {
try {
GetSusbcriberProfile getSubscriberProfile = new
GetSubscriberProfileServiceLocator().getSusbceiberProfile(new
URL(PROFILE_ENDPOINT));
} catch (MalformedURLException e) {
System.out.println("A MalformedURLException has occurred. The endpoint
URL used is invalid");
e.printStackTrace();
} catch (javax.xml.rpc.ServiceException e) {
System.out.println("A javax.xml.rpc.ServiceException has occurred. Failed
to send web service request using axis");
48747548.doc Page 15 of 25
GSM Association Confidential Information
e.printStackTrace();
} catch (MalformedURIException e) {
} catch (PolicyException e) {
System.out.println("A TWS policy exception has occurred. Check service
log for details");
e.printStackTrace();
} catch (ServiceException e) {
System.out.println("A TWS service exception has occurred. Check service
log for details");
e.printStackTrace();
} catch (RemoteException e) {
System.out.println("A java.rmi.RemoteException has occurred. Could not
connect to TWS");
e.printStackTrace();
}
}
}
48747548.doc Page 16 of 25
GSM Association Confidential Information
48747548.doc Page 17 of 25
GSM Association Confidential Information
8 History
Document Version Description Date
1.0a Initial draft 08-12-08
48747548.doc Page 18 of 25
GSM Association Confidential Information
<wsdl:import
namespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/interface"
location="parlayx_sub_profile_interface_3_0.wsdl"/>
<wsdl:binding name="SubscriberProfileBinding"
type="interface:SubscriberProfile">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getProfile">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="setProfile">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="getProfileProperty">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
48747548.doc Page 19 of 25
GSM Association Confidential Information
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="setProfileProperty">
<soap:operation soapAction="" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="PolicyException">
<soap:fault name="PolicyException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:service name="SubscriberProfileService">
<wsdl:port name="SubscriberProfile" binding="tns:SubscriberProfileBinding">
<soap:address
location="http://localhost:9080/SubscriberProfileService/services/SubscriberProfil
e"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
GSMA_subscriber_profile_interface_1_0.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="parlayx_sub_profile_interface"
targetNamespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/interface"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:parlayx_sub_profile="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/inte
rface"
xmlns:parlayx_sub_profile_faults="http://www.csapi.org/wsdl/parlayx/sub_profile/v3
_0/faults"
xmlns:parlayx_common_faults="http://www.csapi.org/wsdl/parlayx/common/v2_0/faults"
xmlns:parlayx_sub_profile_xsd="http://www.csapi.org/schema/parlayx/sub_profile/v3_
0"
xmlns:parlayx_sub_profile_local_xsd="http://www.csapi.org/schema/parlayx/sub_profi
le/v3_0/local">
<wsdl:import
namespace="http://www.csapi.org/wsdl/parlayx/sub_profile/v3_0/faults"
location="parlayx_sub_profile_faults_3_0.wsdl"/>
<wsdl:import namespace="http://www.csapi.org/wsdl/parlayx/common/v2_0/faults"
location="parlayx_common_faults_2_0.wsdl"/>
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0/local">
48747548.doc Page 20 of 25
GSM Association Confidential Information
<xsd:import
namespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0"
schemaLocation="parlayx_sub_profile_types_3_0.xsd"/>
<xsd:element name="getProfile"
type="parlayx_sub_profile_local_xsd:getProfile"/>
<xsd:complexType name="getProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getProfileResponse"
type="parlayx_sub_profile_local_xsd:getProfileResponse"/>
<xsd:complexType name="getProfileResponse">
<xsd:sequence>
<xsd:element name="result"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="setProfile"
type="parlayx_sub_profile_local_xsd:setProfile"/>
<xsd:complexType name="setProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="properties"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="setProfileResponse"
type="parlayx_sub_profile_local_xsd:setProfileResponse"/>
<xsd:complexType name="setProfileResponse">
<xsd:sequence/>
</xsd:complexType>
<xsd:element name="getProfileProperty"
type="parlayx_sub_profile_local_xsd:getProfileProperty"/>
<xsd:complexType name="getProfile">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="propertyPathName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getProfilePropertyResponse"
type="parlayx_sub_profile_local_xsd:getProfilePropertyResponse"/>
<xsd:complexType name="getProfilePropertyResponse">
<xsd:sequence>
<xsd:element name="result"
type="parlayx_sub_profile_xsd:PropertyTuple" minOccurs="1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
48747548.doc Page 21 of 25
GSM Association Confidential Information
<xsd:element name="setProfileProperty"
type="parlayx_sub_profile_local_xsd:setProfileProperty"/>
<xsd:complexType name="setProfileProperty">
<xsd:sequence>
<xsd:element name="subscriberID" type="xsd:string"/>
<xsd:element name="profileID" type="xsd:string"/>
<xsd:element name="propertyPathName" type="xsd:string"/>
<xsd:element name="propertyValue" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="setProfilePropertyResponse"
type="parlayx_sub_profile_local_xsd:setProfilePropertyResponse"/>
<xsd:complexType name="setProfileResponse">
<xsd:sequence/>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="SubscriberProfile_getProfileRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:getProfile"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_getProfileResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:getProfileResponse"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_setProfileRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:setProfile"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_setProfileResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:setProfileResponse"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_getProfilePropertyRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:getProfileProperty"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_getProfilePropertyResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:getProfilePropertyResponse"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_setProfilePropertyRequest">
<wsdl:part name="parameters"
element="parlayx_sub_profile_local_xsd:setProfileProperty"/>
</wsdl:message>
<wsdl:message name="SubscriberProfile_setProfilePropertyResponse">
<wsdl:part name="result"
element="parlayx_sub_profile_local_xsd:setProfilePropertyResponse"/>
</wsdl:message>
<wsdl:portType name="SubscriberProfile">
<wsdl:operation name="getProfile">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_getProfileRequest"/>
48747548.doc Page 22 of 25
GSM Association Confidential Information
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_getProfileResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>
<wsdl:operation name="setProfile">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_setProfileRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_setProfileResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>
<wsdl:operation name="getProfileProperty">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_getProfilePropertyRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_getProfilePropertyResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>
<wsdl:operation name="setProfileProperty">
<wsdl:input
message="parlayx_sub_profile:SubscriberProfile_setProfilePropertyRequest"/>
<wsdl:output
message="parlayx_sub_profile:SubscriberProfile_setProfilePropertyResponse"/>
<wsdl:fault name="ServiceException"
message="parlayx_common_faults:ServiceException"/>
<wsdl:fault name="PolicyException"
message="parlayx_common_faults:PolicyException"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
parlayx_sub_profile_types_3_0.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
targetNamespace="http://www.csapi.org/schema/parlayx/sub_profile/v3_0"
xmlns:parlayx_sub_profile_xsd="http://www.csapi.org/schema/parlayx/sub_profile/v3_
0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="PropertyTuple">
<xsd:sequence>
<xsd:element name="pathName" type="xsd:string"/>
<xsd:element name="propertyValue" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Filter">
<xsd:sequence>
<xsd:element name="filterCriteria" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
48747548.doc Page 23 of 25
GSM Association Confidential Information
parlayx_common_faults_2_1.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<!-- April 25, 2007 -->
<wsdl:definitions
name="common_faults"
targetNamespace="http://www.csapi.org/wsdl/parlayx/common/v2_1/faults"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:parlayx_common_xsd="http://www.csapi.org/schema/parlayx/common/v2_1">
<wsdl:types>
<xsd:schema elementFormDefault="qualified">
<xsd:import namespace="http://www.csapi.org/schema/parlayx/common/v2_1"
schemaLocation="parlayx_common_types_2_1.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="ServiceException">
<wsdl:part name="ServiceException"
element="parlayx_common_xsd:ServiceException"/>
</wsdl:message>
<wsdl:message name="PolicyException">
<wsdl:part name="PolicyException"
element="parlayx_common_xsd:PolicyException"/>
</wsdl:message>
</wsdl:definitions>
parlayx_common_types_2_1.xsd
<xsd:schema
targetNamespace="http://www.csapi.org/schema/parlayx/common/v2_1"
xmlns:parlayx_common_xsd="http://www.csapi.org/schema/parlayx/common/v2_1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="TimeMetric">
<xsd:sequence>
<xsd:element name="metric" type="parlayx_common_xsd:TimeMetrics"/>
<xsd:element name="units" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ChargingInformation">
<xsd:sequence>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="currency" type="xsd:string" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="amount" type="xsd:decimal" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="code" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleReference">
<xsd:sequence>
<xsd:element name="endpoint" type="xsd:anyURI"/>
<xsd:element name="interfaceName" type="xsd:string"/>
<xsd:element name="correlator" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceError">
<xsd:sequence>
<xsd:element name="messageId" type="xsd:string"/>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="variables" type="xsd:string" minOccurs="0"
48747548.doc Page 24 of 25
GSM Association Confidential Information
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TextInformation">
<xsd:sequence>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="language" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="AnnouncementType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AnnouncementId"/>
<xsd:enumeration value="Text"/>
<xsd:enumeration value="VoiceXml"/>
<xsd:enumeration value="Audio"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="AnnouncementContents">
<xsd:sequence>
<xsd:element name="UnionElement"
type="parlayx_common_xsd:AnnouncementType"/>
<xsd:element name="AnnouncementId" type="xsd:int" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="Text" type="parlayx_common_xsd:TextInformation"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="VoiceXml" type="xsd:anyURI" minOccurs="0"
maxOccurs="1"/>
<xsd:element name="Audio" type="xsd:anyURI" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="TimeMetrics">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Millisecond"/>
<xsd:enumeration value="Second"/>
<xsd:enumeration value="Minute"/>
<xsd:enumeration value="Hour"/>
<xsd:enumeration value="Day"/>
<xsd:enumeration value="Week"/>
<xsd:enumeration value="Month"/>
<xsd:enumeration value="Year"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="ServiceException"
type="parlayx_common_xsd:ServiceException"/>
<xsd:complexType name="ServiceException">
<xsd:sequence>
<xsd:element name="messageId" type="xsd:string"/>
<xsd:element name="text" type="xsd:string"/>
<xsd:element name="variables" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
48747548.doc Page 25 of 25