Segue abaixo um guia simples para a estrutura básica de um arquivo de dados Enterprise IMS. Mais informações disponíveis no Site oficial do IMS Enterprise.
Se quiser leia o Sumário de Conformidade que descreve quais elementos de informação IMS este plugin consegue processar.
Para qualquer estilo de inscrição IMS voce precisa de uma etiqueta <group> que especifica o curso, uma etiqueta <person> que especifica a conta de usuário, e uma etiqueta <membership> contendo etiquetas <member> que especificam as funções das pessoas dentro do curso.
Lembre-se que chaves numéricas usadas no banco de dados do Moodle não são dados interoperáveis - um sistema de informações de estudantes nunca saberá antecipadamente que João é o usuário número 20 do banco de dados Moodle - assim este não é o tipo de chave permutada neste tipo de dados.
Normalmente um curso tem um código de referência e um nome, então vamos assumir que seu código é MOODLE101. Para definir seu curso você poderia usar
<group>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<description>
<short>Moodle 101</short>
</description>
</group>
A rotina de inscrição irá procurar por um curso com o código MOODLE101, e (opcionalmente) irá criar o curso se já não existir. De forma similar para a pessoa - vamos supor que seja "jmoodle":
<person>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<userid>jmoodle</userid>
<name>
<fn>Joe Moodle</fn>
<n>
<family>MOODLE</family>
<given>JOE</given>
</n>
</name>
</person>
Se João ainda não tem uma conta, a rotina pode (opcionalmente) criar uma conta para ele.
Vejamos agora a participação, adicionando um pessoa ao curso:
<membership>
<sourcedid>
<source>MyDataSystem</source>
<id>MOODLE101</id>
</sourcedid>
<member>
<sourcedid>
<source>MyDataSystem</source>
<id>jmoodle</id>
</sourcedid>
<role roletype="01">
<status>1</status>
<extension><cohort>unit 2</cohort></extension>
</role>
</member>
</membership>
A especificação do IMS Enterprise permite a especificação de datas de início/término de inscrição ao curso, então elas podem ser incluídas usando a etiqueta <timeframe> se for necessário.
Se uma pessoa já foi incluída em um grupo dentro do curso, o roteiro não irá modificá-lo. Se eles não estão agrupados, entretanto, o agrupamento específicado será aplicado.