<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.globalmmcs.org/xgsp"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.globalmmcs.org/xgsp" >
<!-- Conference Management messages -->
<xs:element name="CreateConference">
<xs:annotation><xs:documentation>create a new conference by the administrator or special nodes</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID"/> <xs:element name="ConferenceName"/> <xs:element name="Conference-Date"/> <xs:element name="ConferenceCreator"/> <xs:element name="conferenceType"> <xs:annotation> <xs:documentation>this field specifies the type of this conference. A moderated conference needs a conference chair to manage. </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Moderated"/> <xs:enumeration value="UnModerated"/> </xs:restriction> </xs:simpleType> </xs:element>
<xs:element name="conferenceDescription" type="xs:string"/>
<xs:element name="ApplicationList"> <xs:complexType> <xs:sequence> <xs:element name="ApplicationID" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element><xs:element name="ModifyConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID"/> <xs:element name="ConferenceName"/> <xs:element name="ConferenceDate"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="TerminateConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Reason" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<!-- Join/Leave Conference -->
<xs:element name="JoinConference"> <xs:complexType><xs:sequence>
<xs:element name="ConferenceID" type="xs:string"/> <xs:element name="UserID" type="xs:string"/> <xs:element name="UserCapabilities" type="xs:string"> <xs:annotation> <xs:documentation>specifies how many applications this user can support</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="LeaveConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="UserID" type="xs:string"/> <xs:element name="LeaveReason" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="InviteIntoConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Inviting-UserID" type="xs:string"/> <xs:element name="Invited-UserID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="ExpelFromConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Expelled-UserID" type="xs:string"/> <xs:element name="Expelling-Requestor" type="xs:string"/> <xs:element name="Reason" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ConfMemberReply"> <xs:annotation> <xs:documentation>this message specifies the reply to "Join/Leave/Invite/ExpelConference"</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="UserID" type="xs:string"/> <xs:element name="ReplyType"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="JoinConference"/> <xs:enumeration value="LeaveConference"/> <xs:enumeration value="InviteIntoConference"/> <xs:enumeration value="ExpelFromConference"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Result" type="xs:boolean"/> <xs:element name="ConferenceAddress" type="xs:string"> <xs:annotation> <xs:documentation>NaradaBrokering Topic for the control communication in this conference</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QueryConference"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"> <xs:annotation> <xs:documentation> can be "*" means any conference</xs:documentation> </xs:annotation> </xs:element> <xs:element name="UserID" type="xs:string"/> <xs:element name="QueryID" type="xs:string"/> </xs:sequence>
</xs:complexType> </xs:element>
<xs:element name="QueryConferenceReply"> <xs:complexType> <xs:sequence> <xs:element name="UserID" type="xs:string"/> <xs:element name="ConferenceInfo" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="ConferenceName" type="xs:string"/> <xs:element name="ConferenceDescription" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<!-- Membership Event -->
<xs:element name="MembershipEvent"> <xs:complexType> <xs:sequence> <xs:element name="EventType"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="NewMemberEvent"/> <xs:enumeration value="ByeEvent"/> <xs:enumeration value="TimeOutEvent"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="UserID" type="xs:string"/> <xs:element name="UserDecription" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element><xs:element name="RequestMembership"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID"/> <xs:element name="UserID"> <xs:complexType/> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="RequestMebershipReply"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="ConferenceName" type="xs:string"/> <xs:element name="MembershipList"> <xs:complexType> <xs:element name="Member" type="xs:string" maxOccurs="unbounded"/>
</xs:complexType>
</xs:element> </xs:sequence> </xs:complexType> </xs:element>
<!-- Application Session Management -->
<xs:element name="CreateAppSession"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="ApplicationID" type="xs:string"/> <xs:element name="AppSessionID" type="xs:string"/> <xs:element name="AppSession-Creator" type="xs:string"/> <xs:element name="Private" type="xs:boolean"> <xs:annotation> <xs:documentation>When this is set to true, only invited users can join in this application session</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element><xs:element name="TerminateAppSession"> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="AppSessionID" type="xs:string"/> <xs:element name="Reason" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="QueryAppSession"> <xs:complexType> <xs:sequence> <xs:element name="UserID" type="xs:string"/> <xs:element name="AppSessionID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="QueryAppSessionReply"> <xs:complexType> <xs:sequence> <xs:element name="UserID" type="xs:string"/> <xs:element name="AppSessionInfo" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="AppSessionID" type="xs:string"/> <xs:element name="AppSessionDes" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
<!-- Application Session Floor Control -->
<xs:element name="SetAppRole"> <xs:complexType> <xs:sequence> <xs:element name="AppSessionID" type="xs:string"/> <xs:element name="UserID" type="xs:string"/> <xs:element name="RoleDescription" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element><xs:element name="RequestChair"> <xs:annotation> <xs:documentation>A user can request to become a new chair</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Request-UserID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="ReleaseChair"> <xs:annotation> <xs:documentation>Current chair release its chair</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Chair-UserID" type="xs:string"/> <xs:element name="Reason" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="GiveChair"> <xs:annotation> <xs:documentation>Current chair gives its chair floor to a new user</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Chair-UserID" type="xs:string"/> <xs:element name="NewChair-UserID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
<xs:element name="ChairAnnouncement"> <xs:annotation> <xs:documentation>Current chair announces its chair peridically</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ConferenceID" type="xs:string"/> <xs:element name="Chair-UserID" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
</xs:schema>