<?xml version="1.0" encoding="UTF-8"?>
<definitions name="swad"
 targetNamespace="urn:swad"
 xmlns:tns="urn:swad"
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:swad="urn:swad"
 xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:HTTP="http://schemas.xmlsoap.org/wsdl/http/"
 xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
 xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
 xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
 xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>

 <schema targetNamespace="urn:swad"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:swad="urn:swad"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified">
  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
  <complexType name="course"><!-- swad__course -->

   <sequence>
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__course::courseCode -->
     <element name="courseShortName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__course::courseShortName -->
     <element name="courseFullName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__course::courseFullName -->
     <element name="userRole" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__course::userRole -->
   </sequence>
  </complexType>
  <complexType name="coursesArray"><!-- swad__coursesArray -->

   <sequence>
    <element name="item" type="swad:course" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="groupType"><!-- swad__groupType -->

   <sequence>
     <element name="groupTypeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__groupType::groupTypeCode -->
     <element name="groupTypeName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__groupType::groupTypeName -->
     <element name="mandatory" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__groupType::mandatory -->
     <element name="multiple" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__groupType::multiple -->
     <element name="openTime" type="xsd:long" minOccurs="1" maxOccurs="1"/><!-- swad__groupType::openTime -->
   </sequence>
  </complexType>
  <complexType name="groupTypesArray"><!-- swad__groupTypesArray -->

   <sequence>
    <element name="item" type="swad:groupType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="group"><!-- swad__group -->

   <sequence>
     <element name="groupCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::groupCode -->
     <element name="groupName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__group::groupName -->
     <element name="groupTypeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::groupTypeCode -->
     <element name="groupTypeName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__group::groupTypeName -->
     <element name="open" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::open -->
     <element name="maxStudents" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::maxStudents -->
     <element name="numStudents" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::numStudents -->
     <element name="fileZones" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::fileZones -->
     <element name="member" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__group::member -->
   </sequence>
  </complexType>
  <complexType name="groupsArray"><!-- swad__groupsArray -->

   <sequence>
    <element name="item" type="swad:group" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="notification"><!-- swad__notification -->

   <sequence>
     <element name="notifCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__notification::notifCode -->
     <element name="eventType" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::eventType -->
     <element name="eventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__notification::eventCode -->
     <element name="eventTime" type="xsd:long" minOccurs="1" maxOccurs="1"/><!-- swad__notification::eventTime -->
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::userNickname -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::userPhoto -->
     <element name="location" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::location -->
     <element name="status" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__notification::status -->
     <element name="summary" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::summary -->
     <element name="content" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__notification::content -->
   </sequence>
  </complexType>
  <complexType name="notificationsArray"><!-- swad__notificationsArray -->

   <sequence>
    <element name="item" type="swad:notification" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="tag"><!-- swad__tag -->

   <sequence>
     <element name="tagCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__tag::tagCode -->
     <element name="tagText" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__tag::tagText -->
   </sequence>
  </complexType>
  <complexType name="tagsArray"><!-- swad__tagsArray -->

   <sequence>
    <element name="item" type="swad:tag" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="question"><!-- swad__question -->

   <sequence>
     <element name="questionCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__question::questionCode -->
     <element name="answerType" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__question::answerType -->
     <element name="shuffle" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__question::shuffle -->
     <element name="stem" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__question::stem -->
     <element name="feedback" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__question::feedback -->
   </sequence>
  </complexType>
  <complexType name="questionsArray"><!-- swad__questionsArray -->

   <sequence>
    <element name="item" type="swad:question" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="answer"><!-- swad__answer -->

   <sequence>
     <element name="questionCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__answer::questionCode -->
     <element name="answerIndex" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__answer::answerIndex -->
     <element name="correct" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__answer::correct -->
     <element name="answerText" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__answer::answerText -->
     <element name="answerFeedback" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__answer::answerFeedback -->
   </sequence>
  </complexType>
  <complexType name="answersArray"><!-- swad__answersArray -->

   <sequence>
    <element name="item" type="swad:answer" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="questionTag"><!-- swad__questionTag -->

   <sequence>
     <element name="questionCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__questionTag::questionCode -->
     <element name="tagCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__questionTag::tagCode -->
     <element name="tagIndex" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__questionTag::tagIndex -->
   </sequence>
  </complexType>
  <complexType name="questionTagsArray"><!-- swad__questionTagsArray -->

   <sequence>
    <element name="item" type="swad:questionTag" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="user"><!-- swad__user -->

   <sequence>
     <element name="userCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__user::userCode -->
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userNickname -->
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userID -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__user::userPhoto -->
   </sequence>
  </complexType>
  <complexType name="usersArray"><!-- swad__usersArray -->

   <sequence>
    <element name="item" type="swad:user" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="attendanceEvent"><!-- swad__attendanceEvent -->

   <sequence>
     <element name="attendanceEventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceEvent::attendanceEventCode -->
     <element name="hidden" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceEvent::hidden -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::userPhoto -->
     <element name="startTime" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceEvent::startTime -->
     <element name="endTime" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceEvent::endTime -->
     <element name="commentsTeachersVisible" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceEvent::commentsTeachersVisible -->
     <element name="title" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::title -->
     <element name="text" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::text -->
     <element name="groups" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceEvent::groups -->
   </sequence>
  </complexType>
  <complexType name="attendanceEventsArray"><!-- swad__attendanceEventsArray -->

   <sequence>
    <element name="item" type="swad:attendanceEvent" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <complexType name="attendanceUser"><!-- swad__attendanceUser -->

   <sequence>
     <element name="userCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceUser::userCode -->
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userNickname -->
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userID -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__attendanceUser::userPhoto -->
     <element name="present" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__attendanceUser::present -->
   </sequence>
  </complexType>
  <complexType name="attendanceUsersArray"><!-- swad__attendanceUsersArray -->

   <sequence>
    <element name="item" type="swad:attendanceUser" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
   </sequence>
  </complexType>
  <!-- operation request element -->
  <element name="createAccount">
   <complexType>
    <sequence>
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccount::userNickname -->
     <element name="userEmail" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccount::userEmail -->
     <element name="userPassword" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccount::userPassword -->
     <element name="appKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccount::appKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="createAccountOutput">
   <complexType>
    <sequence>
     <element name="userCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__createAccountOutput::userCode -->
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccountOutput::wsKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="loginByUserPasswordKey">
   <complexType>
    <sequence>
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKey::userID -->
     <element name="userPassword" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKey::userPassword -->
     <element name="appKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKey::appKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="loginByUserPasswordKeyOutput">
   <complexType>
    <sequence>
     <element name="userCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginByUserPasswordKeyOutput::userCode -->
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::wsKey -->
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userNickname -->
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userID -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userPhoto -->
     <element name="userBirthday" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginByUserPasswordKeyOutput::userBirthday -->
     <element name="userRole" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginByUserPasswordKeyOutput::userRole -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="loginBySessionKey">
   <complexType>
    <sequence>
     <element name="sessionID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKey::sessionID -->
     <element name="appKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKey::appKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="loginBySessionKeyOutput">
   <complexType>
    <sequence>
     <element name="userCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginBySessionKeyOutput::userCode -->
     <element name="degreeTypeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginBySessionKeyOutput::degreeTypeCode -->
     <element name="degreeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginBySessionKeyOutput::degreeCode -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginBySessionKeyOutput::courseCode -->
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::wsKey -->
     <element name="userNickname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userNickname -->
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userID -->
     <element name="userSurname1" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userSurname1 -->
     <element name="userSurname2" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userSurname2 -->
     <element name="userFirstname" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userFirstname -->
     <element name="userPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userPhoto -->
     <element name="userBirthday" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::userBirthday -->
     <element name="userRole" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__loginBySessionKeyOutput::userRole -->
     <element name="degreeTypeName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::degreeTypeName -->
     <element name="degreeName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::degreeName -->
     <element name="courseName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__loginBySessionKeyOutput::courseName -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getNewPassword">
   <complexType>
    <sequence>
     <element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getNewPassword::userID -->
     <element name="appKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getNewPassword::appKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getNewPasswordOutput">
   <complexType>
    <sequence>
     <element name="success" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getNewPasswordOutput::success -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getCourses">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getCourses::wsKey -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getCoursesOutput">
   <complexType>
    <sequence>
     <element name="numCourses" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getCoursesOutput::numCourses -->
     <element name="coursesArray" type="swad:coursesArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getCoursesOutput::coursesArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getCourseInfo">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getCourseInfo::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getCourseInfo::courseCode -->
     <element name="infoType" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getCourseInfo::infoType -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getCourseInfoOutput">
   <complexType>
    <sequence>
     <element name="infoSrc" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getCourseInfoOutput::infoSrc -->
     <element name="infoTxt" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getCourseInfoOutput::infoTxt -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getGroupTypes">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getGroupTypes::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getGroupTypes::courseCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getGroupTypesOutput">
   <complexType>
    <sequence>
     <element name="numGroupTypes" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getGroupTypesOutput::numGroupTypes -->
     <element name="groupTypesArray" type="swad:groupTypesArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getGroupTypesOutput::groupTypesArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getGroups">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getGroups::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getGroups::courseCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getGroupsOutput">
   <complexType>
    <sequence>
     <element name="numGroups" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getGroupsOutput::numGroups -->
     <element name="groupsArray" type="swad:groupsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getGroupsOutput::groupsArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="sendMyGroups">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMyGroups::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendMyGroups::courseCode -->
     <element name="myGroups" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMyGroups::myGroups -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="sendMyGroupsOutput">
   <complexType>
    <sequence>
     <element name="success" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendMyGroupsOutput::success -->
     <element name="numGroups" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendMyGroupsOutput::numGroups -->
     <element name="groupsArray" type="swad:groupsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__sendMyGroupsOutput::groupsArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getDirectoryTree">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getDirectoryTree::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getDirectoryTree::courseCode -->
     <element name="groupCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getDirectoryTree::groupCode -->
     <element name="treeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getDirectoryTree::treeCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getDirectoryTreeOutput">
   <complexType>
    <sequence>
     <element name="tree" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getDirectoryTreeOutput::tree -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getFile">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFile::wsKey -->
     <element name="fileCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getFile::fileCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getFileOutput">
   <complexType>
    <sequence>
     <element name="fileName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFileOutput::fileName -->
     <element name="URL" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFileOutput::URL -->
     <element name="size" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getFileOutput::size -->
     <element name="time" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getFileOutput::time -->
     <element name="license" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFileOutput::license -->
     <element name="publisherName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFileOutput::publisherName -->
     <element name="publisherPhoto" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getFileOutput::publisherPhoto -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getMarks">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getMarks::wsKey -->
     <element name="fileCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getMarks::fileCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getMarksOutput">
   <complexType>
    <sequence>
     <element name="content" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getMarksOutput::content -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getTestConfig">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getTestConfig::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfig::courseCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getTestConfigOutput">
   <complexType>
    <sequence>
     <element name="pluggable" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfigOutput::pluggable -->
     <element name="numQuestions" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfigOutput::numQuestions -->
     <element name="minQuestions" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfigOutput::minQuestions -->
     <element name="defQuestions" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfigOutput::defQuestions -->
     <element name="maxQuestions" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTestConfigOutput::maxQuestions -->
     <element name="feedback" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getTestConfigOutput::feedback -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getTests">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getTests::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getTests::courseCode -->
     <element name="beginTime" type="xsd:long" minOccurs="1" maxOccurs="1"/><!-- swad__getTests::beginTime -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getTestsOutput">
   <complexType>
    <sequence>
     <element name="tagsArray" type="swad:tagsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getTestsOutput::tagsArray -->
     <element name="questionsArray" type="swad:questionsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getTestsOutput::questionsArray -->
     <element name="answersArray" type="swad:answersArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getTestsOutput::answersArray -->
     <element name="questionTagsArray" type="swad:questionTagsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getTestsOutput::questionTagsArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getTrivialQuestion">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getTrivialQuestion::wsKey -->
     <element name="degrees" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getTrivialQuestion::degrees -->
     <element name="lowerScore" type="xsd:float" minOccurs="1" maxOccurs="1"/><!-- swad__getTrivialQuestion::lowerScore -->
     <element name="upperScore" type="xsd:float" minOccurs="1" maxOccurs="1"/><!-- swad__getTrivialQuestion::upperScore -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getTrivialQuestionOutput">
   <complexType>
    <sequence>
     <element name="question" type="swad:question" minOccurs="1" maxOccurs="1"/><!-- swad__getTrivialQuestionOutput::question -->
     <element name="answersArray" type="swad:answersArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getTrivialQuestionOutput::answersArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getUsers">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getUsers::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getUsers::courseCode -->
     <element name="groupCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getUsers::groupCode -->
     <element name="userRole" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getUsers::userRole -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getUsersOutput">
   <complexType>
    <sequence>
     <element name="numUsers" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getUsersOutput::numUsers -->
     <element name="usersArray" type="swad:usersArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getUsersOutput::usersArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getAttendanceEvents">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getAttendanceEvents::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getAttendanceEvents::courseCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getAttendanceEventsOutput">
   <complexType>
    <sequence>
     <element name="numEvents" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getAttendanceEventsOutput::numEvents -->
     <element name="eventsArray" type="swad:attendanceEventsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getAttendanceEventsOutput::eventsArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="sendAttendanceEvent">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceEvent::wsKey -->
     <element name="attendanceEventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::attendanceEventCode -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::courseCode -->
     <element name="hidden" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::hidden -->
     <element name="startTime" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::startTime -->
     <element name="endTime" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::endTime -->
     <element name="commentsTeachersVisible" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEvent::commentsTeachersVisible -->
     <element name="title" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceEvent::title -->
     <element name="text" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceEvent::text -->
     <element name="groups" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceEvent::groups -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="sendAttendanceEventOutput">
   <complexType>
    <sequence>
     <element name="attendanceEventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceEventOutput::attendanceEventCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getAttendanceUsers">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getAttendanceUsers::wsKey -->
     <element name="attendanceEventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getAttendanceUsers::attendanceEventCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getAttendanceUsersOutput">
   <complexType>
    <sequence>
     <element name="numUsers" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getAttendanceUsersOutput::numUsers -->
     <element name="usersArray" type="swad:attendanceUsersArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getAttendanceUsersOutput::usersArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="sendAttendanceUsers">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceUsers::wsKey -->
     <element name="attendanceEventCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceUsers::attendanceEventCode -->
     <element name="users" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendAttendanceUsers::users -->
     <element name="setOthersAsAbsent" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceUsers::setOthersAsAbsent -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="sendAttendanceUsersOutput">
   <complexType>
    <sequence>
     <element name="success" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceUsersOutput::success -->
     <element name="numUsers" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendAttendanceUsersOutput::numUsers -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="getNotifications">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__getNotifications::wsKey -->
     <element name="beginTime" type="xsd:long" minOccurs="1" maxOccurs="1"/><!-- swad__getNotifications::beginTime -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="getNotificationsOutput">
   <complexType>
    <sequence>
     <element name="numNotifications" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__getNotificationsOutput::numNotifications -->
     <element name="notificationsArray" type="swad:notificationsArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__getNotificationsOutput::notificationsArray -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="markNotificationsAsRead">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__markNotificationsAsRead::wsKey -->
     <element name="notifications" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__markNotificationsAsRead::notifications -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="markNotificationsAsReadOutput">
   <complexType>
    <sequence>
     <element name="numNotifications" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__markNotificationsAsReadOutput::numNotifications -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="sendNotice">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendNotice::wsKey -->
     <element name="courseCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendNotice::courseCode -->
     <element name="body" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendNotice::body -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="sendNoticeOutput">
   <complexType>
    <sequence>
     <element name="noticeCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendNoticeOutput::noticeCode -->
    </sequence>
   </complexType>
  </element>
  <!-- operation request element -->
  <element name="sendMessage">
   <complexType>
    <sequence>
     <element name="wsKey" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMessage::wsKey -->
     <element name="messageCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendMessage::messageCode -->
     <element name="to" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMessage::to -->
     <element name="subject" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMessage::subject -->
     <element name="body" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__sendMessage::body -->
    </sequence>
   </complexType>
  </element>
  <!-- operation response element -->
  <element name="sendMessageOutput">
   <complexType>
    <sequence>
     <element name="numUsers" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- swad__sendMessageOutput::numUsers -->
     <element name="usersArray" type="swad:usersArray" minOccurs="1" maxOccurs="1" nillable="true"/><!-- swad__sendMessageOutput::usersArray -->
    </sequence>
   </complexType>
  </element>
 </schema>

