@learnpack/learnpack 5.0.298 → 5.0.301

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 (84) 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 +32 -13
  7. package/lib/creatorDist/assets/{index-D25zkBaN.js → index-DoYRptnk.js} +11875 -11992
  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/serve.ts +49 -27
  25. package/src/commands/start.ts +333 -333
  26. package/src/commands/translate.ts +123 -123
  27. package/src/creator/README.md +54 -54
  28. package/src/creator/package-lock.json +6621 -6621
  29. package/src/creator/package.json +55 -55
  30. package/src/creator/src/App.tsx +569 -569
  31. package/src/creator/src/components/FileUploader.tsx +302 -302
  32. package/src/creator/src/components/Icon.tsx +18 -18
  33. package/src/creator/src/components/LessonItem.tsx +152 -152
  34. package/src/creator/src/components/Login.tsx +259 -259
  35. package/src/creator/src/components/syllabus/ContentIndex.tsx +323 -323
  36. package/src/creator/src/components/syllabus/SyllabusEditor.tsx +337 -337
  37. package/src/creator/src/i18n.ts +28 -28
  38. package/src/creator/src/locales/en.json +127 -127
  39. package/src/creator/src/locales/es.json +127 -127
  40. package/src/creator/src/utils/configTypes.ts +122 -122
  41. package/src/creator/src/utils/constants.ts +13 -13
  42. package/src/creator/src/utils/creatorUtils.ts +46 -46
  43. package/src/creator/src/utils/eventBus.ts +2 -2
  44. package/src/creator/src/utils/socket.ts +61 -61
  45. package/src/creator/src/utils/store.ts +222 -222
  46. package/src/creator/src/vite-env.d.ts +1 -1
  47. package/src/creator/vite.config.ts +13 -13
  48. package/src/creatorDist/assets/{index-D25zkBaN.js → index-DoYRptnk.js} +11875 -11992
  49. package/src/creatorDist/index.html +1 -1
  50. package/src/managers/config/defaults.ts +49 -49
  51. package/src/managers/config/exercise.ts +364 -364
  52. package/src/managers/config/index.ts +775 -775
  53. package/src/managers/file.ts +236 -236
  54. package/src/managers/server/routes.ts +554 -554
  55. package/src/managers/telemetry.ts +188 -188
  56. package/src/models/action.ts +13 -13
  57. package/src/models/config-manager.ts +28 -28
  58. package/src/models/config.ts +106 -106
  59. package/src/models/exercise-obj.ts +30 -30
  60. package/src/models/session.ts +39 -39
  61. package/src/models/socket.ts +61 -61
  62. package/src/models/status.ts +16 -16
  63. package/src/ui/_app/app.css +1 -1
  64. package/src/ui/_app/app.js +768 -768
  65. package/src/ui/_app/learnpack.svg +7 -7
  66. package/src/ui/_app/sw.js +59 -59
  67. package/src/ui/app.tar.gz +0 -0
  68. package/src/utils/BaseCommand.ts +56 -56
  69. package/src/utils/audit.ts +392 -392
  70. package/src/utils/checkNotInstalled.ts +267 -267
  71. package/src/utils/convertCreds.js +34 -34
  72. package/src/utils/creatorUtilities.ts +504 -504
  73. package/src/utils/export/README.md +178 -178
  74. package/src/utils/incrementVersion.js +74 -74
  75. package/src/utils/misc.ts +58 -58
  76. package/src/utils/sidebarGenerator.ts +195 -195
  77. package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  78. package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  79. package/src/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -110
  80. package/src/utils/templates/scorm/config/index.html +209 -209
  81. package/src/utils/templates/scorm/ims_xml.xsd +1 -1
  82. package/src/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -345
  83. package/src/utils/templates/scorm/imsmanifest.xml +38 -38
  84. 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-D25zkBaN.js"></script>
13
+ <script type="module" crossorigin src="/creator/assets/index-DoYRptnk.js"></script>
14
14
  <link rel="stylesheet" crossorigin href="/creator/assets/index-DTjdV1LF.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>