Blog

El formato Moodle XML explicado, con un ejemplo para descargar

Moodle XML es el formato de archivo que Moodle usa para exportar preguntas de un banco de preguntas e importarlas en otro curso u otro sitio. Admite todos los tipos de pregunta estándar, con las imágenes y las fórmulas dentro del propio archivo, y por eso es el formato que generan las herramientas que convierten exámenes en preguntas de Moodle. Casi nunca tendrás que escribirlo a mano, pero saber qué contiene ayuda cuando una importación falla o una pregunta no se comporta como esperabas.

Esta página recorre un archivo real, parte por parte. Puedes descargar los dos archivos del ejemplo: un examen breve en Word y el Moodle XML que generó a partir de él el conversor de pruebas gratuito de ExamQR.

Descarga el ejemplo

La estructura de un archivo

Un archivo Moodle XML es un elemento <quiz> que contiene una lista de elementos <question>. El atributo type indica qué es cada uno. El ejemplo contiene estos:

TipoQué esEn el ejemplo
categoryNo es una pregunta: la categoría del banco de preguntas donde se guardan las preguntas que siguenUna por cada parte del examen
multichoiceOpción múltiple, con una o varias respuestas correctasPreguntas 1 a 5
truefalseUna única afirmación de verdadero o falsoPregunta 6, una por afirmación
numericalUna respuesta que es un número, con un margen de error opcionalPregunta 7
shortanswerUna palabra o frase escrita que se compara con las respuestas aceptadasPregunta 8
essayUna respuesta redactada que califica un docentePregunta 9

Moodle también conoce matching, description (texto sin respuesta, como un texto de lectura), gapselect, ddwtos y otros. Las preguntas de tipos añadidos por plugins solo se importan en los sitios que tienen esos plugins instalados.

Categorías

<question type="category">
  <category>
    <text>$course$/top/moodle-xml-example/Parte 1. Opción múltiple</text>
  </category>
</question>

Todas las preguntas que vienen después de esta entrada van a la categoría Parte 1. Opción múltiple, dentro de una categoría con el nombre del archivo, en el nivel superior del banco de preguntas del curso ($course$). En la página de importación de Moodle, la opción Obtener categoría de archivo decide si se usan estas entradas. Desmárcala para poner todas las preguntas en la categoría que elijas.

Lo que tiene toda pregunta

<question type="multichoice">
  <name><text><![CDATA[Q1: ¿Qué dispositivo conserva los datos cuando se apaga el eq...]]></text></name>
  <questiontext format="html">
    <text><![CDATA[<p>¿Qué dispositivo conserva los datos cuando se apaga el equipo?</p>]]></text>
  </questiontext>
  <generalfeedback format="html"><text></text></generalfeedback>
  <defaultgrade>1.0000000</defaultgrade>
  <penalty>0.0000000</penalty>
  <hidden>0</hidden>
  …
  • name es lo que ves en la lista del banco de preguntas, no lo que ven los estudiantes. El conversor lo empieza con el número de la pregunta, para que el banco conserve tu orden.
  • questiontext es la pregunta en HTML. CDATA permite incluir el HTML dentro del XML sin tener que escapar cada <.
  • generalfeedback se muestra a los estudiantes después de responder, si las opciones de revisión del cuestionario lo permiten. Aquí va la resolución que escribas en el archivo de Word después de «Solución:».
  • defaultgrade es la puntuación de la pregunta; penalty es lo que cuesta cada intento fallido en los cuestionarios que permiten varios intentos.

Opción múltiple

  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>ABCD</answernumbering>
  <answer fraction="0"><text><![CDATA[Memoria RAM]]></text></answer>
  <answer fraction="100"><text><![CDATA[Disco duro]]></text></answer>
  <answer fraction="0"><text><![CDATA[Caché de la CPU]]></text></answer>
  <answer fraction="0"><text><![CDATA[Tarjeta gráfica]]></text></answer>
  • fraction es la parte de la puntuación que obtiene una respuesta, en porcentaje: 100 para la correcta y 0 para las demás.
  • single vale true cuando hay una sola respuesta correcta (botones de opción) y false cuando hay varias (casillas de verificación). En la pregunta 5 del ejemplo, Python y Java tienen cada una fraction="50" y las dos opciones incorrectas fraction="-100", de modo que marcar una incorrecta anula la puntuación; Moodle nunca baja de cero en una pregunta.
  • shuffleanswers permite a Moodle cambiar el orden de las opciones para cada estudiante, si el cuestionario también lo permite. La pregunta 2 termina con «Todas las anteriores», que debe quedar la última, y Moodle no puede fijar una sola opción, así que el conversor escribe false en esa pregunta y te lo indica.

Verdadero o falso

La pregunta truefalse de Moodle contiene una sola afirmación. Por eso, una pregunta de Word con cuatro afirmaciones de la a) a la d) se convierte en cuatro preguntas de Moodle, cada una con una cuarta parte de la puntuación (defaultgrade 0.25), y la instrucción común se repite encima de cada afirmación:

<question type="truefalse">
  <questiontext format="html"><text><![CDATA[<p>Indica si cada afirmación sobre las redes es verdadera o falsa.</p>
    <p><b>b)</b> Internet es una única red que pertenece a una sola empresa.</p>]]></text></questiontext>
  <defaultgrade>0.2500000</defaultgrade>
  <answer fraction="0"><text>true</text></answer>
  <answer fraction="100"><text>false</text></answer>

Respuesta corta y números

<question type="numerical">
  …
  <answer fraction="100"><text>11</text><tolerance>0</tolerance></answer>