</types>

<message name="createAccount">
 <part name="Body" element="swad:createAccount"/><!-- swad__createAccount::swad__createAccount -->
</message>

<message name="createAccountOutput">
 <part name="Body" element="swad:createAccountOutput"/><!-- swad__createAccount::createAccountOut -->
</message>

<message name="loginByUserPasswordKey">
 <part name="Body" element="swad:loginByUserPasswordKey"/><!-- swad__loginByUserPasswordKey::swad__loginByUserPasswordKey -->
</message>

<message name="loginByUserPasswordKeyOutput">
 <part name="Body" element="swad:loginByUserPasswordKeyOutput"/><!-- swad__loginByUserPasswordKey::loginByUserPasswordKeyOut -->
</message>

<message name="loginBySessionKey">
 <part name="Body" element="swad:loginBySessionKey"/><!-- swad__loginBySessionKey::swad__loginBySessionKey -->
</message>

<message name="loginBySessionKeyOutput">
 <part name="Body" element="swad:loginBySessionKeyOutput"/><!-- swad__loginBySessionKey::loginBySessionKeyOut -->
</message>

<message name="getNewPassword">
 <part name="Body" element="swad:getNewPassword"/><!-- swad__getNewPassword::swad__getNewPassword -->
</message>

<message name="getNewPasswordOutput">
 <part name="Body" element="swad:getNewPasswordOutput"/><!-- swad__getNewPassword::getNewPasswordOut -->
