@learnpack/learnpack 5.0.309 → 5.0.310

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +409 -409
  2. package/lib/commands/audit.js +15 -15
  3. package/lib/commands/breakToken.js +19 -19
  4. package/lib/commands/clean.js +3 -3
  5. package/lib/commands/logout.js +3 -3
  6. package/lib/commands/serve.js +16 -16
  7. package/lib/creatorDist/assets/{index-B37w_ZhT.js → index-BI7U47zy.js} +13186 -13013
  8. package/lib/creatorDist/index.html +1 -1
  9. package/lib/managers/config/index.js +77 -77
  10. package/lib/utils/creatorUtilities.js +14 -14
  11. package/lib/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  12. package/lib/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  13. package/lib/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -110
  14. package/lib/utils/templates/scorm/config/index.html +209 -209
  15. package/lib/utils/templates/scorm/ims_xml.xsd +1 -1
  16. package/lib/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -345
  17. package/lib/utils/templates/scorm/imsmanifest.xml +38 -38
  18. package/lib/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -573
  19. package/package.json +1 -1
  20. package/src/commands/audit.ts +487 -487
  21. package/src/commands/breakToken.ts +67 -67
  22. package/src/commands/clean.ts +30 -30
  23. package/src/commands/logout.ts +38 -38
  24. package/src/commands/publish.ts +517 -517
  25. package/src/commands/serve.ts +3179 -3179
  26. package/src/commands/start.ts +333 -333
  27. package/src/commands/translate.ts +123 -123
  28. package/src/creator/README.md +54 -54
  29. package/src/creator/package-lock.json +6621 -6621
  30. package/src/creator/package.json +55 -55
  31. package/src/creator/src/App.tsx +611 -608
  32. package/src/creator/src/components/FileUploader.tsx +340 -302
  33. package/src/creator/src/components/Icon.tsx +18 -18
  34. package/src/creator/src/components/LessonItem.tsx +152 -152
  35. package/src/creator/src/components/Login.tsx +259 -259
  36. package/src/creator/src/components/ParamsChecker.tsx +25 -25
  37. package/src/creator/src/components/Uploader.tsx +3 -6
  38. package/src/creator/src/components/syllabus/ContentIndex.tsx +323 -323
  39. package/src/creator/src/components/syllabus/SyllabusEditor.tsx +341 -337
  40. package/src/creator/src/i18n.ts +28 -28
  41. package/src/creator/src/locales/en.json +139 -138
  42. package/src/creator/src/locales/es.json +139 -138
  43. package/src/creator/src/utils/configTypes.ts +122 -122
  44. package/src/creator/src/utils/constants.ts +13 -13
  45. package/src/creator/src/utils/creatorUtils.ts +46 -46
  46. package/src/creator/src/utils/eventBus.ts +2 -2
  47. package/src/creator/src/utils/rigo.ts +1 -1
  48. package/src/creator/src/utils/socket.ts +61 -61
  49. package/src/creator/src/utils/store.ts +222 -222
  50. package/src/creator/src/vite-env.d.ts +1 -1
  51. package/src/creator/vite.config.ts +13 -13
  52. package/src/creatorDist/assets/{index-B37w_ZhT.js → index-BI7U47zy.js} +13186 -13013
  53. package/src/creatorDist/index.html +1 -1
  54. package/src/managers/config/defaults.ts +49 -49
  55. package/src/managers/config/exercise.ts +364 -364
  56. package/src/managers/config/index.ts +775 -775
  57. package/src/managers/file.ts +236 -236
  58. package/src/managers/server/routes.ts +554 -554
  59. package/src/managers/telemetry.ts +188 -188
  60. package/src/models/action.ts +13 -13
  61. package/src/models/config-manager.ts +28 -28
  62. package/src/models/config.ts +106 -106
  63. package/src/models/exercise-obj.ts +30 -30
  64. package/src/models/session.ts +39 -39
  65. package/src/models/socket.ts +61 -61
  66. package/src/models/status.ts +16 -16
  67. package/src/ui/_app/app.css +1 -1
  68. package/src/ui/_app/app.js +477 -407
  69. package/src/ui/app.tar.gz +0 -0
  70. package/src/utils/BaseCommand.ts +56 -56
  71. package/src/utils/api.ts +665 -665
  72. package/src/utils/audit.ts +392 -392
  73. package/src/utils/checkNotInstalled.ts +267 -267
  74. package/src/utils/convertCreds.js +34 -34
  75. package/src/utils/creatorUtilities.ts +504 -504
  76. package/src/utils/export/README.md +178 -178
  77. package/src/utils/incrementVersion.js +74 -74
  78. package/src/utils/misc.ts +58 -58
  79. package/src/utils/sidebarGenerator.ts +195 -195
  80. package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  81. package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  82. package/src/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -110
  83. package/src/utils/templates/scorm/config/index.html +209 -209
  84. package/src/utils/templates/scorm/ims_xml.xsd +1 -1
  85. package/src/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -345
  86. package/src/utils/templates/scorm/imsmanifest.xml +38 -38
  87. package/src/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -573
