swad-core/soap/swad.xsd

674 lines
38 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<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="userID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccount::userID -->
<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="string" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- swad__createAccountOutput::string -->
</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="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>