</message>

<message name="getCourses">
 <part name="Body" element="swad:getCourses"/><!-- swad__getCourses::swad__getCourses -->
</message>

<message name="getCoursesOutput">
 <part name="Body" element="swad:getCoursesOutput"/><!-- swad__getCourses::getCoursesOut -->
</message>

<message name="getCourseInfo">
 <part name="Body" element="swad:getCourseInfo"/><!-- swad__getCourseInfo::swad__getCourseInfo -->
</message>

<message name="getCourseInfoOutput">
 <part name="Body" element="swad:getCourseInfoOutput"/><!-- swad__getCourseInfo::getCourseInfoOut -->
</message>

<message name="getGroupTypes">
 <part name="Body" element="swad:getGroupTypes"/><!-- swad__getGroupTypes::swad__getGroupTypes -->
</message>

<message name="getGroupTypesOutput">
 <part name="Body" element="swad:getGroupTypesOutput"/><!-- swad__getGroupTypes::getGroupTypesOut -->
</message>

<message name="getGroups">
 <part name="Body" element="swad:getGroups"/><!-- swad__getGroups::swad__getGroups -->
</message>

<message name="getGroupsOutput">
 <part name="Body" element="swad:getGroupsOutput"/><!-- swad__getGroups::getGroupsOut -->