@@ -10,7 +10,7 @@
10
10
  />
11
11
 
12
12
  <title>Learnpack Creator: Craft tutorials in seconds!</title>
13
- <script type="module" crossorigin src="/creator/assets/index-B37w_ZhT.js"></script>
13
+ <script type="module" crossorigin src="/creator/assets/index-BI7U47zy.js"></script>
14
14
  <link rel="stylesheet" crossorigin href="/creator/assets/index-D4SYZg0r.css">
15
15
  </head>
16
16
  <body>
@@ -474,66 +474,66 @@ function deepMerge(...sources) {
474
474
  return acc;
475
475
  }
476
476
  const buildAgentWarning = (current, suggested) => {
477
- const message = `# Agent mismatch!\n
478
-
479
- In LearnPack, the agent is in charge of running the LearnPack interface.
480
-
481
- You're currently using LearnPack through \`${current}\` but the suggested agent is \`${suggested}\`.
482
-
483
- We recommend strongly recommend changing your agent.
484
-
485
- ${stepsToChangeAgent(suggested)}
477
+ const message = `# Agent mismatch!\n
478
+
479
+ In LearnPack, the agent is in charge of running the LearnPack interface.
480
+
481
+ You're currently using LearnPack through \`${current}\` but the suggested agent is \`${suggested}\`.
482
+
483
+ We recommend strongly recommend changing your agent.
484
+
485
+ ${stepsToChangeAgent(suggested)}
486
486
  `;
487
487
  return message;
488
488
  };
489
489
  const stepsToChangeAgent = (agent) => {
490
490
  if (agent === "vscode") {
491
- return `
492
- # Steps to Change Agent to VSCode
493
-
494
- 1. **Install VSCode**:
495
- - Visit the [VSCode website](https://code.visualstudio.com/Download) and download the latest version.
496
- - Follow the installation instructions for your operating system.
497
-
498
- 2. **Install LearnPack VSCode Extension**:
499
- - Open VSCode.
500
- - Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or by pressing \`Ctrl+Shift+X\`.
501
- - Search for "LearnPack" and click "Install".
502
- - If the extension is already installed but disabled, enable it.
503
-
504
- 3. **Run LearnPack in VSCode**:
505
- - Open your terminal in VSCode.
506
- - Navigate to your LearnPack project directory.
507
- - Run the following command:
508
- \`\`\`sh
509
- learnpack start
510
- \`\`\`
511
-
512
- We strongly recommend using VSCode for a better learning experience.
491
+ return `
492
+ # Steps to Change Agent to VSCode
493
+
494
+ 1. **Install VSCode**:
495
+ - Visit the [VSCode website](https://code.visualstudio.com/Download) and download the latest version.
496
+ - Follow the installation instructions for your operating system.
497
+
498
+ 2. **Install LearnPack VSCode Extension**:
499
+ - Open VSCode.
500
+ - Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or by pressing \`Ctrl+Shift+X\`.
501
+ - Search for "LearnPack" and click "Install".
502
+ - If the extension is already installed but disabled, enable it.
503
+
504
+ 3. **Run LearnPack in VSCode**:
505
+ - Open your terminal in VSCode.
506
+ - Navigate to your LearnPack project directory.
507
+ - Run the following command:
508
+ \`\`\`sh
509
+ learnpack start
510
+ \`\`\`
511
+
512
+ We strongly recommend using VSCode for a better learning experience.
513
513
  `;
514
514
  }
515
515
  if (agent === "os") {
516
- return `
517
- # Steps to Change Agent to OS
518
-
519
- This learning package was designed to run outside of VSCode. We strongly recommend closing VSCode and running the package independently.
520
-
521
- 1. **Close VSCode**:
522
- - Save your work and close the VSCode application.
523
-
524
- 2. **Open a New Terminal**:
525
- - Open a terminal or command prompt on your operating system.
526
-
527
- 3. **Navigate to Your LearnPack Project Directory**:
528
- - Use the \`cd\` command to navigate to the directory where your LearnPack project is located.
529
-
530
- 4. **Run LearnPack**:
531
- - Run the following command to start LearnPack:
532
- \`\`\`sh
533
- learnpack start
534
- \`\`\`
535
-
536
- We strongly recommend running the package independently for a better learning experience.
516
+ return `
517
+ # Steps to Change Agent to OS
518
+
519
+ This learning package was designed to run outside of VSCode. We strongly recommend closing VSCode and running the package independently.
520
+
521
+ 1. **Close VSCode**:
522
+ - Save your work and close the VSCode application.
523
+
524
+ 2. **Open a New Terminal**:
525
+ - Open a terminal or command prompt on your operating system.
526
+
527
+ 3. **Navigate to Your LearnPack Project Directory**:
528
+ - Use the \`cd\` command to navigate to the directory where your LearnPack project is located.
529
+
530
+ 4. **Run LearnPack**:
531
+ - Run the following command to start LearnPack:
532
+ \`\`\`sh
533
+ learnpack start
534
+ \`\`\`
535
+
536
+ We strongly recommend running the package independently for a better learning experience.
537
537
  `;
538
538
  }
539
539
  return "";
@@ -559,31 +559,31 @@ const isExtensionInstalled = (extensionName) => {
559
559
  const result = shell.exec("code --list-extensions", { silent: true });
560
560
  return result.stdout.split("\n").includes(extensionName);
561
561
  };
562
- const EXTENSION_INSTALLATION_STEPS = `
563
- # Steps to Install LearnPack VSCode Extension
564
-
565
- 1. **Open VSCode**:
566
- - Launch the Visual Studio Code application on your computer.
567
-
568
- 2. **Go to Extensions View**:
569
- - Click on the Extensions icon in the Activity Bar on the side of the window.
570
- - Alternatively, you can open the Extensions view by pressing \`Ctrl+Shift+X\`.
571
-
572
- 3. **Search for LearnPack**:
573
- - In the Extensions view, type "LearnPack" into the search bar.
574
-
575
- 4. **Install the Extension**:
576
- - Find the "LearnPack" extension in the search results and click the "Install" button.
577
- - If the extension is already installed but disabled, click the "Enable" button.
578
-
579
- 5. **Verify Installation**:
580
- - Once installed, you can verify the installation by running the following command in the terminal:
581
- \`\`\`sh
582
- code --list-extensions | grep learn-pack.learnpack-vscode
583
- \`\`\`
584
- - If the extension is listed, it means the installation was successful.
585
-
586
- We strongly recommend using the LearnPack extension in VSCode for a better learning experience.
562
+ const EXTENSION_INSTALLATION_STEPS = `
563
+ # Steps to Install LearnPack VSCode Extension
564
+
565
+ 1. **Open VSCode**:
566
+ - Launch the Visual Studio Code application on your computer.
567
+
568
+ 2. **Go to Extensions View**:
569
+ - Click on the Extensions icon in the Activity Bar on the side of the window.
570
+ - Alternatively, you can open the Extensions view by pressing \`Ctrl+Shift+X\`.
571
+
572
+ 3. **Search for LearnPack**:
573
+ - In the Extensions view, type "LearnPack" into the search bar.
574
+
575
+ 4. **Install the Extension**:
576
+ - Find the "LearnPack" extension in the search results and click the "Install" button.
577
+ - If the extension is already installed but disabled, click the "Enable" button.
578
+
579
+ 5. **Verify Installation**:
580
+ - Once installed, you can verify the installation by running the following command in the terminal:
581
+ \`\`\`sh
582
+ code --list-extensions | grep learn-pack.learnpack-vscode
583
+ \`\`\`
584
+ - If the extension is listed, it means the installation was successful.
585
+
586
+ We strongly recommend using the LearnPack extension in VSCode for a better learning experience.
587
587
  `;
588
588
  /**
589
589
  * Installs the LearnPack VSCode extension if the 'code' command is available.
@@ -333,13 +333,13 @@ function countSentences(text) {
333
333
  function howManyDifficultParagraphs(paragraphs, maxFKGL) {
334
334
  return paragraphs.filter(paragraph => paragraph.fkgl > maxFKGL).length;
335
335
  }
336
- const example_content = `Write or paste your table of content below this line, each topic should be defined on a new line, here is an example:
337
-
338
- Introduction to AI: Explain what is AI and its applications
339
- Introduction to Machine Learning: Explain what is machine learning and its applications
340
- What is an AI Model: Explain what is an AI model and its applications
341
- How to use an AI Model: Different APIs, local models, etc.
342
- How to build an AI Model: Fine-tuning, data collection, cleaning and more.
336
+ const example_content = `Write or paste your table of content below this line, each topic should be defined on a new line, here is an example:
337
+
338
+ Introduction to AI: Explain what is AI and its applications
339
+ Introduction to Machine Learning: Explain what is machine learning and its applications
340
+ What is an AI Model: Explain what is an AI model and its applications
341
+ How to use an AI Model: Different APIs, local models, etc.
342
+ How to build an AI Model: Fine-tuning, data collection, cleaning and more.
343
343
  `;
344
344
  const appendContentIndex = async () => {
345
345
  const choices = await prompts([
@@ -369,13 +369,13 @@ const appendContentIndex = async () => {
369
369
  return null;
370
370
  };
371
371
  exports.appendContentIndex = appendContentIndex;
372
- const example_airules = `
373
- Write with an engaging tone, use simple words and avoid complex sentences.
374
- Write in first person, as if you are talking to the reader.
375
- Add mental maps to help the reader understand the content.
376
- Add diagrams to help the reader understand the content.
377
- No code exercises required
378
-
372
+ const example_airules = `
373
+ Write with an engaging tone, use simple words and avoid complex sentences.
374
+ Write in first person, as if you are talking to the reader.
375
+ Add mental maps to help the reader understand the content.
376
+ Add diagrams to help the reader understand the content.
377
+ No code exercises required
378
+
379
379
  `;
380
380
  const appendAIRules = async () => {
381
381
  const choices = await prompts([
@@ -1,26 +1,26 @@
1
- # `01` Primer Ejercicio
2
-
3
- Hemos creado este primer ejercicio como ejemplo. Lo puedes ubicar en la carpeta `./01-hello-world`.
4
-
5
- 1. Cada ejercicio debe estar ubicado en carpetas separadas y debe tener un archivo README.md con las instrucciones del ejercicio escrito en markdown.
6
- 2. Puedes tener un archivo README el cual será como una página de un libro, sin archivos de código.
7
- 3. También puedes agregar un archivo `README.[lenguaje].md` para traducciones, por ejemplo `README.es.md` para español.
8
-
9
- ## Inserta videos
10
-
11
- Si quieres incluir algún video introductorio para cada ejercicio, agrega la propiedad `intro` en el inicio del README.md para ese ejercicio en particular:
12
-
13
- ```markdown
14
- ---
15
- intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
16
- ---
17
- ```
18
-
19
- Tambien puedes agregar un video explicando la solución para cada ejercicio agregando la propiedad `tutorial` al inicio del markdown del README.md correspondiente:
20
-
21
- ```markdown
22
- ---
23
- intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
24
- tutorial: "https://www.youtube.com/watch?v=YkgkThdzX-8"
25
- ---
26
- ```
1
+ # `01` Primer Ejercicio
2
+
3
+ Hemos creado este primer ejercicio como ejemplo. Lo puedes ubicar en la carpeta `./01-hello-world`.
4
+
5
+ 1. Cada ejercicio debe estar ubicado en carpetas separadas y debe tener un archivo README.md con las instrucciones del ejercicio escrito en markdown.
6
+ 2. Puedes tener un archivo README el cual será como una página de un libro, sin archivos de código.
7
+ 3. También puedes agregar un archivo `README.[lenguaje].md` para traducciones, por ejemplo `README.es.md` para español.
8
+
9
+ ## Inserta videos
10
+
11
+ Si quieres incluir algún video introductorio para cada ejercicio, agrega la propiedad `intro` en el inicio del README.md para ese ejercicio en particular:
12
+
13
+ ```markdown
14
+ ---
15
+ intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
16
+ ---
17
+ ```
18
+
19
+ Tambien puedes agregar un video explicando la solución para cada ejercicio agregando la propiedad `tutorial` al inicio del markdown del README.md correspondiente:
20
+
21
+ ```markdown
22
+ ---
23
+ intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
24
+ tutorial: "https://www.youtube.com/watch?v=YkgkThdzX-8"
25
+ ---
26
+ ```
@@ -1,26 +1,26 @@
1
- # `01` First Exercise
2
-
3
- We created this first exercise as an example, you can find it located in the folder `./01-hello-world`.
4
-
5
- 1. Every exercise must be located on a separate folder and it must have a README.md file inside with the exercise instructions written in markdown.
6
- 2. You can have just a README file and it will be like a page in a book, no code files.
7
- 3. You can also add a `README.[lang].md` file for translations, for example: `README.es.md` for spanish.
8
-
9
- ## Video compatibility
10
-
11
- If you want to include some video introduction for each exercise, add a `intro` property in the markdown frontmatter of the README.md for that particular exercise:
12
-
13
- ```markdown
14
- ---
15
- intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
16
- ---
17
- ```
18
-
19
- You can also add a video solution for each exercise by adding a `tutorial` property on the markdown frontmatter of it's README.md:
20
-
21
- ```markdown
22
- ---
23
- intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
24
- tutorial: "https://www.youtube.com/watch?v=YkgkThdzX-8"
25
- ---
26
- ```
1
+ # `01` First Exercise
2
+
3
+ We created this first exercise as an example, you can find it located in the folder `./01-hello-world`.
4
+
5
+ 1. Every exercise must be located on a separate folder and it must have a README.md file inside with the exercise instructions written in markdown.
6
+ 2. You can have just a README file and it will be like a page in a book, no code files.
7
+ 3. You can also add a `README.[lang].md` file for translations, for example: `README.es.md` for spanish.
8
+
9
+ ## Video compatibility
10
+
11
+ If you want to include some video introduction for each exercise, add a `intro` property in the markdown frontmatter of the README.md for that particular exercise:
12
+
13
+ ```markdown
14
+ ---
15
+ intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
16
+ ---
17
+ ```
18
+
19
+ You can also add a video solution for each exercise by adding a `tutorial` property on the markdown frontmatter of it's README.md:
20
+
21
+ ```markdown
22
+ ---
23
+ intro: "https://www.youtube.com/watch?v=YkgkThdzX-8"
24
+ tutorial: "https://www.youtube.com/watch?v=YkgkThdzX-8"
25
+ ---
26
+ ```
@@ -1,110 +1,110 @@
1
- <?xml version="1.0"?>
2
- <!-- filename=adlcp_rootv1p2.xsd -->
3
- <!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
4
-
5
- <xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
6
- targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
7
- xmlns:xml="http://www.w3.org/XML/1998/namespace"
8
- xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
9
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
10
- elementFormDefault="unqualified"
11
- version="ADL Version 1.2">
12
-
13
- <xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
14
- schemaLocation="imscp_rootv1p1p2.xsd"/>
15
-
16
- <xsd:element name="location" type="locationType"/>
17
- <xsd:element name="prerequisites" type="prerequisitesType"/>
18
- <xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
19
- <xsd:element name="timelimitaction" type="timelimitactionType"/>
20
- <xsd:element name="datafromlms" type="datafromlmsType"/>
21
- <xsd:element name="masteryscore" type="masteryscoreType"/>
22
-
23
-
24
- <xsd:element name="schema" type="newSchemaType"/>
25
- <xsd:simpleType name="newSchemaType">
26
- <xsd:restriction base="imscp:schemaType">
27
- <xsd:enumeration value="ADL SCORM"/>
28
- </xsd:restriction>
29
- </xsd:simpleType>
30
-
31
- <xsd:element name="schemaversion" type="newSchemaversionType"/>
32
- <xsd:simpleType name="newSchemaversionType">
33
- <xsd:restriction base="imscp:schemaversionType">
34
- <xsd:enumeration value="1.2"/>
35
- </xsd:restriction>
36
- </xsd:simpleType>
37
-
38
-
39
- <xsd:attribute name="scormtype">
40
- <xsd:simpleType>
41
- <xsd:restriction base="xsd:string">
42
- <xsd:enumeration value="asset"/>
43
- <xsd:enumeration value="sco"/>
44
- </xsd:restriction>
45
- </xsd:simpleType>
46
- </xsd:attribute>
47
-
48
- <xsd:simpleType name="locationType">
49
- <xsd:restriction base="xsd:string">
50
- <xsd:maxLength value="2000"/>
51
- </xsd:restriction>
52
- </xsd:simpleType>
53
-
54
-
55
- <xsd:complexType name="prerequisitesType">
56
- <xsd:simpleContent>
57
- <xsd:extension base="prerequisiteStringType">
58
- <xsd:attributeGroup ref="attr.prerequisitetype"/>
59
- </xsd:extension>
60
- </xsd:simpleContent>
61
- </xsd:complexType>
62
-
63
- <xsd:attributeGroup name="attr.prerequisitetype">
64
- <xsd:attribute name="type" use="required">
65
- <xsd:simpleType>
66
- <xsd:restriction base="xsd:string">
67
- <xsd:enumeration value="aicc_script"/>
68
- </xsd:restriction>
69
- </xsd:simpleType>
70
- </xsd:attribute>
71
- </xsd:attributeGroup>
72
-
73
- <xsd:simpleType name="maxtimeallowedType">
74
- <xsd:restriction base="xsd:string">
75
- <xsd:maxLength value="13"/>
76
- </xsd:restriction>
77
- </xsd:simpleType>
78
-
79
- <xsd:simpleType name="timelimitactionType">
80
- <xsd:restriction base="stringType">
81
- <xsd:enumeration value="exit,no message"/>
82
- <xsd:enumeration value="exit,message"/>
83
- <xsd:enumeration value="continue,no message"/>
84
- <xsd:enumeration value="continue,message"/>
85
- </xsd:restriction>
86
- </xsd:simpleType>
87
-
88
- <xsd:simpleType name="datafromlmsType">
89
- <xsd:restriction base="xsd:string">
90
- <xsd:maxLength value="255"/>
91
- </xsd:restriction>
92
- </xsd:simpleType>
93
-
94
- <xsd:simpleType name="masteryscoreType">
95
- <xsd:restriction base="xsd:string">
96
- <xsd:maxLength value="200"/>
97
- </xsd:restriction>
98
- </xsd:simpleType>
99
-
100
- <xsd:simpleType name="stringType">
101
- <xsd:restriction base="xsd:string"/>
102
- </xsd:simpleType>
103
-
104
- <xsd:simpleType name="prerequisiteStringType">
105
- <xsd:restriction base="xsd:string">
106
- <xsd:maxLength value="200"/>
107
- </xsd:restriction>
108
- </xsd:simpleType>
109
-
110
- </xsd:schema>
1
+ <?xml version="1.0"?>
2
+ <!-- filename=adlcp_rootv1p2.xsd -->
3
+ <!-- Conforms to w3c http://www.w3.org/TR/xmlschema-1/ 2000-10-24-->
4
+
5
+ <xsd:schema xmlns="http://www.adlnet.org/xsd/adlcp_rootv1p2"
6
+ targetNamespace="http://www.adlnet.org/xsd/adlcp_rootv1p2"
7
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
8
+ xmlns:imscp="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
9
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
10
+ elementFormDefault="unqualified"
11
+ version="ADL Version 1.2">
12
+
13
+ <xsd:import namespace="http://www.imsproject.org/xsd/imscp_rootv1p1p2"
14
+ schemaLocation="imscp_rootv1p1p2.xsd"/>
15
+
16
+ <xsd:element name="location" type="locationType"/>
17
+ <xsd:element name="prerequisites" type="prerequisitesType"/>
18
+ <xsd:element name="maxtimeallowed" type="maxtimeallowedType"/>
19
+ <xsd:element name="timelimitaction" type="timelimitactionType"/>
20
+ <xsd:element name="datafromlms" type="datafromlmsType"/>
21
+ <xsd:element name="masteryscore" type="masteryscoreType"/>
22
+
23
+
24
+ <xsd:element name="schema" type="newSchemaType"/>
25
+ <xsd:simpleType name="newSchemaType">
26
+ <xsd:restriction base="imscp:schemaType">
27
+ <xsd:enumeration value="ADL SCORM"/>
28
+ </xsd:restriction>
29
+ </xsd:simpleType>
30
+
31
+ <xsd:element name="schemaversion" type="newSchemaversionType"/>
32
+ <xsd:simpleType name="newSchemaversionType">
33
+ <xsd:restriction base="imscp:schemaversionType">
34
+ <xsd:enumeration value="1.2"/>
35
+ </xsd:restriction>
36
+ </xsd:simpleType>
37
+
38
+
39
+ <xsd:attribute name="scormtype">
40
+ <xsd:simpleType>
41
+ <xsd:restriction base="xsd:string">
42
+ <xsd:enumeration value="asset"/>
43
+ <xsd:enumeration value="sco"/>
44
+ </xsd:restriction>
45
+ </xsd:simpleType>
46
+ </xsd:attribute>
47
+
48
+ <xsd:simpleType name="locationType">
49
+ <xsd:restriction base="xsd:string">
50
+ <xsd:maxLength value="2000"/>
51
+ </xsd:restriction>
52
+ </xsd:simpleType>
53
+
54
+
55
+ <xsd:complexType name="prerequisitesType">
56
+ <xsd:simpleContent>
57
+ <xsd:extension base="prerequisiteStringType">
58
+ <xsd:attributeGroup ref="attr.prerequisitetype"/>
59
+ </xsd:extension>
60
+ </xsd:simpleContent>
61
+ </xsd:complexType>
62
+
63
+ <xsd:attributeGroup name="attr.prerequisitetype">
64
+ <xsd:attribute name="type" use="required">
65
+ <xsd:simpleType>
66
+ <xsd:restriction base="xsd:string">
67
+ <xsd:enumeration value="aicc_script"/>
68
+ </xsd:restriction>
69
+ </xsd:simpleType>
70
+ </xsd:attribute>
71
+ </xsd:attributeGroup>
72
+
73
+ <xsd:simpleType name="maxtimeallowedType">
74
+ <xsd:restriction base="xsd:string">
75
+ <xsd:maxLength value="13"/>
76
+ </xsd:restriction>
77
+ </xsd:simpleType>
78
+
79
+ <xsd:simpleType name="timelimitactionType">
80
+ <xsd:restriction base="stringType">
81
+ <xsd:enumeration value="exit,no message"/>
82
+ <xsd:enumeration value="exit,message"/>
83
+ <xsd:enumeration value="continue,no message"/>
84
+ <xsd:enumeration value="continue,message"/>
85
+ </xsd:restriction>
86
+ </xsd:simpleType>
87
+
88
+ <xsd:simpleType name="datafromlmsType">
89
+ <xsd:restriction base="xsd:string">
90
+ <xsd:maxLength value="255"/>
91
+ </xsd:restriction>
92
+ </xsd:simpleType>
93
+
94
+ <xsd:simpleType name="masteryscoreType">
95
+ <xsd:restriction base="xsd:string">
96
+ <xsd:maxLength value="200"/>
97
+ </xsd:restriction>
98
+ </xsd:simpleType>
99
+
100
+ <xsd:simpleType name="stringType">
101
+ <xsd:restriction base="xsd:string"/>
102
+ </xsd:simpleType>
103
+
104
+ <xsd:simpleType name="prerequisiteStringType">
105
+ <xsd:restriction base="xsd:string">
106
+ <xsd:maxLength value="200"/>
107
+ </xsd:restriction>
108
+ </xsd:simpleType>
109
+
110
+ </xsd:schema>