From: <pka...@us...> - 2009-04-27 21:30:50
|
Revision: 188 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=188&view=rev Author: pkasprzak Date: 2009-04-27 21:30:41 +0000 (Mon, 27 Apr 2009) Log Message: ----------- * Integrated ilias course xsd * Adding a course works half way (the added course is only visible in ilias' administration view and, more seriously, xml cannot be changed due to "ElementNotFoundInComplexType-Exception" [working on it]) Modified Paths: -------------- trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/OutboundClientAdapter.bpel Added Paths: ----------- trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xml trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xsd Modified: trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/OutboundClientAdapter.bpel =================================================================== --- trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/OutboundClientAdapter.bpel 2009-04-27 21:25:21 UTC (rev 187) +++ trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/OutboundClientAdapter.bpel 2009-04-27 21:30:41 UTC (rev 188) @@ -9,15 +9,19 @@ xmlns:sxat="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Attachment" xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling" xmlns:sxxf="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/XPathFunctions" + xmlns:il_crs="http://cse.campussource.de/schema/ilias/course" xmlns:tns="http://enterprise.netbeans.org/bpel/ILIASClientAdapter/newProcess"> <import namespace="http://enterprise.netbeans.org/bpel/ilias-3.10.5-Wrapper" location="ilias-3.10.5-Wrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="http://j2ee.netbeans.org/wsdl/ILIASClientAdapter/ILIASClientAdapter" location="ILIASClientAdapter.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import namespace="urn:ilUserAdministration" location="ilias-3.10.5-fixed.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> + <import namespace="http://cse.campussource.de/schema/ilias/course" location="ilias-course.xsd" importType="http://www.w3.org/2001/XMLSchema"/> + <partnerLinks> <partnerLink name="ILIAS" xmlns:tns="http://enterprise.netbeans.org/bpel/ilias-3.10.5-Wrapper" partnerLinkType="tns:ILIASSoapWebserviceLinkType" partnerRole="ILIASSoapWebserviceRole"/> <partnerLink name="ILIASAdapter" xmlns:tns="http://j2ee.netbeans.org/wsdl/ILIASClientAdapter/ILIASClientAdapter" partnerLinkType="tns:ILIASClientAdapter" myRole="ILIASClientAdapterPortTypeRole"/> </partnerLinks> + <variables> <variable name="AddCourseOut" xmlns:tns="urn:ilUserAdministration" messageType="tns:addCourseResponse"/> <variable name="AddCourseIn" xmlns:tns="urn:ilUserAdministration" messageType="tns:addCourseRequest"/> @@ -29,12 +33,13 @@ <!-- ILIAS session id --> <variable name="SID" type="xsd:string"/> <!-- Course description in ILIAS-Format --> -<!-- - <variable name="CourseXML" element=""/> ---> + <variable name="CourseXML" element="il_crs:Course"/> </variables> + <sequence> + <receive name="receive" createInstance="yes" partnerLink="ILIASAdapter" operation="ProcessCourseOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/ILIASClientAdapter/ILIASClientAdapter" portType="tns:ILIASClientAdapterPortType" variable="ProcessCourseOperationIn"/> + <assign name="prepareLogin"> <copy> <from>'test'</from> @@ -49,6 +54,7 @@ <to variable="LoginIn" part="password"/> </copy> </assign> + <invoke name="login" partnerLink="ILIAS" operation="login" xmlns:tns="urn:ilUserAdministration" portType="tns:ILIASSoapWebservicePortType" inputVariable="LoginIn" outputVariable="LoginOut"> <sxt:trace> <sxt:log level="info" location="onComplete"> @@ -56,28 +62,53 @@ </sxt:log> </sxt:trace> </invoke> + <assign name="saveSID"> <copy> <from variable="LoginOut" part="sid"/> <to variable="SID"/> </copy> </assign> + + <!-- Initialize course xml skeleton --> + <assign name="initializeCourseXML"> + <copy> + <from> + <literal> + <Course xmlns="http://cse.campussource.de/schema/ilias/course"> + <MetaData xmlns="http://cse.campussource.de/schema/ilias/course"> + <General> + <Title Language="en">test2</Title> + <Language Language="en">en</Language> + <Description Language="en">bpel test2</Description> + </General> + </MetaData> + </Course> + </literal> + </from> + <to>$CourseXML</to> + </copy> + </assign> + + <!-- Set relevant course data --> <!-- - <assign name="setCourseXML"> + <assign name="setCourseData"> <copy> - <from>$ProcessCourseOperationIn/course/attribute[name = 'title']/value</from> - <to>$CourseXML/MetaData/General/Title</to> + <from>$ProcessCourseOperationIn.courseMessage/course/attribute[name = 'title']/value</from> + <to>$CourseXML/MetaData/General/Title/text()</to> </copy> <copy> - <from>$ProcessCourseOperationIn/course/attribute[name = 'languageISO']/value</from> + <from>$ProcessCourseOperationIn.courseMessage/course/attribute[name = 'languageISO']/value</from> <to>$CourseXML/MetaData/General/Title/@Language</to> </copy> <copy> - <from>$ProcessCourseOperationIn/course/attribute[name = 'languageISO']/value</from> + <from>$ProcessCourseOperationIn.courseMessage/course/attribute[name = 'languageISO']/value</from> <to>$CourseXML/MetaData/General/Language[0]/@Language</to> </copy> </assign> --> + + <!-- Set all parts for addCourse call --> <assign name="prepareAddCourse"> <!-- Set SID --> <copy> @@ -90,15 +121,20 @@ <to variable="AddCourseIn" part="target_id"/> </copy> <!-- Set CourseXML (as string) --> -<!-- <copy> + <copy> <from>sxxf:doMarshal($CourseXML)</from> <to variable="AddCourseIn" part="crs_xml"/> </copy> ---> </assign> -<!-- - <invoke name="createLecture" partnerLink="ILIAS" operation="addCourse" xmlns:tns="urn:ilUserAdministration" portType="tns:ILIASSoapWebservicePortType" inputVariable="AddCourseIn" outputVariable="AddCourseOut"/> ---> + + <invoke name="createLecture" partnerLink="ILIAS" operation="addCourse" xmlns:tns="urn:ilUserAdministration" portType="tns:ILIASSoapWebservicePortType" inputVariable="AddCourseIn" outputVariable="AddCourseOut"> + <sxt:trace> + <sxt:log level="info" location="onComplete"> + <from>concat('*** Result of addCourse: ', $AddCourseOut.course_id)</from> + </sxt:log> + </sxt:trace> + </invoke> + <assign name="prepareLogout"> <copy> <from variable="SID"/> Added: trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xml =================================================================== --- trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xml (rev 0) +++ trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xml 2009-04-27 21:30:41 UTC (rev 188) @@ -0,0 +1,269 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Document : ilias-course.xml + Created on : April 27, 2009, 4:57 PM + Author : pete + Description: + Purpose of the document follows. +--> + +<ns0:Course xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' + xmlns:ns0='http://cse.campussource.de/schema/ilias/course' + xsi:schemaLocation='http://cse.campussource.de/schema/ilias/course ilias-course.xsd' exportVersion="" id=""> + <MetaData> + <General Structure=""> + <Identifier Catalog="" Entry=""></Identifier> + <Identifier Catalog="" Entry=""></Identifier> + <Identifier Catalog="" Entry=""></Identifier> + <Title Language=""></Title> + <Language Language=""></Language> + <Language Language=""></Language> + <Language Language=""></Language> + <Description Language=""></Description> + <Description Language=""></Description> + <Description Language=""></Description> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + <Coverage Language=""></Coverage> + </General> + <Lifecycle Status=""> + <Version Language=""></Version> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + </Lifecycle> + <Meta-Metadata MetadataScheme="" Language=""> + <Identifier Catalog="" Entry=""></Identifier> + <Identifier Catalog="" Entry=""></Identifier> + <Identifier Catalog="" Entry=""></Identifier> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + <Contribute Role=""> + <Entity></Entity> + <Entity></Entity> + <Entity></Entity> + <Date></Date> + </Contribute> + </Meta-Metadata> + <Technical> + <Format></Format> + <Format></Format> + <Format></Format> + <Size></Size> + <Location Type=""></Location> + <Location Type=""></Location> + <Location Type=""></Location> + <Requirement> + <Type> + <OperatingSystem Name="" MinimumVersion="" MaximumVersion=""></OperatingSystem> + </Type> + </Requirement> + <InstallationRemarks Language=""></InstallationRemarks> + <OtherPlatformRequirements Language=""></OtherPlatformRequirements> + <Duration></Duration> + </Technical> + <Educational InteractivityType="" LearningResourceType="" InteractivityLevel="" SemanticDensity="" IntendedEndUserRole="" Context="" Difficulty=""> + <TypicalAgeRange Language=""></TypicalAgeRange> + <TypicalAgeRange Language=""></TypicalAgeRange> + <TypicalAgeRange Language=""></TypicalAgeRange> + <TypicalLearningTime></TypicalLearningTime> + <Description Language=""></Description> + <Description Language=""></Description> + <Description Language=""></Description> + <Language Language=""></Language> + <Language Language=""></Language> + <Language Language=""></Language> + </Educational> + <Rights Cost="" CopyrightAndOtherRestrictions=""> + <Description Language=""></Description> + </Rights> + <Relation Kind=""> + <Resource> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Description Language=""></Description> + <Description Language=""></Description> + <Description Language=""></Description> + </Resource> + </Relation> + <Relation Kind=""> + <Resource> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Description Language=""></Description> + <Description Language=""></Description> + <Description Language=""></Description> + </Resource> + </Relation> + <Relation Kind=""> + <Resource> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Identifier_ Catalog="" Entry=""></Identifier_> + <Description Language=""></Description> + <Description Language=""></Description> + <Description Language=""></Description> + </Resource> + </Relation> + <Annotation> + <Entity></Entity> + <Date></Date> + <Description Language=""></Description> + </Annotation> + <Annotation> + <Entity></Entity> + <Date></Date> + <Description Language=""></Description> + </Annotation> + <Annotation> + <Entity></Entity> + <Date></Date> + <Description Language=""></Description> + </Annotation> + <Classification Purpose=""> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <Description Language=""></Description> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + </Classification> + <Classification Purpose=""> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <Description Language=""></Description> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + </Classification> + <Classification Purpose=""> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <TaxonPath> + <Source Language=""></Source> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + <Taxon Language="" Id=""></Taxon> + </TaxonPath> + <Description Language=""></Description> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + <Keyword Language=""></Keyword> + </Classification> + </MetaData> + <AdvancedMetaData> + <Value id=""></Value> + <Value id=""></Value> + <Value id=""></Value> + </AdvancedMetaData> + <Admin id="" notification="" passed="" action=""></Admin> + <Admin id="" notification="" passed="" action=""></Admin> + <Admin id="" notification="" passed="" action=""></Admin> + <Tutor id="" notification="" passed="" action=""></Tutor> + <Tutor id="" notification="" passed="" action=""></Tutor> + <Tutor id="" notification="" passed="" action=""></Tutor> + <Member id="" blocked="" passed="" action=""></Member> + <Member id="" blocked="" passed="" action=""></Member> + <Member id="" blocked="" passed="" action=""></Member> + <Subscriber id="" subscriptionTime="" action=""></Subscriber> + <Subscriber id="" subscriptionTime="" action=""></Subscriber> + <Subscriber id="" subscriptionTime="" action=""></Subscriber> + <WaitingList id="" subscriptionTime="" action=""></WaitingList> + <WaitingList id="" subscriptionTime="" action=""></WaitingList> + <WaitingList id="" subscriptionTime="" action=""></WaitingList> + <Settings> + <Availability> + <NotAvailable></NotAvailable> + </Availability> + <Syllabus></Syllabus> + <ImportantInformation></ImportantInformation> + <Contact> + <Name></Name> + <Responsibility></Responsibility> + <Phone></Phone> + <Email></Email> + <Consultation></Consultation> + </Contact> + <Registration registrationType="" maxMembers="" notification="" waitingList=""> + <Disabled></Disabled> + <Password></Password> + </Registration> + <Sort type=""></Sort> + <Archive Access=""> + <Start></Start> + <End></End> + </Archive> + </Settings> + +</ns0:Course> Added: trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xsd =================================================================== --- trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xsd (rev 0) +++ trunk/sandbox/lsf-adapter-demo/ILIASClientAdapter/src/ilias-course.xsd 2009-04-27 21:30:41 UTC (rev 188) @@ -0,0 +1,1913 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<xs:schema version="1.0" targetNamespace="http://cse.campussource.de/schema/ilias/course" xmlns:tns="http://cse.campussource.de/schema/ilias/course" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:element name="Admin"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="notification" type="xs:string"/> + <xs:attribute name="passed" type="xs:string"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + + <xs:element name="AdvancedMetaData"> + <xs:complexType> + <xs:sequence> + <xs:element name="Value" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="id" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="Annotation"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="Archive"> + <xs:complexType> + <xs:sequence> + <xs:element name="Start" type="xs:string"/> + <xs:element name="End" type="xs:string"/> + </xs:sequence> + <xs:attribute name="Access" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Availability"> + <xs:complexType> + <xs:sequence> + <xs:choice maxOccurs="unbounded"> + <xs:element name="NotAvailable"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="Unlimited"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="TemporarilyAvailable"> + <xs:complexType> + <xs:sequence> + <xs:element name="Start" type="xs:string"/> + <xs:element name="End" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="Browser"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Name" type="xs:string" use="required"/> + <xs:attribute name="MinimumVersion" type="xs:string"/> + <xs:attribute name="MaximumVersion" type="xs:string"/> + </xs:complexType> + </xs:element> + + <xs:element name="Classification"> + <xs:complexType> + <xs:sequence> + <xs:element name="TaxonPath" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Source"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Taxon" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + <xs:attribute name="Id" type="xs:ID"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Keyword" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Purpose" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Contact"> + <xs:complexType> + <xs:sequence> + <xs:element name="Name" type="xs:string" minOccurs="0"/> + <xs:element name="Responsibility" type="xs:string" minOccurs="0"/> + <xs:element name="Phone" type="xs:string" minOccurs="0"/> + <xs:element name="Email" type="xs:string" minOccurs="0"/> + <xs:element name="Consultation" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <xs:element name="Contribute"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity" maxOccurs="unbounded"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + </xs:sequence> + <xs:attribute name="Role" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Course"> + <xs:complexType> + <xs:sequence> + <xs:element name="MetaData" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="General"> + <xs:complexType> + <xs:sequence> + <xs:element name="Identifier" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:ID" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Title"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Language" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Description" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Keyword" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Coverage" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Structure" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Lifecycle" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Version"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Contribute" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity" maxOccurs="unbounded"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + </xs:sequence> + <xs:attribute name="Role" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Status" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Meta-Metadata" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Identifier" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:ID" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Contribute" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity" maxOccurs="unbounded"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + </xs:sequence> + <xs:attribute name="Role" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="MetadataScheme" type="xs:string"/> + <xs:attribute name="Language" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Technical" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Format" minOccurs="0" maxOccurs="unbounded"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Size" type="xs:string" minOccurs="0"/> + <xs:element name="Location" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Type" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="Requirement"> + <xs:complexType> + <xs:sequence> + <xs:element name="Type"> + <xs:complexType> + <xs:sequence> + <xs:choice maxOccurs="unbounded"> + <xs:element name="OperatingSystem"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Name" type="xs:string" use="required"/> + <xs:attribute name="MinimumVersion" type="xs:string"/> + <xs:attribute name="MaximumVersion" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Browser"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Name" type="xs:string" use="required"/> + <xs:attribute name="MinimumVersion" type="xs:string"/> + <xs:attribute name="MaximumVersion" type="xs:string"/> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="OrComposite"> + <xs:complexType> + <xs:sequence> + <xs:element name="Requirement" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Type"> + <xs:complexType> + <xs:sequence> + <xs:choice maxOccurs="unbounded"> + <xs:element name="OperatingSystem"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Name" type="xs:string" use="required"/> + <xs:attribute name="MinimumVersion" type="xs:string"/> + <xs:attribute name="MaximumVersion" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Browser"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Name" type="xs:string" use="required"/> + <xs:attribute name="MinimumVersion" type="xs:string"/> + <xs:attribute name="MaximumVersion" type="xs:string"/> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:choice> + <xs:element name="InstallationRemarks" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="OtherPlatformRequirements" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Duration" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Educational" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="TypicalAgeRange" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="TypicalLearningTime" type="xs:string"/> + <xs:element name="Description" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Language" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="InteractivityType" type="xs:string" use="required"/> + <xs:attribute name="LearningResourceType" type="xs:string" use="required"/> + <xs:attribute name="InteractivityLevel" type="xs:string" use="required"/> + <xs:attribute name="SemanticDensity" type="xs:string" use="required"/> + <xs:attribute name="IntendedEndUserRole" type="xs:string" use="required"/> + <xs:attribute name="Context" type="xs:string" use="required"/> + <xs:attribute name="Difficulty" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Rights" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Cost" type="xs:string" use="required"/> + <xs:attribute name="CopyrightAndOtherRestrictions" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Relation" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Resource"> + <xs:complexType> + <xs:sequence> + <xs:element name="Identifier_" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:IDREF"/> + </xs:complexType> + </xs:element> + <xs:element name="Description" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Kind" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Annotation" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Classification" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="TaxonPath" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Source"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Taxon" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + <xs:attribute name="Id" type="xs:ID"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Keyword" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Purpose" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="AdvancedMetaData" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Value" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="id" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Admin" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="notification" type="xs:string"/> + <xs:attribute name="passed" type="xs:string"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Tutor" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="notification" type="xs:string" use="required"/> + <xs:attribute name="passed" type="xs:string" use="required"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Member" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="blocked" type="xs:string"/> + <xs:attribute name="passed" type="xs:string"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Subscriber" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="subscriptionTime" type="xs:string" use="required"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="WaitingList" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="id" type="xs:string" use="required"/> + <xs:attribute name="subscriptionTime" type="xs:string" use="required"/> + <xs:attribute name="action" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Settings" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Availability" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:choice maxOccurs="unbounded"> + <xs:element name="NotAvailable"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="Unlimited"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="TemporarilyAvailable"> + <xs:complexType> + <xs:sequence> + <xs:element name="Start" type="xs:string"/> + <xs:element name="End" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Syllabus" type="xs:string" minOccurs="0"/> + <xs:element name="ImportantInformation" type="xs:string" minOccurs="0"/> + <xs:element name="Contact" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Name" type="xs:string" minOccurs="0"/> + <xs:element name="Responsibility" type="xs:string" minOccurs="0"/> + <xs:element name="Phone" type="xs:string" minOccurs="0"/> + <xs:element name="Email" type="xs:string" minOccurs="0"/> + <xs:element name="Consultation" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Registration" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:choice maxOccurs="unbounded"> + <xs:element name="Disabled"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="Unlimited"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + <xs:element name="TemporarilyAvailable"> + <xs:complexType> + <xs:sequence> + <xs:element name="Start" type="xs:string"/> + <xs:element name="End" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:choice> + <xs:element name="Password" type="xs:string" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="registrationType" type="xs:string"/> + <xs:attribute name="maxMembers" type="xs:string"/> + <xs:attribute name="notification" type="xs:string"/> + <xs:attribute name="waitingList" type="xs:string"/> + </xs:complexType> + </xs:element> + <xs:element name="Sort" minOccurs="0"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Archive" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="Start" type="xs:string"/> + <xs:element name="End" type="xs:string"/> + </xs:sequence> + <xs:attribute name="Access" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="exportVersion" type="xs:string" use="required"/> + <xs:attribute name="id" type="xs:string"/> + </xs:complexType> + </xs:element> + + <xs:element name="Coverage"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <xs:element name="Description"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <xs:element name="Disabled"> + <xs:complexType> + <xs:sequence/> + </xs:complexType> + </xs:element> + + <xs:element name="Educational"> + <xs:complexType> + <xs:sequence> + <xs:element name="TypicalAgeRange" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="TypicalLearningTime" type="xs:string"/> + <xs:element name="Description" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Language" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="InteractivityType" type="xs:string" use="required"/> + <xs:attribute name="LearningResourceType" type="xs:string" use="required"/> + <xs:attribute name="InteractivityLevel" type="xs:string" use="required"/> + <xs:attribute name="SemanticDensity" type="xs:string" use="required"/> + <xs:attribute name="IntendedEndUserRole" type="xs:string" use="required"/> + <xs:attribute name="Context" type="xs:string" use="required"/> + <xs:attribute name="Difficulty" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Entity"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + + <xs:element name="Format"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + + <xs:element name="General"> + <xs:complexType> + <xs:sequence> + <xs:element name="Identifier" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:ID" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Title"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Language" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="Description" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Keyword" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Coverage" minOccurs="0"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="Structure" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Identifier"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:ID" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Identifier_"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Catalog" type="xs:string"/> + <xs:attribute name="Entry" type="xs:IDREF"/> + </xs:complexType> + </xs:element> + + <xs:element name="InstallationRemarks"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <xs:element name="Keyword"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + + <xs:element name="Language"> + <xs:complexType> + <xs:sequence/> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + + <xs:element name="Lifecycle"> + <xs:complexType> + <xs:sequence> + <xs:element name="Version"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="Language" type="xs:string" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Contribute" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Entity" maxOccurs="unbounded"> + <xs:simpleType> + <xs:restriction base="xs:string"/> + </xs:simpleType> + </xs:element> + <xs:element name="Date" type="xs:string"/> + ... [truncated message content] |