<wsdl:definitions
		xmlns:tns="soapserver-v101.wsdl"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
		xmlns="http://schemas.xmlsoap.org/wsdl/"
		targetNamespace="soapserver-v101.wsdl"
		name="soapserver">
	<types>
		<xsd:schema targetNamespace="soapserver-v101.wsdl" xmlns:tns="soapserver-v101.wsdl">
			<xsd:element name="Header" type="tns:Header">
				<xsd:annotation>
					<xsd:documentation>
						Authentication header for requests; contains ticket or login/password.
						Developer: SOAP header element used for auth; required for authenticated operations. See Header
						type fields and CustomizingAPI_Base::Header
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<!-- This section describes the header element of the transactions.
			 	 Information for authentification must be set here.-->
			<xsd:complexType name="Header">
				<xsd:annotation>
					<xsd:documentation>
						Authentication header for requests; provide a ticket or login and password.
						Developer: Missing ticket/login yields ERR_107, invalid ticket ERR_105, invalid credentials
						ERR_103; maintenance mode/license/IP-restrictions/userrights can block requests
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Ticket" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								A ticket-string, that can be acquired by the RequestTicket transaction. Ban be a
								substitute
								for Login and Password.
								Developer: Provide either Ticket or Login+Password; missing header yields ERR_104;
								missing
								ticket/login yields ERR_107
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Login" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Login name of a service user configured in the system. Can be substituted with a ticket.
								Developer: Provide either Ticket or Login+Password; missing header yields ERR_104;
								missing
								ticket/login yields ERR_107
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Password" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Password of the corresponding service user. Can be substituted with a ticket.
								Developer: Provide either Ticket or Login+Password; missing header yields ERR_104;
								missing
								ticket/login yields ERR_107
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- ================================= GENERAL TYPES ================================= -->
			<!-- Lists -->
			<xsd:complexType name="ValueList">
				<xsd:annotation>
					<xsd:documentation>
						A list of integer values. Unless stated otherwise in the consuming operation, supply positive
						integers.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Value" type="xsd:int" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Integer entry; use positive values unless documented otherwise.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="StringList">
				<xsd:annotation>
					<xsd:documentation>
						A list of strings; meaning depends on the consuming element (ids, names, emails, etc.).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:annotation>
						<xsd:documentation>
							A list of string values. The expected format depends on the consuming element (e.g. names,
							ids, emails).
						</xsd:documentation>
					</xsd:annotation>
					<xsd:element name="Strings" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								String entry.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="IDList">
				<xsd:annotation>
					<xsd:documentation>
						A list of integer ids. Invalid (&lt;=0) values are ignored by the server; a list containing only
						invalid values is treated as empty.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ID" type="xsd:int" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single integer value, representing an internal id - e.g. of a course or a subunit.
								Should be &gt;0.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="OnlineSurveyKeyList">
				<xsd:annotation>
					<xsd:documentation>
						A list of online survey keys objects which contain information about the survey and the course
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="OnlineSurveyKeys" type="tns:OnlineSurveyKey" minOccurs="0" maxOccurs="unbounded"
								 nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								A list of online survey keys objects which contain information about the survey and the
								course
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyTypeList">
				<xsd:annotation>
					<xsd:documentation>
						A list of survey type objects which are used by the system to determine the type of surveys
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyTypes" type="tns:SurveyType" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey type. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="EmailAddressList">
				<xsd:annotation>
					<xsd:documentation>
						A list of email address objects which represent a valid email address
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="EmailAddresses" type="tns:EmailAddress" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single email address. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ParticipantList">
				<xsd:annotation>
					<xsd:documentation>
						A list of survey participant objects which represent a participant who has taken part in a
						survey
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyParticipant" type="tns:SurveyParticipant" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey participant. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="KeyValueList">
				<xsd:annotation>
					<xsd:documentation>
						A list of keys and values which have a connection to one another. Mostly used for configuration
						purposes, e.g. for a report or a survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="KeyValuePair" type="tns:KeyValuePair" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single KeyValuePair. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="CourseList">
				<xsd:annotation>
					<xsd:documentation>
						A list of course objects
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Courses" type="tns:Course" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single course. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="UserList">
				<xsd:annotation>
					<xsd:documentation>
						A list of user objects
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Users" type="tns:User" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single user. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="PersonList">
				<xsd:annotation>
					<xsd:documentation>
						A list of person objects. A person represents a possible participant of a course or a survey
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Persons" type="tns:Person" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single person. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="PeriodList">
				<xsd:annotation>
					<xsd:documentation>
						A list of period objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Periods" type="tns:Period" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single person. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SimpleFormList">
				<xsd:annotation>
					<xsd:documentation>
						A list of forms, simplified to only basic information
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SimpleForms" type="tns:SimpleForm" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single form. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyList">
				<xsd:annotation>
					<xsd:documentation>
						A list of surveys.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Surveys" type="tns:Survey" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="UnitList">
				<xsd:annotation>
					<xsd:documentation>
						A list of subunit objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Units" type="tns:Unit" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single subunit. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="OnlineCodeList">
				<xsd:annotation>
					<xsd:documentation>
						A list of online codes, which might be used to participate in an online survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="OnlineCodes" type="tns:OnlineCode" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single online code. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="CourseCreatorList">
				<xsd:annotation>
					<xsd:documentation>
						A list of course creator objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CourseCreators" type="tns:CourseCreator" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single course creator. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ModuleSurveyCreatorList">
				<xsd:annotation>
					<xsd:documentation>
						A list of module survey creator objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ModuleSurveyCreators" type="tns:ModuleSurveyCreator" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single module survey creator. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyCreatorList">
				<xsd:annotation>
					<xsd:documentation>
						A list of survey creator objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyCreators" type="tns:SurveyCreator" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey creator. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InstructorList">
				<xsd:annotation>
					<xsd:documentation>
						A list of instructor objects.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Instructors" type="tns:Instructor" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single instructor. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ModuleList">
				<xsd:annotation>
					<xsd:documentation>
						A list of modules.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Modules" type="tns:Module" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single module. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ModuleCourseList">
				<xsd:annotation>
					<xsd:documentation>
						A list of module courses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ModuleCourses" type="tns:ModuleCourse" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single module course. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Type Enums / Type Identifiers -->
			<xsd:complexType name="SurveyType">
				<xsd:annotation>
					<xsd:documentation>
						An object that represents a survey type. Is used for surveys and reports.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_chSurveyType" type="tns:surveyTypeEnum">
						<xsd:annotation>
							<xsd:documentation>
								A string that represents a survey type. Is always a single type digit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sDescription" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								A string describes the survey type. e.g. Online Survey (pswd based) when the type is 'o'
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:simpleType name="surveyTypeEnum">
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="o">
						<xsd:annotation>
							<xsd:documentation>
								Password based online survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="c">
						<xsd:annotation>
							<xsd:documentation>
								Codeword based online survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="s">
						<xsd:annotation>
							<xsd:documentation>
								Paper based survey with serial printing
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="d">
						<xsd:annotation>
							<xsd:documentation>
								Paper based survey with coversheet
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="h">
						<xsd:annotation>
							<xsd:documentation>
								Hybrid based survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="SubunitIdType">
				<xsd:annotation>
					<xsd:documentation>
						Subunit id selector: INTERNAL (numeric id), NAME (subunit name), EXTERNAL (third-party id).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								The internal id used by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="NAME">
						<xsd:annotation>
							<xsd:documentation>
								The name of the subunit. If multiple subunits with the same name exist, the subunit with
								the lower internal id (the older) subunit is used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="EXTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								An optional id that can be given to a subunit, which represents mostly an id from a
								third party application.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="UserIdType">
				<xsd:annotation>
					<xsd:documentation>
						User id selector: INTERNAL (numeric id), LOGIN (username), EXTERNAL (third-party id).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								The internal id used by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="LOGIN">
						<xsd:annotation>
							<xsd:documentation>
								The login name of the user.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="EXTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								An optional id that can be given to a user, which represents mostly an id from a third
								party application.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FormIdType">
				<xsd:annotation>
					<xsd:documentation>
						Form id selector: INTERNAL (numeric id) or FORMNAME (form name).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								The internal id used by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="FORMNAME">
						<xsd:annotation>
							<xsd:documentation>
								The name of the form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="CourseIdType">
				<xsd:annotation>
					<xsd:documentation>
						Course id selector: INTERNAL (numeric id), PUBLIC (public course id), EXTERNAL (third-party id).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								The internal id used by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PUBLIC">
						<xsd:annotation>
							<xsd:documentation>
								The public course id. If more multiple courses with the same public course ids are
								present, the one with the lowest internal id (the oldest) is used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="EXTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								An optional id that can be given to a course, which represents mostly an id from a third
								party application.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="PeriodIdType">
				<xsd:annotation>
					<xsd:documentation>
						Period id selector: INTERNAL (numeric id), PERIODNAME (name), PERIODDATE (date within the
						period), INNER_ACTIVE_PERIOD_ON_DATE/OUTER_ACTIVE_PERIOD_ON_DATE (helper modes).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INTERNAL">
						<xsd:annotation>
							<xsd:documentation>
								The internal id used by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERIODNAME">
						<xsd:annotation>
							<xsd:documentation>
								The name of the period that it has in the system
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERIODDATE">
						<xsd:annotation>
							<xsd:documentation>
								A date that is within a valid period. If multiple periods are found within the system,
								which lie in the specified date, the period which the latest end date is chosen.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="INNER_ACTIVE_PERIOD_ON_DATE">
						<xsd:annotation>
							<xsd:documentation>
								A date that is within a valid period. If multiple periods are found within the system,
								which lie in the specified date, the period which the earliest start date is chosen.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="OUTER_ACTIVE_PERIOD_ON_DATE">
						<xsd:annotation>
							<xsd:documentation>
								A date that is within a valid period. Shares the same behavior with PERIODDATE
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="DualScaleModeType">
				<xsd:annotation>
					<xsd:documentation>
						A string that determines the dual scale mode of scaled questions given in a request/response
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="TRADITIONAL">
						<xsd:annotation>
							<xsd:documentation>
								The dual scaled questions are classified according to the quality and the importance.
								They are displayed as profile lines in a report.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="SERVQUAL">
						<xsd:annotation>
							<xsd:documentation>
								The dual scaled questions are classified according to target-performance comparison.
								They are displayed in a report as a radar chart.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="OUTCOME">
						<xsd:annotation>
							<xsd:documentation>
								The dual scaled questions are classified according to learning outcome. They are
								displayed in a report as outcome based evaluation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="FormSearchType">
				<xsd:annotation>
					<xsd:documentation>
						Field that specifies which data should be used when searching for a form
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="Form">
						<xsd:annotation>
							<xsd:documentation>
								Uses the form data for the search. Takes into account the form ID, description, and
								short text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Group">
						<xsd:annotation>
							<xsd:documentation>
								Takes the form data into account during the search. Also uses the information from the
								question groups on the form. Uses the heading text for the search.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Question">
						<xsd:annotation>
							<xsd:documentation>
								Considers all data specified within the form. Additionally uses information from the
								question, namely the question texts.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="All">
						<xsd:annotation>
							<xsd:documentation>
								Uses all available information sources for the search. Combines all other
								FormSearchTypes.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="">
						<xsd:annotation>
							<xsd:documentation>
								Behaves like Form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="SurveyState">
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="0">
						<xsd:annotation>
							<xsd:documentation>
								In Progress
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Data available
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Data deleted
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								Data Count below minimalform count defined in the settings
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="5">
						<xsd:annotation>
							<xsd:documentation>
								Data entry
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="6">
						<xsd:annotation>
							<xsd:documentation>
								Verification
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="7">
						<xsd:annotation>
							<xsd:documentation>
								Participant import necessary (Exam)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="8">
						<xsd:annotation>
							<xsd:documentation>
								Exam: Scoring (Exam)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="MaskState">
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Enabled
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Reminded
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="3">
						<xsd:annotation>
							<xsd:documentation>
								Disabled
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								Finished
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="11">
						<xsd:annotation>
							<xsd:documentation>
								Enabled (Predefined Optional Questions)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="12">
						<xsd:annotation>
							<xsd:documentation>
								Enabled (Outcome-based Evaluation)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="21">
						<xsd:annotation>
							<xsd:documentation>
								Reminded (Predefined Optional Questions)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="22">
						<xsd:annotation>
							<xsd:documentation>
								Reminded (Outcome-based Evaluation)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="userTypeEnum">
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Instructor
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Dean
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="3">
						<xsd:annotation>
							<xsd:documentation>
								Administrator
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								Dean of Studies
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="5">
						<xsd:annotation>
							<xsd:documentation>
								Data entry assistant
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="8">
						<xsd:annotation>
							<xsd:documentation>
								Report Creator
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="11">
						<xsd:annotation>
							<xsd:documentation>
								Verifier
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="13">
						<xsd:annotation>
							<xsd:documentation>
								Subunit Administator
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="14">
						<xsd:annotation>
							<xsd:documentation>
								Module user
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="15">
						<xsd:annotation>
							<xsd:documentation>
								SOAP/API User
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<!-- Other -->
			<xsd:complexType name="KeyValuePair">
				<xsd:annotation>
					<xsd:documentation>
						A pair of keys and values used by different transactions, mostly configuration based
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Key" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								The key of the pair. In configuration based transactions usually the name of the
								configuration.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Value" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								The value of the pair. In configuration based transactions usually the value of the
								configuration. May be empty/null.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- mailing -->
			<xsd:complexType name="Mail">
				<xsd:annotation>
					<xsd:documentation>
						Represents an email with all necessary data.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FromMail" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Which e-mail address is the sender of this e-mail? Must contain a valid e-mail address.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FromName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Who is the sender of this e-mail. Can contain up to 255 characters.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ToList" type="tns:MailAddressList">
						<xsd:annotation>
							<xsd:documentation>
								Who are the recipients of this e-mail. Should only contain a list of valid e-mail
								addresseses, or the mail might not be sent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Subject" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Subject of the Mail. Should not contain HTML.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Body" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Body/Text of the Mail. Can contain HTML.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DeliveryType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Delivery type enum: 0=UNKNOWN, 1=REPORT, 2=COVERSHEET, 3=FORM, 4=COVERSHEET_FORM,
								5=REPORT_REGULARTIVE, 6=PROFILE_CREATED, 7=IOQ_ACTIVATED, 8=IOQ_REMINDED,
								9=IOQ_DEACTIVATED, 10=MUTLI_PROFILE_LINE, 11=REPORT_DEFINITION, 12=PSWD_DISPATCH,
								13=HYBRID, 14=PSWD_DISPATCH_STUDENT, 15=PSWD_DISPATCH_STUDENT_REMINDER, 16=UTIL_REPORT,
								17=RAW_DATA_REPORT, 18=RESULT_INFO_PARTICIPANTS, 19=SUMMARY_REPORT, 20=ARCHIVE_REPORT,
								21=QM_REPORT, 22=QM_DEFINED_QUALITY, 23=RESPONSE_RATE, 24=PSWD_DISPATCH_STUDENT_MERGED,
								25=PSWD_DISPATCH_STUDENT_REMINDER_MERGED, 26=PARTICIPANT_REPORT, 27=NOTIFY_SURVEY_START,
								28=ONLINE_CODE_DISPATCH_STUDENT, 29=ONLINE_CODE_DISPATCH_STUDENT_REMINDER, 30=API,
								31=RESULTS_TO_PARTICIPANTS.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CcList" type="tns:MailAddressList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Who are the recipients of this e-mail in the CC field. Should only contain a list of
								valid e-mail addresses, or the mail might not be sent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="BccList" type="tns:MailAddressList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Who are the recipients of this e-mail as background recipients (BCC field). Should only
								contain a list of valid e-mail addresses, or the mail might not be sent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ScheduledDate" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional scheduled send date/time (use ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Status code for the mail (backend-specific int).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyID" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Related survey id (&gt;0) if applicable.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreationDate" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Creation timestamp (string, ISO-8601 recommended).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ID" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Mail id (&gt;0) when persisted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Errors" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Error messages/codes if sending failed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AttachmentPaths" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Paths to attachments to include.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="MailList">
				<xsd:annotation>
					<xsd:documentation>
						Collection of mails to be queued/sent.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Mail" type="tns:Mail" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single mail. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="MailAddressList">
				<xsd:annotation>
					<xsd:documentation>
						List of email addresses (strings). Each entry should be a valid email address.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="MailAddress" type="xsd:string" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Email address entry.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="EmailAddress">
				<xsd:annotation>
					<xsd:documentation>
						Email address string; must match the provided regex pattern (basic validation).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:pattern value="[^@]+@[^\.]+\..+"/>
				</xsd:restriction>
			</xsd:simpleType>
			
			<!-- fault -->
			<xsd:complexType name="tSoapfault">
				<xsd:annotation>
					<xsd:documentation>
						service fault structure containing code, description and detail.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="sErrorCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Fault code (ERR_*).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="sErrorMessage" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Human readable message.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="sDetails" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Details string, may contain placeholders resolved by server.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<!-- The tSoapfault element is required for the fault part of a message (so SoapfaultMessage) -->
			<xsd:element name="tSoapfault" type="tns:tSoapfault">
				<xsd:annotation>
					<xsd:documentation>
						Fault payload for failed requests.
						Developer: Used in SoapfaultMessage parts
					</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			
			<!-- =================================Form, Groups & Items ================================= -->
			<!-- General Types -->
			<xsd:simpleType name="Alignment">
				<xsd:annotation>
					<xsd:documentation>
						Text alignment enum: right, left, center, justify, or empty for default.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="right"/>
					<xsd:enumeration value="left"/>
					<xsd:enumeration value="center"/>
					<xsd:enumeration value="justify"/>
					<xsd:enumeration value=""/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="OnlineLayoutType">
				<xsd:annotation>
					<xsd:documentation>
						Online layout identifier (string enum configured in backend).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="COMPLETE"/>
					<xsd:enumeration value="CHAPTER"/>
					<xsd:enumeration value="PAGE"/>
					<xsd:enumeration value="QUESTION"/>
					<xsd:enumeration value="PAPER"/>
				</xsd:restriction>
			</xsd:simpleType>
			
			<!-- Item -->
			<xsd:complexType name="Item">
				<xsd:annotation>
					<xsd:documentation>
						Form item/question definition; ids &gt;0 when persisted. Many properties are optional depending
						on question type.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0) if persisted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Position" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Position within group; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Item title/question text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Item code/identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Expected answer count; non-negative when set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="tns:QuestionTypes">
						<xsd:annotation>
							<xsd:documentation>
								Question type enum.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Options" type="tns:StringList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Answer options (as strings) for choice-based items.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="GraphType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Preferred graph type for reporting (string enum); Valid Values: 'STANDARD',
								'ICR_NUM_BARCHART', 'ICR_NUM_BARCHART_GROUP_10', 'HISTO', 'PIE', 'DONUT', 'COLORHISTO',
								'STACKEDBAR'.
								Should be set within the UI, not via API Request as some of the display types are
								dependent on system settings.
								Default is 'STANDARD'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abstention" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Abstention label.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Orientation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Layout orientation (horizontal/vertical).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RowCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Row count for matrix/open fields; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsMirrored" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if question is mirrored when displayed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UseIcr" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								ICR usage flag (string, evaluated as bool).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IcrType" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								ICR type id (int enum) if ICR enabled.
								Valid values: 0: No ICR, 1: normal ICR, 2: segmented ICR
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IcrClassifier" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								ICR classifier string if required. Use a combination of valid classifiers to determine
								your IRC pattern.
								Valid Values: N: Number, L: Letter, A: Number or Letter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OptionValue" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Option Value of a question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerPosition" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Answer position on paper based forms. Only applies to single choice questions.
								Valid Values: 'null': take form layout, 0: next to the question text, 1: below question
								text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ShowDropdown" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Display options as dropdown in online based survey if true. Only applies to single
								choice questions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MaximalAnswers" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Maximum of checked answers allowed for an online based multiple choice question;
								non-negative. 'null' equals 'no limit'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Alignment" type="tns:Alignment">
						<xsd:annotation>
							<xsd:documentation>
								Alignment for rendering.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Degree" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Degree for displaying a scale; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsRequired" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True if answer is required.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DualScaleFieldId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Item id of another scaled question (&gt;0) for dual scaled questions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DualScalePosition" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Position index for dual scale (first part or second part); non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExportValues" type="tns:ValueList" minOccurs="0" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Export values per option (ints), aligns with Options.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OptionIndexes" type="tns:ValueList" minOccurs="0" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Option indexes (ints) when custom ordering is used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExtraOptions" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Additional options/config as serialized string.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemList">
				<xsd:annotation>
					<xsd:documentation>
						List of items (questions/content blocks) in a group or form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Items" type="tns:Item" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of items (questions/content blocks) in this group or form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="QuestionTypes">
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="0">
						<xsd:annotation>
							<xsd:documentation>
								Scaled Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Open Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								Grade Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="6">
						<xsd:annotation>
							<xsd:documentation>
								Single Choice Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="8">
						<xsd:annotation>
							<xsd:documentation>
								Multiple Choice Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="10">
						<xsd:annotation>
							<xsd:documentation>
								Extended Single Choice Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="14">
						<xsd:annotation>
							<xsd:documentation>
								Matrix Question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1001">
						<xsd:annotation>
							<xsd:documentation>
								Pole Definition
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1002">
						<xsd:annotation>
							<xsd:documentation>
								Empty Line
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1003">
						<xsd:annotation>
							<xsd:documentation>
								Separator Line
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1004">
						<xsd:annotation>
							<xsd:documentation>
								Text Section
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1005">
						<xsd:annotation>
							<xsd:documentation>
								Page Break
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1006">
						<xsd:annotation>
							<xsd:documentation>
								Extended Pole Definition
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1007">
						<xsd:annotation>
							<xsd:documentation>
								Image
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1008">
						<xsd:annotation>
							<xsd:documentation>
								Column Separator
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1009">
						<xsd:annotation>
							<xsd:documentation>
								Paragraph Separator
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			
			<!-- ItemGroup -->
			<xsd:complexType name="ItemGroup">
				<xsd:annotation>
					<xsd:documentation>
						Group of items in a form; ids &gt;0 when persisted, positions non-negative.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemGroupId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Group id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Position" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Display position on form; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Group title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Description" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Group description text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IndicatorDimension" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional indicator dimension id. Can be between 0: no indicator 2: indicator of
								2-options scaled questions and 11: indicator of 11-options scaled question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsText" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if the group contains only text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Font size for text; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DualScaleMode" type="tns:DualScaleModeType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Dual scale mode setting if applicable.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemList" type="tns:ItemList">
						<xsd:annotation>
							<xsd:documentation>
								Items contained in the group.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemGroupList">
				<xsd:annotation>
					<xsd:documentation>
						List of item groups in a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemGroups" type="tns:ItemGroup" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single item group. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Modules Group -->
			<xsd:complexType name="ModuleItemGroup">
				<xsd:annotation>
					<xsd:documentation>
						Item group in a module context; similar to ItemGroup but keyed by session UID.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Position" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Display position on a form; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Group title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SessionUid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Session UID linking this group to a module course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Description" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Group description.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IndicatorDimension" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional indicator dimension id. Can be between 0: no indicator 2: indicator of
								2-options scaled questions and 11: indicator of 11-options scaled question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsText" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if group contains only text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Font size; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DualScaleMode" type="tns:DualScaleModeType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Dual scale mode setting.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemList" type="tns:ItemList">
						<xsd:annotation>
							<xsd:documentation>
								Items contained.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ModuleItemGroupList">
				<xsd:annotation>
					<xsd:documentation>
						List of module item groups (module-specific grouping of items).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemGroups" type="tns:ModuleItemGroup" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single module item group. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Form -->
			<xsd:complexType name="VFFormList">
				<xsd:annotation>
					<xsd:documentation>
						List of VividForms form definitions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VFForm" type="tns:VFForm" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single form definition. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="VFForm">
				<xsd:annotation>
					<xsd:documentation>
						Full form definition (VividForms). IDs &gt;0 when present; sizes/counts are non-negative; dates
						are strings (use ISO-8601 when writing).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) if persisted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form short name. Between 4 and 25 Characters.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form title/long name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OwnerId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsMirrored" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if all scaled questions on this form should be displayed mirrored.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PaperFormat" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Paper format for paper based surveys. Valid value: 'A4', 'Letter', 'Legal'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ShowNumeration" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Show item numeration if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerBoxSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Answer box size (pixels/units; non-negative).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MaxPages" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Maximum pages; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MaxQuestions" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Maximum questions; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontFamily" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Font family.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Font size; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RowHeight" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Row height; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreateDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Creation date/time (string, ISO-8601 recommended).
								Is automatically filled.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsActivated" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Activated flag - is this form enabled and can be used to generate surveys..
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsExtensible" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if optional questions/extensions are allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultAccess" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Allow result access for participants after evaluation with this form. Can be overwritten
								in the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineUpperLeft" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text upper left.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineLowerLeft" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text lower left.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineUpperRight" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text upper right.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineLowerRight" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text lower right.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineMark" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header mark text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineCorrection" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header correction text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemGroupList" type="tns:ItemGroupList">
						<xsd:annotation>
							<xsd:documentation>
								List of item groups in the form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeaderLineCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of header lines (0-8).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AdditionalHeaderLineList" type="tns:AdditionalHeaderLineList">
						<xsd:annotation>
							<xsd:documentation>
								Additional header lines (up to 8).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OnlineLayout" type="tns:OnlineLayoutType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Layout used for online rendering.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormFolderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Folder name/path for the form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LastChangeDate" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Last change timestamp (string, ISO-8601).
								Automatically changed by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DefaultReportId" type="xsd:int" minOccurs="0" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Default report id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PreviousPeriodsComparison" type="xsd:int" minOccurs="0" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of previous periods to compare, e.g. for profile line reporting; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="AdditionalHeaderLine">
				<xsd:annotation>
					<xsd:documentation>
						Optional header line with left/right text fields for printed/exported forms.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="LeftFieldContent" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Left-aligned text content.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RightFieldContent" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Right-aligned text content.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="AdditionalHeaderLineList">
				<xsd:annotation>
					<xsd:documentation>
						Container for additional header lines (max 8 entries).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="AdditionalHeaderLines" type="tns:AdditionalHeaderLine" minOccurs="0"
								 maxOccurs="8">
						<xsd:annotation>
							<xsd:documentation>
								Header lines; up to eight entries allowed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<xsd:simpleType name="FormProcedure">
				<xsd:annotation>
					<xsd:documentation>
						Form procedure scope.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="ALL">
						<xsd:annotation>
							<xsd:documentation>
								Form can be used for all evaluations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="CENTRALEVALUATION">
						<xsd:annotation>
							<xsd:documentation>
								Form can only be used for central evaluation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="DECENTRALEVALUATION">
						<xsd:annotation>
							<xsd:documentation>
								Form can only be used for decentral evaluation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FormSurveyType">
				<xsd:annotation>
					<xsd:documentation>
						Survey type availability for forms.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="ALL">
						<xsd:annotation>
							<xsd:documentation>
								Form can be used for all kinds of survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PAPER">
						<xsd:annotation>
							<xsd:documentation>
								Form can be used for paper based surveys only.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ONLINE">
						<xsd:annotation>
							<xsd:documentation>
								Form can be used for online based surveys only.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="FormProperties">
				<xsd:annotation>
					<xsd:documentation>
						Properties used to update a form. Id must be coupled with IdType to resolve the target; flags
						adjust availability, extensibility and online behavior.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form identifier (interpreted via IdType).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IdType" type="tns:FormIdType">
						<xsd:annotation>
							<xsd:documentation>
								How to resolve FormId (internal id, name, etc.).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Short name of the form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormTitle" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Long title/description.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsActivated" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Activate/deactivate form for survey generation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsExtensible" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Allow optional questions/extensions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultAccess" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Set result access for participants for this form. Can be overwritten in the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormProcedure" type="tns:FormProcedure" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Allowed procedures.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormSurveyType" type="tns:FormSurveyType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey type availability.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormFolderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Target folder name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OnlineLayout" type="tns:OnlineLayoutType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Layout identifier for online surveys.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OnlineTempSave" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Allow temporary save in online mode.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<xsd:complexType name="FormParams">
				<xsd:annotation>
					<xsd:documentation>
						Filter for form queries. User list is required; combine with search query, folder, status flags,
						limits, ordering and selected fields to reduce payload.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Users" type="tns:StringList">
						<xsd:annotation>
							<xsd:documentation>
								User identifiers (id/login/external) used to scope forms.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SearchQuery" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Free-text search across form names/descriptions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IncludeFormsOfOtherSubunitAdministrators" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Include forms owned by other subunit admins.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderBy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Order by column.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderByDirection" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Ascending(ASC) or Descending(DESC).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Limit" type="xsd:integer" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Max rows to return; use positive values.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IncludeDeactivatedForms" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Include deactivated forms if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExcludeActiveForms" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Exclude active forms if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IncludeChildForms" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Include child/derived forms (Moduleforms, Forms with IOQs).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FolderId" type="xsd:integer" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Filter by folder id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SelectFields" type="tns:FormSelectFieldList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Limit returned columns to these fields.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormSearchType" type="tns:FormSearchType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Search scope (e.g., own/shared/system).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:simpleType name="FormSelectField">
				<xsd:annotation>
					<xsd:documentation>
						Selectable form field identifiers to shape query responses (column names from form metadata).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="ShortName"/>
					<xsd:enumeration value="Description"/>
					<xsd:enumeration value="OwnerId"/>
					<xsd:enumeration value="OriginalId"/>
					<xsd:enumeration value="CreateDate"/>
					<xsd:enumeration value="ChangeDate"/>
					<xsd:enumeration value="IsUsed"/>
					<xsd:enumeration value="IsParent"/>
					<xsd:enumeration value="MainLanguageId"/>
					<xsd:enumeration value="FormEngine"/>
					<xsd:enumeration value="IsMirror"/>
					<xsd:enumeration value="OnlineTempSave"/>
					<xsd:enumeration value="HeadLogoId"/>
					<xsd:enumeration value="AnswerBoxSize"/>
					<xsd:enumeration value="PageFormat"/>
					<xsd:enumeration value="ShowNumeration"/>
					<xsd:enumeration value="PageOrientation"/>
					<xsd:enumeration value="EngineSubType"/>
					<xsd:enumeration value="FormOptions"/>
					<xsd:enumeration value="ExtraOptions"/>
					<xsd:enumeration value="URL"/>
					<xsd:enumeration value="HasCustom"/>
					<xsd:enumeration value="PageCount"/>
					<xsd:enumeration value="TeleFormId"/>
					<xsd:enumeration value="LockForm"/>
					<xsd:enumeration value="Active"/>
					<xsd:enumeration value="Range"/>
					<xsd:enumeration value="SurveyType"/>
					<xsd:enumeration value="SurveySumReport"/>
					<xsd:enumeration value="OnlineWizard"/>
					<xsd:enumeration value="Template"/>
					<xsd:enumeration value="RowHeight"/>
					<xsd:enumeration value="FontFamily"/>
					<xsd:enumeration value="DefaultFontSize"/>
					<xsd:enumeration value="Extensible"/>
					<xsd:enumeration value="Version"/>
					<xsd:enumeration value="MaxPages"/>
					<xsd:enumeration value="DefaultLeft"/>
					<xsd:enumeration value="DefaultRight"/>
					<xsd:enumeration value="DefaultAbstention"/>
					<xsd:enumeration value="PDFVersion"/>
					<xsd:enumeration value="OrganisationField"/>
					<xsd:enumeration value="AuthorField"/>
					<xsd:enumeration value="SubunitField"/>
					<xsd:enumeration value="CourseField"/>
					<xsd:enumeration value="MarkField"/>
					<xsd:enumeration value="CorrectionField"/>
					<xsd:enumeration value="MaxQuestions"/>
					<xsd:enumeration value="IsOnlinePrint"/>
					<xsd:enumeration value="EditorVersion"/>
					<xsd:enumeration value="Certificate"/>
					<xsd:enumeration value="ResultView"/>
					<xsd:enumeration value="ResultViewOpenQuestions"/>
					<xsd:enumeration value="AddItemsOnlyToBottom"/>
					<xsd:enumeration value="ShowOnlineSurveyDetails"/>
					<xsd:enumeration value="DefaultReportId"/>
					<xsd:enumeration value="Colorscheme"/>
					<xsd:enumeration value="HeadHeight"/>
					<xsd:enumeration value="HeadLogoPositionH"/>
					<xsd:enumeration value="HeadLogoPositionV"/>
					<xsd:enumeration value="HeadLogoSize"/>
					<xsd:enumeration value="Field_Row3_Field1"/>
					<xsd:enumeration value="Field_Row3_Field2"/>
					<xsd:enumeration value="Field_Row4_Field1"/>
					<xsd:enumeration value="Field_Row4_Field2"/>
					<xsd:enumeration value="Field_Row5_Field1"/>
					<xsd:enumeration value="Field_Row5_Field2"/>
					<xsd:enumeration value="Field_Row6_Field1"/>
					<xsd:enumeration value="Field_Row6_Field2"/>
					<xsd:enumeration value="Field_Row7_Field1"/>
					<xsd:enumeration value="Field_Row7_Field2"/>
					<xsd:enumeration value="Field_Row8_Field1"/>
					<xsd:enumeration value="Field_Row8_Field2"/>
					<xsd:enumeration value="Field_Row9_Field1"/>
					<xsd:enumeration value="Field_Row9_Field2"/>
					<xsd:enumeration value="Field_Row10_Field1"/>
					<xsd:enumeration value="Field_Row10_Field2"/>
					<xsd:enumeration value="Config"/>
					<xsd:enumeration value="Layout"/>
					<xsd:enumeration value="SCAnswerPosition"/>
					<xsd:enumeration value="FormFolderName"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="FormSelectFieldList">
				<xsd:annotation>
					<xsd:documentation>
						List of form fields to include in responses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FormSelectField" type="tns:FormSelectField" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Field identifier to include in responses.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- simple Forms -->
			<xsd:complexType name="SimpleForm">
				<xsd:annotation>
					<xsd:documentation>
						Form summary for listings: id/original id, name, owner, engine, available custom reports and
						usage restrictions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ID" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal form id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OriginalID" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Id of original form (for copies/templates); &gt;0.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form name/title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OwnerID" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormEngine" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Form engine identifier (int enum).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomReportList" type="tns:CustomReportList">
						<xsd:annotation>
							<xsd:documentation>
								Available custom reports for this form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UsageRestrictionList" type="tns:UsageRestrictionList">
						<xsd:annotation>
							<xsd:documentation>
								Usage restrictions applied to this form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="CustomReportList">
				<xsd:annotation>
					<xsd:documentation>
						List of custom report definitions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CustomReports" type="tns:CustomReport" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Custom report definitions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="CustomReport">
				<xsd:annotation>
					<xsd:documentation>
						Custom report metadata.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ID" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Custom report id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Custom report name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- ModuleForm -->
			<xsd:complexType name="CustomModuleForm">
				<xsd:annotation>
					<xsd:documentation>
						Inline module form definition used when creating module surveys.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form title/name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OwnerId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) or null.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PaperFormat" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Paper format for paper based surveys. Valid value: 'A4', 'Letter', 'Legal'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ShowNumeration" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Should the numeration be displayed.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerBoxSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Answer box size; use non-negative values or null for default.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MaxPages" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Maximum page count; non-negative or null for unrestricted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MaxQuestions" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Maximum questions; non-negative or null for unrestricted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontFamily" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Font family name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FontSize" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Font size; non-negative or null for default.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RowHeight" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Row height; non-negative or null for default.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreateDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Creation timestamp (string, ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsActivated" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Whether the form is active.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultAccess" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Allow result access for participants if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineUpperLeft" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text upper left.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineLowerLeft" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text lower left.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineUpperRight" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text upper right.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineLowerRight" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header text lower right.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineMark" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Header marker (e.g., label/watermark text).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeadLineCorrection" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Correction/footer text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemGroupList" type="tns:ModuleItemGroupList">
						<xsd:annotation>
							<xsd:documentation>
								Groups/questions to include in the module form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="HeaderLineCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of header lines (0-8; null uses default).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AdditionalHeaderLineList" type="tns:AdditionalHeaderLineList">
						<xsd:annotation>
							<xsd:documentation>
								Optional additional header lines.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OnlineLayout" type="tns:OnlineLayoutType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Layout identifier for online rendering (see OnlineLayoutType enum).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormFolderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional folder name/path to place the form into.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- quality guidelines-->
			<xsd:complexType name="QualityGuidelinesConfigForFormList">
				<xsd:annotation>
					<xsd:documentation>
						List of quality guideline configurations for forms.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityGuidelinesConfigForForm" type="tns:QualityGuidelinesConfigForForm"
								 minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality guideline. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityGuidelinesConfigForForm">
				<xsd:annotation>
					<xsd:documentation>
						Quality guideline configuration bound to a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Id" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Configuration id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Name/title of the configuration.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QualityManagementBlocks" type="tns:QualityManagementBlockConfigList">
						<xsd:annotation>
							<xsd:documentation>
								List of quality management blocks.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementBlockConfigList">
				<xsd:annotation>
					<xsd:documentation>
						List of quality management blocks within a configuration.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityManagementBlock" type="tns:QualityManagementBlockConfig" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality management block. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementBlockConfig">
				<xsd:annotation>
					<xsd:documentation>
						Single quality management block with weighting and optional code.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Id" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Block id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Block name/label.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Weight" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Block weight (float, typically 0..1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Code" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional code identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QualityManagementQuestions" type="tns:QualityManagementQuestionConfigList"
								 minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Questions contained in this block.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementQuestionConfigList">
				<xsd:annotation>
					<xsd:documentation>
						List of quality management questions within a block.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityManagementQuestion" type="tns:QualityManagementQuestionConfig"
								 minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality management question. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementQuestionConfig">
				<xsd:annotation>
					<xsd:documentation>
						Question configuration inside a quality management block. Thresholds and deductions drive
						guideline scoring; ensure values align with configured calculation type.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="QuestionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Question id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Deduction" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Deduction weight (float, typically 0..1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CalculationType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Calculation type identifier. Valid values: 'MEAN', 'CUMULATIVE'.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Condition" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Condition expression. Valid Values: '&gt;' or '&lt;='.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LowerThreshold" type="xsd:float" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Lower threshold; optional. Should be within 0..1 for ratios. Used in mean based
								calculations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UpperThreshold" type="xsd:float" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Upper threshold; optional. Used in mean based calculations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Threshold" type="xsd:float" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Single threshold value; optional. Used in cumulative based calculations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Frequency" type="xsd:float" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Frequency (float). Used in cumulative based calculations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- Filter -->
			<xsd:complexType name="FilterSet">
				<xsd:annotation>
					<xsd:documentation>
						Filter configuration for forms. Uses item ids (&gt;0), actions/operators (int enums), and
						optional trigger values.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="TriggerItemId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Item id that triggers the filter (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Action" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Filter action. Valid Values: 0: disabled and greyed out, 1: disabled and hidden, 2:
								enabled and visible
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TargetItems" type="tns:IDList">
						<xsd:annotation>
							<xsd:documentation>
								Target item ids (&gt;0) affected by this filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TriggerValues" type="tns:ValueList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional trigger values (ints), representing an option of a question to trigger the
								filter, semantics depend on item type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsInitialFilterSet" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if this filter applies initially before responses.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Operator" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Logical operator for trigger values.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FilterSetList">
				<xsd:annotation>
					<xsd:documentation>
						List of filter sets applied to a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FilterSet" type="tns:FilterSet" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single filter set. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- language/translation -->
			<xsd:complexType name="GroupTranslationList">
				<xsd:annotation>
					<xsd:documentation>
						List of translations for form groups.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="GroupTranslation" type="tns:GroupTranslation" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Translations for group headers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="GroupTranslation">
				<xsd:annotation>
					<xsd:documentation>
						Translation for a group (section) in a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="GroupId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Group id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="GroupTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated group title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="GroupDescription" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated group description.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemTranslationList">
				<xsd:annotation>
					<xsd:documentation>
						List of translations for items.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemTranslation" type="tns:ItemTranslation" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Per-item translation entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ItemTranslation">
				<xsd:annotation>
					<xsd:documentation>
						Translation of a single item with labels for left/right and abstention texts.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemText" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated item text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Left" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated left item pol.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Right" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated right item pol.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abstention" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Abstention text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FormTranslationList">
				<xsd:annotation>
					<xsd:documentation>
						List of form translations.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FormTranslation" type="tns:FormTranslation" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single form translation. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="FormTranslation">
				<xsd:annotation>
					<xsd:documentation>
						Translation of a form with group/item translations and language metadata.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormTranslationId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Translation id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) this translation belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated form name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated short name/abbreviation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PDFFilename" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Filename for PDF output.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LogoFile" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Logo filename (optional, may be empty).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguage" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language id (&gt;0) this translation is based on.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguageAbbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Code of the system language this translation is based upon.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LanguageSet" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language set id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsEnabled" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Translation enabled flag.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="GroupTranslations" type="tns:GroupTranslationList">
						<xsd:annotation>
							<xsd:documentation>
								Translations for groups.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemTranslations" type="tns:ItemTranslationList">
						<xsd:annotation>
							<xsd:documentation>
								Translations for items.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FormMainLanguage">
				<xsd:annotation>
					<xsd:documentation>
						Main language metadata for a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Main language name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PDFFilename" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Default PDF filename.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LogoFile" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Logo filename.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguage" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsEnabled" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Enabled flag.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LanguageSet" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language set id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Language abbreviation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<xsd:complexType name="DetailedItemTranslationItemValuePosition">
				<xsd:annotation>
					<xsd:documentation>
						Position/value pair for detailed item translations. Contains a combination of the translated
						pole text (value) for a specific option (position)
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="position" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								option/position of the option that has a pole text assigned to it
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="value" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translation of the pole text that is assigned to the given option of the question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="DetailedItemTranslationItemValuePositionsList">
				<xsd:annotation>
					<xsd:documentation>
						List of position/value entries for item translations.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="DetailedItemTranslationItemValuePositions"
								 type="tns:DetailedItemTranslationItemValuePosition" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single item Translation with position. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="DetailedItemTranslationList">
				<xsd:annotation>
					<xsd:documentation>
						List of detailed item translations including option values.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="DetailedItemTranslation" type="tns:DetailedItemTranslation" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single detailed item translation. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="DetailedItemTranslation">
				<xsd:annotation>
					<xsd:documentation>
						Detailed translation with ordered value positions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="id" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="text" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated question/item text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="itemValuePositions" type="tns:DetailedItemTranslationItemValuePositionsList">
						<xsd:annotation>
							<xsd:documentation>
								Value/position pairs in translated order.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FormTranslationWithItemDetail">
				<xsd:annotation>
					<xsd:documentation>
						Form translation including detailed item translations with positions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormTranslationId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Translation id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Translated form name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Short name/abbreviation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PDFFilename" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								PDF filename.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LogoFile" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Logo filename.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguage" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguageAbbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Language abbreviation/code.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LanguageSet" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language set id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsEnabled" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Enabled flag.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="GroupTranslations" type="tns:GroupTranslationList">
						<xsd:annotation>
							<xsd:documentation>
								Group translations.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemTranslations" type="tns:DetailedItemTranslationList">
						<xsd:annotation>
							<xsd:documentation>
								Detailed item translations with position/value mapping.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FormTranslationWithItemDetailList">
				<xsd:annotation>
					<xsd:documentation>
						List of form translations including detailed item data.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FormTranslationWithItemDetail" type="tns:FormTranslationWithItemDetail"
								 minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single form translation with item details. For valid values, look into the
								corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Indicator -->
			<xsd:complexType name="IndicatorNameList">
				<xsd:annotation>
					<xsd:documentation>
						List of localized indicator names.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="IndicatorName" type="tns:IndicatorName" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Localized indicator names.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="IndicatorName">
				<xsd:annotation>
					<xsd:documentation>
						Localized name for an indicator.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormTranslationId" type="xsd:integer" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Form translation id (&gt;0) this name belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Indicator name text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="IndicatorList">
				<xsd:annotation>
					<xsd:documentation>
						List of indicator definitions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Indicator" type="tns:Indicator" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single indicator. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="Indicator">
				<xsd:annotation>
					<xsd:documentation>
						Indicator definition with referenced items and aggregated stats.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Position" type="xsd:integer">
						<xsd:annotation>
							<xsd:documentation>
								Position/order of this indicator on the form(&gt;=0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IndicatorId" type="xsd:integer" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Indicator id (&gt;0) if persisted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Names" type="tns:IndicatorNameList">
						<xsd:annotation>
							<xsd:documentation>
								Localized names for the indicator.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Items" type="tns:IDList">
						<xsd:annotation>
							<xsd:documentation>
								Item ids that form this indicator (ids &gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResponseCount" type="xsd:integer" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of responses; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Mean" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Mean value (float).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StdDev" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Standard deviation (float).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			
			<!-- categories for open questions -->
			<xsd:complexType name="ItemCategory">
				<xsd:annotation>
					<xsd:documentation>
						Categories assigned to a single form item.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CategoryList" type="tns:CategoryList">
						<xsd:annotation>
							<xsd:documentation>
								List of categories for this item.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemCategoryList">
				<xsd:annotation>
					<xsd:documentation>
						List of item-category assignments.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemCategory" type="tns:ItemCategory" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single form item category. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="Category">
				<xsd:annotation>
					<xsd:documentation>
						Single category entry.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Id" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Category id (&gt;0) when present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Category name, given to categorize open questions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="CategoryList">
				<xsd:annotation>
					<xsd:documentation>
						Representing a list of item categories.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Category" type="tns:Category" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single category. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="FormCategory">
				<xsd:annotation>
					<xsd:documentation>
						Category assignments at form level.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FreeCategorisationFlag" type="xsd:boolean" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Allow free categorization if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemCategoryList" type="tns:ItemCategoryList" minOccurs="0" maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Item-specific categories.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FormCategoryRequestParams">
				<xsd:annotation>
					<xsd:documentation>
						Request parameters to fetch categories.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional item id (&gt;0) to filter categories.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- comparison -->
			<xsd:complexType name="ComparisonDataAssignment">
				<xsd:annotation>
					<xsd:documentation>
						Assignment of a comparison dataset or report to a period/subunit for a form. Provide exactly one
						of DataSetId or ReportId.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="DataSetId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Comparison dataset id (&gt;0) when assigning a dataset; leave null when using ReportId.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ReportId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Report id (&gt;0) when assigning a report instead of a dataset; leave null otherwise.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Target period id (&gt;0). Must be an internal id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubunitId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Target subunit id (&gt;0). Must be an internal id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ProfileLineName" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional profile line label to show in reports.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AutomaticReportingLevel" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional reporting level flag.
								Allowed Values: 0: No level defined, 1: Compare system wide, 2: compare on subunit
								level,3: compare on instructor level, 4: compare on course type level, 5: compare based
								on program of studies
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ComparisonDataAssignmentList">
				<xsd:annotation>
					<xsd:documentation>
						List of comparison dataset/report assignments.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ComparisonDataAssignment" type="tns:ComparisonDataAssignment" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single comparison data assignment. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ComparisonDataFormAssignments">
				<xsd:annotation>
					<xsd:documentation>
						Assignments for a form combining period/subunit and dataset/report references.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) the assignments belong to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ComparisonDataSetList" type="tns:ComparisonDataAssignmentList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Assignments to apply; omit/null to clear all.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ComparisonDataSet">
				<xsd:annotation>
					<xsd:documentation>
						Comparison dataset definition with optional per-question statistics.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="DataSetId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Dataset id (&gt;0 when updating; set 0/omitted when creating).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) this dataset belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Dataset name (must be unique per form).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Data" type="tns:ComparisonDataEntryList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional per-question benchmark statistics.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ComparisonDataEntryList">
				<xsd:annotation>
					<xsd:documentation>
						List of per-question comparison entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ComparisonDataEntry" type="tns:ComparisonDataEntry" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single data entry. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ComparisonDataEntry">
				<xsd:annotation>
					<xsd:documentation>
						Benchmark statistics for a single question.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="EntryId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Entry id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuestionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Question id (&gt;0) this entry refers to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Median" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Median value for the question (null to omit).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Average" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Mean value for the question (null to omit).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StandardDeviation" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Standard deviation (null to omit).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ReturnCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of responses (non-negative; null to omit).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abstention" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Abstention count (non-negative; null to omit).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- other -->
			<xsd:complexType name="UsageRestrictionList">
				<xsd:annotation>
					<xsd:documentation>
						Restrictions where a form may be used (subunits, course types, periods).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Subunits" type="tns:IDList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								An id-list of subunit ids (internal ids). Should be present within the system and follow
								the
								usual id-rules (only positive integer numbers)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseTypes" type="tns:IDList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								An id-list of course-type ids (internal ids). Should be present within the system and
								follow
								the usual id-rules (only positive integer numbers)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Periods" type="tns:IDList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								An id-list of period ids (internal ids). Should be present within the system and follow
								the
								usual id-rules (only positive integer numbers)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================Surveys================================= -->
			<!-- General Types -->
			
			<!-- survey -->
			<xsd:simpleType name="ParticipantResultAccessValue">
				<xsd:annotation>
					<xsd:documentation>
						Participant result access flag: -1 deny, 0 inherit, 1 allow without open questions, 2 allow with
						open questions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="-1"/>
					<xsd:enumeration value="0"/>
					<xsd:enumeration value="1"/>
					<xsd:enumeration value="2"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="Survey">
				<xsd:annotation>
					<xsd:documentation>
						Survey header with form, period and state info. Date fields are strings (ISO-8601 recommended);
						counts are informational. ParticipantResultAccess follows the ParticipantResultAccessValue
						simple type.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nSurveyId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal survey id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nState" type="tns:SurveyState" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Survey state enum value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey title (free text). Usually identical to the course this survey is part of.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_cType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey type label. See tns:surveyTypeEnum for available survey types.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nFrmid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) used by the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nStuid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Course id (&gt;0) the survey belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nVerid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Folder id (&gt;0) if placed in a folder.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nOpenState" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Open/close flag (0 or 1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nFormCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of returned results; informational.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nPswdCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of passwords created; informational.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sLastDataCollectionDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Timestamp of last data collection (string; ISO-8601 when consuming). Updated by system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nPageLinkOffset" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Pagination offset; non-negative when present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sMaskTan" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								PSWD used for instructor optional question workflow (string, may be empty).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nMaskState" nillable="true" type="tns:MaskState">
						<xsd:annotation>
							<xsd:documentation>
								Mask state enum for optional questions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_oPeriod" type="tns:Period" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Assigned outer period object.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nParticipantCount" nillable="true" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Participant count; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nParticipantResultAccess" nillable="true"
								 type="tns:ParticipantResultAccessValue">
						<xsd:annotation>
							<xsd:documentation>
								Participant result access setting.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- surveyByParams -->
			<xsd:complexType name="SurveyParams">
				<xsd:annotation>
					<xsd:documentation>
						Filter object for survey queries. Combine optional lists (Ids, Subunits, Instructors, Periods,
						Forms, CourseTypes, Courses, ProgramOfStudies, Statuses, Types) plus pagination/order and date
						ranges. Strings are matched against identifiers as configured.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Name/title filter (string match).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey ids as numbers (ids &gt;0 expected).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Subunits" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Subunit identifiers (id or name, depending on settings).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Instructors" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Instructor identifiers (login/external/id).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Periods" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Period identifiers (id/name per configuration).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Forms" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Form identifiers (ids).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseTypes" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Course type identifiers (course type names).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Courses" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Course identifiers (course ids).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ProgramOfStudies" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Programs of study filter values (program of studies names).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Statuses" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey status filter (state ids as strings).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Types" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey type filter (type ids or names as strings).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OpenState" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Open state flag (integer, typically &gt;=0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Limit" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Max rows to return; use positive values.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderBy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Order by column.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderByDirection" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								ASC/DESC direction.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExtendedResponseAsJSON" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True to receive extended response as JSON where supported.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreationDateFrom" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Lower bound creation date (string, ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreationDateTo" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Upper bound creation date (string, ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LastChangeDateFrom" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Lower bound last-change date (string, ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LastChangeDateTo" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Upper bound last-change date (string, ISO-8601).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Ids" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Alias for SurveyIds; strings representing survey ids.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveyInfo">
				<xsd:annotation>
					<xsd:documentation>
						Lightweight survey info for listings: ids for period, state and open state, title/type, and
						optional notices.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="State" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Survey state. See tns:SurveyState for available states.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey type label. see tns:surveyTypeEnum for available types.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Formid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) if present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OwnerId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Course id (&gt;0) if linked.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of forms; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Period id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OpenState" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Open state flag (integer, 0 or 1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="NoticeList" type="tns:NoticeList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional notices linked to the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- creator -->
			<xsd:complexType name="SurveyCreator">
				<xsd:annotation>
					<xsd:documentation>
						Helper object to create surveys: references form/period (with id type), survey type and optional
						owner/course/folder assignments and title.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FormId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Form identifier; interpreted via FormIdType (id, name, etc.).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormIdType" type="tns:FormIdType">
						<xsd:annotation>
							<xsd:documentation>
								How to resolve FormId.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Period identifier; interpreted via PeriodIdType.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodIdType" type="tns:PeriodIdType">
						<xsd:annotation>
							<xsd:documentation>
								How to resolve PeriodId.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyType" type="tns:SurveyType">
						<xsd:annotation>
							<xsd:documentation>
								Survey type enum.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Verification" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Enable verification on creation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Notice" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional notice text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormRecipientList" type="tns:EmailAddressList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for form delivery (email).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InviteParticipants" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Send participant invitations after creation. Creates an inviteParticipantsTask.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SerialPrint" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Generate serial print artifacts.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskList" type="tns:SurveyTaskList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional survey tasks to configure on creation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ModuleSurveyCreator">
				<xsd:annotation>
					<xsd:documentation>
						Survey definition used inside module uploads. Points to period (id+type), survey type,
						verification/notice/mail settings, optional deletion of existing surveys, form owner or custom
						form, and associated task list.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="PeriodId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Period identifier (string interpreted via PeriodIdType).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodIdType" type="tns:PeriodIdType">
						<xsd:annotation>
							<xsd:documentation>
								How to interpret PeriodId (internal id, name, etc.).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyType" type="tns:SurveyType">
						<xsd:annotation>
							<xsd:documentation>
								Survey type enum; must be supported by the target course/module.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Verification" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Enable verification for created surveys.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Notice" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional notice text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormRecipientList" type="tns:EmailAddressList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email recipients for form distribution.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InviteParticipants" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Send invitations on survey creation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DeleteExistingSurvey" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Delete existing survey of same context before creating a new one.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormOwnerId" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) for custom form creation, if used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomModuleForm" type="tns:CustomModuleForm" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Inline custom form definition for module survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskList" type="tns:SurveyTaskList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional tasks to configure on created surveys.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- survey participants -->
			<xsd:simpleType name="DataSourceType">
				<xsd:annotation>
					<xsd:documentation>
						Data source enum: Paper (scan/import), Online (desktop), Online (mobile).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="Paper"/>
					<xsd:enumeration value="Online"/>
					<xsd:enumeration value="Online (mobile)"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="SurveyParticipant">
				<xsd:annotation>
					<xsd:documentation>
						Participant entry containing result id, person details, timestamp and data source.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ResultId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Result identifier (string as stored by the system).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Person" type="tns:Person">
						<xsd:annotation>
							<xsd:documentation>
								Personal data of the participant, like identifier, name etc..
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TimeStamp" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Submission timestamp (ISO-8601 dateTime), null if not available.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DataSource" type="tns:DataSourceType" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Origin of the response (Paper/Online/Online mobile).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ParticipationTrackingParams">
				<xsd:annotation>
					<xsd:documentation>
						Filter parameters for participation tracking queries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SubunitIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Subunit identifiers (per configured IdType).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey ids (as strings; internal ids expected when numeric).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PeriodIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Period identifiers (id/name per config).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyTypes" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey type identifiers/labels.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyOpenStates" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Open-state values as numbers (0 or 1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Pswds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Passwords/PSWD codes to filter by.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantAddresses" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email addresses of participants to filter by.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="AnonymizationStatus">
				<xsd:annotation>
					<xsd:documentation>
						Anonymization status for a survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Total participants; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnonymizedParticipantCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Number of participants anonymized; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="AnonymizationStatusList">
				<xsd:annotation>
					<xsd:documentation>
						List of anonymization status entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="AnonymizationStatus" type="tns:AnonymizationStatus" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single anonymization status. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- passwords and codes -->
			<xsd:complexType name="OnlineSurveyKey">
				<xsd:annotation>
					<xsd:documentation>
						Composite online survey key: course id/name, instructor, direct link, survey id and transaction
						number for tracing.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="CourseId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course identifier (string; internal or external).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TransactionNumber" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Transaction number for auditing/tracing.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course name/title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Instructor" type="tns:Instructor">
						<xsd:annotation>
							<xsd:documentation>
								Primary instructor information.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DirectOnlineLink" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Direct online survey link (URL).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="OnlineCode">
				<xsd:annotation>
					<xsd:documentation>
						Online access code entry with optional type/survey linkage.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_sOnlineCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Online code string (password/token).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nCodeType" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Code type enum (positive int) if present. Valid values: 1: TAC, 2: PSWD
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nSurveyId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Related survey id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sRecipientMailAddress" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Recipient email for this code.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sDirectOnlineLink" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Direct online link bound to this code.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_bIsUsed" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if the code has already been used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="PwsdSummary">
				<xsd:annotation>
					<xsd:documentation>
						Summary of participation per survey for a person/password.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Participated" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Flag, whether the participant actually participated in the survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Person" type="tns:Person" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Details to the participant based on the information within the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Responses -->
			<xsd:simpleType name="DateUnit">
				<xsd:annotation>
					<xsd:documentation>
						Time unit enum for date aggregations: year, month, week, day, hour, minute, second.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="year"/>
					<xsd:enumeration value="month"/>
					<xsd:enumeration value="week"/>
					<xsd:enumeration value="day"/>
					<xsd:enumeration value="hour"/>
					<xsd:enumeration value="minute"/>
					<xsd:enumeration value="second"/>
				</xsd:restriction>
			</xsd:simpleType>
			
			<!-- notices -->
			<xsd:complexType name="NoticeList">
				<xsd:annotation>
					<xsd:documentation>
						List of notices attached to surveys.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Notice" type="tns:Notice" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single notice. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="Notice">
				<xsd:annotation>
					<xsd:documentation>
						Notice/comment linked to a survey and user.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="NoticeId" type="xsd:integer">
						<xsd:annotation>
							<xsd:documentation>
								Internal notice id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyId" type="xsd:integer">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0) this notice belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UserId" type="xsd:integer">
						<xsd:annotation>
							<xsd:documentation>
								User id (&gt;0) who created the notice.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Text" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Notice text content.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Date" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Date/time string when created (ISO-8601). Is written by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- categorization of open questions -->
			<xsd:complexType name="SurveyCategory">
				<xsd:annotation>
					<xsd:documentation>
						Categories of open questions assigned to a survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyItemCategoryList" type="tns:SurveyItemCategoryList" minOccurs="0"
								 maxOccurs="1">
						<xsd:annotation>
							<xsd:documentation>
								Item categories linked to this survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveyItemCategoryList">
				<xsd:annotation>
					<xsd:documentation>
						List of survey item categories.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyItemCategory" type="tns:SurveyItemCategory" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Item-specific categories for the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyItemCategory">
				<xsd:annotation>
					<xsd:documentation>
						Per-item category assignments.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultCategoryList" type="tns:ResultCategoryList">
						<xsd:annotation>
							<xsd:documentation>
								Categories/values for this item.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ResultCategoryList">
				<xsd:annotation>
					<xsd:documentation>
						List of result categories for a survey item.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ResultCategory" type="tns:ResultCategory" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single result category. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ResultCategory">
				<xsd:annotation>
					<xsd:documentation>
						Result/category mapping entry.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ResultId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Result id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CategoryNames" type="tns:StringList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Category names/labels.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveyCategoryRequestParams">
				<xsd:annotation>
					<xsd:documentation>
						Parameters for category requests.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional item id (&gt;0) to filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- quality guidelines-->
			<xsd:complexType name="QualityGuidelinesForSurveyList">
				<xsd:annotation>
					<xsd:documentation>
						List of calculated quality guidelines per survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityGuidelinesForSurvey" type="tns:QualityGuidelinesForSurvey" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality guideline. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityGuidelinesForSurvey">
				<xsd:annotation>
					<xsd:documentation>
						Calculated quality guideline values for a survey, including blocks/errors when available.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QualityIndex" type="xsd:float" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								The calculated overall quality index for the survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Blocks" type="tns:QualityManagementBlockList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								List of quality management blocks
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Error" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Errors that could happen during the transaction. Includes ERR_201 if no survey was found
								or
								ERR_417 if no quality guidelines exist for the given survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementBlockList">
				<xsd:annotation>
					<xsd:documentation>
						List of quality management blocks in calculated results.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityManagementBlock" type="tns:QualityManagementBlock" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality management block. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementBlock">
				<xsd:annotation>
					<xsd:documentation>
						Calculated quality block with weights and question list.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Weight" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								The weighting, this block has for the overall calculated quality index.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QualityIndex" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Ths calculated quality index of this block.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Questions" type="tns:QualityManagementQuestionList">
						<xsd:annotation>
							<xsd:documentation>
								A list fo questions that are used to calculate this quality index
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementQuestionList">
				<xsd:annotation>
					<xsd:documentation>
						List of quality management questions with calculated values.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="QualityManagementQuestion" type="tns:QualityManagementQuestion" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single quality management question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="QualityManagementQuestion">
				<xsd:annotation>
					<xsd:documentation>
						Calculated quality management question values.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Weight" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								The weighting this question has in the calculation in the overall block quality index
								calculation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QualityIndex" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								The calculated quality index for this question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- tasks -->
			<xsd:complexType name="SurveyTaskListWithErrors">
				<xsd:annotation>
					<xsd:documentation>
						Task list plus validation errors from save/import.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="TaskList" type="tns:SurveyTaskList">
						<xsd:annotation>
							<xsd:documentation>
								The list of all tasks that are part of a specific survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Errors" type="tns:SurveyTaskErrorList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								A list of errors that occurred while saving the tasks in the TaskList.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyTaskList">
				<xsd:annotation>
					<xsd:documentation>
						Grouped task definitions per survey. Each task list is optional and can contain multiple
						entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="NotifySurveyStartTask" type="tns:NotifySurveyStartTask" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of NotifySurveyStartTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OpenSurveyTask" type="tns:OpenSurveyTask" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of OpenSurveyTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InviteParticipantsTask" type="tns:InviteParticipantsTask" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of InviteParticipantsTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RemindParticipantsTask" type="tns:RemindParticipantsTask" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of RemindParticipantsTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="NotifyResponseRateTask" type="tns:NotifyResponseRateTask" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of NotifyResponseRateTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CloseSurveyTask" type="tns:CloseSurveyTask" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of CloseSurveyTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendResultsToInstructorsTask" type="tns:SendResultsToInstructorsTask"
								 minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of SendResultsToInstructorsTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendResultsToParticipantsTask" type="tns:SendResultsToParticipantsTask"
								 minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of SendResultsToParticipantsTask entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="NotifySurveyStartTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for NotifySurveyStart actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:InstructorIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="OpenSurveyTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for OpenSurvey actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InviteParticipantsTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for InviteParticipants actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendEmail" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether an email should be sent. Useful for learning management systems where the
								participants should be invited, but should recerive no email.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CombineMail" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether multiple mails are combined into one message.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:ParticipantIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="RemindParticipantsTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for RemindParticipants actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RepetitionIntervalInDays" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Repeat interval in days.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CombineMail" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether multiple mails are combined into one message.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:ParticipantIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="NotifyResponseRateTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for NotifyResponseRate actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuoteInPercent" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Response rate threshold in percent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CalculationMethod" type="tns:ResponseRateCalculationMethod" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Response rate calculation method.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:InstructorIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="ResponseRateCalculationMethod">
				<xsd:annotation>
					<xsd:documentation>
						Enum for response-rate base.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="0">
						<xsd:annotation>
							<xsd:documentation>
								Created PSWDs
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Sent PSWDs
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Course Participants
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="CloseSurveyTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for CloseSurvey actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SendResultsToInstructorsTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for SendResultsToInstructors actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run. Parsed by PHP DateTime; empty or null means no explicit
								schedule;
								invalid format triggers ERR_269
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendEmail" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether an email should be sent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendDefaultReport" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether the default report is included.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SendReportDefinitions" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Whether report definitions are included.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:InstructorIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SendResultsToParticipantsTask">
				<xsd:annotation>
					<xsd:documentation>
						Task definition for SendResultsToParticipants actions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the task applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StartTime" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								When the task should run.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier (filled by the server for existing tasks).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Status" type="tns:TaskStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Current task status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyResultAccess" type="tns:SurveyResultAccess" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Result access mode for participants.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name shown as the email sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderEmail" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email address shown as the sender.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailText" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email body text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EmailSubject" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email subject line.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:ParticipantIdentifierList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Recipients for this task (ids/emails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="SurveyResultAccess">
				<xsd:annotation>
					<xsd:documentation>
						Controls whether participants may view results: -1=No access, 0=Inherited, 1=Access without open
						questions, 2=Access with open questions. Any other value is rejected during SaveTasks.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="-1">
						<xsd:annotation>
							<xsd:documentation>
								No access
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="0">
						<xsd:annotation>
							<xsd:documentation>
								Inherited
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Access without open questions
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Access with open questions
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="ParticipantIdentifierList">
				<xsd:annotation>
					<xsd:documentation>
						Recipients for participant-based tasks. Supply internal participant ids and/or email addresses;
						duplicates result in E-SC-1013 warnings.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ParticipantId" type="xsd:int" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Participant identifiers to target.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantEmail" type="tns:EmailAddress" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Participant email addresses to target.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="InstructorIdentifierList">
				<xsd:annotation>
					<xsd:documentation>
						Recipients for instructor-based tasks. Mix explicit InstructorId values with up to three
						placeholders (Instructor, Dean, Secondary instructors).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Placeholder" type="tns:InstructorPlaceholder" minOccurs="0" maxOccurs="3">
						<xsd:annotation>
							<xsd:documentation>
								Placeholder recipients for instructor roles.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InstructorId" type="xsd:int" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Instructor identifiers to target.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="InstructorPlaceholder">
				<xsd:annotation>
					<xsd:documentation>
						Placeholder enum
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Instructor
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Dean
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="3">
						<xsd:annotation>
							<xsd:documentation>
								Secondary instructors
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="TaskStatus">
				<xsd:annotation>
					<xsd:documentation>
						Task lifecycle states
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								Undefined
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								Incomplete
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="3">
						<xsd:annotation>
							<xsd:documentation>
								Open
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								Running
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="5">
						<xsd:annotation>
							<xsd:documentation>
								Executed
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="6">
						<xsd:annotation>
							<xsd:documentation>
								Executed (with warning)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="7">
						<xsd:annotation>
							<xsd:documentation>
								Executed (with error)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="8">
						<xsd:annotation>
							<xsd:documentation>
								Deactivated
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="9">
						<xsd:annotation>
							<xsd:documentation>
								Run now
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="10">
						<xsd:annotation>
							<xsd:documentation>
								No re-run
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="11">
						<xsd:annotation>
							<xsd:documentation>
								Running error 2
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="12">
						<xsd:annotation>
							<xsd:documentation>
								Open, ready to be send
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="13">
						<xsd:annotation>
							<xsd:documentation>
								Prepared
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="SurveyTaskErrorList">
				<xsd:annotation>
					<xsd:documentation>
						List of task errors.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Error" type="tns:SurveyTaskError" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of task errors.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyTaskError">
				<xsd:annotation>
					<xsd:documentation>
						Single task error linked to a survey and task type.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey the error refers to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskType" type="tns:TaskType">
						<xsd:annotation>
							<xsd:documentation>
								Task type where the error occurred.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier involved in the error.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Codes" type="tns:TaskErrorList">
						<xsd:annotation>
							<xsd:documentation>
								Error codes describing validation or processing failures. Possible task error codes
								include
								ERR_267 (db), ERR_268 (placeholder), ERR_269 (date format), ERR_271 (unknown), ERR_272
								(survey not found), ERR_273 (task running), ERR_274 (result access), ERR_275
								(unsupported
								task type), ERR_276 (recipient has no mail), ERR_277 (recipient missing)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="TaskErrorList">
				<xsd:annotation>
					<xsd:documentation>
						List of task error codes.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Code" type="tns:TaskError" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single task error with code. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="TaskError">
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="E-SC-1001">
						<xsd:annotation>
							<xsd:documentation>
								Date is missing
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1002">
						<xsd:annotation>
							<xsd:documentation>
								Date is invalid
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1002_EXAM">
						<xsd:annotation>
							<xsd:documentation>
								Date is invalid for an exam task
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1003">
						<xsd:annotation>
							<xsd:documentation>
								Recipients are invalid
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1005">
						<xsd:annotation>
							<xsd:documentation>
								Sender is invalid
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1006">
						<xsd:annotation>
							<xsd:documentation>
								Missing recipients
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1007">
						<xsd:annotation>
							<xsd:documentation>
								Date is in the past
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1008">
						<xsd:annotation>
							<xsd:documentation>
								Unknown error
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1009">
						<xsd:annotation>
							<xsd:documentation>
								Survey is already closed
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1010">
						<xsd:annotation>
							<xsd:documentation>
								Not all mails were sent successfully
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1011">
						<xsd:annotation>
							<xsd:documentation>
								More recipients specified, than online codes available
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1012">
						<xsd:annotation>
							<xsd:documentation>
								Invalid response rate specified (may only occur on NotifyResponseRateTask)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1013">
						<xsd:annotation>
							<xsd:documentation>
								Duplicate recipients
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1014">
						<xsd:annotation>
							<xsd:documentation>
								Email body was empty
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1015">
						<xsd:annotation>
							<xsd:documentation>
								Report not accessible for the recipients
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1016">
						<xsd:annotation>
							<xsd:documentation>
								Survey is still open; results cannot be sent yet
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="E-SC-1017">
						<xsd:annotation>
							<xsd:documentation>
								Attachment not found
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="W-SC-1001">
						<xsd:annotation>
							<xsd:documentation>
								No report results
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="W-SC-1002">
						<xsd:annotation>
							<xsd:documentation>
								No report definition selected
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="W-SC-1003">
						<xsd:annotation>
							<xsd:documentation>
								Report access denied for codeword-based surveys
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="W-SC-1004">
						<xsd:annotation>
							<xsd:documentation>
								Not all recipients are linked to online codes
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_267">
						<xsd:annotation>
							<xsd:documentation>
								Database/persistence error while saving tasks
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_268">
						<xsd:annotation>
							<xsd:documentation>
								Recipient placeholder is invalid
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_269">
						<xsd:annotation>
							<xsd:documentation>
								Task date has an invalid format
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_270">
						<xsd:annotation>
							<xsd:documentation>
								Survey does not support survey tasks
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_271">
						<xsd:annotation>
							<xsd:documentation>
								Unknown error while saving tasks
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_272">
						<xsd:annotation>
							<xsd:documentation>
								Survey not found
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_273">
						<xsd:annotation>
							<xsd:documentation>
								Task is currently running and cannot be changed
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_274">
						<xsd:annotation>
							<xsd:documentation>
								SurveyResultAccess value out of allowed range
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_275">
						<xsd:annotation>
							<xsd:documentation>
								Task type is not supported by the survey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_276">
						<xsd:annotation>
							<xsd:documentation>
								Recipient user has no email address
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="ERR_277">
						<xsd:annotation>
							<xsd:documentation>
								Recipient user does not exist
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="TaskTypeIDList">
				<xsd:annotation>
					<xsd:documentation>
						List of task types used for filtering.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="TaskType" type="tns:TaskType" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single task type. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:simpleType name="TaskType">
				<xsd:annotation>
					<xsd:documentation>
						Task type enum:
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="1">
						<xsd:annotation>
							<xsd:documentation>
								InviteParticipants
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="2">
						<xsd:annotation>
							<xsd:documentation>
								RemindParticipants
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="3">
						<xsd:annotation>
							<xsd:documentation>
								CloseSurvey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="4">
						<xsd:annotation>
							<xsd:documentation>
								NotifyResponseRate
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="5">
						<xsd:annotation>
							<xsd:documentation>
								NotifySurveyStart
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="6">
						<xsd:annotation>
							<xsd:documentation>
								OpenSurvey
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="7">
						<xsd:annotation>
							<xsd:documentation>
								SendResultsToInstructors
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="8">
						<xsd:annotation>
							<xsd:documentation>
								SendResultsToParticipants
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="MailInformation">
				<xsd:annotation>
					<xsd:documentation>
						Mail content metadata used in reports or notifications.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SenderMail" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Displayed sender e-mail. System setting is taken, if empty.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SenderName" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Displayed sender name. System setting is taken, if empty.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MailSubject" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Text of subject line. A text template will be used, if empty
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MailText" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Text of the e-mail. A text template will be used, if empty.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Language" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								system language that should be used to determine the correct language for a text
								template.
								Is calculated if empty
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================Courses================================= -->
			<!-- General Types -->
			
			<!-- CoursesByParams -->
			<xsd:complexType name="CourseParams">
				<xsd:annotation>
					<xsd:documentation>
						Filter object for course queries/import helpers. Supports name, CourseIds, instructors,
						subunits, periods, course types, programs, course code, room, external id, custom field entry,
						flags, select fields, limit/order and JSON response flag.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Name" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Name/title filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Course ids as strings (ids &gt;0 when numeric).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Instructors" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Instructor identifiers (login/external/id).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Subunits" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Subunit identifiers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Periods" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Period identifiers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseTypes" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Course type identifiers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ProgramOfStudies" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Program of study filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseCode" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Course code filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Room" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Room filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExternalID" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								External id filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomFieldEntry" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Custom field value filter.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExcludeModulePartCourses" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Exclude module part courses if true.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SelectFields" type="tns:CourseSelectFieldList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Restrict returned fields.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Limit" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Max rows to return; use positive values.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderBy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Order by column.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderByDirection" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								ASC/DESC.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExtendedResponseAsJSON" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True to request extended JSON response when supported.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:simpleType name="CourseSelectField">
				<xsd:annotation>
					<xsd:documentation>
						Selectable course field identifiers for course queries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="CourseId"/>
					<xsd:enumeration value="Name"/>
					<xsd:enumeration value="InstructorId"/>
					<xsd:enumeration value="SubunitId"/>
					<xsd:enumeration value="PeriodId"/>
					<xsd:enumeration value="CourseTypeId"/>
					<xsd:enumeration value="ProgramOfStudies"/>
					<xsd:enumeration value="Room"/>
					<xsd:enumeration value="CourseCode"/>
					<xsd:enumeration value="ExternalId"/>
					<xsd:enumeration value="CustomFields"/>
					<xsd:enumeration value="CustomFieldsJson"/>
					<xsd:enumeration value="ParticipantCount"/>
					<xsd:enumeration value="AnonymousParticipants"/>
					<xsd:enumeration value="IsModuleMainCourse"/>
					<xsd:enumeration value="ModuleCoursePosition"/>
					<xsd:enumeration value="SecondaryInstructors"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="CourseSelectFieldList">
				<xsd:annotation>
					<xsd:documentation>
						List of course fields to include in responses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CourseSelectField" type="tns:CourseSelectField" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single selected field of the course. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- course -->
			<xsd:complexType name="Course">
				<xsd:annotation>
					<xsd:documentation>
						Course record. Combine internal/public/external ids with descriptive fields, enrollment count,
						custom fields JSON, owner/period linkage, participants (PersonList), secondary instructors
						(UserList) and attached surveys (SurveyHolder).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nCourseId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal course id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sProgramOfStudy" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Program of study label (free text).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sCourseTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course title/name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sRoom" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Room/location text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nCourseType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Course type id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sPubCourseId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Public course id (external-facing string).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sExternalId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								External course id (Could be a foreign key in source system).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nCountStud" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Enrollment count; non-negative when present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sCustomFieldsJSON" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Custom fields serialized as JSON string (must be valid JSON when parsed).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nUserId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Owner/creator user id (&gt;0) if set.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nFbid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Folder id (&gt;0) if assigned.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nPeriodId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Period id (&gt;0) if assigned. If no period id is present, the course is available in
								all periods.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="currentPosition" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Ordering position for module parts; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="hasAnonymousParticipants" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if anonymous participants are present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="isModuleCourse" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True if this course is part of a module course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_aoParticipants" type="tns:PersonList">
						<xsd:annotation>
							<xsd:documentation>
								Participant list; ids must be &gt;0 when provided.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_aoSecondaryInstructors" type="tns:UserList">
						<xsd:annotation>
							<xsd:documentation>
								Secondary instructor list; user ids &gt;0.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_oSurveyHolder" type="tns:SurveyHolder">
						<xsd:annotation>
							<xsd:documentation>
								Surveys attached to this course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveyHolder">
				<xsd:annotation>
					<xsd:documentation>
						Wrapper grouping the surveys attached to a course.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_aSurveys" type="tns:SurveyList">
						<xsd:annotation>
							<xsd:documentation>
								A single survey attached to the course. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- module course -->
			<xsd:complexType name="ModuleCourse">
				<xsd:annotation>
					<xsd:documentation>
						Module course entry used in module imports. Contains UID, name/code/type, optional
						program/enrollment/custom fields, instructors and room.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Uid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Module course unique id (required, caller-defined).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course name/title (required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Code" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course code/short id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course type label.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ProgramOfStudy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Program of study.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Enrollment" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Enrollment count; non-negative when provided.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomFieldsJSON" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional custom fields as JSON (must be valid JSON if set).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InstructorList" type="tns:InstructorList">
						<xsd:annotation>
							<xsd:documentation>
								Instructors attached to the module course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RoomName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Room/location.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="Module">
				<xsd:annotation>
					<xsd:documentation>
						Module container for bulk uploads. Holds module identifiers, program/enrollment, period
						reference, list of ModuleCourse entries, instructors, room, subunit, participants, optional
						survey creators and anonymity flag.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ModuleUid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Module unique id (required, caller-defined).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Module name/title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Module code/short id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleProgramOfStudy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Program of study.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleEnrollment" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Enrollment count; non-negative when provided.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomFieldsJSON" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Custom fields as JSON (must be valid JSON if set).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModulePeriodId" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Period identifier (string, id or name depending on ModulePeriodIdType).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModulePeriodIdType" type="tns:PeriodIdType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								How ModulePeriodId is interpreted.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleCourseList" type="tns:ModuleCourseList">
						<xsd:annotation>
							<xsd:documentation>
								List of module courses (at least one expected).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InstructorList" type="tns:InstructorList">
						<xsd:annotation>
							<xsd:documentation>
								Instructors for the module.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RoomName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Room/location.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubunitName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Target subunit name; must match an existing subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantList" type="tns:PersonList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Participants for module-level surveys; ids &gt;0 when present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnonymousParticipants" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if participant data should be treated as anonymous.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ModuleSurveyCreatorList" type="tns:ModuleSurveyCreatorList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional survey creation definitions for the module.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- creator -->
			<xsd:complexType name="CourseCreator">
				<xsd:annotation>
					<xsd:documentation>
						Course creation payload for bulk/module imports: course ids/names/codes/types,
						program/enrollment, custom fields, period ref, instructors, room, subunit, participants (incl.
						anonymous flag) and optional survey creators.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CourseUid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Caller-defined unique course uid (required for matching in bulk import).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course name/title (required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course code/short id (recommended).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course type label; must correspond to an existing course type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseProgramOfStudy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Program of study (optional).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CourseEnrollment" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Enrollment count; non-negative when provided.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CustomFieldsJSON" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Custom fields as JSON (must be valid JSON if set).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CoursePeriodId" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Period identifier; interpreted according to CoursePeriodIdType.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CoursePeriodIdType" type="tns:PeriodIdType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								How to resolve CoursePeriodId.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InstructorList" type="tns:InstructorList">
						<xsd:annotation>
							<xsd:documentation>
								Instructors assigned to the course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="RoomName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Room/location (optional).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubunitName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Target subunit name; must match existing subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantList" type="tns:PersonList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Participants; ids &gt;0 when present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnonymousParticipants" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if participants should be treated as anonymous.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyCreatorList" type="tns:SurveyCreatorList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional surveys to create along with the course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- course participants -->
			<xsd:complexType name="Person">
				<xsd:annotation>
					<xsd:documentation>
						Participant/person entity used for course/survey rosters. Supports internal id plus
						title/name/identifier/email, optional gender/address, and custom fields JSON.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal participant id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Optional title/honorific.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sFirstname" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								First name (required for inserts).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sLastname" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Last name (required for inserts).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sIdentifier" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								External identifier/student number; keep unique per source if used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sEmail" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Email address; required.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nGender" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional gender code. Allowed values: 1: male, 2: female, 0: gender neutral
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sAddress" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Postal address (free text).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sCustomFieldsJSON" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Custom fields serialized as JSON (must be valid JSON when parsed server-side).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- type -->
			<xsd:complexType name="CourseType">
				<xsd:annotation>
					<xsd:documentation>
						Course type master data: id, name, optional module form id and external id.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nCourseTypeId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal course type id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course type name (required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nModuleFrmId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional form id for module usage (&gt;0). If no form is set, this course type cannot be
								used for module courses.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sExternalId" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								External identifier (string) if mapped from a source system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="CourseTypeList">
				<xsd:annotation>
					<xsd:documentation>
						List of course types.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CourseTypes" type="tns:CourseType" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single course type. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- special relations for insertCourses -->
			<xsd:complexType name="SurveyStatus">
				<xsd:annotation>
					<xsd:documentation>
						Status feedback for InsertCourses/Survey operations. Contains survey id, status text, messages
						and optional task status list (errors per task).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal survey id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyStatus" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Success or error code occurred during creation of the survey. Example: MSG_001 for
								Insert
								successful.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StatusMessage" type="tns:StringList">
						<xsd:annotation>
							<xsd:documentation>
								Message that corresponds with the given SurveyStatus.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskStatusList" type="tns:TaskErrorListInSurveyContext">
						<xsd:annotation>
							<xsd:documentation>
								A list of status for each task on this survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="TaskErrorInSurveyContext">
				<xsd:annotation>
					<xsd:documentation>
						Task error without survey context (used when grouped by survey). Includes TaskType, TaskId, and
						error Codes
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="TaskType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Task type where the error occurred. Enum TaskType: 1=InviteParticipants,
								2=RemindParticipants, 3=CloseSurvey, 4=NotifyResponseRate, 5=NotifySurveyStart,
								6=OpenSurvey, 7=SendResultsToInstructors, 8=SendResultsToParticipants, 9=OpenIOQ,
								10=RemindIOQ, 11=CloseIOQ, 12=InviteReflection, 13=RemindReflection
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TaskId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Task identifier involved in the error.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Codes" type="tns:TaskErrorList">
						<xsd:annotation>
							<xsd:documentation>
								Error codes describing validation or processing failures. Possible task error codes
								include
								ERR_267 (db), ERR_268 (placeholder), ERR_269 (date format), ERR_271 (unknown), ERR_272
								(survey not found), ERR_273 (task running), ERR_274 (result access), ERR_275
								(unsupported
								task type), ERR_276 (recipient has no mail), ERR_277 (recipient missing)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="TaskErrorListInSurveyContext">
				<xsd:annotation>
					<xsd:documentation>
						List of task errors per survey when inserting courses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="TaskStatus" type="tns:TaskErrorInSurveyContext" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single Task status. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyStatusList">
				<xsd:annotation>
					<xsd:documentation>
						List of survey status entries returned from InsertCourses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyStatusArray" type="tns:SurveyStatus" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey status. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ParticipantsStatus">
				<xsd:annotation>
					<xsd:documentation>
						Participant import status (valid/total/invalid list).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ValidParticipants" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Number of valid participants that have been added.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TotalParticipants" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Total number of participants that should have been added.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InvalidParticipantsArray" type="tns:StringList">
						<xsd:annotation>
							<xsd:documentation>
								A list of e-mail addresses that contain all participants that could not be added.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="UploadStatus">
				<xsd:annotation>
					<xsd:documentation>
						Status of a module/course upload including survey and participant states.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="CourseUid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								CourseId the upload status belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StatusId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								The status id given back by the transaction. Could be an error-code or a success code.
								Examples: MSG_001 for 'insert okay' or ERR_108 for 'incomplete data'
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StatusMessage" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Human readable message that describes the status id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyStatusList" type="tns:SurveyStatusList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								List of survey status for this course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantsStatus" type="tns:ParticipantsStatus" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								list of partcipant status for this course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="UploadStatusList">
				<xsd:annotation>
					<xsd:documentation>
						List of upload status entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="UploadStatus" type="tns:UploadStatus" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single upload status. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- =================================Reporting================================= -->
			<!-- General Types -->
			<xsd:simpleType name="PDFDefinitionCreationMode">
				<xsd:annotation>
					<xsd:documentation>
						Controls how the question list of a PDF report definition is applied.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="INCLUSIVE">
						<xsd:annotation>
							<xsd:documentation>
								Only questions listed in `Questions` are kept in the report.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="EXCLUSIVE">
						<xsd:annotation>
							<xsd:documentation>
								All form questions are included except the ones listed in `Questions`.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="Report">
				<xsd:annotation>
					<xsd:documentation>
						Report definition descriptor exported by the report configuration module.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ID" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Report id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Display title of the report template.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsDefault" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if this is the default report.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsPlugin" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if the report is provided by a plugin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Report type id as defined in the report configuration module.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormRestrictions" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								JSON encoded array of form ids the report can be used with (empty array = no
								restriction).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ReportList">
				<xsd:annotation>
					<xsd:documentation>
						Collection of available report definitions.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Report" type="tns:Report" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Available report definitions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ReportElement">
				<xsd:annotation>
					<xsd:documentation>
						Single element inside a report configuration (chart/table/etc.).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ElementId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Element id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Element type (string enum, e.g., chart/table). Can be extended by self written plugins.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsVisible" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Visibility flag.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Position" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Ordering position; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ReportElementList">
				<xsd:annotation>
					<xsd:documentation>
						List of elements that make up a report layout.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ReportElement" type="tns:ReportElement" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Elements included in the report layout.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ReportConfiguration">
				<xsd:annotation>
					<xsd:documentation>
						Full configuration of a report including title, layout and custom settings.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ReportId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Report id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Report title/name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsDefault" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Default flag.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ReportElements" type="tns:ReportElementList">
						<xsd:annotation>
							<xsd:documentation>
								Element layout for this report.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Config" type="tns:KeyValueList">
						<xsd:annotation>
							<xsd:documentation>
								Additional configuration key/value pairs.
								Contains the following information based on settings within the system or the report
								itself:
								'thresholdRelative', 'thresholdAbsolut', 'thresholdForOpenQuestions',
								'thresholdShowInfoText',
								'color1', 'color2', 'color3', 'color4', 'color5', 'color6', 'color7', 'color8',
								'color9', 'color10', 'color11',
								'profileLineUseMedian', 'profileLineShowStatisticalValues',
								'profileLineShowQuestionGroups', 'showRelativeValues', 'includeOpenQuestions',
								'splitOpenQuestions',
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ReportConfig">
				<xsd:annotation>
					<xsd:documentation>
						Configuration for report generation.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ExcludedItems" type="tns:IDList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Item ids (&gt;0) to exclude.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExcludeOpenQuestions" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True to exclude open questions from reports.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- Report plugins -->
			<xsd:complexType name="PDFPlugin">
				<xsd:annotation>
					<xsd:documentation>
						PDF report plugin descriptor.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="PluginId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Plugin id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Display title.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ClassName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Backend class name implementing the plugin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsDefault" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if this is the default plugin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsCustomPlugin" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if this is a custom (user-provided) plugin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ReportType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Report type id. Valid values range from 0-5. Informative only.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Owner" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0) if custom.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Path" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Filesystem path to plugin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="PDFPluginList">
				<xsd:annotation>
					<xsd:documentation>
						List of PDF report plugins.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="PDFPlugins" type="tns:PDFPlugin" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single pdf plugin. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- rawData -->
			<xsd:complexType name="SurveyRawData">
				<xsd:annotation>
					<xsd:documentation>
						Raw data export for a survey: includes survey metadata, sheet-wise item answers, and optional
						participants.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Survey" type="tns:Survey">
						<xsd:annotation>
							<xsd:documentation>
								A single survey. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SheetResults" type="tns:ItemAnswerListList">
						<xsd:annotation>
							<xsd:documentation>
								Answers grouped per sheet/respondent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantList" type="tns:ParticipantList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Participants tied to sheets (if available).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemAnswer">
				<xsd:annotation>
					<xsd:documentation>
						Single answer to an item; values are strings, item ids/codes identify the question.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Item code/identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemValue" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Answer value (string; numeric answers are stringified).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Result id/key for this answer row.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemOptionIndex" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Option index (non-negative) for choice questions.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemAnswerList">
				<xsd:annotation>
					<xsd:documentation>
						List of item answers for a single respondent/sheet.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemAnswers" type="tns:ItemAnswer" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Answers for a single sheet/respondent.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ItemAnswerListList">
				<xsd:annotation>
					<xsd:documentation>
						Collection of answer lists; one list per sheet/respondent.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemAnswerLists" type="tns:ItemAnswerList" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of sheets; each entry is one respondent's answers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyRawDataList">
				<xsd:annotation>
					<xsd:documentation>
						Raw data exports for multiple surveys.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyRawData" type="tns:SurveyRawData" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Multiple surveys' raw data.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- survey results -->
			<xsd:complexType name="SurveyResult">
				<xsd:annotation>
					<xsd:documentation>
						Aggregated results for a survey, including per-item and per-group stats.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Survey" type="tns:Survey">
						<xsd:annotation>
							<xsd:documentation>
								The results in this SurveyResult belong to this survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemResults" type="tns:ItemResultList">
						<xsd:annotation>
							<xsd:documentation>
								A list of item results of this survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemGroupResults" type="tns:ItemGroupResultList">
						<xsd:annotation>
							<xsd:documentation>
								A list of item group results of a survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemResult">
				<xsd:annotation>
					<xsd:documentation>
						Per-item statistics and distributions. Counts are non-negative; means/stddevs are floats
						computed by the system.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Item id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ItemCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Item code/identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResponseCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of responses; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AbstentionCount" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Number of abstentions; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FrequencyDistribution" type="tns:FrequencyList">
						<xsd:annotation>
							<xsd:documentation>
								Frequencies per option (sum matches responses).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Mean" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Mean value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StdDev" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Standard deviation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Median" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Median value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Norm" type="xsd:float" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Normed mean value. Only if it can be computed based on settings.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemResultList">
				<xsd:annotation>
					<xsd:documentation>
						List of per-item result statistics.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemResults" type="tns:ItemResult" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Per-item result entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="FrequencyList">
				<xsd:annotation>
					<xsd:documentation>
						Frequencies for all options of one item.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Frequencies" type="xsd:float" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Frequency values for each option; non-negative floats.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ItemGroupResult">
				<xsd:annotation>
					<xsd:documentation>
						Aggregated result for an item group.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ItemGroupId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Group id (&gt;0) if known.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Mean" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Mean value for the group.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StdDev" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Standard deviation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Norm" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Normed mean value. Only if it can be computed based on settings.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ItemGroupResultList">
				<xsd:annotation>
					<xsd:documentation>
						List of aggregated results per item group.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ItemGroupResults" type="tns:ItemGroupResult" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Per-group result entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SurveyResultList">
				<xsd:annotation>
					<xsd:documentation>
						List of aggregated survey results.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveyResult" type="tns:SurveyResult" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Result entries per survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- changing results -->
			<xsd:complexType name="ResultChangesForSurveyList">
				<xsd:annotation>
					<xsd:documentation>
						Collection of result changes grouped per survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ResultChangesForSurvey" type="tns:ResultChangesForSurvey" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single result change of for a survey. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ResultChangesForSurvey">
				<xsd:annotation>
					<xsd:documentation>
						List of result changes for a single survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultChanges" type="tns:ResultChangesList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Changes grouped by result entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ResultChangesList">
				<xsd:annotation>
					<xsd:documentation>
						List of change blocks for a survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ResultChangesBlock" type="tns:ResultChangesBlock" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single result change block. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ResultChangesBlock">
				<xsd:annotation>
					<xsd:documentation>
						Single result change record.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ID" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Change record id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ResultId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Result id (&gt;0) affected.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuestionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Question id (&gt;0) affected.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DateTimeChanged" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Timestamp of change. Calculated by the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PreviousValueInt" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Previous (Prior to the change) numeric value (if applicable).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PreviousValueStr" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Previous (Prior to the change) string value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- statistical -->
			<xsd:complexType name="SurveyStatisticalField">
				<xsd:annotation>
					<xsd:documentation>
						Statistical results per question. Counts are non-negative; quartiles and H* values are floats
						computed.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="QuestionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Result id (&gt;0) the values are calculated for.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Average" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Average of all given answers. Abstentions do not count. Depending on system settings,
								might
								be trimmed to exclude the outermost data.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Median" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Median (middle answer) for this question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Variance" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Variance for this question. Sum of squared deviation from mean.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="StdDeviation" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Standard deviation (spread)
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Abstention" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Count of abstentions for this question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ReturnCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Count of answers of this question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ChoiceOptions" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								For XXL single choice only: option-value|option-value | Encoded option frequencies
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Quartile1" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								1st quartile as of old calculation rulings. No longer in use. Use field quartile25
								instead.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Quartile3" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								3rd quartile as of old calculation rulings. No longer in use. Use field quatrile75
								instead.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuartileDistance" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Historically used for calculating the distance between quartile 1 and quartile 3. No
								longer
								in use.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H1" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 1 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H2" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 2 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H3" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 3 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H4" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 4 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H5" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 5 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H6" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 6 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H7" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 7 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H8" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 8 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H9" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 9 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H10" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 10 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="H11" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Relative frequency for answer value 11 |together with the other "HX" values: share of
								each
								answer option
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="quartile10" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								10 % quantile for this question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="quartile25" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								25 % quantile for this question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="quartile75" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								75 % quantile for this question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="quartile90" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								90 % quantile for this question
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveyStatisticalData">
				<xsd:annotation>
					<xsd:documentation>
						Collection of statistical fields for a survey.
					
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="FieldData" type="tns:SurveyStatisticalField" minOccurs="1" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								Statistical values per question/field.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="ComparisonSurveyStatisticalData">
				<xsd:annotation>
					<xsd:documentation>
						Statistical data of a comparison survey (used for benchmarks/plots).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyName" type="xsd:string" nillable="false">
						<xsd:annotation>
							<xsd:documentation>
								Name/title of the comparison survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyData" type="tns:SurveyStatisticalData" nillable="false">
						<xsd:annotation>
							<xsd:documentation>
								Statistical values for the comparison survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ComparisonSurveyStatisticalDataList">
				<xsd:annotation>
					<xsd:documentation>
						Statistical data sets for multiple comparison surveys.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ComparisonSurveyData" type="tns:ComparisonSurveyStatisticalData" minOccurs="1"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								List of comparison surveys' stats.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- summaries -->
			<xsd:complexType name="SurveySummary">
				<xsd:annotation>
					<xsd:documentation>
						Summary info for a survey (for listings/status overviews).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Survey id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey title/name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyCourseCode" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Course code associated with the survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubunitName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Subunit name the course of this survey is part of.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyInstructorName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Instructor name of the instructor this course belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Survey type label. See tns:surveyTypeEnum for available survey types.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyIsAnonymous" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if survey is anonymous.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyStatus" type="tns:SurveyState">
						<xsd:annotation>
							<xsd:documentation>
								Current survey status.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyOpenState" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Open/close state marker (0 or 1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyPeriod" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Period name/label of the period this survey takes place in.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyCreationDate" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Creation timestamp. When was the survey created.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyScheduledStartDate" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Planned start date/time. Date relating to the execution of the task "open survey".
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyScheduledEndDate" type="xsd:dateTime" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Planned end date/time. Date relating to the execution of the task "close survey".
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DirectOnlineLink" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Direct online link (if available).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Participated" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if current user participated (where applicable).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SurveySummaryList">
				<xsd:annotation>
					<xsd:documentation>
						Collection of survey summaries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SurveySummary" type="tns:SurveySummary" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single survey summary. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- definitions -->
			<xsd:complexType name="PDFReportDefinitionList">
				<xsd:annotation>
					<xsd:documentation>
						List of PDF report definitions.
					
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="PDFReportDefinition" type="tns:PDFReportDefinition" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single pdf report definition. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="PDFReportDefinition">
				<xsd:annotation>
					<xsd:documentation>
						Definition of a PDF report created for a form.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ReportDefinitionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the PDF report definition (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Title/name of the PDF report definition.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Description" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Description/template text stored with the definition.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="BaseFormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Form id (&gt;0) the report is based on.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Questions" type="tns:IDList">
						<xsd:annotation>
							<xsd:documentation>
								List of question/item ids. Interpreted as include or exclude list depending on
								`PDFDefinitionCreationMode`.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Recipients" type="tns:IDList">
						<xsd:annotation>
							<xsd:documentation>
								Recipient user ids. Special ids: -1 instructor, -2 dean; otherwise internal user ids.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="BaseReportId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Report id (&gt;0) of the base template/plugin to use.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubgroupQuestion" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Question id used to split subgroup reports; null to disable subgrouping.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubgroupShowOverallReport" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Include the overall report before subgroup sections (default true).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubgroupShowDivider" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Add a divider with subgroup information between sections.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubgroupIncludeOpenQuestions" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Include open questions in subgroup reports.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================Verification================================= -->
			<xsd:complexType name="VerifierSurvey">
				<xsd:annotation>
					<xsd:documentation>
						Survey with its associated verification batches.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the survey this batch set belongs to (must be &gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="VerifierBatchs" type="tns:VerifierBatchList">
						<xsd:annotation>
							<xsd:documentation>
								List of verification batches (may be empty if none found).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="VerifierBatchList">
				<xsd:annotation>
					<xsd:documentation>
						List of verification batches belonging to a survey.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VerifierBatch" type="tns:VerifierBatch" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single verifier batch. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="VerifierBatch">
				<xsd:annotation>
					<xsd:documentation>
						Metadata of a scanned batch pending/processed in verification.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="BatchId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the batch.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PageCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Total number of scanned pages in the batch.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="NonFormsCount" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Number of sheets not recognized as forms in this batch.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UnlocatedAnswers" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Number of OMR errors/unlocated answers.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Scanstation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Name of the scan station used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="VerifierSheets" type="tns:VerifierSheetList">
						<xsd:annotation>
							<xsd:documentation>
								Sheets that must be or have been verified.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="VerifierSheetList">
				<xsd:annotation>
					<xsd:documentation>
						List of sheets contained in a verifier batch.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VerifierSheet" type="tns:VerifierSheet" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single verfier sheet. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="VerifierSheet">
				<xsd:annotation>
					<xsd:documentation>
						Single scanned sheet with verification details.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SheetId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the sheet.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="BatchId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the batch this sheet belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SheetNumberInBatch" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Index of the sheet inside the batch (starting at 1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurveyId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the survey this sheet is part of.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the form used for the sheet.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PageId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the page this sheet represents.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SerialNumber" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Serial number read from the sheet (0 if missing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SerialNumberCounter" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Counter belonging to the serial number (0 if missing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantEmail" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Email of the participant if encoded on the sheet.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ParticipantIdentifier" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Identifier/user id of the participant if available.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CoverSheet" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if the sheet is a cover sheet.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="NonFormType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Non-form classification code; 0 means normal form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SheetImage" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Encoded image of the scanned sheet (path or base64 depending on configuration).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="VerifierQuestions" type="tns:VerifierQuestionList">
						<xsd:annotation>
							<xsd:documentation>
								Questions/fields on the sheet that require verification.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="VerifierQuestionList">
				<xsd:annotation>
					<xsd:documentation>
						List of questions to verify on a sheet.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VerifierQuestion" type="tns:VerifierQuestion" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single verifier question. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="VerifierQuestion">
				<xsd:annotation>
					<xsd:documentation>
						Question/field details including coordinates and potential answers to verify.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="QuestionId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal question id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SheetId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Sheet id this question belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuestionType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Numeric question type indicator. See tns:QuestionTypes for available question types.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuestionPosition" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Position/index of the question on the page.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DataType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Data type description (e.g., checkbox, text).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="QuestionCoord" type="tns:Coord">
						<xsd:annotation>
							<xsd:documentation>
								Coordinates of the question area on the scanned image.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="VerifierQuestionAnswers" type="tns:VerifierQuestionAnswerList">
						<xsd:annotation>
							<xsd:documentation>
								Possible/recognized answers for the question.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="VerifierQuestionAnswerList">
				<xsd:annotation>
					<xsd:documentation>
						List of answer options recognized for verification.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VerifierQuestionAnswer" type="tns:VerifierQuestionAnswer" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single Answer option recognized by the verificator. For valid values, look into the
								corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="VerifierQuestionAnswer">
				<xsd:annotation>
					<xsd:documentation>
						Recognized answer option including fill grade and coordinates.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="AnswerOptionValue" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Value of the answer option.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerOptionFillingGrade" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Fill level/percentage detected for this option (0-1).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="AnswerPosition" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Index/position of the answer option.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="x" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								X coordinate of the answer box on the sheet image.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="y" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Y coordinate of the answer box on the sheet image.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="Coord">
				<xsd:annotation>
					<xsd:documentation>
						Rectangle coordinates on the scanned page (pixels).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="x" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								X origin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="y" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Y origin.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="w" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Width of the area.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="h" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Height of the area.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<xsd:simpleType name="BatchIdType">
				<xsd:annotation>
					<xsd:documentation>
						Type of batch identifier.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="VERIFIER_BATCH">
						<xsd:annotation>
							<xsd:documentation>
								Identifier refers to a verifier batch.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="SCAN_BATCH">
						<xsd:annotation>
							<xsd:documentation>
								Identifier refers to a scan batch.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="WebscanBatch">
				<xsd:annotation>
					<xsd:documentation>
						Batch information returned by the webscan/reader service.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nReaderBatchId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Batch id reported by the reader.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nBatchId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal batch id within the system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nStatus" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Status code of the batch processing.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sText" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Status/description text.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nProceedActionValue" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Numeric code for the suggested proceed action.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sProceedAction" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Label for the suggested proceed action.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nCancelActionValue" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Numeric code for the suggested cancel action.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sCancelAction" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Label for the suggested cancel action.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="WebscanBatchList">
				<xsd:annotation>
					<xsd:documentation>
						List of webscan batches.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="WebscanBatch" type="tns:WebscanBatch" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single web scan batch. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<xsd:complexType name="ReaderScanBatchParams">
				<xsd:annotation>
					<xsd:documentation>
						Parameters to filter scan batches.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SurveyIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Survey ids to filter by (string list of ints).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="BatchIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Batch ids to filter by.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DateTimeStart" type="xsd:dateTime" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Start of time range (schema:dateTime, UTC/local server time).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DateTimeEnd" type="xsd:dateTime" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								End of time range (schema:dateTime).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================Configuration, Logging, Administration================================= -->
			<!-- Activity Log -->
			<xsd:simpleType name="ActivityType">
				<xsd:annotation>
					<xsd:documentation>
						CRUD operation represented in the activity log.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="DELETE">
						<xsd:annotation>
							<xsd:documentation>
								Delete operation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="INSERT">
						<xsd:annotation>
							<xsd:documentation>
								Create/insert operation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="UPDATE">
						<xsd:annotation>
							<xsd:documentation>
								Update/modify operation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="ActivityObjectType">
				<xsd:annotation>
					<xsd:documentation>
						Domain object the activity log entry is about.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="SUBUNIT">
						<xsd:annotation>
							<xsd:documentation>
								Subunit entity.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="USER">
						<xsd:annotation>
							<xsd:documentation>
								User entity.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="COURSE">
						<xsd:annotation>
							<xsd:documentation>
								Course entity.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="SURVEY">
						<xsd:annotation>
							<xsd:documentation>
								Survey entity.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="FORM">
						<xsd:annotation>
							<xsd:documentation>
								Form/form template.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="FOLDER">
						<xsd:annotation>
							<xsd:documentation>
								Folder object.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PSWD">
						<xsd:annotation>
							<xsd:documentation>
								Password object (online code).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="DATASET">
						<xsd:annotation>
							<xsd:documentation>
								Dataset entry.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="IMAGE">
						<xsd:annotation>
							<xsd:documentation>
								Image/logo resource.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="LOGENTRY">
						<xsd:annotation>
							<xsd:documentation>
								Log entry.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERSON">
						<xsd:annotation>
							<xsd:documentation>
								Participant/person entity.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERSON_CUSTOM_FIELDS">
						<xsd:annotation>
							<xsd:documentation>
								Custom fields of a person.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERSON_TO_COURSE">
						<xsd:annotation>
							<xsd:documentation>
								Assignment between person and course.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="PERSON_TO_SURVEY">
						<xsd:annotation>
							<xsd:documentation>
								Assignment between person and survey.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="TASK">
						<xsd:annotation>
							<xsd:documentation>
								Survey task.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="TASK_ONLINE_SURVEY_EMAIL">
						<xsd:annotation>
							<xsd:documentation>
								Online survey email task.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="TASK_ONLINE_SURVEY_EMAIL_TO_RESPONDANT">
						<xsd:annotation>
							<xsd:documentation>
								Email-to-respondent task.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="ActivityLog">
				<xsd:annotation>
					<xsd:documentation>
						Activity log entry.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="logId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal id of the log entry.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="date" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Timestamp as string (YYYY-MM-DD HH:MM:SS).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="activityType" type="tns:ActivityType">
						<xsd:annotation>
							<xsd:documentation>
								Operation type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="objectType" type="tns:ActivityObjectType" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Type of object affected.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="objectDescription" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Description of the object/value.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="objectId" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Identifier of the affected object (string to support mixed ids).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="transactionId" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Transaction id if available.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="ActivityLogList">
				<xsd:annotation>
					<xsd:documentation>
						List of activity log entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ActivityLogs" type="tns:ActivityLog" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single activity log entry. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- Searching -->
			<xsd:simpleType name="EntityListValue">
				<xsd:annotation>
					<xsd:documentation>
						Entities that can be searched.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="Subunit">
						<xsd:annotation>
							<xsd:documentation>
								Subunits.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="User">
						<xsd:annotation>
							<xsd:documentation>
								Users/instructors.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Course">
						<xsd:annotation>
							<xsd:documentation>
								Courses.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Survey">
						<xsd:annotation>
							<xsd:documentation>
								Surveys.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Participant">
						<xsd:annotation>
							<xsd:documentation>
								Participants/persons.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Log">
						<xsd:annotation>
							<xsd:documentation>
								System log entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Delivery">
						<xsd:annotation>
							<xsd:documentation>
								Deliveries (mailings etc.).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Notices">
						<xsd:annotation>
							<xsd:documentation>
								Notices/messages.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
					<xsd:enumeration value="Results">
						<xsd:annotation>
							<xsd:documentation>
								Survey results.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:enumeration>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:complexType name="EntityList">
				<xsd:annotation>
					<xsd:documentation>
						List of entity types to include in a search.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="EntityListValue" type="tns:EntityListValue" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single entry list value. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- period -->
			<xsd:complexType name="Period">
				<xsd:annotation>
					<xsd:documentation>
						Evaluation period with id, title and start/end dates (outer period). Inner dates are modeled
						separately where used.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nPeriodId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal period id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sTitel" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Display title/name of the period.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sStartDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Outer start date (string as stored; use ISO-8601 when writing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sEndDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Outer end date (string as stored; use ISO-8601 when writing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- license -->
			<xsd:complexType name="VolumeLicense">
				<xsd:annotation>
					<xsd:documentation>
						Volume license meta data: id, volume, cycles, validity dates, activity flag, usage counters and
						license key.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="LicenseId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal license id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseVolume" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Total licensed volume (non-negative).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseCycles" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Number of cycles (non-negative).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseStartDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Start date string (use ISO-8601 when writing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseEndDate" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								End date string (use ISO-8601 when writing).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseActivityStatus" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								Activity flag; true if license currently active.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UsedLicenseCycles" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Cycles consumed (non-negative).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UsedLicenseVolume" type="xsd:float">
						<xsd:annotation>
							<xsd:documentation>
								Volume consumed (non-negative float).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenseKey" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								License key string.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="VolumeLicenseList">
				<xsd:annotation>
					<xsd:documentation>
						List of volume licenses.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="VolumeLicenses" type="tns:VolumeLicense" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single volume license. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- authentication -->
			<xsd:complexType name="UserSession">
				<xsd:annotation>
					<xsd:documentation>
						Session token used for UI access forwarding: session id, server ip, start page, token and
						forwarding key.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SessionId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Session identifier string.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ServerIp" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Server IP address the session belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UserStartPage" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Start page URL/path for UI forwarding.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Token" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Session token string.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ForwardingKey" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Forwarding key to authorize UI handoff.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="UserSessionInfo">
				<xsd:annotation>
					<xsd:documentation>
						Session metadata response: user id/type/subunit, admin flags, login/session timestamps,
						remaining lifetime and token.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="UserId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal user id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UserType" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								internal User type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubunitId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Primary subunit id.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsAdmin" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if user is an administrator.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsSubunitAdmin" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if user is a subunit administrator.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PenultimateLogin" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Previous login timestamp.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SessionStart" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Session start timestamp.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SessionLastChange" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Last activity/change timestamp.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SessionRemainingSeconds" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Remaining session lifetime in seconds; non-negative.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Token" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Session token string.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- text templates -->
			<xsd:complexType name="TextTemplateList">
				<xsd:annotation>
					<xsd:documentation>
						List of text/email templates.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="TextTemplate" type="tns:TextTemplate" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single text template. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="TextTemplate">
				<xsd:annotation>
					<xsd:documentation>
						Single template entry including language, type, subject and body.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="Id" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Internal template identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguage" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Language name of the template.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SystemLanguageAbbreviation" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Language abbreviation (e.g. de, en).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Template type key (e.g., email type).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FormSpecificText" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if the template is tied to a specific form.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Subject" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Subject line (for mails).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Text" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Template body text (may contain placeholders).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- custom Settings -->
			<xsd:complexType name="CustomUserSettingsList">
				<xsd:annotation>
					<xsd:documentation>
						List of custom user settings.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="CustomUserSetting" type="tns:CustomUserSetting" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								User setting entries.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="CustomUserSetting">
				<xsd:annotation>
					<xsd:documentation>
						User-specific key/value setting.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SettingKey" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Setting key/name (string, case-sensitive).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SettingValue" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Setting value (string; may contain JSON depending on usage).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- APIs - SOAP, Databridge, LMS -->
			<xsd:complexType name="DatabridgeTemplate">
				<xsd:annotation>
					<xsd:documentation>
						Databridge template descriptor.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="id" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Template id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Template name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Template type identifier.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="schedule" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional schedule definition (cron-like string). When should the template be imported
								automatically.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="DatabridgeTemplateList">
				<xsd:annotation>
					<xsd:documentation>
						List of Databridge templates.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="DatabridgeTemplates" type="tns:DatabridgeTemplate" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single databridge template. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="SoapUsageParams">
				<xsd:annotation>
					<xsd:documentation>
						Parameters to query service usage statistics.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="TimeFrom" type="xsd:dateTime">
						<xsd:annotation>
							<xsd:documentation>
								Start of time window (required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UserId" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional user id filter (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TimeTo" type="xsd:dateTime" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Optional end of time window.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="IntegrationHubEntry">
				<xsd:annotation>
					<xsd:documentation>
						Integration hub entry (e.g., LMS connection) with settings payload.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="id" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Entry id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="lms_type" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Type of LMS/connector.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="settings" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Serialized settings (JSON/XML as expected by the system).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="IntegrationHubEntryList">
				<xsd:annotation>
					<xsd:documentation>
						List of integration hub entries.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="IntegrationHubEntry" type="tns:IntegrationHubEntry" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single integration hub entry. For valid values, look into the corresponding type.
								xsd:documentation>
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- configuration -->
			<xsd:complexType name="ConfigurationGroup">
				<xsd:annotation>
					<xsd:documentation>
						Configuration for a subunit.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SubunitId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Subunit id (&gt;0) the configuration applies to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ConfigurationInfo" type="tns:KeyValueList">
						<xsd:annotation>
							<xsd:documentation>
								Key/value pairs of configuration settings.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:complexType name="AllConfigurationGroup">
				<xsd:annotation>
					<xsd:documentation>
						Container for multiple configuration groups.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="ConfigurationGroups" type="tns:ConfigurationGroup" minOccurs="0"
								 maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single configuration group of a subunit. For valid values, look into the corresponding
								type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- language -->
			<xsd:complexType name="Language">
				<xsd:annotation>
					<xsd:documentation>
						System language entry.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="ID" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Language id (&gt;0) if present.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Human readable language name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="File" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Language file name/path.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Default" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True if this is the default language.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="LanguageList">
				<xsd:annotation>
					<xsd:documentation>
						List of available languages.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Language" type="tns:Language" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single language. For valid values, look into the corresponding type. Language' meaning
								is
								not described in the implementation.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- addresses -->
			<xsd:complexType name="Address">
				<xsd:annotation>
					<xsd:documentation>
						Address entry (per language).
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="AddressID" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Address id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LanguageID" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Language id (&gt;0) this address belongs to.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Address" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Main address text/block.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="PreAddress" type="xsd:string" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Optional pre-address (e.g., addressee).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Default" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>
								True if this is the default address for the language.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="AddressList">
				<xsd:annotation>
					<xsd:documentation>
						List of address records.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Address" type="tns:Address" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single address. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- logo -->
			<xsd:complexType name="OrganisationLogo">
				<xsd:annotation>
					<xsd:documentation>
						Organisation logo payload.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="EncodedSource" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Base64 encoded binary data of the logo.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="MimeType" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Mime type of the logo image (e.g., image/png).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================User================================= -->
			<!-- general types -->
			<xsd:complexType name="User">
				<xsd:annotation>
					<xsd:documentation>
						User profile including ids, login, external id, contact data, LDAP flag, active/technical admin
						flags and an optional CourseList of assignments.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal user id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nType" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								User type id (role), positive integer, internal usage. See tns:userTypeEnum for all
								available usertypes.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sLoginName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Login/username (must be unique).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sExternalId" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								External id from source system; optional but recommended for sync.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sTitle" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Title/honorific.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sFirstName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								First name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sSurName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Last name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sUnitName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Unit/subunit name. informational.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sAddress" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Postal address.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sEmail" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Email address; needed for email-based features.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nFbid" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Subunit id this user is part of.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nAddressId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Address id /Gender (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sPassword" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Password (plain text on insert/update); ignored if LDAP is used.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sPhoneNumber" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Phone number.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_bUseLDAP" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True if login is validated via LDAP.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_bActiveUser" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Active flag (must be true if the user should be able to log in).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_bTechnicalAdmin" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True for technical admin accounts.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_aCourses" type="tns:CourseList" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Assigned courses (optional; ids &gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="Instructor">
				<xsd:annotation>
					<xsd:documentation>
						Instructor entity for course/survey relations. Supports UID/login plus name, optional
						title/gender/contact/language flags and address.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="InstructorUid" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Instructor uid (external or internal string, required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="InstructorLogin" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Login name (optional, must be unique if used).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FirstName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								First name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LastName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Last name (required).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Title/honorific.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Gender" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Gender indicator (string).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Email" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Email; needed for email delivery.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Phone" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Phone number.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Language" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Preferred language code (internal id).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsActiveUser" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Active flag (string representation, e.g. "1" or "0").
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ProjectName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Project/group name. Only in Healthcare context.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Address" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Postal address.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- folder -->
			<xsd:complexType name="Folder">
				<xsd:annotation>
					<xsd:documentation>
						Folder metadata for organizing forms/surveys. Includes id, owner user id, creation timestamp,
						folder name and directory type id.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="FolderId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Internal folder id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UserId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Owner user id (&gt;0).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CreateDate" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Creation date/time as string (ISO-8601 recommended).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FolderName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Folder name/label.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="DirTypeId" type="xsd:int">
						<xsd:annotation>
							<xsd:documentation>
								Directory type id (0 or 1; depending on survey or exam).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="FolderList">
				<xsd:annotation>
					<xsd:documentation>
						List of folders.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="Folders" type="tns:Folder" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single folder. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
			
			<!-- getByParams -->
			<xsd:complexType name="UserParams">
				<xsd:annotation>
					<xsd:documentation>
						Filter object for user queries. Supports UserIds, Types, Login/ExternalId/title/name/unit/email,
						subunits, active flags, limit/order, JSON flag and last login range.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="UserIds" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								List of userIds to search for.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Types" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								List of userTypes to search for. See tns:userTypeEnum for all available usertypes.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LoginName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Login name to search for.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExternalID" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								external userid to serch for.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Title" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Title/honorific to search for.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FirstName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								First name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SurName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Last name.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UnitName" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Unit- or project name. Only relevant in QMC context.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Email" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								E-mail address.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Subunits" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Internal subunitIds to consider.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ActiveUsers" type="tns:StringList" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Is the user an active user.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Limit" type="xsd:int" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Max rows to return; use positive values.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderBy" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Order by column.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OrderByDirection" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								ASC/DESC.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ExtendedResponseAsJSON" type="xsd:boolean" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True to request extended JSON response when supported.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="lastLoginTo" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Outer last login date/time as string (ISO-8601 recommended).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LastLoginFrom" type="xsd:string" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Inner last login date/time as string (ISO-8601 recommended).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- =================================Subunit================================= -->
			<!-- General Types -->
			<xsd:complexType name="Unit">
				<xsd:annotation>
					<xsd:documentation>
						Subunit entity including contact data and users.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="m_nId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Internal subunit id (&gt;0 when present).
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sName" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Name of the subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nPublicUnitNumber" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Public unit number if configured.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nImageAccess" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Image access level/rights for scanned open answers. Valid values: 0: Display images
								after scan, 1: Never display images, 2: display images after data verification
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sPostCode" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Postal code.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sCity" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								City.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sStreet" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Street and number.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sPhoneNumber" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Phone number.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sFax" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Fax number.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sEmail" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Contact email.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_aUsers" type="tns:UserList">
						<xsd:annotation>
							<xsd:documentation>
								Users assigned to the subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_nLogoId" type="xsd:int" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								Logo id used for the subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_sExternalId" type="xsd:string" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								External identifier from source system.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="m_bIsHidden" type="xsd:boolean" nillable="true" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>
								True if the subunit is hidden.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			
			<!-- logo -->
			<xsd:complexType name="SubunitLogo">
				<xsd:annotation>
					<xsd:documentation>
						Logo assigned to a subunit.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="LogoId" type="xsd:int" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								Logo id (&gt;0) if stored.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								Display name of the logo.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="IsDefaultLogo" type="xsd:boolean" nillable="true">
						<xsd:annotation>
							<xsd:documentation>
								True if the logo is the default for the subunit.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="URL" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>
								URL/path to access the logo.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<xsd:complexType name="SubunitLogoList">
				<xsd:annotation>
					<xsd:documentation>
						List of subunit logos.
					</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence>
					<xsd:element name="SubunitLogo" type="tns:SubunitLogo" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>
								A single subunit logo. For valid values, look into the corresponding type.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:complexType>
		
		</xsd:schema>
	</types>
	<message name="Header">
		<!-- This must remain as element, as it's used as a header -->
		<part name="Header" element="tns:Header"/>
	</message>
	<message name="RequestTicketRequest">
		<part name="Login" type="xsd:string">
			<documentation>
				service user login.
			</documentation>
		</part>
		<part name="Password" type="xsd:string">
			<documentation>
				service user password.
			</documentation>
		</part>
	</message>
	<message name="RequestTicketResponse">
		<part name="Ticket" type="xsd:string">
			<documentation>
				Ticket string valid for 30 minutes.
			</documentation>
		</part>
	</message>
	<message name="GetPswdsByParticipantRequest">
		<part name="UserMailAddress" type="xsd:string">
			<documentation>
				Email of participant.
			</documentation>
		</part>
		<part name="CourseCode" type="xsd:string">
			<documentation>
				Course code to scope passwords.
			</documentation>
		</part>
		<part name="CustomFieldToConsider" type="xsd:integer">
			<documentation>
				Optional custom field id to match.
			</documentation>
		</part>
	</message>
	<message name="GetPswdsByParticipantResponse">
		<part name="OnlineSurveyKeys" type="tns:OnlineSurveyKeyList"/>
	</message>
	<message name="DeleteUnusedPswdsRequest">
		<part name="ObjectList" type="tns:OnlineCodeList">
			<documentation>
				Passwords to delete if unused.
			</documentation>
		</part>
	</message>
	<message name="DeleteUnusedPswdsResponse">
		<part name="ObjectList" type="tns:OnlineCodeList">
			<documentation>
				Remaining/affected codes.
			</documentation>
		</part>
	</message>
	<message name="GetUserRequest">
		<part name="UserId" type="xsd:string">
			<documentation>
				User identifier (depends on IdType: internal/external/login/name).
			</documentation>
		</part>
		<part name="IdType" type="tns:UserIdType">
			<documentation>
				How to interpret UserId.
			</documentation>
		</part>
		<part name="IncludeCourses" type="xsd:boolean">
			<documentation>
				Include primary courses.
			</documentation>
		</part>
		<part name="IncludeSurveys" type="xsd:boolean">
			<documentation>
				Include surveys owned by user.
			</documentation>
		</part>
		<part name="IncludeParticipants" type="xsd:boolean">
			<documentation>
				Include participant lists.
			</documentation>
		</part>
		<part name="IncludeSecondaryCourses" type="xsd:boolean">
			<documentation>
				Include secondary instructor courses.
			</documentation>
		</part>
	</message>
	<message name="GetUserResponse">
		<part name="User" type="tns:User"/>
	</message>
	<message name="GetUsersBySubunitRequest">
		<part name="nSubunitId" type="xsd:int">
			<documentation>
				Subunit id (&gt;0).
			</documentation>
		</part>
		<part name="IncludeCourses" type="xsd:boolean">
			<documentation>
				Include primary courses.
			</documentation>
		</part>
		<part name="IncludeSurveys" type="xsd:boolean">
			<documentation>
				Include surveys owned by users.
			</documentation>
		</part>
		<part name="IncludeParticipants" type="xsd:boolean">
			<documentation>
				Include participants.
			</documentation>
		</part>
		<part name="IncludeSecondaryCourses" type="xsd:boolean">
			<documentation>
				Include secondary instructor courses.
			</documentation>
		</part>
	</message>
	<message name="GetUsersBySubunitResponse">
		<part name="UserList" type="tns:UserList">
			<documentation>
				List of users in the subunit (includes optional child objects based on request flags).
			</documentation>
		</part>
	</message>
	<message name="GetAllPeriodsRequest">
	</message>
	<message name="GetAllPeriodsResponse">
		<part name="PeriodList" type="tns:PeriodList">
			<documentation>
				All periods ordered by date.
			</documentation>
		</part>
	</message>
	<message name="UpdateUserRequest">
		<part name="User" type="tns:User">
			<documentation>
				User to update (identified by internal/external id or username; child collections are ignored).
			</documentation>
		</part>
	</message>
	<message name="UpdateUserResponse">
		<part name="User" type="tns:User">
			<documentation>
				Updated user as stored.
			</documentation>
		</part>
	</message>
	<message name="GetCoursesByUserIdRequest">
		<part name="nUserId" type="xsd:int">
			<documentation>
				User id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetCoursesByUserIdResponse">
		<part name="CourseList" type="tns:CourseList"/>
	</message>
	<message name="InsertCourseRequest">
		<part name="oCourse" type="tns:Course">
			<documentation>
				Course to insert/update.
			</documentation>
		</part>
	</message>
	<message name="InsertCourseResponse">
		<part name="Course" type="tns:Course"/>
	</message>
	<message name="GetOnlinePreviewRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) for preview context.
			</documentation>
		</part>
	</message>
	<message name="GetOnlinePreviewResponse">
		<part name="HyperLink" type="xsd:string"/>
	</message>
	<message name="UpdateCourseRequest">
		<part name="Course" type="tns:Course">
			<documentation>
				Course to update.
			</documentation>
		</part>
		<part name="DeleteExistingParticipants" type="xsd:boolean">
			<documentation>
				True to replace participants with provided list.
			</documentation>
		</part>
	</message>
	<message name="UpdateCourseResponse">
		<part name="Course" type="tns:Course"/>
	</message>
	<message name="GetPeriodRequest">
		<part name="sPeriodId" type="xsd:string">
			<documentation>
				Period identifier.
			</documentation>
		</part>
		<part name="sPeriodIdType" type="tns:PeriodIdType">
			<documentation>
				How to interpret sPeriodId.
			</documentation>
		</part>
	</message>
	<message name="GetPeriodResponse">
		<part name="Period" type="tns:Period"/>
	</message>
	<message name="GetAllFormsRequest">
		<part name="IncludeCustomReports" type="xsd:boolean">
			<documentation>
				Include custom report list.
			</documentation>
		</part>
		<part name="IncludeUsageRestrictions" type="xsd:boolean">
			<documentation>
				Include usage restrictions.
			</documentation>
		</part>
		<part name="UsageRestrictionList" type="tns:UsageRestrictionList">
			<documentation>
				Optional filter for usage restrictions.
			</documentation>
		</part>
	</message>
	<message name="GetAllFormsResponse">
		<part name="FormList" type="tns:SimpleFormList">
			<documentation>
				All active forms (optionally filtered/augmented via request flags).
			</documentation>
		</part>
	</message>
	<message name="GetSurveyTypesRequest">
	</message>
	<message name="GetSurveyTypesResponse">
		<part name="SurveyTypeList" type="tns:SurveyTypeList">
			<documentation>
				List of available survey types (single-character codes).
			</documentation>
		</part>
	</message>
	<message name="GetFormByCourseIdAndPeriodIdRequest">
		<part name="nCourseId" type="xsd:int">
			<documentation>
				Course id (&gt;0).
			</documentation>
		</part>
		<part name="nPeriodId" type="xsd:int">
			<documentation>
				Period id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetFormByCourseIdAndPeriodIdResponse">
		<part name="FormList" type="tns:SimpleFormList">
			<documentation>
				Forms approved for the course/period combination.
			</documentation>
		</part>
	</message>
	<message name="GetFormRequest">
		<part name="FormId" type="xsd:string">
			<documentation>
				Form identifier (id/name depending on IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:FormIdType">
			<documentation>
				How to resolve FormId.
			</documentation>
		</part>
		<part name="IncludeOnlyQuestions" type="xsd:boolean">
			<documentation>
				True to return only question items.
			</documentation>
		</part>
		<part name="SkipPoleLabelsInheritance" type="xsd:boolean">
			<documentation>
				Skip inheritance of pole labels if true.
			</documentation>
		</part>
	</message>
	<message name="GetFormResponse">
		<part name="VFForm" type="tns:VFForm">
			<documentation>
				Full form definition honoring IncludeOnlyQuestions/SkipPoleLabelsInheritance.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyByIdRequest">
		<part name="nSurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetSurveyByIdResponse">
		<part name="Survey" type="tns:Survey">
			<documentation>
				Survey with metadata and state.
			</documentation>
		</part>
	</message>
	<message name="GetSurveysByCourseRequest">
		<part name="nCourseId" type="xsd:int">
			<documentation>
				Course id (&gt;0).
			</documentation>
		</part>
		<part name="nFormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			</documentation>
		</part>
		<part name="nPeriodId" type="xsd:int">
			<documentation>
				Period id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetSurveysByCourseResponse">
		<part name="SurveyList" type="tns:SurveyList">
			<documentation>
				Surveys for the course (optionally limited by form/period).
			</documentation>
		</part>
	</message>
	<message name="UpdateSurveyRequest">
		<part name="oSurvey" type="tns:Survey">
			<documentation>
				Survey object to update.
			</documentation>
		</part>
	</message>
	<message name="UpdateSurveyResponse">
		<part name="bUpdateSuccess" type="xsd:boolean"/>
	</message>
	<message name="CloseSurveyRequest">
		<part name="nSurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="bSendReportToInstructor" type="xsd:boolean">
			<documentation>
				Send report to instructor on close.
			</documentation>
		</part>
	</message>
	<message name="CloseSurveyResponse">
		<part name="bUpdateSuccess" type="xsd:boolean"/>
	</message>
	<message name="OpenSurveyRequest">
		<part name="nSurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="OpenSurveyResponse">
		<part name="bUpdateSuccess" type="xsd:boolean"/>
	</message>
	<message name="GetPswdsBySurveyRequest">
		<part name="nSurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="nPswdCount" type="xsd:int">
			<documentation>
				Number of passwords to retrieve/generate (positive).
			</documentation>
		</part>
		<part name="nCodeTypes" type="xsd:int">
			<documentation>
				Code type mask (int) defining if the codes/pswds looked for should be within the already sent
				codes/pswds or not (1=not send, 2 = send).
			</documentation>
		</part>
		<part name="bForceNewPasswordGeneration" type="xsd:boolean">
			<documentation>
				Force generation even if existing codes are present or if the maximum number of codes in the survey is
				reached, if more passwords should be generated then available.
			</documentation>
		</part>
		<part name="bSetPswdsToSent" type="xsd:boolean">
			<documentation>
				Mark generated passwords as sent.
			</documentation>
		</part>
		<part name="bGetFiveDigitOnlineCode" type="xsd:boolean">
			<documentation>
				Request five-digit codes if true (where supported).
			</documentation>
		</part>
	</message>
	<message name="GetPswdsBySurveyResponse">
		<part name="ObjectList" type="tns:OnlineCodeList">
			<documentation>
				Online codes created or reused for the survey (marked sent depending on request flags).
			</documentation>
		</part>
	</message>
	<message name="IsPswdUnusedRequest">
		<part name="sPSWD" type="xsd:string">
			<documentation>
				Exact PSWD/online code to check.
			</documentation>
		</part>
	</message>
	<message name="IsPswdUnusedResponse">
		<part name="bPswdIsUnused" type="xsd:boolean">
			<documentation>
				True if the PSWD has not been used or reserved.
			</documentation>
		</part>
	</message>
	<message name="InsertCentralSurveyRequest">
		<part name="nUserId" type="xsd:int">
			<documentation>
				Instructor/user id (&gt;0) owning the survey.
			</documentation>
		</part>
		<part name="nCourseId" type="xsd:int">
			<documentation>
				Course id (&gt;0) the survey belongs to.
			</documentation>
		</part>
		<part name="nFormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) used for the survey.
			</documentation>
		</part>
		<part name="nPeriodId" type="xsd:int">
			<documentation>
				Period id (&gt;0) in which the survey is scheduled.
			</documentation>
		</part>
		<part name="sSurveyType" type="xsd:string">
			<documentation>
				Survey type code. See tns:surveyType for all available survey types.
			</documentation>
		</part>
		<part name="sNotice" type="xsd:string">
			<documentation>
				Optional survey description/notice.
			</documentation>
		</part>
		<part name="bVerification" type="xsd:boolean">
			<documentation>
				Set true to mark survey for verification workflow.
			</documentation>
		</part>
	</message>
	<message name="InsertCentralSurveyResponse">
		<part name="return" type="tns:Survey">
			<documentation>
				Created survey including generated ids.
			</documentation>
		</part>
	</message>
	<message name="SetupCentralSurveyRequest">
		<part name="oUser" type="tns:User">
			<documentation>
				User to create/update for the survey owner.
			</documentation>
		</part>
		<part name="oCourse" type="tns:Course">
			<documentation>
				Course to create/update and link to the survey.
			</documentation>
		</part>
		<part name="oSubunit" type="tns:Unit">
			<documentation>
				Subunit to create/update; course/user will be placed here.
			</documentation>
		</part>
		<part name="nFormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) used for the survey.
			</documentation>
		</part>
		<part name="nPeriodId" type="xsd:int">
			<documentation>
				Period id (&gt;0) in which the survey is scheduled.
			</documentation>
		</part>
		<part name="sSurveyType" type="xsd:string">
			<documentation>
				Survey type code. See tns:surveyType for all available survey types
			</documentation>
		</part>
		<part name="sNotice" type="xsd:string">
			<documentation>
				Optional survey description/notice.
			</documentation>
		</part>
	</message>
	<message name="SetupCentralSurveyResponse">
		<part name="Survey" type="tns:Survey">
			<documentation>
				Created survey (course/user/subunit persisted as needed).
			</documentation>
		</part>
	</message>
	<message name="GetPDFReportRequest">
		<part name="nSurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="nUserId" type="xsd:int">
			<documentation>
				User id used for permission check and personalized report sections (0 to skip personalization).
			</documentation>
		</part>
		<part name="nCustomPDFId" type="xsd:string">
			<documentation>
				Optional custom report definition id (0/empty uses default).
			</documentation>
		</part>
		<part name="nLanguageID" type="xsd:int">
			<documentation>
				Optional form translation id to render report (0 uses default language).
			</documentation>
		</part>
		<part name="bOnlyClosed" type="xsd:boolean">
			<documentation>
				Require survey to be closed before generating report.
			</documentation>
		</part>
		<part name="onlyIfSurveyTasksAllowIt" type="xsd:boolean">
			<documentation>
				Defer/deny generation based on survey task scheduling. If true: generate the report only if the task
				sendReultsToInstructor is already performed.
			</documentation>
		</part>
	</message>
	<message name="GetPDFReportResponse">
		<part name="ReportLink" type="xsd:string">
			<documentation>
				Download link to generated PDF report (temporary URL).
			</documentation>
		</part>
	</message>
	
	<message name="CreatePDFReportByDataRequest">
		<part name="ReportId" type="xsd:int">
			<documentation>
				Report definition id to render (matching available PDF templates).
			</documentation>
		</part>
		<part name="LanguageID" type="xsd:int">
			<documentation>
				Form translation id to render texts; 0 uses default language.
			</documentation>
		</part>
		<part name="Form" type="tns:VFForm">
			<documentation>
				Full form definition used for rendering (must match statistical data structure).
			</documentation>
		</part>
		<part name="SurveyInfo" type="tns:SurveyInfo">
			<documentation>
				Meta information about the survey (title, owner, course).
			</documentation>
		</part>
		<part name="TextTemplateList" type="tns:TextTemplateList">
			<documentation>
				Localized text snippets used inside the report.
			</documentation>
		</part>
		<part name="MainSurveyStatisticalData" type="tns:SurveyStatisticalData">
			<documentation>
				Statistical results for the main survey.
			</documentation>
		</part>
		<part name="ComparisonSurveysDataList" type="tns:ComparisonSurveyStatisticalDataList">
			<documentation>
				Optional comparison survey statistics.
			</documentation>
		</part>
		<part name="ReportConfig" type="tns:ReportConfig">
			<documentation>
				Layout/configuration options for PDF generation.
			</documentation>
		</part>
	</message>
	<message name="CreatePDFReportByDataResponse">
		<part name="ReportLink" type="xsd:string">
			<documentation>
				Download link to generated report PDF.
			</documentation>
		</part>
	</message>
	
	<message name="GetSubunitsRequest">
	</message>
	<message name="GetSubunitsResponse">
		<part name="UnitList" type="tns:UnitList">
			<documentation>
				All subunits available to the caller.
			</documentation>
		</part>
	</message>
	<message name="GetSubunitRequest">
		<part name="SubunitId" type="xsd:string">
			<documentation>
				Internal/external subunit identifier (interpretation via IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:SubunitIdType">
			<documentation>
				Specifies whether SubunitId is internal id, external id or name.
			</documentation>
		</part>
		<part name="IncludeInstructors" type="xsd:boolean">
			<documentation>
				True to include instructor list for the subunit.
			</documentation>
		</part>
	</message>
	<message name="GetSubunitResponse">
		<part name="Unit" type="tns:Unit">
			<documentation>
				Requested subunit (may be null if not found).
			</documentation>
		</part>
	</message>
	<message name="InsertUserRequest">
		<part name="User" type="tns:User">
			<documentation>
				User to insert.
			</documentation>
		</part>
	</message>
	<message name="InsertUserResponse">
		<part name="User" type="tns:User">
			<documentation>
				Inserted user with generated ids.
			</documentation>
		</part>
	</message>
	<message name="InsertSubunitRequest">
		<part name="Unit" type="tns:Unit">
			<documentation>
				Subunit to insert.
			</documentation>
		</part>
	</message>
	<message name="InsertSubunitResponse">
		<part name="Unit" type="tns:Unit">
			<documentation>
				Inserted subunit with generated ids.
			</documentation>
		</part>
	</message>
	<message name="InsertCoursesRequest">
		<part name="CourseCreatorList" type="tns:CourseCreatorList">
			<documentation>
				Courses (with instructors/participants) to upsert.
			</documentation>
		</part>
		<part name="DeleteExistingParticipants" type="xsd:boolean">
			<documentation>
				True to replace participants for matching courses before import.
			</documentation>
		</part>
	</message>
	<message name="InsertCoursesResponse">
		<part name="UploadStatusList" type="tns:UploadStatusList">
			<documentation>
				Status for each processed course/instructor/participant element.
			</documentation>
		</part>
	</message>
	<message name="GetPDFPluginsByFormIdRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			</documentation>
		</part>
		<part name="UserId" type="xsd:int">
			<documentation>
				User id requesting plugins (permissions may depend on caller).
			</documentation>
		</part>
	</message>
	<message name="GetPDFPluginsByFormIdResponse">
		<part name="PDFPluginList" type="tns:PDFPluginList">
			<documentation>
				Available PDF plugins for the form/user context.
			</documentation>
		</part>
	</message>
	<message name="GetPDFQuestionnaireRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) to render.
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Optional survey id (&gt;0) for personalization/scanning.
			</documentation>
		</part>
		<part name="SerialPrint" type="xsd:boolean">
			<documentation>
				Enable serial printing with unique serial numbers.
			</documentation>
		</part>
		<part name="Additionalcopies" type="xsd:boolean">
			<documentation>
				True to generate two copies per questionnaire.
			</documentation>
		</part>
		<part name="SerialNumberFrom" type="xsd:int">
			<documentation>
				Start serial number (positive) when SerialPrint is enabled.
			</documentation>
		</part>
		<part name="SerialNumberTo" type="xsd:int">
			<documentation>
				End serial number (&gt;= start when SerialPrint is enabled).
			</documentation>
		</part>
	</message>
	<message name="GetPDFQuestionnaireResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to generated questionnaire PDF.
			</documentation>
		</part>
	</message>
	<message name="GetPDFCoversheetRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to generate coversheet for.
			</documentation>
		</part>
	</message>
	<message name="GetPDFCoversheetResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to generated coversheet PDF.
			</documentation>
		</part>
	</message>
	<message name="GetPDFPswdRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) whose passwords should be printed.
			</documentation>
		</part>
		<part name="LanguageAbbreviation" type="xsd:string">
			<documentation>
				Language abbreviation (e.g., en/de) for the PDF content.
			</documentation>
		</part>
	</message>
	<message name="GetPDFPswdResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to generated PSWD card PDF.
			</documentation>
		</part>
	</message>
	<message name="GetSentPswdsForHybridSurveysRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Hybrid survey id (&gt;0) to fetch already sent PSWDs.
			</documentation>
		</part>
		<part name="LanguageAbbreviation" type="xsd:string">
			<documentation>
				Language abbreviation for PDF content.
			</documentation>
		</part>
	</message>
	<message name="GetSentPswdsForHybridSurveysResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to PDF with sent PSWDs.
			</documentation>
		</part>
	</message>
	<message name="GetCSVRawDataRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to export.
			</documentation>
		</part>
		<part name="ExcludeParticipantPersonalData" type="xsd:boolean">
			<documentation>
				Omit personal participant data if true (for non-anonymous surveys).
			</documentation>
		</part>
	</message>
	<message name="GetCSVRawDataResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to CSV export (temporary).
			</documentation>
		</part>
	</message>
	<message name="GetSPSSRawDataRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to export.
			</documentation>
		</part>
		<part name="ExcludeParticipantPersonalData" type="xsd:boolean">
			<documentation>
				Omit personal participant data if true (for non-anonymous surveys).
			</documentation>
		</part>
	</message>
	<message name="GetSPSSRawDataResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to SPSS export (temporary).
			</documentation>
		</part>
	</message>
	
	<message name="DeleteUserRequest">
		<part name="UserId" type="xsd:string">
			<documentation>
				User identifier (internal/external/login depending on IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:UserIdType">
			<documentation>
				Defines how UserId is interpreted.
			</documentation>
		</part>
	</message>
	<message name="DeleteUserResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if the user (and all child data) was deleted.
			</documentation>
		</part>
	</message>
	
	<message name="DeleteSubunitRequest">
		<part name="SubunitId" type="xsd:string">
			<documentation>
				Subunit identifier (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:SubunitIdType">
			<documentation>
				Defines how SubunitId is interpreted.
			</documentation>
		</part>
	</message>
	<message name="DeleteSubunitResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if the subunit (and child data) was deleted.
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to delete.
			</documentation>
		</part>
		<part name="IgnoreTwoStepDelete" type="xsd:boolean">
			<documentation>
				Force deletion without two-step safety if true.
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if survey was removed.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="IncludeOpenEndedQuestions" type="xsd:boolean">
			<documentation>
				Include open text answers if true.
			</documentation>
		</part>
		<part name="ResultIDs" type="tns:IDList">
			<documentation>
				Optional explicit result ids to fetch (mutually exclusive with ResultRangeIDs).
			</documentation>
		</part>
		<part name="ExtendedResultInfo" type="xsd:boolean">
			<documentation>
				Include timestamp/source details (non-anonymous only) if true.
			</documentation>
		</part>
		<part name="ResultRangeIDs" type="xsd:string">
			<documentation>
				Optional range of result ids formatted \"start-end\"; cannot be combined with ResultIDs.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataResponse">
		<part name="SurveyRawData" type="tns:SurveyRawData">
			<documentation>
				Raw data and metadata for the survey.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResultsRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResultsResponse">
		<part name="SurveyResult" type="tns:SurveyResult">
			<documentation>
				Statistical results for the survey.
			</documentation>
		</part>
	</message>
	<message name="InsertFormRequest">
		<part name="VFForm" type="tns:VFForm">
			<documentation>
				Complete form definition to insert.
			</documentation>
		</part>
	</message>
	<message name="InsertFormResponse">
		<part name="VFForm" type="tns:VFForm">
			<documentation>
				Inserted form including generated ids.
			</documentation>
		</part>
	</message>
	<message name="GetOnlineSurveyLinkByEmailRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="EmailAddress" type="xsd:string">
			<documentation>
				Participant email to generate link for.
			</documentation>
		</part>
		<part name="AddRecipientToSurvey" type="xsd:boolean">
			<documentation>
				Automatically add recipient to survey if not present.
			</documentation>
		</part>
		<part name="AutoIncreasePSWDCount" type="xsd:boolean">
			<documentation>
				Create additional PSWDs if insufficient pre-defined codes.
			</documentation>
		</part>
		<part name="SetPSWDToSent" type="xsd:boolean">
			<documentation>
				Mark allocated PSWD as sent (default true).
			</documentation>
		</part>
	</message>
	<message name="GetOnlineSurveyLinkByEmailResponse">
		<part name="OnlineSurveyLink" type="xsd:string">
			<documentation>
				Survey link bound to the participant.
			</documentation>
		</part>
	</message>
	<message name="InsertParticipantsRequest">
		<part name="PersonList" type="tns:PersonList">
			<documentation>
				Participants to add (anonymous or non-anonymous).
			</documentation>
		</part>
		<part name="CourseId" type="xsd:string">
			<documentation>
				Course identifier (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:CourseIdType">
			<documentation>
				How to interpret CourseId.
			</documentation>
		</part>
		<part name="DeleteExisting" type="xsd:boolean">
			<documentation>
				True to remove existing participants before inserting new ones.
			</documentation>
		</part>
	</message>
	<message name="InsertParticipantsResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if participant import succeeded.
			</documentation>
		</part>
	</message>
	<message name="GetCustomReportsByFormRequest">
		<part name="FormId" type="xsd:string">
			<documentation>
				Form identifier (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:FormIdType">
			<documentation>
				How to interpret FormId.
			</documentation>
		</part>
	</message>
	<message name="GetCustomReportsByFormResponse">
		<part name="CustomReportList" type="tns:CustomReportList">
			<documentation>
				Available custom report definitions for the form.
			</documentation>
		</part>
	</message>
	<message name="GetSimpleFormRequest">
		<part name="FormId" type="xsd:string">
			<documentation>
				Form identifier (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:FormIdType">
			<documentation>
				How to interpret FormId.
			</documentation>
		</part>
		<part name="IncludeCustomReports" type="xsd:boolean">
			<documentation>
				True to include custom report definitions.
			</documentation>
		</part>
		<part name="IncludeUsageRestrictions" type="xsd:boolean">
			<documentation>
				True to include usage restriction list.
			</documentation>
		</part>
	</message>
	<message name="GetSimpleFormResponse">
		<part name="SimpleForm" type="tns:SimpleForm">
			<documentation>
				Simplified form representation.
			</documentation>
		</part>
	</message>
	<message name="GetVFDRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) to export.
			</documentation>
		</part>
		<part name="IncludeSecondaryData" type="xsd:boolean">
			<documentation>
				Include secondary data (e.g., pole labels, metadata) if true.
			</documentation>
		</part>
	</message>
	<message name="GetVFDResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to VFD file.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataByTimeRequest">
		<part name="StartTime" type="xsd:dateTime">
			<documentation>
				Start timestamp (inclusive, ISO 8601).
			</documentation>
		</part>
		<part name="EndTime" type="xsd:dateTime">
			<documentation>
				End timestamp (inclusive, ISO 8601).
			</documentation>
		</part>
		<part name="IncludeOpenEndedQuestions" type="xsd:boolean">
			<documentation>
				Include open text answers if true.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataByTimeResponse">
		<part name="SurveyRawDataList" type="tns:SurveyRawDataList">
			<documentation>
				Raw data for surveys with results in the timeframe.
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyNoticeRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to attach the notice to.
			</documentation>
		</part>
		<part name="Notice" type="xsd:string">
			<documentation>
				Notice text (plain string, not HTML escaped).
			</documentation>
		</part>
		<part name="UserId" type="xsd:string">
			<documentation>
				User reference (per IdType) for who added the notice.
			</documentation>
		</part>
		<part name="IdType" type="tns:UserIdType">
			<documentation>
				How to interpret UserId.
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyNoticeResponse">
		<part name="Notice" type="tns:Notice">
			<documentation>
				Stored notice including generated ids and timestamps.
			</documentation>
		</part>
	</message>
	<message name="InsertModulesRequest">
		<part name="ModuleList" type="tns:ModuleList">
			<documentation>
				Modules (with courses/participants/instructors) to insert/update.
			</documentation>
		</part>
	</message>
	<message name="InsertModulesResponse">
		<part name="UploadStatusList" type="tns:UploadStatusList">
			<documentation>
				Status for each processed module element.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveyRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="SendEmail" type="xsd:boolean">
			<documentation>
				Send instructor notification if true.
			</documentation>
		</part>
		<part name="Mode" type="xsd:int">
			<documentation>
				Optional question mask mode: 1 enable, 11 enable static, 21 enable outcome, 2 remind, 12 remind static,
				22 remind outcome, 3 disable.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveyResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if state change succeeded.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveysRequest">
		<part name="SurveyIDList" type="tns:IDList">
			<documentation>
				Survey ids to update.
			</documentation>
		</part>
		<part name="SendEmail" type="xsd:boolean">
			<documentation>
				Send instructor notifications if true.
			</documentation>
		</part>
		<part name="Mode" type="xsd:int">
			<documentation>
				Optional question mask mode: 1 enable, 11 enable static, 21 enable outcome, 2 remind, 12 remind static,
				22 remind outcome, 3 disable.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveysResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if all updates succeeded.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveyAddQuestionsRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="ItemGroupList" type="tns:ItemGroupList">
			<documentation>
				Question groups/items to add to optional question set.
			</documentation>
		</part>
	</message>
	<message name="ActivateOptionalQuestionsForSurveyAddQuestionsResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if questions were added and feature enabled.
			</documentation>
		</part>
	</message>
	<message name="ListTasksRequest">
		<part name="SubunitIDList" type="tns:IDList">
			<documentation>
				Optional subunit filter (internal ids).
			</documentation>
		</part>
		<part name="FormIDList" type="tns:IDList">
			<documentation>
				Optional form filter (internal ids).
			</documentation>
		</part>
		<part name="SurveyIDList" type="tns:IDList">
			<documentation>
				Optional survey filter (internal ids).
			</documentation>
		</part>
		<part name="UserIDList" type="tns:IDList">
			<documentation>
				Optional user filter (owner ids).
			</documentation>
		</part>
		<part name="TaskTypeIDList" type="tns:TaskTypeIDList">
			<documentation>
				Optional task type filter (use TaskTypeEnum values).
			</documentation>
		</part>
		<part name="PeriodIDList" type="tns:IDList">
			<documentation>
				Optional period filter.
			</documentation>
		</part>
	</message>
	<message name="ListTasksResponse">
		<part name="Result" type="tns:SurveyTaskListWithErrors">
			<documentation>
				Tasks found along with validation errors for invalid inputs.
			</documentation>
		</part>
	</message>
	<message name="SaveTasksRequest">
		<part name="TasksToSave" type="tns:SurveyTaskList">
			<documentation>
				Tasks to create/update (must reference existing surveys and valid task types).
			</documentation>
		</part>
	</message>
	<message name="SaveTasksResponse">
		<part name="Result" type="tns:SurveyTaskListWithErrors">
			<documentation>
				Saved tasks plus TaskError codes for any validation/persistence issues (E-SC-/W-SC-*, ERR_267-ERR_277).
			</documentation>
		</part>
	</message>
	
	<message name="DeleteTaskRequest">
		<part name="TaskId" type="xsd:int">
			<documentation>
				Task id (&gt;0) to delete/reset.
			</documentation>
		</part>
	</message>
	<message name="DeleteTaskResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if task was removed/undefined; false when the task is missing or already undefined.
			</documentation>
		</part>
	</message>
	<message name="GetSessionForUserRequest">
		<part name="UserId" type="xsd:string">
			<documentation>
				User identifier (per IdType) to authenticate.
			</documentation>
		</part>
		<part name="IdType" type="tns:UserIdType">
			<documentation>
				How to interpret UserId.
			</documentation>
		</part>
	</message>
	<message name="GetSessionForUserResponse">
		<part name="SessionModel" type="tns:UserSession">
			<documentation>
				Issued session (id, server url, start page).
			</documentation>
		</part>
	</message>
	<message name="GetCourseTypesRequest">
		<part name="OnlyModuleCourseTypes" type="xsd:boolean">
			<documentation>
				True to return only course types used for modules.
			</documentation>
		</part>
	</message>
	<message name="GetCourseTypesResponse">
		<part name="CourseTypeList" type="tns:CourseTypeList">
			<documentation>
				Available course types.
			</documentation>
		</part>
	</message>
	<message name="CreatePdfReportDefinitionRequest">
		<part name="PDFReportDefinition" type="tns:PDFReportDefinition">
			<documentation>
				Definition to create (form-bound).
			</documentation>
		</part>
		<part name="PDFReportDefinitionCreationMode" type="tns:PDFDefinitionCreationMode">
			<documentation>
				Creation mode controlling overwrite/append behavior.
			</documentation>
		</part>
	</message>
	<message name="GetCourseRequest">
		<part name="CourseId" type="xsd:string">
			<documentation>
				Course identifier (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:CourseIdType">
			<documentation>
				How to interpret CourseId.
			</documentation>
		</part>
		<part name="IncludeSurveys" type="xsd:boolean">
			<documentation>
				Include survey list if true.
			</documentation>
		</part>
		<part name="IncludeParticipants" type="xsd:boolean">
			<documentation>
				Include participant list if true.
			</documentation>
		</part>
	</message>
	<message name="GetCourseResponse">
		<part name="Course" type="tns:Course">
			<documentation>
				Course with optional children depending on flags.
			</documentation>
		</part>
	</message>
	<message name="DeleteCourseRequest">
		<part name="CourseId" type="xsd:string">
			<documentation>
				Course identifier (per IdType) to delete.
			</documentation>
		</part>
		<part name="IdType" type="tns:CourseIdType">
			<documentation>
				How to interpret CourseId.
			</documentation>
		</part>
	</message>
	<message name="DeleteCourseResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if course (and children) deleted
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResponseDistributionRequest">
		<part name="SurveyIDs" type="tns:IDList">
			<documentation>
				Survey ids to analyze.
			</documentation>
		</part>
		<part name="OnlineResponses" type="xsd:boolean">
			<documentation>
				True to include online responses; false to include paper.
			</documentation>
		</part>
		<part name="GroupBySurveyId" type="xsd:boolean">
			<documentation>
				Group result counts by survey if true.
			</documentation>
		</part>
		<part name="DataAggregationUnit" type="tns:DateUnit">
			<documentation>
				Aggregation interval (day/week/month).
			</documentation>
		</part>
		<part name="StartTime" type="xsd:dateTime">
			<documentation>
				Start of time window (ISO 8601).
			</documentation>
		</part>
		<part name="EndTime" type="xsd:dateTime">
			<documentation>
				End of time window (ISO 8601).
			</documentation>
		</part>
	</message>
	<message name="CreatePdfReportDefinitionResponse">
		<part name="CreatedPdfReportDefinitionId" type="xsd:int">
			<documentation>
				Generated id for created PDF report definition.
			</documentation>
		</part>
	</message>
	<message name="GetPswdsByRecipientRequest">
		<part name="UserMailAddress" type="xsd:string">
			<documentation>
				Email of recipient whose PSWDs should be returned.
			</documentation>
		</part>
		<part name="IncludeUsed" type="xsd:boolean">
			<documentation>
				Include already used PSWDs if true.
			</documentation>
		</part>
		<part name="IncludeUsedOfOpenSurveys" type="xsd:boolean">
			<documentation>
				When IncludeUsed is true, also include used PSWDs of open surveys.
			</documentation>
		</part>
	</message>
	<message name="GetPswdsByRecipientResponse">
		<part name="ObjectList" type="tns:OnlineCodeList">
			<documentation>
				Online codes assigned to the recipient.
			</documentation>
		</part>
	</message>
	<message name="GetPercentOfCompletedSurveysByParticipantRequest">
		<part name="UserMailAddress" type="xsd:string">
			<documentation>
				Participant email to evaluate.
			</documentation>
		</part>
		<part name="StartDate" type="xsd:string">
			<documentation>
				Start date (YYYY-MM-DD recommended).
			</documentation>
		</part>
		<part name="EndDate" type="xsd:string">
			<documentation>
				End date (YYYY-MM-DD recommended).
			</documentation>
		</part>
		<part name="SubunitId" type="xsd:string">
			<documentation>
				Optional subunit filter (per IdType).
			</documentation>
		</part>
		<part name="IdType" type="tns:SubunitIdType">
			<documentation>
				How to interpret SubunitId.
			</documentation>
		</part>
	</message>
	<message name="GetPercentOfCompletedSurveysByParticipantResponse">
		<part name="Percentage" type="xsd:int">
			<documentation>
				Percentage (0-100) of completed surveys.
			</documentation>
		</part>
	</message>
	<message name="GetAccessibleSubunitsForSubunitAdminRequest">
		<part name="nUserId" type="xsd:int">
			<documentation>
				Subunit administrator user id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetAccessibleSubunitsForSubunitAdminResponse">
		<part name="UnitList" type="tns:UnitList">
			<documentation>
				Subunits the user can administer.
			</documentation>
		</part>
	</message>
	<message name="UploadVolumeLicenseRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0) owning the license.
			</documentation>
		</part>
		<part name="LicenseKey" type="xsd:string">
			<documentation>
				License key string (not used on standard systems).
			</documentation>
		</part>
	</message>
	<message name="UploadVolumeLicenseResponse">
		<part name="License" type="tns:VolumeLicense">
			<documentation>
				Uploaded license information (if feature enabled).
			</documentation>
		</part>
	</message>
	<message name="GetUserVolumeLicensesRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetUserVolumeLicensesResponse">
		<part name="Licenses" type="tns:VolumeLicenseList">
			<documentation>
				Volume licenses assigned to the user (empty on standard systems).
			</documentation>
		</part>
	</message>
	<message name="DeleteVolumeLicenseRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0).
			</documentation>
		</part>
		<part name="LicenseId" type="xsd:int">
			<documentation>
				License id (&gt;0).
			</documentation>
		</part>
		<part name="LicenseKey" type="xsd:string">
			<documentation>
				License key (string) to verify delete.
			</documentation>
		</part>
	</message>
	<message name="DeleteVolumeLicenseResponse">
		<part name="deleteStatus" type="xsd:boolean">
			<documentation>
				True if license was deleted.
			</documentation>
		</part>
	</message>
	<message name="ReplaceAnswersToOpenQuestionsRequest">
		<part name="SurveyIDList" type="tns:IDList">
			<documentation>
				Surveys whose open answers should be replaced.
			</documentation>
		</part>
		<part name="ItemCodeList" type="tns:StringList">
			<documentation>
				Item codes (question identifiers) to target.
			</documentation>
		</part>
		<part name="sReplaceComment" type="xsd:string">
			<documentation>
				Replacement text to store for all targeted answers.
			</documentation>
		</part>
	</message>
	<message name="ReplaceAnswersToOpenQuestionsResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if all replacements succeeded.
			</documentation>
		</part>
	</message>
	<message name="GetSurveyOriginalScansPDFRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			</documentation>
		</part>
		<part name="SheetId" type="xsd:int">
			<documentation>
				Optional sheet id to restrict output (0 for all).
			
			</documentation>
		</part>
		<part name="BatchId" type="xsd:int">
			<documentation>
				Optional scan batch id (0 for latest).
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyOriginalScansPDFResponse">
		<part name="PDFLink" type="xsd:string">
			<documentation>
				Download link to original scans PDF.
			
			</documentation>
		</part>
	</message>
	<message name="GetWebscanBatchListRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0) who uploaded batches.
			
			</documentation>
		</part>
		<part name="Language" type="xsd:string">
			<documentation>
				Language abbreviation for status messages.
			
			</documentation>
		</part>
		<part name="BatchStatusIDList" type="tns:IDList">
			<documentation>
				Optional batch status ids to filter.
			
			</documentation>
		</part>
	</message>
	<message name="GetWebscanBatchListResponse">
		<part name="WebscanBatchList" type="tns:WebscanBatchList">
			<documentation>
				List of webscan batches for the user.
			
			</documentation>
		</part>
	</message>
	<message name="ApplyActionOnWebscanBatchRequest">
		<part name="BatchId" type="xsd:int">
			<documentation>
				Batch id (&gt;0).
			
			</documentation>
		</part>
		<part name="Action" type="xsd:int">
			<documentation>
				Action id (as provided by GetWebscanBatchList).
			
			</documentation>
		</part>
	</message>
	<message name="ApplyActionOnWebscanBatchResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if the action was applied.
			
			</documentation>
		</part>
	</message>
	<message name="SoapfaultMessage">
		<!-- This must remain as element, as it's used as a fault -->
		<part name="return" element="tns:tSoapfault"/>
	</message>
	<message name="SetFormActivationStatusRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
		<part name="ActivationStatus" type="xsd:boolean">
			<documentation>
				True to activate, false to deactivate.
			
			</documentation>
		</part>
	</message>
	<message name="SetFormActivationStatusResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if activation state was updated.
			
			</documentation>
		</part>
	</message>
	<message name="InsertCourseTypeRequest">
		<part name="Name" type="xsd:string">
			<documentation>
				Course type name (required).
			
			</documentation>
		</part>
		<part name="ModuleFormId" type="xsd:int">
			<documentation>
				Optional module form id to link (&gt;0).
			
			</documentation>
		</part>
		<part name="AddConnectionToForms" type="xsd:boolean">
			<documentation>
				Automatically connect course type to existing forms if true.
			
			</documentation>
		</part>
		<part name="ExternalId" type="xsd:string">
			<documentation>
				Optional external identifier.
			
			</documentation>
		</part>
	</message>
	<message name="InsertCourseTypeResponse">
		<part name="CourseType" type="tns:CourseType">
			<documentation>
				Created course type.
			
			</documentation>
		</part>
	</message>
	<message name="ResetSurveyRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) whose results should be cleared.
			
			</documentation>
		</part>
	</message>
	<message name="ResetSurveyResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if reset succeeded (all results removed).
			
			</documentation>
		</part>
	</message>
	<message name="PrefillDataIntoOnlineSurveyRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="FieldValueList" type="tns:KeyValueList">
			<documentation>
				Key/value pairs matching field names/item codes to prefill.
			
			</documentation>
		</part>
		<part name="PSWDList" type="tns:StringList">
			<documentation>
				Optional list of PSWDs to prefill; empty applies to all PSWDs.
			
			</documentation>
		</part>
	</message>
	<message name="PrefillDataIntoOnlineSurveyResponse">
		<part name="PSWDsCount" type="xsd:int">
			<documentation>
				Number of PSWD records updated with prefilled data.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyInformationByParamsRequest">
		<part name="Params" type="tns:SurveyParams">
			<documentation>
				Filter parameters (name, units, instructors, period, form, status, etc.).
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyInformationByParamsResponse">
		<part name="SurveyInformation" type="tns:StringList">
			<documentation>
				Survey ids (and optional extended info if requested).
			
			</documentation>
		</part>
	</message>
	<message name="AssignVolumeToSubunitRequest">
		<part name="SubunitId" type="xsd:int">
			<documentation>
				Subunit id (&gt;0) receiving quota/volume.
			
			</documentation>
		</part>
		<part name="Volume" type="xsd:int">
			<documentation>
				Volume/quota amount to assign (non-negative).
			
			</documentation>
		</part>
	</message>
	<message name="AssignVolumeToSubunitResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if assignment succeeded.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) to delete (deletes connected surveys).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if form deletion succeeded.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateCourseTypeRequest">
		<part name="CourseTypeId" type="xsd:int">
			<documentation>
				Existing course type id (&gt;0).
			
			</documentation>
		</part>
		<part name="Name" type="xsd:string">
			<documentation>
				New course type name.
			
			</documentation>
		</part>
		<part name="ModuleFormId" type="xsd:int">
			<documentation>
				Optional module form id to link (&gt;0).
			
			</documentation>
		</part>
		<part name="AddConnectionToForms" type="xsd:boolean">
			<documentation>
				Connect to existing forms if true.
			
			</documentation>
		</part>
		<part name="ExternalId" type="xsd:string">
			<documentation>
				External identifier (optional).
			
			</documentation>
		</part>
	</message>
	<message name="UpdateCourseTypeResponse">
		<part name="CourseType" type="tns:CourseType">
			<documentation>
				Updated course type.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteCourseTypeRequest">
		<part name="CourseTypeId" type="xsd:int">
			<documentation>
				Course type id (&gt;0) to delete.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteCourseTypeResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if deletion succeeded.
			
			</documentation>
		</part>
	</message>
	<message name="GetFiltersByFormIdRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) to read filters from.
			
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Optional survey id (&gt;0) to prefer survey-level filters; 0/omitted uses form-level.
			
			</documentation>
		</part>
	</message>
	<message name="GetFiltersByFormIdResponse">
		<part name="FilterSets" type="tns:FilterSetList">
			<documentation>
				Filters controlling item visibility.
			
			</documentation>
		</part>
	</message>
	<message name="SetFiltersForFormRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) for storing filters.
			
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Optional survey id (&gt;0) to store survey-specific filters; 0 for form-level.
			
			</documentation>
		</part>
		<part name="FilterSets" type="tns:FilterSetList">
			<documentation>
				Filter sets defining conditions for items/groups.
			
			</documentation>
		</part>
	</message>
	<message name="SetFiltersForFormResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if filters were saved.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFiltersByFormIdRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Optional survey id (&gt;0) to delete survey-level filters; 0 deletes form-level filters.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFiltersByFormIdResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if filters were removed.
			
			</documentation>
		</part>
	</message>
	<message name="AddEMailsToQueueRequest">
		<part name="Mails" type="tns:MailList">
			<documentation>
				Emails to enqueue (subject/body/recipients set per entry).
			
			</documentation>
		</part>
	</message>
	<message name="AddEMailsToQueueResponse">
		<part name="Mails" type="tns:MailList">
			<documentation>
				Emails accepted into the queue (may include processing flags).
			
			</documentation>
		</part>
	</message>
	
	<message name="GetVerifierInfoBySurveyRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) to check verification info.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoBySurveyResponse">
		<part name="VerifierSurvey" type="tns:VerifierSurvey">
			<documentation>
				Verifier information for the survey.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoBySerialNumberRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="SerialNumber" type="xsd:int">
			<documentation>
				Serial number on the sheet/card.
			
			</documentation>
		</part>
		<part name="SerialNumberCounter" type="xsd:int">
			<documentation>
				Serial number counter (if used) for disambiguation.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoBySerialNumberResponse">
		<part name="VerifierSurvey" type="tns:VerifierSurvey">
			<documentation>
				Verification data for the given serial number.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoByParticipantRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="ParticipantIdentifier" type="xsd:string">
			<documentation>
				Identifier (email/custom field depending on survey) for participant.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoByParticipantResponse">
		<part name="VerifierSurvey" type="tns:VerifierSurvey">
			<documentation>
				Verification data for the participant.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoByBatchRequest">
		<part name="BatchId" type="xsd:int">
			<documentation>
				Batch identifier (&gt;0).
			
			</documentation>
		</part>
		<part name="BatchIdType" type="tns:BatchIdType">
			<documentation>
				Defines whether BatchId refers to webscan or readerscan id.
			
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) for context.
			
			</documentation>
		</part>
	</message>
	<message name="GetVerifierInfoByBatchResponse">
		<part name="VerifierBatch" type="tns:VerifierBatch">
			<documentation>
				Verification details for the batch.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserSessionInfoRequest">
		<part name="SessionId" type="xsd:string">
			<documentation>
				Existing session id/token.
			
			</documentation>
		</part>
		<part name="ResumeSession" type="xsd:boolean">
			<documentation>
				True to re-open a suspended session if possible.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserSessionInfoResponse">
		<part name="UserSessionInfo" type="tns:UserSessionInfo">
			<documentation>
				Session details and user info.
			
			</documentation>
		</part>
	</message>
	<message name="GetConfigurationInfoRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0) whose configuration should be read.
			
			</documentation>
		</part>
	</message>
	<message name="GetConfigurationInfoResponse">
		<part name="ConfigurationInfo" type="tns:KeyValueList">
			<documentation>
				Key/value pairs of user-specific configuration.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllConfigurationInfoRequest">
	</message>
	<message name="GetAllConfigurationInfoResponse">
		<part name="ConfigurationInfoList" type="tns:AllConfigurationGroup">
			<documentation>
				System-wide configuration grouped by category.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormsRequest">
		<part name="FormIDList" type="tns:IDList">
			<documentation>
				Form ids to delete (cascades to surveys).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormsResponse">
		<part name="FormsDeletionInfo" type="tns:KeyValueList">
			<documentation>
				Per-form deletion result (id → status/message).
			
			</documentation>
		</part>
	</message>
	<message name="GetUserByLoginRequest">
		<part name="Login" type="xsd:string">
			<documentation>
				Username/login of the user.
			
			</documentation>
		</part>
		<part name="Password" type="xsd:string">
			<documentation>
				Clear-text password for authentication.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserByLoginResponse">
		<part name="User" type="tns:User">
			<documentation>
				User object if credentials valid.
			
			</documentation>
		</part>
	</message>
	<message name="GetEvaluationSummaryByParticipantRequest">
		<part name="ParticipantMailAddress" type="xsd:string">
			<documentation>
				Email address of the participant.
			
			</documentation>
		</part>
		<part name="SurveyTypes" type="xsd:string">
			<documentation>
				Pipe-separated survey type codes to include (empty defaults to online/hybrid/paper).
			
			</documentation>
		</part>
		<part name="SurveyOpenState" type="xsd:int">
			<documentation>
				0=open surveys only, 1=closed surveys only, other/null=all.
			
			</documentation>
		</part>
	</message>
	<message name="GetEvaluationSummaryByParticipantResponse">
		<part name="SurveySummaryList" type="tns:SurveySummaryList">
			<documentation>
				Summary per survey including participation status.
			
			</documentation>
		</part>
	</message>
	<message name="GetPdfReportDefinitionRequest">
		<part name="PDFReportDefinitionId" type="xsd:int">
			<documentation>
				PDF report definition id (&gt;0).
			
			</documentation>
		</part>
	</message>
	<message name="GetPdfReportDefinitionResponse">
		<part name="PDFReportDefinition" type="tns:PDFReportDefinition">
			<documentation>
				Report definition details.
			
			</documentation>
		</part>
	</message>
	<message name="GetPdfReportDefinitionsByFormIdRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) whose report definitions should be listed.
			
			</documentation>
		</part>
	</message>
	<message name="GetPdfReportDefinitionsByFormIdResponse">
		<part name="PDFReportDefinitionList" type="tns:PDFReportDefinitionList">
			<documentation>
				Report definitions bound to the form.
			
			</documentation>
		</part>
	</message>
	<message name="GetFormTranslationsRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
	</message>
	<message name="GetFormTranslationsResponse">
		<part name="FormTranslationList" type="tns:FormTranslationList">
			<documentation>
				Available translations for the form and items.
			
			</documentation>
		</part>
	</message>
	<message name="GetFormAndOptionTranslationsRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
	</message>
	<message name="GetFormAndOptionTranslationsResponse">
		<part name="DetailedFormTranslation" type="tns:FormTranslationWithItemDetailList">
			<documentation>
				Translations including options/pole labels.
			
			</documentation>
		</part>
	</message>
	<message name="GetQualityGuidelinesConfigForFormsRequest">
		<part name="FormIDList" type="tns:IDList">
			<documentation>
				Forms to fetch quality guideline configuration for.
			
			</documentation>
		</part>
	</message>
	<message name="GetQualityGuidelinesConfigForFormsResponse">
		<part name="QualityGuidelinesConfigForForms" type="tns:QualityGuidelinesConfigForFormList">
			<documentation>
				Guideline configuration per form.
			
			</documentation>
		</part>
	</message>
	<message name="GetQualityGuidelinesForSurveysRequest">
		<part name="SurveyIDList" type="tns:IDList">
			<documentation>
				Survey ids to fetch guideline evaluation for.
			
			</documentation>
		</part>
	</message>
	<message name="GetQualityGuidelinesForSurveysResponse">
		<part name="QualityGuidelinesForSurveys" type="tns:QualityGuidelinesForSurveyList">
			<documentation>
				Applied guideline results per survey.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserByIdConsiderExternalIDRequest">
		<part name="UserId" type="xsd:string">
			<documentation>
				User identifier (internal/external/login) based on IdType.
			
			</documentation>
		</part>
		<part name="IdType" type="tns:UserIdType">
			<documentation>
				How to interpret UserId.
			
			</documentation>
		</part>
		<part name="IncludeCourses" type="xsd:boolean">
			<documentation>
				Include primary courses if true.
			
			</documentation>
		</part>
		<part name="IncludeSurveys" type="xsd:boolean">
			<documentation>
				Include surveys if true.
			
			</documentation>
		</part>
		<part name="IncludeParticipants" type="xsd:boolean">
			<documentation>
				Include participants if true.
			
			</documentation>
		</part>
		<part name="IncludeSecondaryCourses" type="xsd:boolean">
			<documentation>
				Include secondary instructor courses if true.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserByIdConsiderExternalIDResponse">
		<part name="User" type="tns:UserList">
			<documentation>
				User(s) matching the identifier.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllTextTemplateIDsRequest">
	</message>
	<message name="GetAllTextTemplateIDsResponse">
		<part name="TextTemplateIDs" type="tns:StringList">
			<documentation>
				Ids of all text templates available.
			
			</documentation>
		</part>
	</message>
	<message name="GetTextTemplateByIdRequest">
		<part name="TextTemplateId" type="xsd:string">
			<documentation>
				Template id/name.
			
			</documentation>
		</part>
		<part name="FormId" type="xsd:int">
			<documentation>
				Optional form id to resolve form-specific template (0 for global).
			
			</documentation>
		</part>
	</message>
	<message name="GetTextTemplateByIdResponse">
		<part name="TextTemplateList" type="tns:TextTemplateList">
			<documentation>
				Matching templates (language variants).
			
			</documentation>
		</part>
	</message>
	<message name="GetPswdSummaryRequest">
		<part name="Pswd" type="xsd:string">
			<documentation>
				PSWD/online code to summarize.
			
			</documentation>
		</part>
	</message>
	<message name="GetPswdSummaryResponse">
		<part name="PwsdSummary" type="tns:PwsdSummary">
			<documentation>
				Usage summary of the PSWD.
			
			</documentation>
		</part>
	</message>
	<message name="GetFoldersByUserIdRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0) whose folders to list.
			
			</documentation>
		</part>
	</message>
	<message name="GetFoldersByUserIdResponse">
		<part name="Folders" type="tns:FolderList">
			<documentation>
				Folder hierarchy accessible to the user.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllSurveysByFolderIdRequest">
		<part name="FolderId" type="xsd:int">
			<documentation>
				Folder id (&gt;0).
			
			</documentation>
		</part>
	</message>
	<message name="GetAllSurveysByFolderIdResponse">
		<part name="SurveyList" type="tns:SurveyList">
			<documentation>
				Surveys contained in the folder.
			
			</documentation>
		</part>
	</message>
	<message name="GetIndicatorsByFormIdRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Optional survey id for survey-specific indicators.
			
			</documentation>
		</part>
	</message>
	<message name="GetIndicatorsByFormIdResponse">
		<part name="IndicatorList" type="tns:IndicatorList">
			<documentation>
				Indicators (group aggregates) for the form/survey.
			
			</documentation>
		</part>
	</message>
	<message name="SaveCustomUserSettingRequest">
		<part name="SettingKey" type="xsd:string">
			<documentation>
				Custom setting key (string identifier).
			
			</documentation>
		</part>
		<part name="SettingValue" type="xsd:string">
			<documentation>
				Value to store (stringified).
			
			</documentation>
		</part>
	</message>
	<message name="SaveCustomUserSettingResponse">
		<part name="ActionResponse" type="xsd:string">
			<documentation>
				Status text (e.g., OK or error message).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteCustomUserSettingRequest">
		<part name="SettingKey" type="xsd:string">
			<documentation>
				Custom setting key to delete.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteCustomUserSettingResponse">
		<part name="ActionResponse" type="xsd:string">
			<documentation>
				Status text (e.g., OK or error message).
			
			</documentation>
		</part>
	</message>
	<message name="GetCustomUserSettingRequest">
		<part name="SettingKey" type="xsd:string">
			<documentation>
				Custom setting key to fetch.
			
			</documentation>
		</part>
	</message>
	<message name="GetCustomUserSettingResponse">
		<part name="CustomUserSetting" type="tns:CustomUserSetting">
			<documentation>
				Requested setting (key/value pair).
			
			</documentation>
		</part>
	</message>
	<message name="GetCustomUserSettingsListRequest">
	</message>
	<message name="GetCustomUserSettingsListResponse">
		<part name="CustomUserSettingsList" type="tns:CustomUserSettingsList">
			<documentation>
				All custom settings for the current user.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyNoticesRequest">
		<part name="SurveyId" type="xsd:integer">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyNoticesResponse">
		<part name="NoticeList" type="tns:NoticeList">
			<documentation>
				All notices for the survey.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateSurveyNoticeRequest">
		<part name="NoticeId" type="xsd:integer">
			<documentation>
				Notice id (&gt;0) to update.
			
			</documentation>
		</part>
		<part name="Text" type="xsd:string">
			<documentation>
				Updated notice text.
			
			</documentation>
		</part>
		<part name="UpdateDate" type="xsd:boolean">
			<documentation>
				Update the timestamp to now if true.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateSurveyNoticeResponse">
		<part name="Notice" type="tns:Notice">
			<documentation>
				Updated notice.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyNoticeRequest">
		<part name="NoticeId" type="xsd:integer">
			<documentation>
				Notice id (&gt;0) to delete.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyNoticeResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if notice removed.
			
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyRawDataRequest">
		<part name="SurveyId" type="xsd:integer">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="StartTime" type="xsd:dateTime">
			<documentation>
				Result start timestamp (ISO 8601).
			
			</documentation>
		</part>
		<part name="EndTime" type="xsd:dateTime">
			<documentation>
				Result end timestamp (ISO 8601).
			
			</documentation>
		</part>
		<part name="UseExportValues" type="xsd:boolean">
			<documentation>
				Interpret answers as export values rather than raw positions if true.
			
			</documentation>
		</part>
		<part name="SheetResults" type="tns:ItemAnswerListList">
			<documentation>
				List of sheet results to import (per participant/submission).
			
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyRawDataResponse">
		<part name="result" type="tns:SurveyStatus">
			<documentation>
				Resulting survey status after import.
			
			</documentation>
		</part>
	</message>
	<message name="GetLicenseInformationRequest">
	</message>
	<message name="GetLicenseInformationResponse">
		<part name="LicenseInformation" type="tns:KeyValueList">
			<documentation>
				License meta information (edition, expiry, modules).
			
			</documentation>
		</part>
	</message>
	<message name="GetDatabridgeTemplatesRequest">
	</message>
	<message name="GetDatabridgeTemplatesResponse">
		<part name="TemplateList" type="tns:DatabridgeTemplateList">
			<documentation>
				Available databridge templates.
			
			</documentation>
		</part>
	</message>
	
	<message name="TriggerDatabridgeImportRequest">
		<part name="templateId" type="xsd:integer">
			<documentation>
				Template id (&gt;0) to trigger.
			
			</documentation>
		</part>
	</message>
	<message name="TriggerDatabridgeImportResponse">
		<part name="dataUrl" type="xsd:string">
			<documentation>
				URL to import result/log file.
			
			</documentation>
		</part>
	</message>
	<message name="GetFormsInfoByParamsRequest">
		<part name="Params" type="tns:FormParams">
			<documentation>
				Filter parameters for forms (id/name/subunit/etc.).
			
			</documentation>
		</part>
	</message>
	<message name="GetFormsInfoByParamsResponse">
		<part name="FormInfos" type="tns:StringList">
			<documentation>
				List of form ids or extended info per request flags.
			
			</documentation>
		</part>
	</message>
	<message name="SetFormUsageRestrictionsRequest">
		<part name="FormId" type="xsd:integer">
			<documentation>
				Form id (&gt;0).
			
			</documentation>
		</part>
		<part name="UsageRestrictionList" type="tns:UsageRestrictionList">
			<documentation>
				Restrictions to apply (subunit/period/owner filters).
			
			</documentation>
		</part>
	</message>
	<message name="SetFormUsageRestrictionsResponse">
		<part name="UsageRestrictionList" type="tns:UsageRestrictionList">
			<documentation>
				Restrictions stored.
			
			</documentation>
		</part>
	</message>
	<message name="SendInvitationToParticipantsRequest">
		<part name="SurveyId" type="xsd:integer">
			<documentation>
				Survey id (&gt;0) to invite for.
			
			</documentation>
		</part>
		<part name="IsReminder" type="xsd:boolean">
			<documentation>
				True to send reminder invitations.
			
			</documentation>
		</part>
		<part name="ProgressIdPrefix" type="xsd:string">
			<documentation>
				Optional prefix for progress tracking identifiers.
			
			</documentation>
		</part>
	</message>
	<message name="SendInvitationToParticipantsResponse">
		<part name="Result" type="xsd:string">
			<documentation>
				Status text for invitation job.
			
			</documentation>
		</part>
	</message>
	
	<message name="GetSurveyResponseDistributionResponse">
		<part name="Result" type="tns:StringList">
			<documentation>
				Distribution data (per chosen aggregation) serialized as strings/JSON.
			
			</documentation>
		</part>
	</message>
	<message name="MoveSurveyToSubstituteUserRequest">
		<part name="SurveyID" type="xsd:integer">
			<documentation>
				Survey id (&gt;0) to reassign.
			
			</documentation>
		</part>
		<part name="SubstituteUserID" type="xsd:integer">
			<documentation>
				Target user id (&gt;0).
			
			</documentation>
		</part>
		<part name="SendReport" type="xsd:boolean">
			<documentation>
				Send report to substitute user after move if true.
			
			</documentation>
		</part>
		<part name="MoveCourse" type="xsd:boolean">
			<documentation>
				Move owning course as well if true.
			
			</documentation>
		</part>
	</message>
	<message name="MoveSurveyToSubstituteUserResponse">
		<part name="Result" type="xsd:string">
			<documentation>
				Status text.
			
			</documentation>
		</part>
	</message>
	<message name="GetUserIdsByParamsRequest">
		<part name="Params" type="tns:UserParams">
			<documentation>
				Filter parameters (name, unit, role, etc.).
			
			</documentation>
		</part>
	</message>
	<message name="GetUserIdsByParamsResponse">
		<part name="Users" type="tns:StringList">
			<documentation>
				Matching user ids/identifiers.
			
			</documentation>
		</part>
	</message>
	<message name="GetCourseIdsByParamsRequest">
		<part name="Params" type="tns:CourseParams">
			<documentation>
				Course filter parameters (name/code/program/etc.).
			
			</documentation>
		</part>
	</message>
	<message name="GetCourseIdsByParamsResponse">
		<part name="Courses" type="tns:StringList">
			<documentation>
				Course ids or JSON records if ExtendedResponseAsJSON was requested.
			
			</documentation>
		</part>
	</message>
	<message name="MoveUserRequest">
		<part name="UserID" type="xsd:integer">
			<documentation>
				User id (&gt;0) to move.
			
			</documentation>
		</part>
		<part name="TargetSubunitID" type="xsd:integer">
			<documentation>
				Destination subunit id (&gt;0).
			
			</documentation>
		</part>
		<part name="OverwriteSimilarUser" type="xsd:boolean">
			<documentation>
				True to overwrite matching user in target; false to create new.
			
			</documentation>
		</part>
	</message>
	<message name="MoveUserResponse">
		<part name="Success" type="xsd:string">
			<documentation>
				Status text (\"Success\" or error message).
			
			</documentation>
		</part>
	</message>
	<message name="GetReaderScanBatchListRequest">
		<part name="Params" type="tns:ReaderScanBatchParams">
			<documentation>
				Parameters (JSON-like) to filter reader scan batches.
			
			</documentation>
		</part>
	</message>
	<message name="GetReaderScanBatchListResponse">
		<part name="Success" type="tns:StringList">
			<documentation>
				JSON strings describing matching batches.
			
			</documentation>
		</part>
	</message>
	<message name="GetParticipationTrackingListRequest">
		<part name="Params" type="tns:ParticipationTrackingParams">
			<documentation>
				Filter parameters (JSON-like) for participation tracking.
			
			</documentation>
		</part>
	</message>
	<message name="GetParticipationTrackingListResponse">
		<part name="Success" type="tns:StringList">
			<documentation>
				JSON strings describing tracked participation.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResponseRateInformationRequest">
		<part name="Params" type="tns:IDList">
			<documentation>
				Survey ids to evaluate.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResponseRateInformationResponse">
		<part name="Success" type="tns:StringList">
			<documentation>
				Response rate info per survey/method (JSON strings).
			
			</documentation>
		</part>
	</message>
	<message name="SetFormTranslationsRequest">
		<part name="FormTranslationList" type="tns:FormTranslationList">
			<documentation>
				Translations to store (structure identical to GetFormTranslations response).
			
			</documentation>
		</part>
	</message>
	<message name="SetFormTranslationsResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if translations were saved.
			
			</documentation>
		</part>
	</message>
	<message name="SetFormMainLanguageRequest">
		<part name="FormMainLanguage" type="tns:FormMainLanguage">
			<documentation>
				Main language mapping to apply.
			
			</documentation>
		</part>
	</message>
	<message name="SetFormMainLanguageResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if main language updated.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllAvailableTransactionsByUserLoginRequest">
		<part name="SoapLoginName" type="xsd:string">
			<documentation>
				service login name to evaluate permissions for.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllAvailableTransactionsByUserLoginResponse">
		<part name="TransactionList" type="tns:KeyValueList">
			<documentation>
				Transaction name → allowed (true/false).
			
			</documentation>
		</part>
	</message>
	<message name="GetDataBySQLQueryRequest">
		<part name="Query" type="xsd:string">
			<documentation>
				SQL query string (internal use).
			
			</documentation>
		</part>
	</message>
	<message name="GetDataBySQLQueryResponse">
		<part name="QueryResponse" type="tns:StringList">
			<documentation>
				Result rows serialized as strings.
			
			</documentation>
		</part>
	</message>
	<message name="SetFormPropertiesRequest">
		<part name="FormProperties" type="tns:FormProperties">
			<documentation>
				Properties to update (name/title/activation/etc.).
			
			</documentation>
		</part>
	</message>
	<message name="SetFormPropertiesResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if properties saved.
			
			</documentation>
		</part>
	</message>
	<message name="SetGlobalConfigurationRequest">
		<part name="ConfigurationInfo" type="tns:KeyValueList">
			<documentation>
				Global configuration entries to set.
			
			</documentation>
		</part>
	</message>
	<message name="SetGlobalConfigurationResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if saved.
			
			</documentation>
		</part>
	</message>
	<message name="SetUserPasswordRequest">
		<part name="Login" type="xsd:string">
			<documentation>
				User login name.
			
			</documentation>
		</part>
		<part name="Password" type="xsd:string">
			<documentation>
				New password (plaintext).
			
			</documentation>
		</part>
	</message>
	<message name="SetUserPasswordResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if password updated.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllProgramsOfStudyRequest">
		<part name="SubunitIds" type="tns:IDList">
			<documentation>
				Optional subunit ids to limit results.
			
			</documentation>
		</part>
	</message>
	<message name="GetAllProgramsOfStudyResponse">
		<part name="ProgramOfStudies" type="tns:StringList">
			<documentation>
				Programs of study names.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateGroupTitlesRequest">
		<part name="FormId" type="xsd:string">
			<documentation>
				Form identifier (per IdType) whose module group titles change.
			
			</documentation>
		</part>
		<part name="IdType" type="tns:FormIdType">
			<documentation>
				How to interpret FormId.
			
			</documentation>
		</part>
		<part name="ModuleFields" type="tns:KeyValueList">
			<documentation>
				Field name → new title mappings.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateGroupTitlesResponse">
		<part name="Response" type="xsd:boolean">
			<documentation>
				True if titles were updated.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateProfileImageRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0).
			
			</documentation>
		</part>
		<part name="ProfileImagePath" type="xsd:string">
			<documentation>
				URL or local path to image (empty string removes image).
			
			</documentation>
		</part>
	</message>
	<message name="UpdateProfileImageResponse">
		<part name="Response" type="xsd:boolean">
			<documentation>
				True if image updated/removed.
			
			</documentation>
		</part>
	</message>
	<message name="GetEntitiesByKeywordRequest">
		<part name="Keyword" type="xsd:string">
			<documentation>
				Search keyword (supports [*] wildcard).
			
			</documentation>
		</part>
		<part name="EntityList" type="tns:EntityList">
			<documentation>
				Entities to search within.
			
			</documentation>
		</part>
	</message>
	<message name="GetEntitiesByKeywordResponse">
		<part name="Entities" type="tns:StringList">
			<documentation>
				List of matching entity descriptors.
			
			</documentation>
		</part>
	</message>
	<message name="GetSoapUsageRequest">
		<part name="SoapUsageParams" type="tns:SoapUsageParams">
			<documentation>
				Parameters (from/to timestamps, login filter) for usage statistics.
			
			</documentation>
		</part>
	</message>
	<message name="GetSoapUsageResponse">
		<part name="Response" type="tns:StringList">
			<documentation>
				Usage metrics per user/transaction.
			
			</documentation>
		</part>
	</message>
	<message name="GetExtendedCsvExportRequest">
		<part name="SurveyIds" type="tns:IDList">
			<documentation>
				Survey ids to export.
			
			</documentation>
		</part>
	</message>
	<message name="GetExtendedCsvExportResponse">
		<part name="HyperLink" type="xsd:string">
			<documentation>
				Download link to ZIP with CSV exports.
			
			</documentation>
		</part>
	</message>
	<message name="AnonymizeParticipantsRequest">
		<part name="ParticipantEmails" type="tns:EmailAddressList">
			<documentation>
				Email addresses/identifiers to anonymize globally.
			
			</documentation>
		</part>
	</message>
	<message name="AnonymizeParticipantsResponse">
		<part name="Response" type="xsd:boolean">
			<documentation>
				True if anonymization executed.
			
			</documentation>
		</part>
	</message>
	<message name="AnonymizeSurveyParticipantsRequest">
		<part name="SurveyIds" type="tns:IDList">
			<documentation>
				Surveys whose participants should be anonymized.
			
			</documentation>
		</part>
	</message>
	<message name="AnonymizeSurveyParticipantsResponse">
		<part name="Response" type="tns:AnonymizationStatusList">
			<documentation>
				Status per survey (success/error per participant).
			
			</documentation>
		</part>
	</message>
	<message name="GetFormCategoriesRequest">
		<part name="FormCategoryParams" type="tns:FormCategoryRequestParams">
			<documentation>
				Filter parameters (form ids, items) for categories.
			
			</documentation>
		</part>
	</message>
	<message name="GetFormCategoriesResponse">
		<part name="FormCategory" type="tns:FormCategory">
			<documentation>
				Category definitions for the requested form/items.
			
			</documentation>
		</part>
	</message>
	<message name="SaveFormCategoriesRequest">
		<part name="FormCategory" type="tns:FormCategory">
			<documentation>
				Categories to insert/update for a form.
			
			</documentation>
		</part>
	</message>
	<message name="SaveFormCategoriesResponse">
		<part name="FormCategory" type="tns:FormCategory">
			<documentation>
				Stored categories.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormCategoriesRequest">
		<part name="FormCategory" type="tns:FormCategory">
			<documentation>
				Categories/items to delete (empty to delete all for form).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteFormCategoriesResponse">
		<part name="FormCategory" type="tns:FormCategory">
			<documentation>
				Deleted categories/items.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyCategoriesRequest">
		<part name="SurveyCategoryParams" type="tns:SurveyCategoryRequestParams">
			<documentation>
				Survey/category filter parameters.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyCategoriesResponse">
		<part name="SurveyCategory" type="tns:SurveyCategory">
			<documentation>
				Assigned categories for survey answers.
			
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyCategoriesRequest">
		<part name="SurveyCategory" type="tns:SurveyCategory">
			<documentation>
				Category assignments to insert.
			
			</documentation>
		</part>
	</message>
	<message name="InsertSurveyCategoriesResponse">
		<part name="SurveyCategory" type="tns:SurveyCategory">
			<documentation>
				Stored assignments.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyCategoriesRequest">
		<part name="SurveyCategory" type="tns:SurveyCategory">
			<documentation>
				Assignments to delete (empty removes all for survey).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteSurveyCategoriesResponse">
		<part name="SurveyCategory" type="tns:SurveyCategory">
			<documentation>
				Deleted assignments.
			
			</documentation>
		</part>
	</message>
	<message name="DestroySessionForUserRequest">
		<part name="UserId" type="xsd:int">
			<documentation>
				User id (&gt;0) whose sessions should be destroyed.
			
			</documentation>
		</part>
	</message>
	<message name="DestroySessionForUserResponse">
		<part name="result" type="xsd:boolean">
			<documentation>
				True if session removed.
			
			</documentation>
		</part>
	</message>
	<message name="SaveComparisonDataRequest">
		<part name="ComparisonDataSet" type="tns:ComparisonDataSet">
			<documentation>
				Comparison dataset to insert/update (name must be unique per form).
			
			</documentation>
		</part>
	</message>
	<message name="SaveComparisonDataResponse">
		<part name="ComparisonDataSet" type="tns:ComparisonDataSet">
			<documentation>
				Stored dataset.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteComparisonDataRequest">
		<part name="CompDataId" type="xsd:int">
			<documentation>
				Comparison dataset id (&gt;0) to delete.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteComparisonDataResponse">
		<part name="Response" type="xsd:boolean">
			<documentation>
				True if dataset removed.
			
			</documentation>
		</part>
	</message>
	<message name="GetComparisonDataRequest">
		<part name="CompDataId" type="xsd:int">
			<documentation>
				Comparison dataset id (&gt;0) to fetch.
			
			</documentation>
		</part>
	</message>
	<message name="GetComparisonDataResponse">
		<part name="ComparisonDataSet" type="tns:ComparisonDataSet">
			<documentation>
				Comparison dataset details.
			
			</documentation>
		</part>
	</message>
	<message name="AssignComparisonDataRequest">
		<part name="Request" type="tns:ComparisonDataFormAssignments">
			<documentation>
				Assignments of dataset/report to form/period/subunit.
			
			</documentation>
		</part>
	</message>
	<message name="AssignComparisonDataResponse">
		<part name="Response" type="xsd:boolean">
			<documentation>
				True if assignments persisted.
			
			</documentation>
		</part>
	</message>
	<message name="GetComparisonDataAssignmentsRequest">
		<part name="FormId" type="xsd:int">
			<documentation>
				Form id (&gt;0) whose assignments are requested.
			
			</documentation>
		</part>
	</message>
	<message name="GetComparisonDataAssignmentsResponse">
		<part name="Response" type="tns:ComparisonDataFormAssignments">
			<documentation>
				Assignments for the form.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteOldLogEntriesRequest">
		<part name="DaysOfRetention" type="xsd:int">
			<documentation>
				Delete log entries older than this number of days (&gt;=0).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteOldLogEntriesResponse">
		<part name="Response" type="tns:tSoapfault">
			<documentation>
				Fault/result information (null on success).
			
			</documentation>
		</part>
	</message>
	
	<message name="DeleteOldActivityLogEntriesRequest">
		<part name="DaysOfRetention" type="xsd:int">
			<documentation>
				Delete activity logs older than this number of days (&gt;=0).
			
			</documentation>
		</part>
		<part name="transactionList" type="tns:StringList">
			<documentation>
				Optional transaction names to restrict deletion.
			
			</documentation>
		</part>
	</message>
	<message name="DeleteOldActivityLogEntriesResponse">
		<part name="Response" type="tns:tSoapfault">
			<documentation>
				Fault/result information (null on success).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteOldDeliveriesRequest">
		<part name="DaysOfRetention" type="xsd:int">
			<documentation>
				Delete delivery log entries older than this number of days (&gt;=0).
			
			</documentation>
		</part>
	</message>
	<message name="DeleteOldDeliveriesResponse">
		<part name="Response" type="tns:tSoapfault">
			<documentation>
				Fault/result information (null on success).
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResultsBulkRequest">
		<part name="SurveyIds" type="tns:IDList">
			<documentation>
				Survey ids to process.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyResultsBulkResponse">
		<part name="SurveyResults" type="tns:SurveyResultList">
			<documentation>
				Statistical results per survey.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataBulkRequest">
		<part name="SurveyIds" type="tns:IDList">
			<documentation>
				Survey ids to fetch.
			
			</documentation>
		</part>
		<part name="IncludeOpenEndedQuestions" type="xsd:boolean">
			<documentation>
				Include open text answers if true.
			
			</documentation>
		</part>
		<part name="ResultIDs" type="tns:IDList">
			<documentation>
				Optional explicit result ids per survey (exclusive with ResultRangeIDs).
			
			</documentation>
		</part>
		<part name="ExtendedResultInfo" type="xsd:boolean">
			<documentation>
				Include timestamps/source info if true.
			
			</documentation>
		</part>
		<part name="ResultRangeIDs" type="xsd:string">
			<documentation>
				Optional range \"start-end\" per survey; cannot combine with ResultIDs.
			
			</documentation>
		</part>
	</message>
	<message name="GetSurveyRawDataBulkResponse">
		<part name="SurveyRawDataList" type="tns:SurveyRawDataList">
			<documentation>
				Raw data list per survey.
			
			</documentation>
		</part>
	</message>
	<message name="GetOnlineQRCodeRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0) for single-password QR code.
			
			</documentation>
		</part>
	</message>
	<message name="GetOnlineQRCodeResponse">
		<part name="QrCodeLink" type="xsd:string">
			<documentation>
				Download link to QR code image.
			
			</documentation>
		</part>
	</message>
	<message name="GetSubunitLogosRequest">
	</message>
	<message name="GetSubunitLogosResponse">
		<part name="SubunitLogoList" type="tns:SubunitLogoList">
			<documentation>
				Logos per subunit.
			
			</documentation>
		</part>
	</message>
	<message name="UpdateSubunitRequest">
		<part name="Unit" type="tns:Unit">
			<documentation>
				Subunit to update (identified by id/external id).
			
			</documentation>
		</part>
	</message>
	<message name="UpdateSubunitResponse">
		<part name="Unit" type="tns:Unit">
			<documentation>
				Updated subunit.
			
			</documentation>
		</part>
	</message>
	<message name="GetHtmlReportLinkRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="IsPermanentLink" type="xsd:boolean">
			<documentation>
				True for permanent link; false for 20-minute link.
			
			</documentation>
		</part>
	</message>
	<message name="GetHtmlReportLinkResponse">
		<part name="Link" type="xsd:string">
			<documentation>
				URL to HTML report.
			
			</documentation>
		</part>
	</message>
	<message name="SendResultAccessMailToParticipantsRequest">
		<part name="SurveyId" type="xsd:int">
			<documentation>
				Survey id (&gt;0).
			
			</documentation>
		</part>
		<part name="MailInformation" type="tns:MailInformation">
			<documentation>
				Mail content/settings for participant notifications.
			
			</documentation>
		</part>
	</message>
	<message name="SendResultAccessMailToParticipantsResponse">
		<part name="Send" type="tns:StringList">
			<documentation>
				Recipient identifiers successfully sent.
			
			</documentation>
		</part>
		<part name="Failed" type="tns:StringList">
			<documentation>
				Recipient identifiers that failed to send.
			
			</documentation>
		</part>
	</message>
	<message name="ResetPswdRequest">
		<part name="PSWD" type="xsd:string">
			<documentation>
				PSWD/online code to reset (non-anonymous surveys only).
			
			</documentation>
		</part>
	</message>
	<message name="ResetPswdResponse">
		<part name="Success" type="xsd:boolean">
			<documentation>
				True if PSWD was reset to unused.
			
			</documentation>
		</part>
	</message>
	<message name="GetSystemLanguagesRequest">
	</message>
	<message name="GetSystemLanguagesResponse">
		<part name="LanguageList" type="tns:LanguageList">
			<documentation>
				Configured system languages.
			
			</documentation>
		</part>
	</message>
	<message name="GetAddressesRequest">
	</message>
	<message name="GetAddressesResponse">
		<part name="AddressList" type="tns:AddressList">
			<documentation>
				Available addresses (mail profiles) in the system.
			</documentation>
		</part>
	</message>
	<message name="GetReportConfigurationRequest">
		<part name="ReportId" type="xsd:int">
			<documentation>
				Report id (&gt;0).
			</documentation>
		</part>
	</message>
	<message name="GetReportConfigurationResponse">
		<part name="ReportConfiguration" type="tns:ReportConfiguration">
			<documentation>
				Configuration details for the report.
			</documentation>
		</part>
	</message>
	<message name="GetReportListRequest">
	</message>
	<message name="GetReportListResponse">
		<part name="ReportList" type="tns:ReportList">
			<documentation>
				All available report templates.
			
			</documentation>
		</part>
	</message>
	<message name="GetOrganisationLogoRequest">
	</message>
	<message name="GetOrganisationLogoResponse">
		<part name="OrganisationLogo" type="tns:OrganisationLogo">
			<documentation>
				Organisation logo image data/meta.
			
			</documentation>
		</part>
	</message>
	<message name="GetResultChangesForSurveysRequest">
		<part name="SurveyIDList" type="tns:IDList">
			<documentation>
				Surveys to retrieve result change history for.
			
			</documentation>
		</part>
	</message>
	<message name="GetResultChangesForSurveysResponse">
		<part name="ResultChangesForSurveys" type="tns:ResultChangesForSurveyList">
			<documentation>
				Change records per survey.
			
			</documentation>
		</part>
	</message>
	<message name="ExecuteTaskRequest">
		<part name="TaskId" type="xsd:int">
			<documentation>
				Task id (&gt;0) to schedule for immediate execution.
			
			</documentation>
		</part>
	</message>
	<message name="ExecuteTaskResponse"/>
	<portType name="SoapPort">
		<operation name="RequestTicket">
			<documentation>
				Gets a ticket string which can be used for further service communication with the web server ("ticket"
				in the service header). The ticket has a lifetime of 20 minutes and gets invalid if there is no
				transaction using the ticket. Alternatively it is possible to use the credentials ("login" + "password")
				directly in the service header.
			
			</documentation>
			<input message="tns:RequestTicketRequest"/>
			<output message="tns:RequestTicketResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPswdsByParticipant">
			<documentation>
				Returns unused online access codes (PSWD) for the shown email address and course code (aka. ID) in the
				period of the current date. The course code is optional. If it is empty all courses are considered.
				Closed surveys are ignored. The participant needs to be assigned to the corresponding course. If the
				survey has survey tasks, there will only be a result if the open survey task is not open, the invite
				participants task was already executed or there is no invite participants task and the close survey task
				is still open. Optionally, the given value for the user mail address can be matched against a custom
				field (1-3) of the participant.
			
			</documentation>
			<input message="tns:GetPswdsByParticipantRequest"/>
			<output message="tns:GetPswdsByParticipantResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteUnusedPswds">
			<documentation>
				Deletes the presented passwords from the database and returns a list of the deleted PSWDs. Only unused
				PSWDs are deleted -&gt; this is why the deleted PSWDs are returned.
			
			</documentation>
			<input message="tns:DeleteUnusedPswdsRequest"/>
			<output message="tns:DeleteUnusedPswdsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUser">
			<documentation>
				Returns user, referenced by his internal user ID, an external ID which was imported previously into the
				system or a user name. If no user is found, an error is returned. The boolean variables determine if the
				parent object user will also contain the child objects course, survey and participant.
			
			</documentation>
			<input message="tns:GetUserRequest"/>
			<output message="tns:GetUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUsersBySubunit">
			<documentation>
				Returns all users of the subunit of the type instructor. The boolean variables determine if the parent
				object user will also contain the child objects course, survey and participant.
			
			</documentation>
			<input message="tns:GetUsersBySubunitRequest"/>
			<output message="tns:GetUsersBySubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllPeriods">
			<documentation>
				Returns all defined evaluation periods, sorted by date.
			
			</documentation>
			<input message="tns:GetAllPeriodsRequest"/>
			<output message="tns:GetAllPeriodsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateUser">
			<documentation>
				Updates the presented user in the database. Please note: Child objects, like courses, will not be
				updated by this method. Please use the method "InsertCourses" for mass import/update of course and
				instructor data.
			
			</documentation>
			<input message="tns:UpdateUserRequest"/>
			<output message="tns:UpdateUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCoursesByUserId">
			<documentation>
				Returns all courses for the specified user (ID). Returns an error, if the user has no courses.
			
			</documentation>
			<input message="tns:GetCoursesByUserIdRequest"/>
			<output message="tns:GetCoursesByUserIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCourse">
			<documentation>
				Returns the course, referenced by the internal course ID, the external ID which was imported previously
				or the editable course ID. The boolean variables decide if the parent object "Course" also contains the
				child objects "Survey" and "Participant".
			
			</documentation>
			<input message="tns:GetCourseRequest"/>
			<output message="tns:GetCourseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertCourse">
			<documentation>
				Inserts the presented course into the database. Please note: 1) Child objects of type "Survey" will not
				be imported by this method. Please use the method "InsertCentralSurvey" for inserting surveys. 2) Child
				objects of type "Participant" have to be imported accordingly. Please use the method
				"InsertCentralSurvey" for inserting surveys, too.
			
			</documentation>
			<input message="tns:InsertCourseRequest"/>
			<output message="tns:InsertCourseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetOnlinePreview">
			<documentation>
				Creates a link to show the preview of an online survey. If a survey ID is submitted, the questionnaire
				is shown in the context of the survey, otherwise, the form preview is shown.
			
			</documentation>
			<input message="tns:GetOnlinePreviewRequest"/>
			<output message="tns:GetOnlinePreviewResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateCourse">
			<documentation>
				Updates the presented course in the database. Please note: 1) Child objects of type "Survey" will not be
				updated by this method. An update of existing surveys is not possible at all. 2) New course participants
				should be given by the 4th parameter . In order to delete existing participants prior to the import of
				new participants, the second parameter has to be set to "true". Participants of existing surveys will
				not be affected by this function.
			
			</documentation>
			<input message="tns:UpdateCourseRequest"/>
			<output message="tns:UpdateCourseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPeriod">
			<documentation>
				Returns a period referenced by its period ID, period name or period date (format YYYY-MM-DD).
			
			</documentation>
			<input message="tns:GetPeriodRequest"/>
			<output message="tns:GetPeriodResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllForms">
			<documentation>
				Returns all active forms of all users stored in the system. Restrictions can be used to get forms e.g.
				of specific subunits.
			
			</documentation>
			<input message="tns:GetAllFormsRequest"/>
			<output message="tns:GetAllFormsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyTypes">
			<documentation>
				Survey types are hard-coded single characters and will never be changed. Due to performance reasons, it
				is not recommended to call this transaction continuously in live systems.
			
			</documentation>
			<input message="tns:GetSurveyTypesRequest"/>
			<output message="tns:GetSurveyTypesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFormByCourseIdAndPeriodId">
			<documentation>
				Forms can be assigned to specific course types and periods in the system. Use this transaction to get
				the "approved" forms for a course.
			
			</documentation>
			<input message="tns:GetFormByCourseIdAndPeriodIdRequest"/>
			<output message="tns:GetFormByCourseIdAndPeriodIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetForm">
			<documentation>
				Returns the questionnaire/form referenced by its internal form ID or the questionnaire short name. The
				objects returned include all question groups and questions. Secondary questionnaire properties such as
				filter settings are not included. If the parameter "IncludeOnlyQuestions" is true, only questions will
				be returned and no layout elements like free text, horizontal lines, etc.. If the parameter
				"SkipPoleLabelsInheritance" is true, scaled questions will not inherit the pole lables of prior
				(extended) pole labels fields automatically.
			
			</documentation>
			<input message="tns:GetFormRequest"/>
			<output message="tns:GetFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyById">
			<documentation>
				Returns the survey referenced by its survey ID.
			
			</documentation>
			<input message="tns:GetSurveyByIdRequest"/>
			<output message="tns:GetSurveyByIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveysByCourse">
			<documentation>
				One course can have more than one survey in different periods or with different forms. To reduce the
				number of surveys, it is possible to set the parameters for the form and the period. Possible values for
				m_nState in SurveyList:&lt;br/&gt;0: Ready (waiting for data)&lt;br/&gt;1: Data available&lt;br/&gt;2:
				Data deleted&lt;br/&gt;4: Quantity of data too low&lt;br/&gt;5: data capturing&lt;br/&gt;6: Verification
			
			</documentation>
			<input message="tns:GetSurveysByCourseRequest"/>
			<output message="tns:GetSurveysByCourseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateSurvey">
			<documentation>
				Updates the displayed survey in the database. Please note: This method has to be used very carefully.
				Incorrect usage could cause several problems including data loss. Use "OpenSurvey" and "CloseSurvey"
				instead.
			
			</documentation>
			<input message="tns:UpdateSurveyRequest"/>
			<output message="tns:UpdateSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="CloseSurvey">
			<documentation>
				Closes the survey referenced by its survey ID -&gt; further data collection is not possible for this
				survey.
			
			</documentation>
			<input message="tns:CloseSurveyRequest"/>
			<output message="tns:CloseSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="OpenSurvey">
			<documentation>
				Opens the survey referenced by its survey ID -&gt; data collection is possible for this survey.
			
			</documentation>
			<input message="tns:OpenSurveyRequest"/>
			<output message="tns:OpenSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPswdsBySurvey">
			<documentation>
				Returns the online access codes (PSWD) for the displayed survey ID encapsulated in a OnlineCode object.
				If the second parameter is 0, the predefined PSWDs will be returned. Should the number of requested
				PSWDs exceed the number of existing PSWDs, this method automatically creates new PSWDs by default. All
				PSWDs are set to "sent" by default.
			
			</documentation>
			<input message="tns:GetPswdsBySurveyRequest"/>
			<output message="tns:GetPswdsBySurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="IsPswdUnused">
			<documentation>
				Checks whether the password shown is unused.
			
			</documentation>
			<input message="tns:IsPswdUnusedRequest"/>
			<output message="tns:IsPswdUnusedResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertCentralSurvey">
			<documentation>
				Creates a new survey for central evaluation based on internal IDs.
			
			</documentation>
			<input message="tns:InsertCentralSurveyRequest"/>
			<output message="tns:InsertCentralSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetupCentralSurvey">
			<documentation>
				Creates a new survey for central evaluation based on given objects. This method also inserts the
				subunit, user and course objects if they do not already exist.
			
			</documentation>
			<input message="tns:SetupCentralSurveyRequest"/>
			<output message="tns:SetupCentralSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPDFReport">
			<documentation>
				Creates the PDF report for a survey and returns a hyperlink to the document. "onlyIfSurveyTasksAllowIt"
				will hold back the report, until the "SendResultsToInstructorsTask" is planned to execute. If
				"SendResultsToInstructorsTask" does not exist, but "CloseSurveyTask" does, that task is considered
				instead. The default for it is "false".
			
			</documentation>
			<input message="tns:GetPDFReportRequest"/>
			<output message="tns:GetPDFReportResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="CreatePDFReportByData">
			<documentation>
				Creates the PDF report from the given Data without havin the survey or forms in the system and returns a
				hyperlink to the document.
			
			</documentation>
			<input message="tns:CreatePDFReportByDataRequest"/>
			<output message="tns:CreatePDFReportByDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSubunits">
			<documentation>
				Gets all subunits which are stored in the database.
			
			</documentation>
			<input message="tns:GetSubunitsRequest"/>
			<output message="tns:GetSubunitsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSubunit">
			<documentation>
				Gets a subunit by the name presented. Note: In the system it is possible to have two or more subunits
				with the same name, but in this function, we only return the first. The boolean variable determines
				whether the parent object "subunit" will also contain child objects of the type "user".
			
			</documentation>
			<input message="tns:GetSubunitRequest"/>
			<output message="tns:GetSubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertUser">
			<documentation>
				Inserts the user shown into the database. Please note: Child objects like courses will not be inserted
				by this method. Please use the method "InsertCourses" in order to mass import/update course and
				instructor data.
			
			</documentation>
			<input message="tns:InsertUserRequest"/>
			<output message="tns:InsertUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertSubunit">
			<documentation>
				Inserts the presented subunit into the database. Please note: Child objects of type "User" will not be
				inserted by this method. Please use the method "InsertCourses" for mass import of course and instructor
				data.
			
			</documentation>
			<input message="tns:InsertSubunitRequest"/>
			<output message="tns:InsertSubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertCourses">
			<documentation>
				Transaction for mass structure data uploads. The transaction determines whether the presented courses
				and instructors already exist in the system and performs an INSERT or UPDATE operation. This method
				provides the opportunity to upload multiple instructors (first instructor will be setup as main
				instructor) as well as a list of course participants. Since V5.0 this method includes the following
				sub-functions: - Create surveys - Configure scheduled tasks for online surveys - Send email with PDF
				questionnaire to defined email address - Send email invitation for online surveys to given participants
			
			</documentation>
			<input message="tns:InsertCoursesRequest"/>
			<output message="tns:InsertCoursesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPDFPluginsByFormId">
			<documentation>
				This transaction returns a list of all available PDF Plugins for the presented form ID.
			
			</documentation>
			<input message="tns:GetPDFPluginsByFormIdRequest"/>
			<output message="tns:GetPDFPluginsByFormIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPDFQuestionnaire">
			<documentation>
				Creates a PDF questionnaire and returns the hyperlink to the file. If a survey ID is submitted, the
				questionnaire is personalized for the survey and can be used for scanning (hard copy procedure). For
				coversheet procedure, the second parameter should not be set.
			
			</documentation>
			<input message="tns:GetPDFQuestionnaireRequest"/>
			<output message="tns:GetPDFQuestionnaireResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPDFCoversheet">
			<documentation>
				Creates a PDF coversheet and returns the hyperlink to the file. The coversheet is personalized for the
				survey and can be used for scanning (coversheet procedure).
			
			</documentation>
			<input message="tns:GetPDFCoversheetRequest"/>
			<output message="tns:GetPDFCoversheetResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPDFPswd">
			<documentation>
				Creates a PDF with the PSWDs (cards) and returns the hyperlink to the file.
			
			</documentation>
			<input message="tns:GetPDFPswdRequest"/>
			<output message="tns:GetPDFPswdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSentPswdsForHybridSurveys">
			<documentation>
				Creates a PDF with the already sent PSWDs (cards) for only hybrid surveys and returns the hyperlink to
				the file.
			
			</documentation>
			<input message="tns:GetSentPswdsForHybridSurveysRequest"/>
			<output message="tns:GetSentPswdsForHybridSurveysResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCSVRawData">
			<documentation>
				Creates the CSV export file of the survey and returns the link to the file. The optional parameter
				ExcludeParticipantPersonalData can be used to suppress personal data for non-anonymous surveys.
			
			</documentation>
			<input message="tns:GetCSVRawDataRequest"/>
			<output message="tns:GetCSVRawDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSPSSRawData">
			<documentation>
				Creates the SPSS export file of the survey and returns the link to the file. The optional parameter
				ExcludeParticipantPersonalData can be used to suppress personal data for non-anonymous surveys.
			
			</documentation>
			<input message="tns:GetSPSSRawDataRequest"/>
			<output message="tns:GetSPSSRawDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteUser">
			<documentation>
				Deletes a user including all (!) child elements (courses, surveys, survey results, etc.).
			
			</documentation>
			<input message="tns:DeleteUserRequest"/>
			<output message="tns:DeleteUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteCourse">
			<documentation>
				Deletes a course including all (!) child elements (surveys, survey results, etc.).
			
			</documentation>
			<input message="tns:DeleteCourseRequest"/>
			<output message="tns:DeleteCourseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteSubunit">
			<documentation>
				Deletes a subunit including all (!) child elements (users, courses, surveys, survey results, etc.).
			
			</documentation>
			<input message="tns:DeleteSubunitRequest"/>
			<output message="tns:DeleteSubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteSurvey">
			<documentation>
				Deletes a survey including all (!) child elements (survey results, etc.).
			
			</documentation>
			<input message="tns:DeleteSurveyRequest"/>
			<output message="tns:DeleteSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyRawData">
			<documentation>
				Creates an object which includes all sheet results (raw data) of the given survey. The SurveyRawData
				object also contains the survey object. The answers to open ended questions can optionally be included
				and in case of non-anonymous surveys the timestamp and the source of data may be included.
			
			</documentation>
			<input message="tns:GetSurveyRawDataRequest"/>
			<output message="tns:GetSurveyRawDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyResults">
			<documentation>
				Creates an object which includes all statistical results for all questions and question groups
				(indicators) of the given survey. The SurveyResultRawData object also contains the survey object.
				Statistical results include: Response count, mean, median, standard deviation, frequency distribution,
				abstention count, normed mean.
			
			</documentation>
			<input message="tns:GetSurveyResultsRequest"/>
			<output message="tns:GetSurveyResultsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertForm">
			<documentation>
				This method inserts a complete form/questionnaire into the database. The object returned contains the
				given internal database keys. The owner of the form will always be the main administrator. Notes: &lt;ul&gt;&lt;li&gt;An
				update of existing forms is not possible.&lt;/li&gt;&lt;li&gt;Deleting forms via service is not
				possible.&lt;/li&gt;&lt;li&gt;The form elements "Picture" and "Double scaled question" are not yet
				supported by this transaction.&lt;/li&gt;&lt;/ul&gt;
			
			</documentation>
			<input message="tns:InsertFormRequest"/>
			<output message="tns:InsertFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetOnlineSurveyLinkByEmail">
			<documentation>
				Returns a link to the online survey for the presented email address and the internal survey ID. In order
				to automatically link the recipient to the survey, the parameter "AddRecipientToSurvey" should be set to
				"true". If this parameter is set to "false" and the recipient is not already linked to the survey, this
				function will return an error. The 4th parameter determines if new PSWDs are to be created in case not
				enough PSWDs were predefined. Optionally with SetPSWDToSent (default - true) it can be defined that the
				PSWD is not directly marked as "sent".
			
			</documentation>
			<input message="tns:GetOnlineSurveyLinkByEmailRequest"/>
			<output message="tns:GetOnlineSurveyLinkByEmailResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertParticipants">
			<documentation>
				This method accepts anonymous participants (email must be set) and non-anonymous participants (other
				person properties can be set). With the boolean parameter, it is possible to remove all existing course
				participants before the new given participants are added. Please note: It is also possible to include
				the participants into the course object and to call either "InsertCourse" or "UpdateCourse".
			
			</documentation>
			<input message="tns:InsertParticipantsRequest"/>
			<output message="tns:InsertParticipantsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCustomReportsByForm">
			<documentation>
				The operation returns a list of available PDF report definitions of a given form.
			
			</documentation>
			<input message="tns:GetCustomReportsByFormRequest"/>
			<output message="tns:GetCustomReportsByFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSimpleForm">
			<documentation>
				Returns a simplified version of the form referenced to by the form ID.
			
			</documentation>
			<input message="tns:GetSimpleFormRequest"/>
			<output message="tns:GetSimpleFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetVFD">
			<documentation>
				The function exports a form into an .vfd (=VFD/VividForms form definition file ) file and returns a link
				to it.
			
			</documentation>
			<input message="tns:GetVFDRequest"/>
			<output message="tns:GetVFDResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyRawDataByTime">
			<documentation>
				Returns raw result data of all surveys that received results in the defined timeframe. The returned
				results are not limited to the defined timeframe. All results of the relevant surveys will be returned.
			
			</documentation>
			<input message="tns:GetSurveyRawDataByTimeRequest"/>
			<output message="tns:GetSurveyRawDataByTimeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertSurveyNotice">
			<documentation>
				Inserts a notice to a survey for a specified user. The user can be referenced by internal (PK), external
				(FK) or login (username).
			
			</documentation>
			<input message="tns:InsertSurveyNoticeRequest"/>
			<output message="tns:InsertSurveyNoticeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertModules">
			<documentation>
				Inserts a group of modules (that can contain groups of courses) into the system, It supports both
				Inserting and Updating of the data. It is also able to create a module-survey on them. The function
				determines if the courses are already in the system and then calls the UpdateCourse method. This method
				includes the following sub-functions: - Insert module participants - Insert secondary instructors -
				Create surveys - Configure scheduled tasks for online surveys - Send email with PDF questionnaire to
				defined email address - Send email invitation for online surveys to given participants
			
			</documentation>
			<input message="tns:InsertModulesRequest"/>
			<output message="tns:InsertModulesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurvey">
			<documentation>
				Enables/disables extending of the questionnaire of a specific survey with additional questions.
				Additionally it is possible to remind the instructor, that he is able to customize the questionnaire. If
				the second parameter is set to true, the instructor is provided with an information email, that contains
				a link to the editing environment. This functionality is called Instructor's Optional Questions or
				"Meldemaskenverfahren" in German.
			
			</documentation>
			<input message="tns:ActivateOptionalQuestionsForSurveyRequest"/>
			<output message="tns:ActivateOptionalQuestionsForSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurveys">
			<documentation>
				Same as ActivateOptionalQuestionsForSurvey, but accepts a List/Array of SurveyIDs and therefore gives
				the possibility to enable, remind or disable optional questions for a group of surveys.
			
			</documentation>
			<input message="tns:ActivateOptionalQuestionsForSurveysRequest"/>
			<output message="tns:ActivateOptionalQuestionsForSurveysResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurveyAddQuestions">
			<documentation>
				Same as ActivateOptionalQuestionsForSurvey, but gives the opportunity to add some question groups and
				question directly with the same service operation.
			
			</documentation>
			<input message="tns:ActivateOptionalQuestionsForSurveyAddQuestionsRequest"/>
			<output message="tns:ActivateOptionalQuestionsForSurveyAddQuestionsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ListTasks">
			<documentation>
				Returns scheduled tasks filtered by optional Subunit/Form/Survey/User/TaskType/Period ID lists. Invalid
				IDs are ignored; an ID list containing only invalid values yields an empty result. Invalid TaskType
				values fault with ERR_263.
			
			</documentation>
			<input message="tns:ListTasksRequest"/>
			<output message="tns:ListTasksResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SaveTasks">
			<documentation>
				Updates survey tasks. Each task must belong to an existing survey and supported task type; running tasks
				are rejected. StartTime/Status are optional (Status uses TaskStatus 1-13); SurveyResultAccess must be
				-1/0/1/2 and placeholders must use the InstructorPlaceholder enum (1/2/3). Validation issues (invalid
				recipients/placeholders/dates/result access, missing surveys/users, running tasks) are returned as
				TaskError codes (E-SC-/W-SC-*, ERR_267-ERR_277) alongside the echoed tasks; only unexpected persistence
				errors fault with ERR_267.
			
			</documentation>
			<input message="tns:SaveTasksRequest"/>
			<output message="tns:SaveTasksResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteTask">
			<documentation>
				Removes a task (sets it to undefined). Returns false if the task does not exist or is already undefined;
				unexpected failures fault with ERR_261 (details are logged).
			
			</documentation>
			<input message="tns:DeleteTaskRequest"/>
			<output message="tns:DeleteTaskResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSessionForUser">
			<documentation>
				Returns a session for a given user ID. The session object contains the session ID, the server URL and
				the user start page. This method can be used to authenticate users via service.
			
			</documentation>
			<input message="tns:GetSessionForUserRequest"/>
			<output message="tns:GetSessionForUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SendResultAccessMailToParticipants">
			<documentation>
				Sends an information mail to participants of a survey, when they are allowed to view the report results.
				The survey and/or the form must be enabled for participant reports and the survey must be closed.
			
			</documentation>
			<input message="tns:SendResultAccessMailToParticipantsRequest"/>
			<output message="tns:SendResultAccessMailToParticipantsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCourseTypes">
			<documentation>
				Returns a list of course types. Optional only course types which are used for module evaluation.
			
			</documentation>
			<input message="tns:GetCourseTypesRequest"/>
			<output message="tns:GetCourseTypesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="CreatePdfReportDefinition">
			<documentation>
				PDF report definitions can be used to distribute full or partly survey reports to defined users. The PDF
				report definition is set up for a form. This method inserts the PDF report definitions for a form and
				returns the ID of the PDF report definition. The ID can be used in method "GetPDFReport".
			
			</documentation>
			<input message="tns:CreatePdfReportDefinitionRequest"/>
			<output message="tns:CreatePdfReportDefinitionResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPswdsByRecipient">
			<documentation>
				Returns unused (or, optional also used) online access codes (PSWD) for the shown email address. The
				access codes have to be sent out previously so that an access code is already assigned to the recipient.
				As default, closed surveys are ignored for unused, and open surveys are ignored for used PSWDs. With
				"IncludeUsedOfOpenSurveys", the used PSWDs of closed surveys are returned as well.
			
			</documentation>
			<input message="tns:GetPswdsByRecipientRequest"/>
			<output message="tns:GetPswdsByRecipientResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPercentOfCompletedSurveysByParticipant">
			<documentation>
				The method returns the percentage of surveys a participant has completed in a given time frame and
				subunit. This method considers anonymous and non-anonymous online surveys as well as non-anonymous paper
				surveys. The participant data need to be imported to a course prior to the survey creation.&lt;br/&gt;&lt;br/&gt;The
				following Surveys are considered:&lt;br/&gt;&lt;br/&gt;Surveys without scheduled tasks and a period
				which the start date of the given time frame is within the period.&lt;br/&gt;Surveys without scheduled
				tasks and a period which its start date is within the given time frame.&lt;br/&gt;&lt;br/&gt;For Surveys
				with scheduled tasks:&lt;br/&gt;&lt;br/&gt;When both first scheduled task and close survey task are
				defined then:&lt;br/&gt;The start date of the given time frame is within the tasks dates&lt;br/&gt;Or
				date of first task is within the given time frame.&lt;br/&gt;&lt;br/&gt;When only first scheduled task
				is defined then:&lt;br/&gt;Task start date should be before the end date of given time frame.&lt;br/&gt;&lt;br/&gt;When
				only last scheduled task (survey close) is defined then:&lt;br/&gt;Task should be ended after starting
				the given time frame.
			
			</documentation>
			<input message="tns:GetPercentOfCompletedSurveysByParticipantRequest"/>
			<output message="tns:GetPercentOfCompletedSurveysByParticipantResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAccessibleSubunitsForSubunitAdmin">
			<documentation>
				Returns all accessible subunits for the presented user id (only for subunit administrators).
			
			</documentation>
			<input message="tns:GetAccessibleSubunitsForSubunitAdminRequest"/>
			<output message="tns:GetAccessibleSubunitsForSubunitAdminResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UploadVolumeLicense">
			<documentation>
				This function doesn't work on a standard system. It is not possible to upload a volume license.
			
			</documentation>
			<input message="tns:UploadVolumeLicenseRequest"/>
			<output message="tns:UploadVolumeLicenseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUserVolumeLicenses">
			<documentation>
				This function doesn't work on a standard system. It is not possible to get a volume license.
			
			</documentation>
			<input message="tns:GetUserVolumeLicensesRequest"/>
			<output message="tns:GetUserVolumeLicensesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteVolumeLicense">
			<documentation>
				This function doesn't work on a standard system. It is not possible to delete a volume license.
			
			</documentation>
			<input message="tns:DeleteVolumeLicenseRequest"/>
			<output message="tns:DeleteVolumeLicenseResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ReplaceAnswersToOpenQuestions">
			<documentation>
				Updates answers to open questions with the provided comment.
			
			</documentation>
			<input message="tns:ReplaceAnswersToOpenQuestionsRequest"/>
			<output message="tns:ReplaceAnswersToOpenQuestionsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyOriginalScansPDF">
			<documentation>
				Create the original scans PDF for a survey / batch and return the link to the PDF.
			
			</documentation>
			<input message="tns:GetSurveyOriginalScansPDFRequest"/>
			<output message="tns:GetSurveyOriginalScansPDFResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetWebscanBatchList">
			<documentation>
				Get a list of all unfinished scan upload batches of a specific user. If specific batch-status-Ids are
				given(optional), then all batches with the given status will be delivered.
			
			</documentation>
			<input message="tns:GetWebscanBatchListRequest"/>
			<output message="tns:GetWebscanBatchListResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ApplyActionOnWebscanBatch">
			<documentation>
				Apply the given action on a scan upload batch. Possible actions are determined by calling the
				GetWebscanBatchList transaction.
			
			</documentation>
			<input message="tns:ApplyActionOnWebscanBatchRequest"/>
			<output message="tns:ApplyActionOnWebscanBatchResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFormActivationStatus">
			<documentation>
				Set the activation status of a form to activated or deactivated.
			
			</documentation>
			<input message="tns:SetFormActivationStatusRequest"/>
			<output message="tns:SetFormActivationStatusResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertCourseType">
			<documentation>
				Inserts a new course type. Optional it is possible to link to a module questionnaire.
			
			</documentation>
			<input message="tns:InsertCourseTypeRequest"/>
			<output message="tns:InsertCourseTypeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ResetSurvey">
			<documentation>
				Resets the data of a survey. All survey results are deleted!
			
			</documentation>
			<input message="tns:ResetSurveyRequest"/>
			<output message="tns:ResetSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="PrefillDataIntoOnlineSurvey">
			<documentation>
				Inserts data for an existing online survey. The data is stored like temporary save has been used. When
				the participant opens the survey, the participant can check the pre-filled data, complete the survey and
				submit the data. The PSWD and all IDs have to correct and there if there is already temporarily saved
				data, the function doesn't add or change anything.
			
			</documentation>
			<input message="tns:PrefillDataIntoOnlineSurveyRequest"/>
			<output message="tns:PrefillDataIntoOnlineSurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyInformationByParams">
			<documentation>
				Get a list of survey IDs by the given parameters (Name, Subunits, Instructors, Periods, Forms,
				CourseTypes, Courses, ProgramOfStudies, Statuses, Types). For the parameter "Name" a wildcard "[*]" may
				be used as a substitute for zero or more characters.
			
			</documentation>
			<input message="tns:GetSurveyInformationByParamsRequest"/>
			<output message="tns:GetSurveyInformationByParamsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyIDsByParams">
			<documentation>
				DEPRECATED: Please use GetSurveyInformationByParams instead
			
			</documentation>
			<input message="tns:GetSurveyInformationByParamsRequest"/>
			<output message="tns:GetSurveyInformationByParamsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="AssignVolumeToSubunit">
			<documentation>
				This method assigns volume to a subunit, which can be completely used by that subunit.
			
			</documentation>
			<input message="tns:AssignVolumeToSubunitRequest"/>
			<output message="tns:AssignVolumeToSubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteForm">
			<documentation>
				Deletes a form including all (!) belonging surveys and child elements (survey results, etc.).
			
			</documentation>
			<input message="tns:DeleteFormRequest"/>
			<output message="tns:DeleteFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateCourseType">
			<documentation>
				Updates an existing course type. Optional it is possible to link to a module questionnaire.
			
			</documentation>
			<input message="tns:UpdateCourseTypeRequest"/>
			<output message="tns:UpdateCourseTypeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteCourseType">
			<documentation>
				Deletes an existing course type.
			
			</documentation>
			<input message="tns:DeleteCourseTypeRequest"/>
			<output message="tns:DeleteCourseTypeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFiltersByFormId">
			<documentation>
				Get a list of filters for a specific form. The filters are used for hiding/deactivating questions in
				online surveys. The filters are also considered when paper-based surveys are processed. If a survey ID
				is given and filters on survey level are defined, the survey level filters are returned. No filters are
				returned if a survey ID is given but there are no filters on survey level. In that case filters on form
				level are ignored. There are 3 values available to define the filter action: 0 - disable; 1 - disable
				and hide; 2 - enable and show
			
			</documentation>
			<input message="tns:GetFiltersByFormIdRequest"/>
			<output message="tns:GetFiltersByFormIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFiltersForForm">
			<documentation>
				Set the filters for a specific form. Existing filters on form level are overwritten. The filters are
				used for hiding/deactivating questions in online surveys. The filters are also considered when
				paper-based surveys are processed. If a survey ID is given, the filters are overwritten on survey level.
				In that case the filters on form level are left untouched. There are 3 values available to define the
				filter action: 0 - disable; 1 - disable and hide; 2 - enable and show
			
			</documentation>
			<input message="tns:SetFiltersForFormRequest"/>
			<output message="tns:SetFiltersForFormResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteFiltersByFormId">
			<documentation>
				Delete all existing filters of a specific form. The filters are used for hiding/deactivating questions
				in online surveys. The filters are also considered when paper-based surveys are processed. If a survey
				ID is given and filters on survey level are defined, the survey level filters are deleted. In that case
				the filters on form level are left untouched.
			
			</documentation>
			<input message="tns:DeleteFiltersByFormIdRequest"/>
			<output message="tns:DeleteFiltersByFormIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="AddEMailsToQueue">
			<documentation>
				Add one or more emails to the queue. The emails are sent by the MailService tool.
			
			</documentation>
			<input message="tns:AddEMailsToQueueRequest"/>
			<output message="tns:AddEMailsToQueueResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		
		<operation name="GetVerifierInfoBySurvey">
			<documentation>
				Returns detailed information about the pending verification of the survey. There is data about the
				survey, batch, sheet, question and answer, including the coordinates of detected marks. With this data
				it is possible to monitor the verification or to get all data and continue an external process.
			
			</documentation>
			<input message="tns:GetVerifierInfoBySurveyRequest"/>
			<output message="tns:GetVerifierInfoBySurveyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetVerifierInfoBySerialNumber">
			<documentation>
				Returns detailed information about the pending verification of a single participant by serial number.
				There is data about the survey, batch, sheet, question and answer, including the coordinates of detected
				marks. With this data it is possible to monitor the verification or to get all data and continue an
				external process.
			
			</documentation>
			<input message="tns:GetVerifierInfoBySerialNumberRequest"/>
			<output message="tns:GetVerifierInfoBySerialNumberResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetVerifierInfoByParticipant">
			<documentation>
				Returns detailed information about the pending verification of a single participant by email address.
				There is data about the survey, batch, sheet, question and answer, including the coordinates of detected
				marks. With this data it is possible to monitor the verification or to get all data and continue an
				external process.
			
			</documentation>
			<input message="tns:GetVerifierInfoByParticipantRequest"/>
			<output message="tns:GetVerifierInfoByParticipantResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetVerifierInfoByBatch">
			<documentation>
				Returns detailed information about the pending verification of the batch. There is data about the
				survey, batch, sheet, question and answer, including the coordinates of detected marks. With this data
				it is possible to monitor the verification or to get all data and continue an external process.
			
			</documentation>
			<input message="tns:GetVerifierInfoByBatchRequest"/>
			<output message="tns:GetVerifierInfoByBatchResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUserSessionInfo">
			<documentation>
				Returns the relevant information for an existing session. Optionally the session can be resumed.
			
			</documentation>
			<input message="tns:GetUserSessionInfoRequest"/>
			<output message="tns:GetUserSessionInfoResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetConfigurationInfo">
			<documentation>
				Returns the relevant configuration options for an existing user.
			
			</documentation>
			<input message="tns:GetConfigurationInfoRequest"/>
			<output message="tns:GetConfigurationInfoResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllConfigurationInfo">
			<documentation>
				Returns the relevant configuration options for all subunits in the system as an array.
			
			</documentation>
			<input message="tns:GetAllConfigurationInfoRequest"/>
			<output message="tns:GetAllConfigurationInfoResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteForms">
			<documentation>
				Deletes a list of forms (max. 100). Only unused forms are deleted.
			
			</documentation>
			<input message="tns:DeleteFormsRequest"/>
			<output message="tns:DeleteFormsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUserByLogin">
			<documentation>
				Returns user, referenced by login and password. If no user is found or the password is wrong a message
				is shown. 3 invalid login attempts for a specific login, lead to a 15 min blockade.
			
			</documentation>
			<input message="tns:GetUserByLoginRequest"/>
			<output message="tns:GetUserByLoginResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetEvaluationSummaryByParticipant">
			<documentation>
				Returns a summary of evaluation (e.g. survey details, scheduled tasks details, link to online survey,
				participation status) for surveys to which a participant was assigned. This method considers anonymous
				and non-anonymous online surveys as well as non-anonymous paper surveys. The survey types can be limited
				with an optional parameter.
			
			</documentation>
			<input message="tns:GetEvaluationSummaryByParticipantRequest"/>
			<output message="tns:GetEvaluationSummaryByParticipantResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPdfReportDefinition">
			<documentation>
				PDF report definitions can be used to distribute full or partly survey reports to defined users. This
				method returns a PDF report definition for a form by the given ID.
			
			</documentation>
			<input message="tns:GetPdfReportDefinitionRequest"/>
			<output message="tns:GetPdfReportDefinitionResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPdfReportDefinitionsByFormId">
			<documentation>
				PDF report definitions can be used to distribute full or partly survey reports to defined users. This
				method returns a list of PDF report definitions by the given form ID.
			
			</documentation>
			<input message="tns:GetPdfReportDefinitionsByFormIdRequest"/>
			<output message="tns:GetPdfReportDefinitionsByFormIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFormTranslations">
			<documentation>
				This method returns a list of form translations by the given form ID.
			
			</documentation>
			<input message="tns:GetFormTranslationsRequest"/>
			<output message="tns:GetFormTranslationsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFormAndOptionTranslations">
			<documentation>
				This method returns a list of form translations by the given form ID. Additionally, it returns all
				translations of a question, considering pole labels.
			
			</documentation>
			<input message="tns:GetFormAndOptionTranslationsRequest"/>
			<output message="tns:GetFormAndOptionTranslationsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetQualityGuidelinesConfigForForms">
			<documentation>
				This method returns all quality guidelines for a given form IDs.
			
			</documentation>
			<input message="tns:GetQualityGuidelinesConfigForFormsRequest"/>
			<output message="tns:GetQualityGuidelinesConfigForFormsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetOrganisationLogo">
			<documentation>
				This method returns the image of the organisation as a base64 encoded string.
			
			</documentation>
			<input message="tns:GetOrganisationLogoRequest"/>
			<output message="tns:GetOrganisationLogoResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetQualityGuidelinesForSurveys">
			<documentation>
				This method the calculated quality guidelines for the given surveyids. If they cannot be calculated, an
				Error-Value will return the reason.
			
			</documentation>
			<input message="tns:GetQualityGuidelinesForSurveysRequest"/>
			<output message="tns:GetQualityGuidelinesForSurveysResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllTextTemplateIDs">
			<documentation>
				Returns a list of all available text templates in the system. The content for the text template can be
				requested with the transaction "GetTextTemplateById".
			
			</documentation>
			<input message="tns:GetAllTextTemplateIDsRequest"/>
			<output message="tns:GetAllTextTemplateIDsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetTextTemplateById">
			<documentation>
				Returns a text template by the given Id. Optionally by giving a form ID, the form specific text template
				is delivered. The result includes the text template contents for all system languages.
			
			</documentation>
			<input message="tns:GetTextTemplateByIdRequest"/>
			<output message="tns:GetTextTemplateByIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUserByIdConsiderExternalID">
			<documentation>
				Returns a list of system users, where all users in this list have the same external id referenced by an
				internal user ID, an external ID which was imported previously into the system or a the system user
				name. If no user is found, an error is returned. The Boolean variables determine if the parent object
				user will also contain the child objects course, survey and participant.
			
			</documentation>
			<input message="tns:GetUserByIdConsiderExternalIDRequest"/>
			<output message="tns:GetUserByIdConsiderExternalIDResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetPswdSummary">
			<documentation>
				Returns an object with summarized information for a given PSWD. The object contains the survey ID, the
				information if the PSWD was used and the participant object if isset.
			
			</documentation>
			<input message="tns:GetPswdSummaryRequest"/>
			<output message="tns:GetPswdSummaryResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFoldersByUserId">
			<documentation>
				Returns a list of all folders for the given user Id of an active user account. This transaction may also
				be used for getting access to the reports of a report creator account.
			
			</documentation>
			<input message="tns:GetFoldersByUserIdRequest"/>
			<output message="tns:GetFoldersByUserIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllSurveysByFolderId">
			<documentation>
				Returns a list of surveys for a given folder Id. This transaction may also be used for getting access to
				the reports of a report creator account.
			
			</documentation>
			<input message="tns:GetAllSurveysByFolderIdRequest"/>
			<output message="tns:GetAllSurveysByFolderIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetIndicatorsByFormId">
			<documentation>
				Returns a list of all indicators for a given form Id. As long as there no free indicators exist, the
				indicators for question groups with dimension values are returned. Optionally by giving a survey Id, the
				survey specific values for mean and standard deviation are delivered.
			
			</documentation>
			<input message="tns:GetIndicatorsByFormIdRequest"/>
			<output message="tns:GetIndicatorsByFormIdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SaveCustomUserSetting">
			<documentation>
				Inserts or updates a setting for the given key. The key can be up to 255 characters. The value can
				contain any text like JSON, array or simple text. The settings are bound to the current service user.
			
			</documentation>
			<input message="tns:SaveCustomUserSettingRequest"/>
			<output message="tns:SaveCustomUserSettingResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteCustomUserSetting">
			<documentation>
				Deletes a setting for the given key. The settings are bound to the current service user.
			
			</documentation>
			<input message="tns:DeleteCustomUserSettingRequest"/>
			<output message="tns:DeleteCustomUserSettingResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCustomUserSetting">
			<documentation>
				Gets a setting for the given key. The settings are bound to the current service user.
			
			</documentation>
			<input message="tns:GetCustomUserSettingRequest"/>
			<output message="tns:GetCustomUserSettingResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCustomUserSettingsList">
			<documentation>
				Returns a list of all settings. The settings are bound to the current service user.
			
			</documentation>
			<input message="tns:GetCustomUserSettingsListRequest"/>
			<output message="tns:GetCustomUserSettingsListResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyNotices">
			<documentation>
				Returns a list of all survey notices for the given survey ID.
			
			</documentation>
			<input message="tns:GetSurveyNoticesRequest"/>
			<output message="tns:GetSurveyNoticesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateSurveyNotice">
			<documentation>
				Updates a survey notice text by the given ID. Optionally the date is updated.
			
			</documentation>
			<input message="tns:UpdateSurveyNoticeRequest"/>
			<output message="tns:UpdateSurveyNoticeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteSurveyNotice">
			<documentation>
				Deletes a survey notice by the given ID.
			
			</documentation>
			<input message="tns:DeleteSurveyNoticeRequest"/>
			<output message="tns:DeleteSurveyNoticeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertSurveyRawData">
			<documentation>
				Inserts raw data for the given survey ID. Optionally the time span used for the date of each result can
				be set.
			
			</documentation>
			<input message="tns:InsertSurveyRawDataRequest"/>
			<output message="tns:InsertSurveyRawDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetLicenseInformation">
			<documentation>
				Returns a list of relevant license information, which might be used to distinguish between different
				system environments.
			
			</documentation>
			<input message="tns:GetLicenseInformationRequest"/>
			<output message="tns:GetLicenseInformationResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetDatabridgeTemplates">
			<documentation>
				Returns a list of active Data Bridge templates.
			
			</documentation>
			<input message="tns:GetDatabridgeTemplatesRequest"/>
			<output message="tns:GetDatabridgeTemplatesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="TriggerDatabridgeImport">
			<documentation>
				Triggers the import process for a specific Data Bridge template and returns the url of the file name
				with json serialised content.
			
			</documentation>
			<input message="tns:TriggerDatabridgeImportRequest"/>
			<output message="tns:TriggerDatabridgeImportResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFormsInfoByParams">
			<documentation>
				Returns a list of forms information by the given parameters (SelectedFields, Users, SearchQuery,
				IncludeFormsOfOtherSubunitAdministrators, IncludeStatus, IncludeDeactivatedForms, ExcludeActiveForms,
				FolderId, IncludeChildForms). For the parameter "SearchQuery" a wildcard "[*]" may be used as a
				substitute for zero or more characters. The SearchQuery searches in short name, description and IDs of
				the forms.
			
			</documentation>
			<input message="tns:GetFormsInfoByParamsRequest"/>
			<output message="tns:GetFormsInfoByParamsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFormUsageRestrictions">
			<documentation>
				Sets access of subunits, course types and periods to a specific form.
			
			</documentation>
			<input message="tns:SetFormUsageRestrictionsRequest"/>
			<output message="tns:SetFormUsageRestrictionsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SendInvitationToParticipants">
			<documentation>
				Sends out invitation or reminder mails to all participants of an online survey.
			
			</documentation>
			<input message="tns:SendInvitationToParticipantsRequest"/>
			<output message="tns:SendInvitationToParticipantsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyResponseDistribution">
			<documentation>
				Returns the distribution of responses (online or paper based) for one or more survey IDs. The list can
				be left blank in order to have a summary for the whole system. The data can either be grouped by survey
				ID or aggregated over all surveys. The time span can be limited by entering a start and / or an end
				time.
			
			</documentation>
			<input message="tns:GetSurveyResponseDistributionRequest"/>
			<output message="tns:GetSurveyResponseDistributionResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="MoveSurveyToSubstituteUser">
			<documentation>
				Moves a survey to a substitute user. The current PDF report can be sent to the substitute user. The
				course of the survey can be moved (if only one survey exists) or copied to the substitute user.
			
			</documentation>
			<input message="tns:MoveSurveyToSubstituteUserRequest"/>
			<output message="tns:MoveSurveyToSubstituteUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetUserIdsByParams">
			<documentation>
				Returns a list of user IDs by the given parameters (UserIds, Types, LoginName, ExternalID, Title,
				FirstName, SurName, UnitName, Email, Subunits, ActiveUsers). For the parameters LoginName, ExternalID,
				Title, FirstName, SurName, UnitName, or Email a wildcard "[*]" may be used as a substitute for zero or
				more characters. If ExtendedResponseAsJSON is set, a json string is returned with more information about
				the user. The result can be ordered by each returned field.
			
			</documentation>
			<input message="tns:GetUserIdsByParamsRequest"/>
			<output message="tns:GetUserIdsByParamsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetCourseIdsByParams">
			<documentation>
				Returns a list of course IDs by the given parameters (Name, CourseIds, Instructors, Subunits, Periods,
				CourseTypes, ProgramOfStudies, CourseCode, Room, ExternalID, CustomFieldEntry). For the parameters Name,
				ProgramOfStudies, CourseCode, Room, ExternalID or CustomFieldEntry a wildcard "[*]" may be used as a
				substitute for zero or more characters. If ExtendedResponseAsJSON is set, a json string is returned with
				more information about the course. The result can be ordered by each returned field.
			
			</documentation>
			<input message="tns:GetCourseIdsByParamsRequest"/>
			<output message="tns:GetCourseIdsByParamsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="MoveUser">
			<documentation>
				Moves the given user to another subunit. Subunit administrators cannot be moved. The parameter
				OverwriteSimilarUser defines what should happen with users that already exists in the target subunit
				(same title, first name, surname, unit name, user type). Should the user be moved as new user, or should
				the existing user be overwritten? Default: Move as new user.
			
			</documentation>
			<input message="tns:MoveUserRequest"/>
			<output message="tns:MoveUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetReaderScanBatchList">
			<documentation>
				Returns a list (JSON) with detailed information of all scanned batches in the Scanstation.
			
			</documentation>
			<input message="tns:GetReaderScanBatchListRequest"/>
			<output message="tns:GetReaderScanBatchListResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetParticipationTrackingList">
			<documentation>
				Returns a list (JSON) with all participation tracking information on the basis of the given parameters.
				As an extension to existing transactions the request is not limited to a specific participant.
			
			</documentation>
			<input message="tns:GetParticipationTrackingListRequest"/>
			<output message="tns:GetParticipationTrackingListResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyResponseRateInformation">
			<documentation>
				Returns a list (JSON) with all response rate information for each calculation method (number of PSWDs
				created, number of PSWDs sent, number of course participants) on the basis of the given survey IDs.
			
			</documentation>
			<input message="tns:GetSurveyResponseRateInformationRequest"/>
			<output message="tns:GetSurveyResponseRateInformationResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFormTranslations">
			<documentation>
				Sets the translations for one or more form(s) with its group and item lists. The request body is
				equivalent to the response body of GetFormTranslations.
			
			</documentation>
			<input message="tns:SetFormTranslationsRequest"/>
			<output message="tns:SetFormTranslationsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFormMainLanguage">
			<documentation>
				Sets the main language for a form or changes an existing main language. This can be used to set the main
				language before a call of the service transaction SetFormTranslations.
			
			</documentation>
			<input message="tns:SetFormMainLanguageRequest"/>
			<output message="tns:SetFormMainLanguageResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllAvailableTransactionsByUserLogin">
			<documentation>
				Returns a list of all transactions and the information if the specified user has the transaction right
				to call it.
			
			</documentation>
			<input message="tns:GetAllAvailableTransactionsByUserLoginRequest"/>
			<output message="tns:GetAllAvailableTransactionsByUserLoginResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetDataBySQLQuery">
			<documentation>
				Internal Transaction
			
			</documentation>
			<input message="tns:GetDataBySQLQueryRequest"/>
			<output message="tns:GetDataBySQLQueryResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetFormProperties">
			<documentation>
				Update the properties of a questionnaire of an administrator or subunit administrator. It is possible to
				update these properties: FormName, FormTitle, Activated, Extensible, ResultAccess, FormProcedure,
				FormSurveyType, FormFolder, OnlineLayout, OnlineTempSave
			
			</documentation>
			<input message="tns:SetFormPropertiesRequest"/>
			<output message="tns:SetFormPropertiesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetUserPassword">
			<documentation>
				Internal Transaction
			
			</documentation>
			<input message="tns:SetUserPasswordRequest"/>
			<output message="tns:SetUserPasswordResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SetGlobalConfiguration">
			<documentation>
				Internal Transaction
			
			</documentation>
			<input message="tns:SetGlobalConfigurationRequest"/>
			<output message="tns:SetGlobalConfigurationResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAllProgramsOfStudy">
			<documentation>
				Returns a list of program of studies by the given parameters
			
			</documentation>
			<input message="tns:GetAllProgramsOfStudyRequest"/>
			<output message="tns:GetAllProgramsOfStudyResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateGroupTitles">
			<documentation>
				Updates the group titles for automatically created module questionnaires. Please note: The transaction
				should not be used for questionnaires that have already been distributed, since the recognition set is
				rewritten and the data may no longer be read.
			
			</documentation>
			<input message="tns:UpdateGroupTitlesRequest"/>
			<output message="tns:UpdateGroupTitlesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateProfileImage">
			<documentation>
				Sets an image for an user account based on the internal user ID that is loaded from an URL or an
				accessible local server path. If an empty string is passed for the path, only the previous image is
				removed.
			
			</documentation>
			<input message="tns:UpdateProfileImageRequest"/>
			<output message="tns:UpdateProfileImageResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetEntitiesByKeyword">
			<documentation>
				Returns a list of entity information by the given keyword. This transaction allows a full text search
				for information within the most important entities (Subunits, Users, Courses, Surveys, Participants,
				Logs, Deliveries, Notices, Results). For the parameter "Keyword" a wildcard "[*]" may be used as a
				substitute for zero or more characters.
			
			</documentation>
			<input message="tns:GetEntitiesByKeywordRequest"/>
			<output message="tns:GetEntitiesByKeywordResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSoapUsage">
			<documentation>
				Returns the amount of service request since a timestamp.
			
			</documentation>
			<input message="tns:GetSoapUsageRequest"/>
			<output message="tns:GetSoapUsageResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetExtendedCsvExport">
			<documentation>
				Creates a ZIP archive with CSV export files of several surveys (with additional data like subunit,
				owner, course and period) and returns the link to the file.
			
			</documentation>
			<input message="tns:GetExtendedCsvExportRequest"/>
			<output message="tns:GetExtendedCsvExportResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="AnonymizeParticipants">
			<documentation>
				Anonymizes the given participant emails/identifiers in the whole system.
			
			</documentation>
			<input message="tns:AnonymizeParticipantsRequest"/>
			<output message="tns:AnonymizeParticipantsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="AnonymizeSurveyParticipants">
			<documentation>
				It anonymizes all participants of the given surveys as far as possible. It checks first whether a
				participant can be anonymized or not.
			
			</documentation>
			<input message="tns:AnonymizeSurveyParticipantsRequest"/>
			<output message="tns:AnonymizeSurveyParticipantsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetFormCategories">
			<documentation>
				Returns a list of categories for open questions that are defined for the given form.
			
			</documentation>
			<input message="tns:GetFormCategoriesRequest"/>
			<output message="tns:GetFormCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SaveFormCategories">
			<documentation>
				Updates or inserts the open question categories for the given form.
			
			</documentation>
			<input message="tns:SaveFormCategoriesRequest"/>
			<output message="tns:SaveFormCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteFormCategories">
			<documentation>
				Deletes the categories for open questions for a given form. If only formId is specified, all categories
				of this form will be deleted. If certain items are specified, only the categories of the specified items
				will be deleted. If certain categories of items are specified, only those categories will be deleted.
			
			</documentation>
			<input message="tns:DeleteFormCategoriesRequest"/>
			<output message="tns:DeleteFormCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyCategories">
			<documentation>
				Returns a list of categories that are assigned to the answers of open questions of the given survey.
			
			</documentation>
			<input message="tns:GetSurveyCategoriesRequest"/>
			<output message="tns:GetSurveyCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="InsertSurveyCategories">
			<documentation>
				Inserts the categories for the answers of open questions of the given survey.
			
			</documentation>
			<input message="tns:InsertSurveyCategoriesRequest"/>
			<output message="tns:InsertSurveyCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteSurveyCategories">
			<documentation>
				Deletes the categories assigned to answers of open questions in a given survey. If only the surveyId is
				specified, all assigned categories of this survey will be deleted. If certain questions are specified,
				only assigned categories of the specified questions will be deleted. If certain categories of questions
				are specified, only those categories will be deleted.
			
			</documentation>
			<input message="tns:DeleteSurveyCategoriesRequest"/>
			<output message="tns:DeleteSurveyCategoriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DestroySessionForUser">
			<documentation>
				Destroys a session of an user by internal user ID.
			
			</documentation>
			<input message="tns:DestroySessionForUserRequest"/>
			<output message="tns:DestroySessionForUserResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="SaveComparisonData">
			<documentation>
				Saves a set of comparison data for a questionnaire. These function can save and insert comparison data.
				To insert new data, the id must be empty. However, the name must be unique per questionnaire. If a data
				set is updated, it has to be defined completely, as existing data will be removed before these are
				inserted. There is only one set for each question id possible and the result range has to be in the
				range of the possible values for this question. Keep in mind that this function will not consider if the
				form is mirrored. If so, the results have to be mirrored before inserting them. It will also not check
				if the value is plausible.
			
			</documentation>
			<input message="tns:SaveComparisonDataRequest"/>
			<output message="tns:SaveComparisonDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteComparisonData">
			<documentation>
				Removes a set of comparison data from the database and also removes the assignments to surveys, if they
				exist. Returns the success as bool value.
			
			</documentation>
			<input message="tns:DeleteComparisonDataRequest"/>
			<output message="tns:DeleteComparisonDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetComparisonData">
			<documentation>
				Get a set of comparison data by id. These comparison data are saved by questionnaire and can be get by
				GetComparisonDAtaAssignments.
			
			</documentation>
			<input message="tns:GetComparisonDataRequest"/>
			<output message="tns:GetComparisonDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="AssignComparisonData">
			<documentation>
				Assigns a Comparison Data Set or a report to a combination of period and subunit. These assignments have
				to be unique for the questionnaire, period and subunit and have to be complete. All assignments of a
				form have to be in this request. Those who are missing will be removed. To get all assignments, use
				GetComparisonDataAssignments.
			
			</documentation>
			<input message="tns:AssignComparisonDataRequest"/>
			<output message="tns:AssignComparisonDataResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetComparisonDataAssignments">
			<documentation>
				Get all ComparisonDataAssignments for a questionnaire.
			
			</documentation>
			<input message="tns:GetComparisonDataAssignmentsRequest"/>
			<output message="tns:GetComparisonDataAssignmentsResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyResultsBulk">
			<documentation>
				Creates an object for each given survey id which includes all statistical results for all questions and
				question groups (indicators) of the given survey. The SurveyResultRawData object also contains the
				survey object. Statistical results include: Response count, mean, median, standard deviation, frequency
				distribution, abstention count, normed mean.
			
			</documentation>
			<input message="tns:GetSurveyResultsBulkRequest"/>
			<output message="tns:GetSurveyResultsBulkResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSurveyRawDataBulk">
			<documentation>
				Creates an object for each given survey id which includes all sheet results (raw data) of the given
				survey. The SurveyRawData object also contains the survey object. The answers to open ended questions
				can optionally be included and in case of non-anonymous surveys the timestamp and the source of data may
				be included.
			
			</documentation>
			<input message="tns:GetSurveyRawDataBulkRequest"/>
			<output message="tns:GetSurveyRawDataBulkResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetOnlineQRCode">
			<documentation>
				Returns a link of the QR Code for single password based online surveys.
			
			</documentation>
			<input message="tns:GetOnlineQRCodeRequest"/>
			<output message="tns:GetOnlineQRCodeResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteOldLogEntries">
			<documentation>
				Deletes all log entries from database which are older than the given X days.
			
			</documentation>
			<input message="tns:DeleteOldLogEntriesRequest"/>
			<output message="tns:DeleteOldLogEntriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteOldActivityLogEntries">
			<documentation>
				Deletes all activities from database which are older than the given X days.
			
			</documentation>
			<input message="tns:DeleteOldActivityLogEntriesRequest"/>
			<output message="tns:DeleteOldActivityLogEntriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="DeleteOldDeliveries">
			<documentation>
				Deletes all deliveries from database which are older than the given X days.
			
			</documentation>
			<input message="tns:DeleteOldDeliveriesRequest"/>
			<output message="tns:DeleteOldDeliveriesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSubunitLogos">
			<documentation>
				Returns the logo images for all subunits.
			
			</documentation>
			<input message="tns:GetSubunitLogosRequest"/>
			<output message="tns:GetSubunitLogosResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="UpdateSubunit">
			<documentation>
				Updates the presented subunit. Please note: Child objects of type "User" will not be updated by this
				method.
			
			</documentation>
			<input message="tns:UpdateSubunitRequest"/>
			<output message="tns:UpdateSubunitResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetHtmlReportLink">
			<documentation>
				Returns a link to the HTML Report of the survey. It is possible to specify whether the link is
				permanently available or only valid for 20 minutes.
			
			</documentation>
			<input message="tns:GetHtmlReportLinkRequest"/>
			<output message="tns:GetHtmlReportLinkResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ResetPswd">
			<documentation>
				Resets all results (temporary and sent) of a given PSWD and set it back to unused and available. This
				method is only available for non-anonymous PSWD based surveys.
			
			</documentation>
			<input message="tns:ResetPswdRequest"/>
			<output message="tns:ResetPswdResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetSystemLanguages">
			<documentation>
				Returns all system languages as simple list.
			
			</documentation>
			<input message="tns:GetSystemLanguagesRequest"/>
			<output message="tns:GetSystemLanguagesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetAddresses">
			<documentation>
				Returns all addresses as simple list.
			
			</documentation>
			<input message="tns:GetAddressesRequest"/>
			<output message="tns:GetAddressesResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetReportConfiguration">
			<documentation>
				Returns the report configuration for the given id.
			
			</documentation>
			<input message="tns:GetReportConfigurationRequest"/>
			<output message="tns:GetReportConfigurationResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetReportList">
			<documentation>
				Returns a list of all available reports in the system.
			
			</documentation>
			<input message="tns:GetReportListRequest"/>
			<output message="tns:GetReportListResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="GetResultChangesForSurveys">
			<documentation>
				Returns a list of result changes for the given survey IDs.
			
			</documentation>
			<input message="tns:GetResultChangesForSurveysRequest"/>
			<output message="tns:GetResultChangesForSurveysResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
		<operation name="ExecuteTask">
			<documentation>
				Schedules the given task to run immediately (allowed states: Open=3, Executed=5, Executed with
				warning=6, Executed with error=7, Deactivated=8). Fault codes: ERR_264 when the task is missing, ERR_265
				for a non-runnable status, ERR_266 for invalid date order, ERR_263 on unexpected errors; success returns
				an empty body.
			
			</documentation>
			<input message="tns:ExecuteTaskRequest"/>
			<output message="tns:ExecuteTaskResponse"/>
			<fault name="fault" message="tns:SoapfaultMessage"/>
		</operation>
	</portType>
	
	<binding name="Binding" type="tns:SoapPort">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="RequestTicket">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPswdsByParticipant">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteUnusedPswds">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUsersBySubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllPeriods">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCoursesByUserId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCourse">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertCourse">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetOnlinePreview">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateCourse">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPeriod">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllForms">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyTypes">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFormByCourseIdAndPeriodId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyById">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveysByCourse">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="CloseSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="OpenSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPswdsBySurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="IsPswdUnused">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertCentralSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetupCentralSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPDFReport">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="CreatePDFReportByData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSubunits">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertSubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertCourses">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPDFPluginsByFormId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPDFQuestionnaire">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPDFCoversheet">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPDFPswd">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSentPswdsForHybridSurveys">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSPSSRawData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCSVRawData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteCourse">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteSubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyRawData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyResults">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetOnlineSurveyLinkByEmail">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertParticipants">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCustomReportsByForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSimpleForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetVFD">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyRawDataByTime">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertSurveyNotice">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertModules">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurveys">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ActivateOptionalQuestionsForSurveyAddQuestions">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ListTasks">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SaveTasks">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteTask">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSessionForUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SendResultAccessMailToParticipants">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCourseTypes">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="CreatePdfReportDefinition">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPswdsByRecipient">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPercentOfCompletedSurveysByParticipant">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAccessibleSubunitsForSubunitAdmin">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UploadVolumeLicense">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUserVolumeLicenses">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteVolumeLicense">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ReplaceAnswersToOpenQuestions">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyOriginalScansPDF">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetWebscanBatchList">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ApplyActionOnWebscanBatch">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFormActivationStatus">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertCourseType">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ResetSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="PrefillDataIntoOnlineSurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="AssignVolumeToSubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateCourseType">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteCourseType">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyInformationByParams">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyIDsByParams">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFiltersByFormId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFiltersForForm">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteFiltersByFormId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="AddEMailsToQueue">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		
		<operation name="GetVerifierInfoBySurvey">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetVerifierInfoBySerialNumber">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetVerifierInfoByParticipant">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetVerifierInfoByBatch">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUserSessionInfo">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetConfigurationInfo">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllConfigurationInfo">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteForms">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUserByLogin">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetEvaluationSummaryByParticipant">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPdfReportDefinition">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPdfReportDefinitionsByFormId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFormTranslations">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFormAndOptionTranslations">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllTextTemplateIDs">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetTextTemplateById">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUserByIdConsiderExternalID">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetPswdSummary">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFoldersByUserId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllSurveysByFolderId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetIndicatorsByFormId">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SaveCustomUserSetting">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteCustomUserSetting">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCustomUserSetting">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCustomUserSettingsList">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyNotices">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateSurveyNotice">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteSurveyNotice">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertSurveyRawData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetLicenseInformation">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetDatabridgeTemplates">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="TriggerDatabridgeImport">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFormsInfoByParams">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFormUsageRestrictions">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SendInvitationToParticipants">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyResponseDistribution">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="MoveSurveyToSubstituteUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetUserIdsByParams">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetCourseIdsByParams">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="MoveUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetReaderScanBatchList">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetParticipationTrackingList">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyResponseRateInformation">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFormTranslations">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFormMainLanguage">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllAvailableTransactionsByUserLogin">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetDataBySQLQuery">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetFormProperties">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetUserPassword">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SetGlobalConfiguration">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAllProgramsOfStudy">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateGroupTitles">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateProfileImage">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetEntitiesByKeyword">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSoapUsage">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetExtendedCsvExport">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="AnonymizeParticipants">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="AnonymizeSurveyParticipants">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetFormCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SaveFormCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteFormCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="InsertSurveyCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteSurveyCategories">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DestroySessionForUser">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="SaveComparisonData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteComparisonData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetComparisonData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="AssignComparisonData">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetComparisonDataAssignments">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyResultsBulk">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteOldLogEntries">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		
		<operation name="DeleteOldActivityLogEntries">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="DeleteOldDeliveries">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSurveyRawDataBulk">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetOnlineQRCode">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSubunitLogos">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="UpdateSubunit">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetHtmlReportLink">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ResetPswd">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetSystemLanguages">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetAddresses">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetReportConfiguration">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetQualityGuidelinesForSurveys">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetQualityGuidelinesConfigForForms">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetOrganisationLogo">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetReportList">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="GetResultChangesForSurveys">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
		<operation name="ExecuteTask">
			<soap:operation soapAction="urn:soap#soap"/>
			<input>
				<soap:header use="literal" message="tns:Header" part="Header"/>
				<soap:body use="literal" namespace="soapserver"/>
			</input>
			<output>
				<soap:body use="literal" namespace="soapserver"/>
			</output>
			<fault name="fault">
				<soap:body use="literal"/>
			</fault>
		</operation>
	</binding>
	<service name="soapserver">
		<port name="SoapPort" binding="tns:Binding">
			<soap:address location="https://cloud10.evasys.de/ksh_muenchen/services/soapserver-v101.php"/>
		</port>
	</service>
</wsdl:definitions>