</message>

<message name="sendMyGroups">
 <part name="Body" element="swad:sendMyGroups"/><!-- swad__sendMyGroups::swad__sendMyGroups -->
</message>

<message name="sendMyGroupsOutput">
 <part name="Body" element="swad:sendMyGroupsOutput"/><!-- swad__sendMyGroups::sendMyGroupsOut -->
</message>

<message name="getDirectoryTree">
 <part name="Body" element="swad:getDirectoryTree"/><!-- swad__getDirectoryTree::swad__getDirectoryTree -->
</message>

<message name="getDirectoryTreeOutput">
 <part name="Body" element="swad:getDirectoryTreeOutput"/><!-- swad__getDirectoryTree::getDirectoryTreeOut -->
</message>

<message name="getFile">
 <part name="Body" element="swad:getFile"/><!-- swad__getFile::swad__getFile -->
</message>

<message name="getFileOutput">
 <part name="Body" element="swad:getFileOutput"/><!-- swad__getFile::getFileOut -->
</message>

<message name="getMarks">
 <part name="Body" element="swad:getMarks"/><!-- swad__getMarks::swad__getMarks -->
</message>

<message name="getMarksOutput">
 <part name="Body" element="swad:getMarksOutput"/><!-- swad__getMarks::getMarksOut -->