<question type="shortanswer">
  …
  <usecase>0</usecase>
  <answer fraction="100"><text>Ctrl+C</text></answer>
  • Una respuesta que es un número se convierte en numerical, así que se aceptan «11», «11.0» y « 11». tolerance permite un margen, por ejemplo 0,5 para valores medidos.
  • Las demás respuestas se convierten en shortanswer. Con usecase 0 no se distinguen mayúsculas y minúsculas. Si hay varias respuestas aceptadas, son varios elementos <answer>, cada uno con fraction 100.

Desarrollo

<question type="essay">
  …
  <responseformat>editor</responseformat>
  <responserequired>1</responserequired>
  <responsefieldlines>15</responsefieldlines>
  <attachments>0</attachments>
  <graderinfo format="html"><text></text></graderinfo>

Las preguntas de desarrollo (en Moodle, tipo Ensayo) las califica un docente, así que no tienen respuesta correcta. responseformat editor ofrece a los estudiantes un editor de texto de 15 líneas. graderinfo solo lo ven quienes califican; cuando tu examen tiene una respuesta modelo para la pregunta, se coloca ahí.

Imágenes

<questiontext format="html">
  <text><![CDATA[<p>… ¿Cuánto mide el lado más largo?</p>
    <p><img src="@@PLUGINFILE@@/1794550016_3e1f0af9d772b982_001.png" alt="" /></p>]]></text>
  <file name="1794550016_3e1f0af9d772b982_001.png" path="/" encoding="base64">iVBORw0KGgo…</file>
</questiontext>

La imagen viaja dentro del archivo. El elemento <file> contiene la imagen codificada como texto base64, y el HTML apunta a ella con @@PLUGINFILE@@, que Moodle sustituye por la dirección del archivo guardado después de importar. Un enlace a una imagen de otro sitio web también funcionaría, pero se rompe cuando ese sitio cambia.

Fórmulas

<p>¿Cuáles son las soluciones de la ecuación \(x^2-5x+6=0\)?</p>

Una ecuación de Word se escribe en TeX entre \( y \). Moodle la muestra como fórmula gracias a su filtro MathJax, que viene activado por defecto. Si los estudiantes ven el código en lugar de la fórmula, pide al administrador del sitio que active el filtro MathJax para el curso.

Importar el ejemplo

  1. Abre un curso en el que puedas hacer pruebas y ve a su banco de preguntas (en el menú Más del curso: Banco de preguntas, o Bancos de preguntas en las versiones recientes).
  2. Elige Importar, selecciona Formato Moodle XML, arrastra el archivo .xml al recuadro y haz clic en Importar.
  3. Moodle muestra la lista de preguntas que ha leído. Haz clic en Continuar; las preguntas están en la categoría moodle-xml-example y en sus cuatro partes.
  4. Previsualiza la pregunta 3 (la imagen) y la pregunta 4 (la fórmula) para comprobar que ambas se muestran bien.

Editar un archivo a mano

  • Usa un editor de texto plano que guarde en UTF-8, no un procesador de textos.
  • Mantén el HTML dentro de CDATA. Fuera de él, escribe &lt; en lugar de < y &amp; en lugar de &.
  • Una sola etiqueta sin cerrar hace que Moodle rechace el archivo entero. Ábrelo antes en un navegador: si el archivo está dañado, muestra la línea del error.
  • Importa primero en un curso de prueba y después en el real, y previsualiza algunas preguntas.

Crea uno a partir de tu propio examen de Word

Escribe el examen en Word como siempre, con las reglas de la guía rápida del formato de Word; después abre el conversor de pruebas gratuito, sube el archivo y haz clic en Moodle XML (.xml). No necesitas cuenta. Antes de descargar, el conversor enumera todo lo que Moodle hace de otra manera, por ejemplo una pregunta de respuesta múltiple que Moodle puntúa con crédito parcial. El proceso completo está en cómo importar un examen de Word en Moodle.

Preguntas frecuentes

¿Moodle XML es lo mismo que GIFT o Aiken? No. GIFT y Aiken son formatos de texto plano pensados para escribirse a mano; no pueden llevar imágenes dentro del archivo, y Aiken solo admite opción múltiple con una única respuesta. Moodle XML es más largo, pero lo lleva todo.

¿Pueden leer Moodle XML otros sistemas? Algunos sí, pero es el formato propio de Moodle. Para los sistemas que importan paquetes QTI 2.1, el conversor también genera uno. Canvas Classic Quizzes espera QTI 1.2, así que no lee ese paquete.

¿Por qué Moodle cuenta más preguntas de las que tiene mi examen? Porque algunas preguntas se convierten en varias preguntas de Moodle: cada afirmación de verdadero/falso es su propia pregunta, y un texto de lectura se convierte en un elemento de descripción situado antes de sus preguntas. El conversor te dice cuántas preguntas de Moodle ha escrito.

¿El ejemplo funciona en otros idiomas? Sí. El ejemplo está disponible en todos los idiomas de este sitio; cambia el idioma en la parte superior de la página para descargarlo.

Más artículos

13 de noviembre de 2026

Moodle, Canvas o un aula sin conexión: dónde hacer tu examen

Una comparación honesta de cuatro lugares para hacer el mismo examen: el cuestionario de tu LMS, una plataforma de exámenes en línea, un aula de informática sin conexión y el papel. En qué destaca cada uno, dónde falla y cómo llevar un mismo examen de Word de uno a otro.

17 de octubre de 2026

Cómo planificar una jornada de evaluación en línea para 300 candidatos

Cómo repartir a 300 candidatos en sesiones, comprobar cuántos permite tu plataforma a la vez, preparar el acceso, los puestos y el personal, y resolver el mismo día un portátil que se apaga o una conexión que se cae. Con un calendario y una lista de comprobación.