How Can We Help?
Course XMLCourse XML
Overview
This page details the Course content type. On this page you will find different representations of the data elements contained within this type.
Below is the xsd for the Course content type that defines the import xml format. Also provided is mapping tables generated based on this XSD as well as an example xml that shows how the fields can be populated.
This is logical broken down into the different elements to help you gain a better understanding of the Course content type and how to create, read and update these records using the mechanisms provided in Pure.
Note: for the mapping tables all attributes and elements are listed, along with descriptions of the purposes of the field and any data requirements. Attribute are prefaced with an "@" to differentiate from elements, but as shown in the examples this isn't used when generating the xml.
Some elements offer options of which elements to include (such as whether to provide the ID of a person or organisation or name for lookup). These are denoted by reference to "Option Groups" where numbers are used to indicate where multiple elements are part of the same option. See example xmls for demonstrations of how to use these elements.
Courses represent a teaching unit and hold both details of the course creation, and individual occurences
of it being taught. For instance the same course may be taught in both semesters over multiple years.
Below are a series of attachments for your reference:
- Simple Example XML - This shows only the mandatory fields that need to be populated
- Advanced Example XML - This shows all fields that can be used. Snippets of this file are shown with their related elements below.
- XSD (Xml Schema Definition) - This is a definition of what structure the XML must follow. This page has been generated based on the contents of the xsd file, and snippets of the definition are shown with their relevant element below
- Editor Example PNG - This image shows the result of loading the advanced example xml into Pure, to allow for easy reference of which fields in Pure point to which elements in the XML. Note that the way the data is presented within your Pure instance may be different due to different configuration
- Webservice Example Response - This shows an example response of retrieving the record generated via this xml via the webservice
Courses
courses
A list of course elements of type course
Root element of the document
XML Example
<courses xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk"><!-- Please note that these examples will not synchronise in a standard Pure, you need to make sure that internal persons and organisations
with the specified lookupId's exist prior to synchronising. Also additional classifications and keyword groups must be created for some of them -->
<course id="course3" type="course" managedInPure="false">
<title>Java programming</title>
<translatedTitles>
<title lang="de">Java Programmierung</title>
</translatedTitles>
<description>Introduction to Java programming</description>
<additionalDescriptions>
<description type="coursedescription" lang="de">Einführung zu Java Programmierung</description>
<!-- this type is not present in a standard Pure, only used as example on how to add an additional type. Must be defined in the Course -->
<description type="additionaldescription">Additional description</description>
</additionalDescriptions>
<ids><!-- ID Type must be defined in the "Course IDs" classification scheme -->
<commons:id type="course">course2</commons:id>
</ids>
<!-- Level must be defined in the "Course level types" classification scheme -->
<level>levelf</level>
<!-- Format must be defined in the "Course formats" classification scheme -->
<format>lab</format>
<developers>
<developer id="dev1"><!-- lookupHint is key from /dk/atira/pure/person/personsources, use this to prefer Scopus author ID when looking for a match -->
<person lookupId="person1" lookupHint="scopusauthor"/>
<organisations><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
</developer>
<developer id="dev2"><!-- lookupHint synchronisedUnifiedPerson, use this to prefer external id of a person from the Person synchronisation when looking for a match -->
<person lookupId="supervisor1" lookupHint="synchronisedUnifiedPerson"/>
<organisations><!-- lookupHint synchronisedUnifiedOrganisation, use this to prefer external id of an organisation from the Organisation synchronisation when looking for a match -->
<organisation lookupId="organisation3" lookupHint="synchronisedUnifiedOrganisation"/>
</organisations>
</developer>
</developers>
<!-- Internal organisations that are related to the course development -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation lookupId="organisation3"/>
</organisations>
<!-- Internal organisation responsible for managing the content of this record -->
<managingOrganisation lookupId="organisation1"/>
<startDate>01-03-2010</startDate>
<endDate>31-03-2012</endDate>
<!-- One course can have multiple occurences, such as being taught in multiple semesters -->
<occurrences>
<occurrence id="occurrence1"><!-- Semester must be defined in the "Course semester types" classification scheme -->
<semester>fall</semester>
<!-- Year the course was taught, must be a number between 1 and 9999 -->
<year>2016</year>
<!-- Lecturers can be internal or external -->
<lecturers><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<!-- Affiliated organisations for an occurence can be internal or external -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation origin="external">
<name>Oracle</name>
</organisation>
</organisations>
<grade>Grade A</grade>
<studentsLearnerCount>1000</studentsLearnerCount>
</occurrence>
<occurrence id="occurrence2">
<semester>spring</semester>
<year>2016</year>
<lecturers>
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- Looks for external person with id person4, if not found looks for external person with name Ron Dennis,
if not found external person with source id person4, source synchronisedCourse and name Ron Dennis is created -->
<person origin="external" lookupId="person4">
<firstName>Ron</firstName>
<lastName>Dennis</lastName>
</person>
<organisations><!-- Looks for external organisation with id organisation4, if not found looks for external organisation with name Oracle,
if not found external organisation with source id organisation4, source synchronisedCourse and name Oracle is created -->
<organisation origin="external" lookupId="organisation4">
<name>Oracle</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<organisations>
<organisation lookupId="organisation1"/>
<!-- Looks for external organisation with with name Code Academy, if not found external organisation with name Code Academy is created -->
<organisation origin="external">
<name>Code Academy</name>
</organisation>
</organisations>
</occurrence>
</occurrences>
<visibility>Restricted</visibility>
<keywords><!-- Keyword group on course with logical name keywordContainers must exist -->
<keyword>Java</keyword>
<keyword lang="en">Programming</keyword>
<keyword lang="de">Programmierung</keyword>
<!-- Keyword group on course with logical name ASJCSubjectAreas that is related to classification scheme /dk/atira/pure/subjectarea/asjc must exist -->
<keyword logicalName="ASJCSubjectAreas" key="1700/1701"/>
</keywords>
<workflow>validated</workflow>
</course>
</courses>
XSD Definition
<course xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
id="course3"
type="course"
managedInPure="false">
<title>Java programming</title>
<translatedTitles>
<title lang="de">Java Programmierung</title>
</translatedTitles>
<description>Introduction to Java programming</description>
<additionalDescriptions>
<description type="coursedescription" lang="de">Einführung zu Java Programmierung</description>
<!-- this type is not present in a standard Pure, only used as example on how to add an additional type. Must be defined in the Course -->
<description type="additionaldescription">Additional description</description>
</additionalDescriptions>
<ids><!-- ID Type must be defined in the "Course IDs" classification scheme -->
<commons:id type="course">course2</commons:id>
</ids>
<!-- Level must be defined in the "Course level types" classification scheme -->
<level>levelf</level>
<!-- Format must be defined in the "Course formats" classification scheme -->
<format>lab</format>
<developers>
<developer id="dev1"><!-- lookupHint is key from /dk/atira/pure/person/personsources, use this to prefer Scopus author ID when looking for a match -->
<person lookupId="person1" lookupHint="scopusauthor"/>
<organisations><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
</developer>
<developer id="dev2"><!-- lookupHint synchronisedUnifiedPerson, use this to prefer external id of a person from the Person synchronisation when looking for a match -->
<person lookupId="supervisor1" lookupHint="synchronisedUnifiedPerson"/>
<organisations><!-- lookupHint synchronisedUnifiedOrganisation, use this to prefer external id of an organisation from the Organisation synchronisation when looking for a match -->
<organisation lookupId="organisation3" lookupHint="synchronisedUnifiedOrganisation"/>
</organisations>
</developer>
</developers>
<!-- Internal organisations that are related to the course development -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation lookupId="organisation3"/>
</organisations>
<!-- Internal organisation responsible for managing the content of this record -->
<managingOrganisation lookupId="organisation1"/>
<startDate>01-03-2010</startDate>
<endDate>31-03-2012</endDate>
<!-- One course can have multiple occurences, such as being taught in multiple semesters -->
<occurrences>
<occurrence id="occurrence1"><!-- Semester must be defined in the "Course semester types" classification scheme -->
<semester>fall</semester>
<!-- Year the course was taught, must be a number between 1 and 9999 -->
<year>2016</year>
<!-- Lecturers can be internal or external -->
<lecturers><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<!-- Affiliated organisations for an occurence can be internal or external -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation origin="external">
<name>Oracle</name>
</organisation>
</organisations>
<grade>Grade A</grade>
<studentsLearnerCount>1000</studentsLearnerCount>
</occurrence>
<occurrence id="occurrence2">
<semester>spring</semester>
<year>2016</year>
<lecturers>
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- Looks for external person with id person4, if not found looks for external person with name Ron Dennis,
if not found external person with source id person4, source synchronisedCourse and name Ron Dennis is created -->
<person origin="external" lookupId="person4">
<firstName>Ron</firstName>
<lastName>Dennis</lastName>
</person>
<organisations><!-- Looks for external organisation with id organisation4, if not found looks for external organisation with name Oracle,
if not found external organisation with source id organisation4, source synchronisedCourse and name Oracle is created -->
<organisation origin="external" lookupId="organisation4">
<name>Oracle</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<organisations>
<organisation lookupId="organisation1"/>
<!-- Looks for external organisation with with name Code Academy, if not found external organisation with name Code Academy is created -->
<organisation origin="external">
<name>Code Academy</name>
</organisation>
</organisations>
</occurrence>
</occurrences>
<visibility>Restricted</visibility>
<keywords><!-- Keyword group on course with logical name keywordContainers must exist -->
<keyword>Java</keyword>
<keyword lang="en">Programming</keyword>
<keyword lang="de">Programmierung</keyword>
<!-- Keyword group on course with logical name ASJCSubjectAreas that is related to classification scheme /dk/atira/pure/subjectarea/asjc must exist -->
<keyword logicalName="ASJCSubjectAreas" key="1700/1701"/>
</keywords>
<workflow>validated</workflow>
</course>
course
For each course to be created in Pure there should be a new instance of the element in the xml
XML Example
<course xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
id="course3"
type="course"
managedInPure="false">
<title>Java programming</title>
<translatedTitles>
<title lang="de">Java Programmierung</title>
</translatedTitles>
<description>Introduction to Java programming</description>
<additionalDescriptions>
<description type="coursedescription" lang="de">Einführung zu Java Programmierung</description>
<!-- this type is not present in a standard Pure, only used as example on how to add an additional type. Must be defined in the Course -->
<description type="additionaldescription">Additional description</description>
</additionalDescriptions>
<ids><!-- ID Type must be defined in the "Course IDs" classification scheme -->
<commons:id type="course">course2</commons:id>
</ids>
<!-- Level must be defined in the "Course level types" classification scheme -->
<level>levelf</level>
<!-- Format must be defined in the "Course formats" classification scheme -->
<format>lab</format>
<developers>
<developer id="dev1"><!-- lookupHint is key from /dk/atira/pure/person/personsources, use this to prefer Scopus author ID when looking for a match -->
<person lookupId="person1" lookupHint="scopusauthor"/>
<organisations><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
</developer>
<developer id="dev2"><!-- lookupHint synchronisedUnifiedPerson, use this to prefer external id of a person from the Person synchronisation when looking for a match -->
<person lookupId="supervisor1" lookupHint="synchronisedUnifiedPerson"/>
<organisations><!-- lookupHint synchronisedUnifiedOrganisation, use this to prefer external id of an organisation from the Organisation synchronisation when looking for a match -->
<organisation lookupId="organisation3" lookupHint="synchronisedUnifiedOrganisation"/>
</organisations>
</developer>
</developers>
<!-- Internal organisations that are related to the course development -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation lookupId="organisation3"/>
</organisations>
<!-- Internal organisation responsible for managing the content of this record -->
<managingOrganisation lookupId="organisation1"/>
<startDate>01-03-2010</startDate>
<endDate>31-03-2012</endDate>
<!-- One course can have multiple occurences, such as being taught in multiple semesters -->
<occurrences>
<occurrence id="occurrence1"><!-- Semester must be defined in the "Course semester types" classification scheme -->
<semester>fall</semester>
<!-- Year the course was taught, must be a number between 1 and 9999 -->
<year>2016</year>
<!-- Lecturers can be internal or external -->
<lecturers><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<!-- Affiliated organisations for an occurence can be internal or external -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation origin="external">
<name>Oracle</name>
</organisation>
</organisations>
<grade>Grade A</grade>
<studentsLearnerCount>1000</studentsLearnerCount>
</occurrence>
<occurrence id="occurrence2">
<semester>spring</semester>
<year>2016</year>
<lecturers>
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- Looks for external person with id person4, if not found looks for external person with name Ron Dennis,
if not found external person with source id person4, source synchronisedCourse and name Ron Dennis is created -->
<person origin="external" lookupId="person4">
<firstName>Ron</firstName>
<lastName>Dennis</lastName>
</person>
<organisations><!-- Looks for external organisation with id organisation4, if not found looks for external organisation with name Oracle,
if not found external organisation with source id organisation4, source synchronisedCourse and name Oracle is created -->
<organisation origin="external" lookupId="organisation4">
<name>Oracle</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<organisations>
<organisation lookupId="organisation1"/>
<!-- Looks for external organisation with with name Code Academy, if not found external organisation with name Code Academy is created -->
<organisation origin="external">
<name>Code Academy</name>
</organisation>
</organisations>
</occurrence>
</occurrences>
<visibility>Restricted</visibility>
<keywords><!-- Keyword group on course with logical name keywordContainers must exist -->
<keyword>Java</keyword>
<keyword lang="en">Programming</keyword>
<keyword lang="de">Programmierung</keyword>
<!-- Keyword group on course with logical name ASJCSubjectAreas that is related to classification scheme /dk/atira/pure/subjectarea/asjc must exist -->
<keyword logicalName="ASJCSubjectAreas" key="1700/1701"/>
</keywords>
<workflow>validated</workflow>
</course>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="courseType">
<xs:annotation>
<xs:documentation>For each course to be created in Pure there should be a new instance of the element in the xml</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="title" type="commons:string_256" minOccurs="1">
<xs:annotation>
<xs:documentation>The title of the course</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="translatedTitles" type="translatedTitles" minOccurs="0">
<xs:annotation>
<xs:documentation>Translated titles of the course, use if title in different in another language</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>The description of the course, this will add a description of the type /dk/atira/pure/course/descriptions/coursedescription</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="additionalDescriptions" type="descriptions" minOccurs="0">
<xs:annotation>
<xs:documentation>Additional descriptions of the course, use if description is different in another language, or if description is of another type than /dk/atira/pure/course/descriptions/coursedescription as defined in the /dk/atira/pure/course/descriptions/ classification scheme</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="level" type="commons:classification" minOccurs="0">
<xs:annotation>
<xs:documentation>The level of the course, token from the classification scheme /dk/atira/pure/course/level</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="format" type="commons:classification" minOccurs="0">
<xs:annotation>
<xs:documentation>The format of the course, token from the classification scheme /dk/atira/pure/course/format</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ids" type="commons:ids" minOccurs="0">
<xs:annotation>
<xs:documentation>IDs of the course. Type attribute must be a token from the classification scheme /dk/atira/pure/course/coursesources/course</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="developers" type="developers" minOccurs="0">
<xs:annotation>
<xs:documentation>The internal persons that the course has been developed by</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="organisations" type="internalOrganisations" minOccurs="0">
<xs:annotation>
<xs:documentation>The internal organisations that are related to the course development</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="managingOrganisation"
type="internalOrganisation"
minOccurs="1">
<xs:annotation>
<xs:documentation>The managing organisation of the course. This must always be an internal organisation</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="startDate" type="commons:date" minOccurs="1">
<xs:annotation>
<xs:documentation>The start date of the course</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="endDate" type="commons:date" minOccurs="0">
<xs:annotation>
<xs:documentation>The end date of the course</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="occurrences" type="occurrences" minOccurs="0">
<xs:annotation>
<xs:documentation>The occurrences of the course. For instance different semester the course has been taught in</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="keywords" type="keywords" minOccurs="0">
<xs:annotation>
<xs:documentation>Keywords of the course. These must align to the keyword configuration for the Course content type</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="visibility" type="commons:visibility" minOccurs="0">
<xs:annotation>
<xs:documentation>The visibility of the course, accepted values are Public, Campus and Restricted</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="workflow" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Used to set the workflow state of the Course (Workflow states: entryInProgress, forValidation, validated)
NOTE workflow is disabled by default, therefore it must be enabled in Pure if values are present in this tag
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute type="commons:string_400" name="id" use="required">
<xs:annotation>
<xs:documentation>The external ID of the course, this must be an unique value</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="commons:classification"
name="type"
use="optional"
default="course">
<xs:annotation>
<xs:documentation>The type classification. Should be a token from the scheme /dk/atira/pure/course/coursetypes/course</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:boolean" name="managedInPure" use="optional">
<xs:annotation>
<xs:documentation>Determines whether the course is managed in Pure, if set to to true the Course will be fully editable and deletable in Pure</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@id |
The external ID of the course, this must be an unique value |
Yes |
|
@type |
The type classification. Should be a token from the scheme /dk/atira/pure/course/coursetypes/course |
Yes |
|
@managedInPure |
Determines whether the course is managed in Pure, if set to to true the Course will be fully editable and deletable in Pure |
xsd:boolean |
Yes |
title |
The title of the course |
Yes |
|
translatedTitles |
Translated titles of the course, use if title in different in another language |
No |
|
description |
The description of the course, this will add a description of the type /dk/atira/pure/course/descriptions/coursedescription |
xsd:string |
No |
additionalDescriptions |
Additional descriptions of the course, use if description is different in another language, or if description is of another type than /dk/atira/pure/course/descriptions/coursedescription as defined in the /dk/atira/pure/course/descriptions/ classification scheme |
No |
|
level |
The level of the course, token from the classification scheme /dk/atira/pure/course/level |
No |
|
format |
The format of the course, token from the classification scheme /dk/atira/pure/course/format |
No |
|
ids |
IDs of the course. Type attribute must be a token from the classification scheme /dk/atira/pure/course/coursesources/course |
No |
|
developers |
The internal persons that the course has been developed by |
No |
|
organisations |
The internal organisations that are related to the course development |
No |
|
managingOrganisation |
The managing organisation of the course. This must always be an internal organisation |
Yes |
|
startDate |
The start date of the course |
Yes |
|
endDate |
The end date of the course |
No |
|
occurrences |
The occurrences of the course. For instance different semester the course has been taught in |
No |
|
keywords |
Keywords of the course. These must align to the keyword configuration for the Course content type |
No |
|
visibility |
The visibility of the course, accepted values are Public, Campus and Restricted |
No |
|
workflow |
Used to set the workflow state of the Course (Workflow states: entryInProgress, forValidation, validated) NOTE workflow is disabled by default, therefore it must be enabled in Pure if values are present in this tag |
xsd:string |
No |
translatedTitles
A list of title elements of type commons:localized_text_256_lang
XML Example
<translatedTitles xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk">
<title lang="de">Java Programmierung</title>
</translatedTitles>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="translatedTitles">
<xs:sequence>
<xs:element name="title"
type="commons:localized_text_256_lang"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Translated title of the course, can be specified in multi languages if your Pure is multilingual</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
title |
Translated title of the course, can be specified in multi languages if your Pure is multilingual |
Yes |
Occurences
occurrences
A list of occurrence elements of type occurrence
XML Example
<occurrences xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk">
<occurrence id="occurrence1"><!-- Semester must be defined in the "Course semester types" classification scheme -->
<semester>fall</semester>
<!-- Year the course was taught, must be a number between 1 and 9999 -->
<year>2016</year>
<!-- Lecturers can be internal or external -->
<lecturers><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<!-- Affiliated organisations for an occurence can be internal or external -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation origin="external">
<name>Oracle</name>
</organisation>
</organisations>
<grade>Grade A</grade>
<studentsLearnerCount>1000</studentsLearnerCount>
</occurrence>
<occurrence id="occurrence2">
<semester>spring</semester>
<year>2016</year>
<lecturers>
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- Looks for external person with id person4, if not found looks for external person with name Ron Dennis,
if not found external person with source id person4, source synchronisedCourse and name Ron Dennis is created -->
<person origin="external" lookupId="person4">
<firstName>Ron</firstName>
<lastName>Dennis</lastName>
</person>
<organisations><!-- Looks for external organisation with id organisation4, if not found looks for external organisation with name Oracle,
if not found external organisation with source id organisation4, source synchronisedCourse and name Oracle is created -->
<organisation origin="external" lookupId="organisation4">
<name>Oracle</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<organisations>
<organisation lookupId="organisation1"/>
<!-- Looks for external organisation with with name Code Academy, if not found external organisation with name Code Academy is created -->
<organisation origin="external">
<name>Code Academy</name>
</organisation>
</organisations>
</occurrence>
</occurrences>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="occurrences">
<xs:sequence>
<xs:element name="occurrence"
type="occurrence"
minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Occurrences of the course</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
occurrence
XML Example
<occurrence xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
id="occurrence1"><!-- Semester must be defined in the "Course semester types" classification scheme -->
<semester>fall</semester>
<!-- Year the course was taught, must be a number between 1 and 9999 -->
<year>2016</year>
<!-- Lecturers can be internal or external -->
<lecturers><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
<!-- Affiliated organisations for an occurence can be internal or external -->
<organisations>
<organisation lookupId="organisation1"/>
<organisation origin="external">
<name>Oracle</name>
</organisation>
</organisations>
<grade>Grade A</grade>
<studentsLearnerCount>1000</studentsLearnerCount>
</occurrence>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="occurrence">
<xs:all>
<xs:element name="semester" type="commons:classification" minOccurs="1">
<xs:annotation>
<xs:documentation>The semester of the course occurrence, token from the classification scheme /dk/atira/pure/course/semester</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="year" type="commons:year" minOccurs="1">
<xs:annotation>
<xs:documentation>The year of the course occurrence, must be a year between 1 and 9999</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lecturers" type="lecturers" minOccurs="1">
<xs:annotation>
<xs:documentation>The lecturers of the course occurrence</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="organisations" minOccurs="0">
<xs:annotation>
<xs:documentation>Internal or external organisations.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="studentsLearnerCount" type="xs:integer" minOccurs="0">
<xs:annotation>
<xs:documentation>Number of students on the course occurrence</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="grade" type="commons:string_1024" minOccurs="0">
<xs:annotation>
<xs:documentation>The grade of the course occurrence, given by the students</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute type="commons:string_400" name="id" use="required">
<xs:annotation>
<xs:documentation>ID of the occurrence, this must be unique for each occurrence</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@id |
ID of the occurrence, this must be unique for each occurrence |
Yes |
|
semester |
The semester of the course occurrence, token from the classification scheme /dk/atira/pure/course/semester |
Yes |
|
year |
The year of the course occurrence, must be a year between 1 and 9999 |
Yes |
|
lecturers |
The lecturers of the course occurrence |
Yes |
|
organisations |
Internal or external organisations. |
No |
|
studentsLearnerCount |
Number of students on the course occurrence |
xsd:integer |
No |
grade |
The grade of the course occurrence, given by the students |
No |
Developers
developers
A list of developer elements of type developer
XML Example
<developers xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk">
<developer id="dev1"><!-- lookupHint is key from /dk/atira/pure/person/personsources, use this to prefer Scopus author ID when looking for a match -->
<person lookupId="person1" lookupHint="scopusauthor"/>
<organisations><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
</developer>
<developer id="dev2"><!-- lookupHint synchronisedUnifiedPerson, use this to prefer external id of a person from the Person synchronisation when looking for a match -->
<person lookupId="supervisor1" lookupHint="synchronisedUnifiedPerson"/>
<organisations><!-- lookupHint synchronisedUnifiedOrganisation, use this to prefer external id of an organisation from the Organisation synchronisation when looking for a match -->
<organisation lookupId="organisation3" lookupHint="synchronisedUnifiedOrganisation"/>
</organisations>
</developer>
</developers>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="developers">
<xs:sequence>
<xs:element name="developer"
type="developer"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
developer
The people responsible for the development of the course. Must be existing internal persons
XML Example
<developer xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
id="dev1"><!-- lookupHint is key from /dk/atira/pure/person/personsources, use this to prefer Scopus author ID when looking for a match -->
<person lookupId="person1" lookupHint="scopusauthor"/>
<organisations><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
</developer>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="developer">
<xs:annotation>
<xs:documentation>The people responsible for the development of the course. Must be existing internal persons</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="person" type="internalPerson" minOccurs="0">
<xs:annotation>
<xs:documentation>Internal person</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="organisations" type="internalOrganisations" minOccurs="0">
<xs:annotation>
<xs:documentation>Internal organisations affiliated to the person in their development of the course</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute type="commons:string_400" name="id" use="required">
<xs:annotation>
<xs:documentation>ID of the developer, this must be unique for each developer</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@id |
ID of the developer, this must be unique for each developer |
Yes |
|
person |
Internal person |
|
|
organisations |
Internal organisations affiliated to the person in their development of the course |
No |
internalPerson
Internal person in Pure. Performs a lookup on the ID to existing records in Pure
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="internalPerson">
<xs:annotation>
<xs:documentation>Internal person in Pure. Performs a lookup on the ID to existing records in Pure</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="commons:lookupId"/>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@commons:lookupId |
|
Yes |
Lecturers
lecturers
A list of lecturer elements of type lecturer
XML Example
<lecturers xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk"><!-- Role must defined in "Course role types" classification scheme -->
<lecturer id="lecturer1" role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
<lecturer role="assistant" id="lecturer2"><!-- For external people, if the ID doesn't match then Pure will attempt to match to existing people by name, and create a new record if none found -->
<person origin="external">
<firstName>Duke</firstName>
<lastName>Java</lastName>
</person>
<organisations><!-- As per external people, Pure will attempt to match to existing external organisation and create if no match found -->
<organisation origin="external">
<name>Sun Microsystems</name>
</organisation>
</organisations>
</lecturer>
</lecturers>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="lecturers">
<xs:sequence>
<xs:element name="lecturer"
type="lecturer"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
lecturer
Internal or external person who taught a specific instance of the course
XML Example
<lecturer xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
id="lecturer1"
role="primary">
<person lookupId="person1"/>
<organisations>
<organisation lookupId="organisation1"/>
</organisations>
</lecturer>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="lecturer">
<xs:annotation>
<xs:documentation>Internal or external person who taught a specific instance of the course</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="person" type="person" minOccurs="0">
<xs:annotation>
<xs:documentation>Internal or external person</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="organisations" minOccurs="0">
<xs:annotation>
<xs:documentation>Internal or external organisations associated to the person who taught the course</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="role" type="commons:classification" use="required">
<xs:annotation>
<xs:documentation>The role of the lecturer on the course occurrence, token from the classification scheme /dk/atira/pure/course/roles</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="commons:string_400" name="id" use="required">
<xs:annotation>
<xs:documentation>ID of the lecturer, this must be unique for each lecturer</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@role |
The role of the lecturer on the course occurrence, token from the classification scheme /dk/atira/pure/course/roles |
Yes |
|
@id |
ID of the lecturer, this must be unique for each lecturer |
Yes |
|
person |
Internal or external person |
No |
|
organisations |
Internal or external organisations associated to the person who taught the course |
No |
person
Can be an internal or external person. Use origin to enforce either internal or external
If the person is an internal person in Pure, then the lookupId attribute must be used.
If the person is an external person, and id is given, matching will be done on the id. If not found, then matching will be done on name. If still not found, then an external person with the specified id and name will be created.
XML Example
<person xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
lookupId="person1"
lookupHint="scopusauthor"/>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="person">
<xs:annotation>
<xs:documentation>
Can be an internal or external person. Use origin to enforce either internal or external
If the person is an internal person in Pure, then the lookupId attribute must be used.
If the person is an external person, and id is given, matching will be done on the id. If not found, then matching will be done on name. If still not found, then an external person with the specified id and name will be created.
</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="firstName" type="commons:string_1024" minOccurs="0">
<xs:annotation>
<xs:documentation>First name of the person. Will only be used on external persons</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lastName" type="commons:string_1024" minOccurs="0">
<xs:annotation>
<xs:documentation>Last name of the person. Will only be used on external persons</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attributeGroup ref="commons:originId">
<xs:annotation>
<xs:documentation>An ID must be provided for internal people</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@commons:originId |
An ID must be provided for internal people |
Yes |
|
firstName |
First name of the person. Will only be used on external persons |
No |
|
lastName |
Last name of the person. Will only be used on external persons |
No |
Organisations
organisations
A list of organisation elements of type organisation
XML Example
<organisations xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk"><!-- lookupHint is key from /dk/atira/pure/organisation/organisationsources, use this to prefer Organisation ID when looking for a match -->
<organisation lookupId="organisation1" lookupHint="organisationid"/>
</organisations>
XSD Definition
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="organisations">
<xs:complexType>
<xs:sequence>
<xs:element name="organisation"
type="organisation"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
internalOrganisations
A list of organisation elements of type internalOrganisation
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="internalOrganisations">
<xs:sequence>
<xs:element name="organisation"
type="internalOrganisation"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
internalOrganisation
Internal organisation in Pure. Must lookup on an existing id.
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="internalOrganisation">
<xs:annotation>
<xs:documentation>Internal organisation in Pure. Must lookup on an existing id.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="commons:lookupId"/>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@commons:lookupId |
|
Yes |
organisation
Can be both an internal and external organisation, use origin to enforce either internal or external
If the organisation is an internal organisation in Pure, then the lookupId attribute must be used.
If the organisation is an external organisation and id is given matching will be done on the id, if not found mathching will be done on name, if still not found then an external organisation with the specified id and organisation will be created.
XML Example
<organisation xmlns="v1.course.pure.atira.dk"
xmlns:commons="v3.commons.pure.atira.dk"
lookupId="organisation1"
lookupHint="organisationid"/>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="organisation">
<xs:annotation>
<xs:documentation>
Can be both an internal and external organisation, use origin to enforce either internal or external
If the organisation is an internal organisation in Pure, then the lookupId attribute must be used.
If the organisation is an external organisation and id is given matching will be done on the id, if not found mathching will be done on name, if still not found then an external organisation with the specified id and organisation will be created.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name"
type="commons:string_1024"
minOccurs="0"
maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the organisation. If matching on ID this doesn't need to be provided</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="commons:originId">
<xs:annotation>
<xs:documentation>An ID must be provided for internal organisations</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@commons:originId |
An ID must be provided for internal organisations |
Yes |
|
name |
The name of the organisation. If matching on ID this doesn't need to be provided |
No |
Descriptions
descriptions
A list of description elements of type description
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="descriptions">
<xs:sequence>
<xs:element name="description" type="description" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
description
A free text description. Can be used if multiple submission languages are supported or for alternative description types
XML Example
<description xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk">Introduction to Java programming</description>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="description">
<xs:annotation>
<xs:documentation>A free text description. Can be used if multiple submission languages are supported or for alternative description types</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="commons:localized_text_lang">
<xs:attribute name="type" type="commons:classification" use="required">
<xs:annotation>
<xs:documentation>Token from the classification scheme /dk/atira/pure/course/descriptions</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
@type |
Token from the classification scheme /dk/atira/pure/course/descriptions |
Yes |
Keywords
keywords
A list of keyword elements of type commons:keyword
XML Example
<keywords xmlns="v1.course.pure.atira.dk" xmlns:commons="v3.commons.pure.atira.dk"><!-- Keyword group on course with logical name keywordContainers must exist -->
<keyword>Java</keyword>
<keyword lang="en">Programming</keyword>
<keyword lang="de">Programmierung</keyword>
<!-- Keyword group on course with logical name ASJCSubjectAreas that is related to classification scheme /dk/atira/pure/subjectarea/asjc must exist -->
<keyword logicalName="ASJCSubjectAreas" key="1700/1701"/>
</keywords>
XSD Definition
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="keywords">
<xs:sequence>
<xs:element name="keyword" type="commons:keyword" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
XML Attribute/Element |
Description |
Type |
Mandatory |
---|---|---|---|
keyword |
|
Yes |
Updated at July 27, 2024