</message>

<message name="getTestConfig">
 <part name="Body" element="swad:getTestConfig"/><!-- swad__getTestConfig::swad__getTestConfig -->
</message>

<message name="getTestConfigOutput">
 <part name="Body" element="swad:getTestConfigOutput"/><!-- swad__getTestConfig::getTestConfigOut -->
</message>

<message name="getTests">
 <part name="Body" element="swad:getTests"/><!-- swad__getTests::swad__getTests -->
</message>

<message name="getTestsOutput">
 <part name="Body" element="swad:getTestsOutput"/><!-- swad__getTests::getTestsOut -->
</message>

<message name="getTrivialQuestion">
 <part name="Body" element="swad:getTrivialQuestion"/><!-- swad__getTrivialQuestion::swad__getTrivialQuestion -->
</message>

<message name="getTrivialQuestionOutput">
 <part name="Body" element="swad:getTrivialQuestionOutput"/><!-- swad__getTrivialQuestion::getTrivialQuestionOut -->
</message>

<message name="getUsers">
 <part name="Body" element="swad:getUsers"/><!-- swad__getUsers::swad__getUsers -->
</message>

<message name="getUsersOutput">
 <part name="Body" element="swad:getUsersOutput"/><!-- swad__getUsers::getUsersOut -->
</message>

<message name="getAttendanceEvents">
 <part name="Body" element="swad:getAttendanceEvents"/><!-- swad__getAttendanceEvents::swad__getAttendanceEvents -->
</message>

<message name="getAttendanceEventsOutput">
 <part name="Body" element="swad:getAttendanceEventsOutput"/><!-- swad__getAttendanceEvents::getAttendanceEventsOut -->
</message>

<message name="sendAttendanceEvent">
 <part name="Body" element="swad:sendAttendanceEvent"/><!-- swad__sendAttendanceEvent::swad__sendAttendanceEvent -->
</message>

<message name="sendAttendanceEventOutput">
 <part name="Body" element="swad:sendAttendanceEventOutput"/><!-- swad__sendAttendanceEvent::sendAttendanceEventOut -->
</message>

<message name="getAttendanceUsers">
 <part name="Body" element="swad:getAttendanceUsers"/><!-- swad__getAttendanceUsers::swad__getAttendanceUsers -->
</message>

<message name="getAttendanceUsersOutput">
 <part name="Body" element="swad:getAttendanceUsersOutput"/><!-- swad__getAttendanceUsers::getAttendanceUsersOut -->
</message>

<message name="sendAttendanceUsers">
 <part name="Body" element="swad:sendAttendanceUsers"/><!-- swad__sendAttendanceUsers::swad__sendAttendanceUsers -->
</message>

<message name="sendAttendanceUsersOutput">
 <part name="Body" element="swad:sendAttendanceUsersOutput"/><!-- swad__sendAttendanceUsers::sendAttendanceUsersOut -->
</message>

<message name="getNotifications">
 <part name="Body" element="swad:getNotifications"/><!-- swad__getNotifications::swad__getNotifications -->
</message>

<message name="getNotificationsOutput">
 <part name="Body" element="swad:getNotificationsOutput"/><!-- swad__getNotifications::getNotificationsOut -->
</message>

<message name="markNotificationsAsRead">
 <part name="Body" element="swad:markNotificationsAsRead"/><!-- swad__markNotificationsAsRead::swad__markNotificationsAsRead -->
</message>

<message name="markNotificationsAsReadOutput">
 <part name="Body" element="swad:markNotificationsAsReadOutput"/><!-- swad__markNotificationsAsRead::markNotificationAsReadOut -->
</message>

<message name="sendNotice">
 <part name="Body" element="swad:sendNotice"/><!-- swad__sendNotice::swad__sendNotice -->
</message>

<message name="sendNoticeOutput">
 <part name="Body" element="swad:sendNoticeOutput"/><!-- swad__sendNotice::sendNoticeOut -->
</message>

<message name="sendMessage">
 <part name="Body" element="swad:sendMessage"/><!-- swad__sendMessage::swad__sendMessage -->
</message>

<message name="sendMessageOutput">
 <part name="Body" element="swad:sendMessageOutput"/><!-- swad__sendMessage::sendMessageOut -->
</message>

<portType name="swadPortType">
 <operation name="createAccount">
  <documentation>Service definition of function swad__createAccount</documentation>
  <input message="tns:createAccount"/>
  <output message="tns:createAccountOutput"/>
 </operation>
 <operation name="loginByUserPasswordKey">
  <documentation>Service definition of function swad__loginByUserPasswordKey</documentation>
  <input message="tns:loginByUserPasswordKey"/>
  <output message="tns:loginByUserPasswordKeyOutput"/>
 </operation>
 <operation name="loginBySessionKey">
  <documentation>Service definition of function swad__loginBySessionKey</documentation>
  <input message="tns:loginBySessionKey"/>
  <output message="tns:loginBySessionKeyOutput"/>
 </operation>
 <operation name="getNewPassword">
  <documentation>Service definition of function swad__getNewPassword</documentation>
  <input message="tns:getNewPassword"/>
  <output message="tns:getNewPasswordOutput"/>
 </operation>
 <operation name="getCourses">
  <documentation>Service definition of function swad__getCourses</documentation>
  <input message="tns:getCourses"/>
  <output message="tns:getCoursesOutput"/>
 </operation>
 <operation name="getCourseInfo">
  <documentation>Service definition of function swad__getCourseInfo</documentation>
  <input message="tns:getCourseInfo"/>
  <output message="tns:getCourseInfoOutput"/>
 </operation>
 <operation name="getGroupTypes">
  <documentation>Service definition of function swad__getGroupTypes</documentation>
  <input message="tns:getGroupTypes"/>
  <output message="tns:getGroupTypesOutput"/>
 </operation>
 <operation name="getGroups">
  <documentation>Service definition of function swad__getGroups</documentation>
  <input message="tns:getGroups"/>
  <output message="tns:getGroupsOutput"/>
 </operation>
 <operation name="sendMyGroups">
  <documentation>Service definition of function swad__sendMyGroups</documentation>
  <input message="tns:sendMyGroups"/>
  <output message="tns:sendMyGroupsOutput"/>
 </operation>
 <operation name="getDirectoryTree">
  <documentation>Service definition of function swad__getDirectoryTree</documentation>
  <input message="tns:getDirectoryTree"/>
  <output message="tns:getDirectoryTreeOutput"/>
 </operation>
 <operation name="getFile">
  <documentation>Service definition of function swad__getFile</documentation>
  <input message="tns:getFile"/>
  <output message="tns:getFileOutput"/>
 </operation>
 <operation name="getMarks">
  <documentation>Service definition of function swad__getMarks</documentation>
  <input message="tns:getMarks"/>
  <output message="tns:getMarksOutput"/>
 </operation>
 <operation name="getTestConfig">
  <documentation>Service definition of function swad__getTestConfig</documentation>
  <input message="tns:getTestConfig"/>
  <output message="tns:getTestConfigOutput"/>
 </operation>
 <operation name="getTests">
  <documentation>Service definition of function swad__getTests</documentation>
  <input message="tns:getTests"/>
  <output message="tns:getTestsOutput"/>
 </operation>
 <operation name="getTrivialQuestion">
  <documentation>Service definition of function swad__getTrivialQuestion</documentation>
  <input message="tns:getTrivialQuestion"/>
  <output message="tns:getTrivialQuestionOutput"/>
 </operation>
 <operation name="getUsers">
  <documentation>Service definition of function swad__getUsers</documentation>
  <input message="tns:getUsers"/>
  <output message="tns:getUsersOutput"/>
 </operation>
 <operation name="getAttendanceEvents">
  <documentation>Service definition of function swad__getAttendanceEvents</documentation>
  <input message="tns:getAttendanceEvents"/>
  <output message="tns:getAttendanceEventsOutput"/>
 </operation>
 <operation name="sendAttendanceEvent">
  <documentation>Service definition of function swad__sendAttendanceEvent</documentation>
  <input message="tns:sendAttendanceEvent"/>
  <output message="tns:sendAttendanceEventOutput"/>
 </operation>
 <operation name="getAttendanceUsers">
  <documentation>Service definition of function swad__getAttendanceUsers</documentation>
  <input message="tns:getAttendanceUsers"/>
  <output message="tns:getAttendanceUsersOutput"/>
 </operation>
 <operation name="sendAttendanceUsers">
  <documentation>Service definition of function swad__sendAttendanceUsers</documentation>
  <input message="tns:sendAttendanceUsers"/>
  <output message="tns:sendAttendanceUsersOutput"/>
 </operation>
 <operation name="getNotifications">
  <documentation>Service definition of function swad__getNotifications</documentation>
  <input message="tns:getNotifications"/>
  <output message="tns:getNotificationsOutput"/>
 </operation>
 <operation name="markNotificationsAsRead">
  <documentation>Service definition of function swad__markNotificationsAsRead</documentation>
  <input message="tns:markNotificationsAsRead"/>
  <output message="tns:markNotificationsAsReadOutput"/>
 </operation>
 <operation name="sendNotice">
  <documentation>Service definition of function swad__sendNotice</documentation>
  <input message="tns:sendNotice"/>
  <output message="tns:sendNoticeOutput"/>
 </operation>
 <operation name="sendMessage">
  <documentation>Service definition of function swad__sendMessage</documentation>
  <input message="tns:sendMessage"/>
  <output message="tns:sendMessageOutput"/>
 </operation>
</portType>

<binding name="swad" type="tns:swadPortType">
 <SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 <operation name="createAccount">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="loginByUserPasswordKey">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="loginBySessionKey">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getNewPassword">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getCourses">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getCourseInfo">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getGroupTypes">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getGroups">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="sendMyGroups">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getDirectoryTree">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getFile">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getMarks">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getTestConfig">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getTests">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getTrivialQuestion">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getUsers">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getAttendanceEvents">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="sendAttendanceEvent">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getAttendanceUsers">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="sendAttendanceUsers">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="getNotifications">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="markNotificationsAsRead">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="sendNotice">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
 <operation name="sendMessage">
  <SOAP:operation soapAction=""/>
  <input>
     <SOAP:body parts="Body" use="literal"/>
  </input>
  <output>
     <SOAP:body parts="Body" use="literal"/>
  </output>
 </operation>
</binding>

<service name="swad">
 <documentation>gSOAP 2.8.17r generated service definition</documentation>
 <port name="swad" binding="tns:swad">
  <SOAP:address location="https://openswad.org/"/>
 </port>
</service>

</definitions>
