From 3a546a4ef0e4e07157435e4f74e2133753dd8ad2 Mon Sep 17 00:00:00 2001 From: Robert Garmann Date: Mon, 14 Jul 2014 22:45:10 +0200 Subject: [PATCH 01/36] Version 0.94 - extended by tagging of filerefs and externalresourcerefs. Corrections in the description of external resources in the whitepaper. Version 0.94 - removed formatting errors. Version 0.94 - bugfix: missing tns-prefix in xpath expressions in key, keyref, unique in taskxml.xsd Version 0.94 - more bugfixes regarding keys and keyref --- taskxml.xsd | 46 ++++++++++++++++---- whitepaper.md | 114 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 116 insertions(+), 44 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 1f9b80b..5fb4596 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,5 +1,5 @@ - + @@ -16,8 +16,12 @@ - - + + + + + + @@ -37,7 +41,7 @@ - + @@ -96,7 +100,7 @@ - + @@ -139,7 +143,7 @@ - + @@ -167,7 +171,7 @@ - + @@ -214,7 +218,14 @@ - + + + + + + + + @@ -224,8 +235,25 @@ - + + + + + + + + + + + + + + + + + + diff --git a/whitepaper.md b/whitepaper.md index e809ee2..f79694b 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -1,6 +1,6 @@ #An XML exchange format for (programming) tasks -**Version 0.9.3** +**Version 0.9.4** contributors listed in alphabetical order: @@ -54,7 +54,7 @@ the XML document. The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): - + @@ -90,15 +90,19 @@ The following code shows the XML Schema for the Task Format: - - - - + + + + + + + + The document root element “task” holds the XML-namespace URI for the current version number of the XML Task Format. The only currently valid -value is “urn:proforma:task:v0.9.3”. The task itself must have an +value is “urn:proforma:task:v0.9.4”. The task itself must have an attribute “lang” which specifies the natural language used. The description, title etc should be written in this language. The content of the “lang” attribute must comply with the IETF BCP 47, RFC 4647 and @@ -113,15 +117,15 @@ subset of HTML is allowed (see Appendix A). ###The proglang part - - + + - - + + An instance of this element contains the programming/modelling/query language to which this task applies. A valid list of values is specified @@ -176,10 +180,10 @@ be specified explicitly. - + - + The files element contains 0 or more file elements. A file element is @@ -188,8 +192,8 @@ the XML file. ###The file element - - + + @@ -216,8 +220,8 @@ the XML file. - - + + The file element includes or links a single file to a task. Each instance/file must have a (task) unique string in its “id” attribute (in @@ -328,10 +332,10 @@ the task. For each model-solution a new model-solution element is added. - + - + The model-solution element includes or links a single model-solution to @@ -401,7 +405,7 @@ The general structure of the test description is given as follows: - + The corresponding XML schema for the test XML structure is: @@ -412,10 +416,10 @@ The corresponding XML schema for the test XML structure is: - + - + ###The test element @@ -487,40 +491,80 @@ configuration options. - + -Several filerefs can be specified via file elements. +Several filerefs can be specified via fileref elements. ###The fileref element - + + + + + + + + The fileref element links a single file to a test based on the ID of the file which has to be defined in task/files. The ID has to be entered as -the simple content of the fileref element. +the refid attribute. + +Tagging of referenced files as an extension mechanism for attaching grader +specific meanings to files can be accomplished by inserting an optional tags +child element. -###The externalconfigurationrefs part - +###The externalresourcerefs part + + - + -Several externalconfigurationrefs can be specified via externalconfigurationref elements. +Several externalresourcerefs can be specified via externalresourceref elements. + +###The externalresourceref element + + + + + + + + + + +The externalresourceref element links a single external-resource to a test based on the ID of the +external-resource which has to be defined in task/external-resources. The ID has to be entered as +the refid attribute. + +Tagging of external resources is possible as it is for fileref elements (see there). + +###The tags part + + + + + + + + + +Several tags can be specified via tag elements. + +###The tag element -###The externalconfigurationref element + - +The tag element puts a string label to a fileref or an externalresourceref element. The meaning of a tag is not defined by this exchange format. Tags can be seen as an extension point of the exchange format, where graders can define their own tags with their own grader specific meaning. Tagging can be useful for example when the class attribute of a file does not provide sufficient information for the grader to derive a file's role played during the grading process. -The externalconfigurationref element links a single external-configuration to a test based on the ID of the -external-configuration which has to be defined in task/external-configurations. The ID has to be entered as -the simple content of the externalconfigurationref element. ###The test-meta-data element From 1a8c22fdedc46738c7ecfacd0301e098eeca9970 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 27 Aug 2014 20:38:49 +0200 Subject: [PATCH 02/36] Rename submission to submission-restrictions Signed-off-by: Sven Strickroth --- taskxml.xsd | 4 ++-- whitepaper.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 5fb4596..8c7be39 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -5,7 +5,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/whitepaper.md b/whitepaper.md index f79694b..96f67ab 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -57,7 +57,7 @@ meant to provide an overview and does not represent a minimal document): - + @@ -80,7 +80,7 @@ The following code shows the XML Schema for the Task Format: - + @@ -135,9 +135,9 @@ to work with that version – any other requirements about version compatibility must be checked externally.)  The “version” must be entered as a “point” separated list of up to four unsigned integers. -###The submission part +###The submission-restrictions part - + From 54e0a706ee80d993753ad8beb7cd1699ee609d25 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 27 Aug 2014 20:40:35 +0200 Subject: [PATCH 03/36] Whitespace cleanup Signed-off-by: Sven Strickroth --- taskxml.xsd | 9 ++++----- whitepaper.md | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 8c7be39..a2ca16d 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -150,7 +150,7 @@ - + @@ -158,9 +158,8 @@ - - + @@ -251,9 +250,9 @@ - + - + diff --git a/whitepaper.md b/whitepaper.md index 96f67ab..2deefec 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -5,13 +5,13 @@ contributors listed in alphabetical order: -Humboldt-Universität zu Berlin: Niels Pinkwart, Sven Strickroth -Technische Universität Clausthal: Oliver Müller -Universität Duisburg-Essen: Michael Striewe -Hochschule Hannover: Sebastian Becker, Oliver J. Bott, Robert Garmann -Universität Osnabrück: Helmar Gust, Nadine Werner -Ostfalia Hochschule für Angewandte Wissenschaften: Stefan Bisitz, Stefan -Dröschler, Nils Jensen, Uta Priss, Oliver Rod +Humboldt-Universität zu Berlin: Niels Pinkwart, Sven Strickroth +Technische Universität Clausthal: Oliver Müller +Universität Duisburg-Essen: Michael Striewe +Hochschule Hannover: Sebastian Becker, Oliver J. Bott, Robert Garmann +Universität Osnabrück: Helmar Gust, Nadine Werner +Ostfalia Hochschule für Angewandte Wissenschaften: Stefan Bisitz, Stefan +Dröschler, Nils Jensen, Uta Priss, Oliver Rod [TOC] @@ -272,7 +272,7 @@ archive (which can be different from the filename attribute). The external-resources element contains 0 or more external-resource elements. An external-resource element is -used to refer to a resource that is neither embedded nor directly attached to the task. +used to refer to a resource that is neither embedded nor directly attached to the task. ###The external-resource element @@ -513,8 +513,8 @@ The fileref element links a single file to a test based on the ID of the file which has to be defined in task/files. The ID has to be entered as the refid attribute. -Tagging of referenced files as an extension mechanism for attaching grader -specific meanings to files can be accomplished by inserting an optional tags +Tagging of referenced files as an extension mechanism for attaching grader +specific meanings to files can be accomplished by inserting an optional tags child element. From 97b4fc75843eb2725ab37348df21ddf7cdb66abf Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 27 Aug 2014 21:04:19 +0200 Subject: [PATCH 04/36] Extend model-solution to link to file and allow to consist of multiple files Signed-off-by: Sven Strickroth --- taskxml.xsd | 28 +++++++++++----------------- whitepaper.md | 35 ++++++++++++++--------------------- 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index a2ca16d..06a10f4 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -23,6 +23,10 @@ + + + + @@ -48,22 +52,12 @@ - - - - - - - - - - - - - - - - + + + + + + @@ -211,7 +205,7 @@ - + diff --git a/whitepaper.md b/whitepaper.md index 2deefec..c8d0259 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -98,6 +98,10 @@ The following code shows the XML Schema for the Task Format: + + + + The document root element “task” holds the XML-namespace URI for the @@ -316,21 +320,11 @@ the task. For each model-solution a new model-solution element is added. - - - - - - - - - - - - - - - + + + + + @@ -338,11 +332,10 @@ the task. For each model-solution a new model-solution element is added. -The model-solution element includes or links a single model-solution to -a task. Each instance/solution must have a (task) unique string in its -“id” attribute. The model-solution can be directly embedded into the XML -file or attached in an extra file within the zip archive (cf. “The file -part”). The optional attribute “comment” can be used for additional +The model-solution element links one single model-solution to a task. Each +instance/solution must have a (task) unique string in its “id” attribute. +The model-solution must refer to one or more files using the filerefs/fileref tag. +The optional attribute “comment” can be used for additional information, for example if more than one model solution is provided it can be explained why there are several solutions. @@ -490,7 +483,7 @@ configuration options. - + From 2f58967747549f64f87b0d3e704ba7d0791a9b9a Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 27 Aug 2014 21:13:30 +0200 Subject: [PATCH 05/36] Make sure each indention level consists of 4 spaces Signed-off-by: Sven Strickroth --- taskxml.xsd | 286 ++++++++++++++++++++++++++-------------------------- 1 file changed, 143 insertions(+), 143 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 06a10f4..cb45ccf 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,8 +1,8 @@ - - + + @@ -12,145 +12,145 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - + + + + + + - - + + - - - - - - + + + + + + - - + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - - - - - + + + + + + - - + + - - - - - + + + + + + + + + + + + + + + + - - - - - + + - - - - - - - - - - + + - - + + - - + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + @@ -158,89 +158,89 @@ - - + + - - - - - - + + + + + + - - + + - - + + - - + + - - - + + + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - - + + + - + - - + + - - - + + + - + @@ -248,10 +248,10 @@ - - - - - + + + + + From ba1babc5e969ace295c86c9e32dc476b24e5ff9e Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 3 Sep 2014 14:25:10 +0200 Subject: [PATCH 06/36] Fix indention and spaces Signed-off-by: Sven Strickroth --- whitepaper.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index c8d0259..bcc251b 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -55,21 +55,21 @@ The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): - - - + + + - + - + - + - + - + - + @@ -114,7 +114,7 @@ ISO 639-1:2002 standards. ###The description part - + An instance of this element contains the task description as text. A subset of HTML is allowed (see Appendix A). @@ -202,7 +202,7 @@ the XML file. - + From 46b857f02b26a77cd4387363ec748bb97e03cae3 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Fri, 12 Sep 2014 15:59:25 +0200 Subject: [PATCH 07/36] Add missing prefixes Signed-off-by: Sven Strickroth --- whitepaper.md | 118 +++++++++++++++++++++++++------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index bcc251b..b471767 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -54,23 +54,23 @@ the XML document. The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): - - - - + + + + - + - + - + - + - + - - + + The following code shows the XML Schema for the Task Format: @@ -78,24 +78,24 @@ The following code shows the XML Schema for the Task Format: - - - - - - - - - + + + + + + + + + - - + + - - + + @@ -181,11 +181,11 @@ be specified explicitly. - + - + @@ -266,11 +266,11 @@ archive (which can be different from the filename attribute). - + - + @@ -282,8 +282,8 @@ used to refer to a resource that is neither embedded nor directly attached to th - - + + @@ -308,7 +308,7 @@ A task that references at least one external resource is not "self-contained" an - + @@ -327,7 +327,7 @@ the task. For each model-solution a new model-solution element is added. - + @@ -366,7 +366,7 @@ to be exported and imported again from one system to another. - + @@ -385,32 +385,32 @@ test-meta-data element. The general structure of the test description is given as follows: - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + The corresponding XML schema for the test XML structure is: - + - + @@ -420,9 +420,9 @@ The corresponding XML schema for the test XML structure is: - - - + + + @@ -464,10 +464,10 @@ entries is specified in Appendix C. - - + + - + @@ -484,7 +484,7 @@ configuration options. - + @@ -516,7 +516,7 @@ child element. - + @@ -545,7 +545,7 @@ Tagging of external resources is possible as it is for fileref elements (see the - + From 404fae541a8b73a7aca9909e8abc874fa18e1fa4 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 22 Sep 2014 11:51:27 +0200 Subject: [PATCH 08/36] Make filename in file tag optional Signed-off-by: Sven Strickroth --- taskxml.xsd | 2 +- whitepaper.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index cb45ccf..8384e3d 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -104,7 +104,7 @@ - + diff --git a/whitepaper.md b/whitepaper.md index b471767..49aa0e1 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -201,8 +201,8 @@ the XML file. - - + + @@ -250,8 +250,8 @@ be provided in the optional “comment” attribute. The file itself can be embedded into the XML (recommended for shorter plain text files) or can be included in the ZIP-archive (recommended for binary files). If a file is embedded, the “type” attribute must be set to “embedded” and the text -content of the element is the file content. The “filename“ attribute has -to be set to define a filename (e.g., for Java classes where the class +content of the element is the file content. The “filename“ attribute can +be set to define a filename (e.g., for Java classes where the class name must be equal to the filename, it can also include a relative path). This attribute defines the name the file will have when it is executed. If the name is unimportant, a default name can be used. If a From fde34d62044c76dc4707739d6bd4cca70eadf8e5 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 17 Nov 2014 11:34:56 +0100 Subject: [PATCH 09/36] Allow only one top element Signed-off-by: Sven Strickroth --- taskxml.xsd | 442 +++++++++++++++++++++++++--------------------------- 1 file changed, 208 insertions(+), 234 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 8384e3d..e278095 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -3,15 +3,35 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -29,229 +49,183 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bca88c92d777b3442f1cf889d111479d90b44f73 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 31 Jan 2015 15:30:23 +0100 Subject: [PATCH 10/36] adding proforma-unittest.xsd --- proforma-unittest.xsd | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 proforma-unittest.xsd diff --git a/proforma-unittest.xsd b/proforma-unittest.xsd new file mode 100644 index 0000000..4b46408 --- /dev/null +++ b/proforma-unittest.xsd @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From cf66b434d2be1614cb2ef100d2e14c74a0ef18ba Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 18 Feb 2015 13:29:38 +0100 Subject: [PATCH 11/36] Rename workingdata to inputdata Signed-off-by: Sven Strickroth --- taskxml.xsd | 2 +- whitepaper.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index e278095..8c1498c 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -108,7 +108,7 @@ - + diff --git a/whitepaper.md b/whitepaper.md index 49aa0e1..5fe565b 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -208,7 +208,7 @@ the XML file. - + From 943bc7cc2951db84cc49bcf4ab295542c712016a Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sun, 1 Mar 2015 16:38:13 +0100 Subject: [PATCH 12/36] Fix targetNamespace for unittests Signed-off-by: Sven Strickroth --- proforma-unittest.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proforma-unittest.xsd b/proforma-unittest.xsd index 4b46408..3702886 100644 --- a/proforma-unittest.xsd +++ b/proforma-unittest.xsd @@ -1,5 +1,5 @@ - + From f6e507c287513500bfaf8d42277e32fcd63ad258 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sun, 1 Mar 2015 16:38:52 +0100 Subject: [PATCH 13/36] Add an example task export Signed-off-by: Sven Strickroth --- example.xml | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 example.xml diff --git a/example.xml b/example.xml new file mode 100644 index 0000000..1b412f9 --- /dev/null +++ b/example.xml @@ -0,0 +1,57 @@ + + + Calculate the n-th Fibonacci number. As a reminder: The first two Fibonacci numbers are 0 and 1. The following numbers are the sum of the previous two numbers (0, 1, 1, 2, 3, 5, 8, 13, 21...). The class should be named Fibonacci and the method to be written fibonacci has an int as an input parameter. + java + + + +import junit.framework.TestCase; +public class FibonacciTest extends TestCase { + public void testPos() { + assertEquals(13, Fibonacci.fibonacci(7)); + } + public void testNull() { + assertEquals(0, Fibonacci.fibonacci(0)); + } +} + + +public class Fibonacci { + public int fibonacci(int i) { + if (i <= 0) return 0; + else if (i == 1) return 1; + return fibonacci(i - 2) + fibonacci(i - 1); + } +} + + + + + + + + + + + + Compilation test + java-compilation + + + + Calculation test + unittest + + + + + + FibonacciTest + + + + + + Calculation of n-th Fibonacci number + + From d0486c66ab11bfabbfda8fb9ffd278922be6cef0 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 2 Mar 2015 18:09:00 +0100 Subject: [PATCH 14/36] Document internal-library Signed-off-by: Sven Strickroth --- taskxml.xsd | 1 + whitepaper.md | 3 +++ 2 files changed, 4 insertions(+) diff --git a/taskxml.xsd b/taskxml.xsd index 8c1498c..8a32215 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -110,6 +110,7 @@ + diff --git a/whitepaper.md b/whitepaper.md index 5fe565b..bc71f17 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -210,6 +210,7 @@ the XML file. + @@ -240,6 +241,8 @@ using the “class” attribute with one of the following values: students should work with. - “instruction”: The file contains further instructions for handling the task, e.g. an UML activity diagram. +- “internal-library”: This file is not visible for students and holds + libraries which are required for processing the tests within the system. - “internal”: This file is not visible for students and holds files which are required for processing the task/tests within the system. From 35ad6be5c5de5d30ba0e4e481daa651a493cd3e3 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Thu, 29 Jan 2015 18:31:58 +0100 Subject: [PATCH 15/36] Drop tags as these are system-specific metadata Signed-off-by: Sven Strickroth --- taskxml.xsd | 16 ---------------- whitepaper.md | 32 -------------------------------- 2 files changed, 48 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 8a32215..3915a03 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -195,9 +195,6 @@ - - - @@ -208,22 +205,9 @@ - - - - - - - - - - - - - diff --git a/whitepaper.md b/whitepaper.md index bc71f17..ebfbdfc 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -498,9 +498,6 @@ Several filerefs can be specified via fileref elements. - - - @@ -509,11 +506,6 @@ The fileref element links a single file to a test based on the ID of the file which has to be defined in task/files. The ID has to be entered as the refid attribute. -Tagging of referenced files as an extension mechanism for attaching grader -specific meanings to files can be accomplished by inserting an optional tags -child element. - - ###The externalresourcerefs part @@ -530,9 +522,6 @@ Several externalresourcerefs can be specified via externalresourceref elements. - - - @@ -541,27 +530,6 @@ The externalresourceref element links a single external-resource to a test based external-resource which has to be defined in task/external-resources. The ID has to be entered as the refid attribute. -Tagging of external resources is possible as it is for fileref elements (see there). - -###The tags part - - - - - - - - - -Several tags can be specified via tag elements. - -###The tag element - - - -The tag element puts a string label to a fileref or an externalresourceref element. The meaning of a tag is not defined by this exchange format. Tags can be seen as an extension point of the exchange format, where graders can define their own tags with their own grader specific meaning. Tagging can be useful for example when the class attribute of a file does not provide sufficient information for the grader to derive a file's role played during the grading process. - - ###The test-meta-data element From 18d64714dd60a9fc6b10b1392de660ead8e3732a Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 4 Mar 2015 16:02:31 +0100 Subject: [PATCH 16/36] Update whitepaper.md - Link for github added -java-junit to unittest with urn --- whitepaper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index ebfbdfc..1e30802 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -27,7 +27,7 @@ e-assessment tools considered for this format are Praktomat, VIPS, JACK, GATE or Moodle-Grapper WS (inspired by Web-CAT) most of which are included in the eCULT project “ProFormA”. The latest version of this document and the corresponding XML Schema can be found at this address: -http://go.ecult.me/13022046A +https://github.com/ProFormA/taskxml/ ##General Structure @@ -565,11 +565,11 @@ layouts. ##Appendix C: List of test types - java-compilation -- java-junit3 - java-checkstyle - java-code-coverage-emma - java-findbugs - java-pmd +- unittest (urn:proforma:tests:unittest:v1) - dejagnu - anonymity (heuristics for checking that students have not included their names in the code) From b60074f15384069f18527784760db7f697021b51 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 4 Mar 2015 16:05:25 +0100 Subject: [PATCH 17/36] Update whitepaper.md --- whitepaper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper.md b/whitepaper.md index 1e30802..212303a 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -459,7 +459,7 @@ specified for the task itself. -Examples of values are: java-syntax, java-junittest3. A list of allowed +Examples of values are: java-syntax, unittest. A list of allowed entries is specified in Appendix C. ###The test-configuration part From c37dfb4e71484d44c000c9f7a743f615c5be7d48 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 4 Mar 2015 16:14:38 +0100 Subject: [PATCH 18/36] Update whitepaper.md --- whitepaper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper.md b/whitepaper.md index 212303a..fb28c9a 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -547,7 +547,7 @@ other systems. ##Appendix A: Subset of HTML -<\!\-\- … \-\-\\>, a, b, blockquote, br, p, sup, sub, center, div, dl, dd, +<\!\-\- … \-\-\>, a, b, blockquote, br, p, sup, sub, center, div, dl, dd, dt, em, font, h1, h2, h3, h4, h5, h6, hr, img, li, ol, strong, pre, span, table, tbody, td, tr, th, tt and ul. From 66902c243e0c66369d6644cd0f87d01f7736ee1d Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 4 Mar 2015 16:37:33 +0100 Subject: [PATCH 19/36] Update whitepaper.md correct link for test section --- whitepaper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper.md b/whitepaper.md index fb28c9a..2b6fa61 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -346,7 +346,7 @@ can be explained why there are several solutions. The tests element is used to provide automatic checks and tests for the task. More specific information about the test XML is provided in the -[second section](#id.gmls3d60jimk) of this paper. +[second section](#Test section) of this paper. ###The grading-hints element### From 65270988f709a7201acf833b93d1eede34a9f6e3 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 4 Mar 2015 16:40:46 +0100 Subject: [PATCH 20/36] Update whitepaper.md correction of the correction of the link --- whitepaper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper.md b/whitepaper.md index 2b6fa61..d2676e7 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -346,7 +346,7 @@ can be explained why there are several solutions. The tests element is used to provide automatic checks and tests for the task. More specific information about the test XML is provided in the -[second section](#Test section) of this paper. +[second section](#test-section) of this paper. ###The grading-hints element### From b3cc7fccb211983d20ce540faf896983ca2a599f Mon Sep 17 00:00:00 2001 From: Robert Garmann Date: Sat, 14 Mar 2015 15:04:55 +0100 Subject: [PATCH 21/36] minor correction in whitepaper --- whitepaper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whitepaper.md b/whitepaper.md index d2676e7..c0dd3bb 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -399,8 +399,8 @@ The general structure of the test description is given as follows: + - From a49a96ea4e1c85486e4a49497b1cbbae4b3e99a0 Mon Sep 17 00:00:00 2001 From: Peter Werner Date: Mon, 9 Mar 2015 09:11:38 +0100 Subject: [PATCH 22/36] added submission-restrictions version to v1.0.0 --- taskxml.xsd | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 3915a03..1d00dee 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,5 +1,5 @@ - + @@ -50,11 +50,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - - + + From 669662eb81243704fd66c2713426b8256ff9b2ca Mon Sep 17 00:00:00 2001 From: Peter Werner Date: Tue, 10 Mar 2015 12:12:48 +0100 Subject: [PATCH 23/36] version to v1.0.0 added syntax highlighting --- whitepaper.md | 61 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index c0dd3bb..2901cb4 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -1,6 +1,6 @@ #An XML exchange format for (programming) tasks -**Version 0.9.4** +**Version 1.0.0** contributors listed in alphabetical order: @@ -53,8 +53,8 @@ the XML document. The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): - - +```xml + @@ -71,10 +71,11 @@ meant to provide an overview and does not represent a minimal document): - +``` The following code shows the XML Schema for the Task Format: +```xml @@ -103,10 +104,11 @@ The following code shows the XML Schema for the Task Format: - +``` + The document root element “task” holds the XML-namespace URI for the current version number of the XML Task Format. The only currently valid -value is “urn:proforma:task:v0.9.4”. The task itself must have an +value is “urn:proforma:task:v1.0.0”. The task itself must have an attribute “lang” which specifies the natural language used. The description, title etc should be written in this language. The content of the “lang” attribute must comply with the IETF BCP 47, RFC 4647 and @@ -114,13 +116,16 @@ ISO 639-1:2002 standards. ###The description part +```xml +``` An instance of this element contains the task description as text. A subset of HTML is allowed (see Appendix A). ###The proglang part +```xml @@ -130,6 +135,7 @@ subset of HTML is allowed (see Appendix A). +``` An instance of this element contains the programming/modelling/query language to which this task applies. A valid list of values is specified @@ -141,6 +147,7 @@ entered as a “point” separated list of up to four unsigned integers. ###The submission-restrictions part +```xml @@ -149,6 +156,7 @@ entered as a “point” separated list of up to four unsigned integers. +``` An instance of this element can specify restrictions for the upload of (solution) files - by default there are no restrictions. The possible @@ -178,6 +186,7 @@ be specified explicitly. ###The files part +```xml @@ -189,6 +198,7 @@ be specified explicitly. +``` The files element contains 0 or more file elements. A file element is used to attach files to a task. Files can be external or embedded into @@ -196,6 +206,7 @@ the XML file. ###The file element +```xml @@ -227,6 +238,7 @@ the XML file. +``` The file element includes or links a single file to a task. Each instance/file must have a (task) unique string in its “id” attribute (in @@ -266,6 +278,7 @@ archive (which can be different from the filename attribute). ###The external-resources part +```xml @@ -277,12 +290,14 @@ archive (which can be different from the filename attribute). +``` The external-resources element contains 0 or more external-resource elements. An external-resource element is used to refer to a resource that is neither embedded nor directly attached to the task. ###The external-resource element +```xml @@ -293,7 +308,7 @@ used to refer to a resource that is neither embedded nor directly attached to th - +``` Normally task files should be self-contained, but in rare cases the use of external resources is unavoidable for fulfilling or grading the task. The external-resource element basically contains a reference to that kind of resources. In its simplest form, the resource is identified by an identifier contained in the “reference” attribute. More complicated references can be specified in child elements of any namespace. @@ -308,6 +323,7 @@ A task that references at least one external resource is not "self-contained" an ###The model-solutions part +```xml @@ -315,12 +331,14 @@ A task that references at least one external resource is not "self-contained" an +``` The model solutions element is used to provide one or more solutions of the task. For each model-solution a new model-solution element is added. ###The model-solution element +```xml @@ -334,6 +352,7 @@ the task. For each model-solution a new model-solution element is added. +``` The model-solution element links one single model-solution to a task. Each instance/solution must have a (task) unique string in its “id” attribute. @@ -350,6 +369,7 @@ task. More specific information about the test XML is provided in the ###The grading-hints element### +```xml @@ -357,6 +377,7 @@ task. More specific information about the test XML is provided in the +``` An instance of this element holds information on how the creator of the task intended the grading process. This element contains plain text or @@ -366,6 +387,7 @@ to be exported and imported again from one system to another. ###The meta-data element +```xml @@ -374,6 +396,7 @@ to be exported and imported again from one system to another. +``` The meta-data element holds a namespace for the meta-data of each system. Because meta-data are already standardized in other systems, it @@ -388,6 +411,7 @@ test-meta-data element. The general structure of the test description is given as follows: +```xml @@ -403,9 +427,11 @@ The general structure of the test description is given as follows: +``` The corresponding XML schema for the test XML structure is: +```xml @@ -417,9 +443,11 @@ The corresponding XML schema for the test XML structure is: +``` ###The test element +```xml @@ -440,6 +468,7 @@ The corresponding XML schema for the test XML structure is: +``` The test element has a required attribute “id” and an optional attribute “validity”. The optional attribute “validity” is used by some systems @@ -447,7 +476,9 @@ The test element has a required attribute “id” and an optional attribute ###The title element +```xml +``` The title element is used to provide a short and clear name for the test that can be displayed to students as part of their results. It should be @@ -457,13 +488,16 @@ specified for the task itself. ###The test-type element +```xml +``` Examples of values are: java-syntax, unittest. A list of allowed entries is specified in Appendix C. ###The test-configuration part +```xml @@ -474,7 +508,8 @@ entries is specified in Appendix C. - +``` + The test-configuration contains all parameters which are needed for configuring this specific test. The test-configuration should either contain a files part or a code element which contains the actual code of @@ -484,6 +519,7 @@ configuration options. ###The filerefs part +```xml @@ -491,16 +527,19 @@ configuration options. +``` Several filerefs can be specified via fileref elements. ###The fileref element +```xml +``` The fileref element links a single file to a test based on the ID of the file which has to be defined in task/files. The ID has to be entered as @@ -508,6 +547,7 @@ the refid attribute. ###The externalresourcerefs part +```xml @@ -515,16 +555,19 @@ the refid attribute. +``` Several externalresourcerefs can be specified via externalresourceref elements. ###The externalresourceref element +```xml +``` The externalresourceref element links a single external-resource to a test based on the ID of the external-resource which has to be defined in task/external-resources. The ID has to be entered as @@ -532,6 +575,7 @@ the refid attribute. ###The test-meta-data element +```xml @@ -539,6 +583,7 @@ the refid attribute. +``` The test-meta-data element holds a namespace for test-specific meta-data of each system. This is particularly useful for attributes that are From 0f40b5e18901558ee7662105448fedab1619521b Mon Sep 17 00:00:00 2001 From: Peter Werner Date: Thu, 12 Mar 2015 10:13:32 +0100 Subject: [PATCH 24/36] updated example.xml with new submission-restrictions --- example.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/example.xml b/example.xml index 1b412f9..0055a58 100644 --- a/example.xml +++ b/example.xml @@ -2,7 +2,11 @@ Calculate the n-th Fibonacci number. As a reminder: The first two Fibonacci numbers are 0 and 1. The following numbers are the sum of the previous two numbers (0, 1, 1, 2, 3, 5, 8, 13, 21...). The class should be named Fibonacci and the method to be written fibonacci has an int as an input parameter. java - + + + + + import junit.framework.TestCase; From 0c5f89d67482dbe3396862b4401b09854fbb2349 Mon Sep 17 00:00:00 2001 From: nino2205 Date: Mon, 16 Mar 2015 10:01:05 +0100 Subject: [PATCH 25/36] Update whitepaper.md updated submission restrictions --- whitepaper.md | 199 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 167 insertions(+), 32 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index 2901cb4..d10a2e3 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -148,41 +148,176 @@ entered as a “point” separated list of up to four unsigned integers. ###The submission-restrictions part ```xml - - - - - - - - + + + + + + + ``` An instance of this element can specify restrictions for the upload of -(solution) files - by default there are no restrictions. The possible -restrictions can be entered into a set of four optional attributes: -“max-size”, “allowed-upload-filename-regexp”, -“unpack-files-from-archive”, and “unpack-files-from-archive-regexp”. A -prefix of “\^” and a postfix of “\$” is implicitly assumed and must not -be specified explicitly. - -- “max-size” specifies the maximum size of a file in bytes which - should be accepted. Systems which have a stronger limit of the file - size should print a warning to the importing user. If this attribute - is missing, a system default value will be used.  -- “allowed-upload-filename-regexp” holds a regular expression of the - filenames (only the filename, without path) which the system should - accept.  -- "unpack-files-from-archive" specifies if uploaded archives (zip/jar) - should be unpacked automatically. If it is set to *false,* no - extraction takes place and the archive is used as it is.  -- In case "unpack-files-from-archive" is set to *true,* - “unpack-files-from-archive-regexp” is honoured which holds a regular - expression that controls which files are automatically extracted - (the filename of the uploaded archive must of course match - “allowed-upload-filename-regexp”). Only matching files (the whole - path of the zip-items matches with “/” as path separator) are - extracted from the archive. +(solution) files - by default there are no restrictions. There is a choose +between three possible restrictions types. +- [archive-restriction](#archive-restriction) +- [file-restriction](#file-restriction) +- [regexp-restriction](#regexp-restriction) + +All restriction types have two optional attributes + +- “max-size” specifies the maximum size of a file in bytes which should be + accepted. Systems which have a stronger limit of the file size should print a + warning to the importing user. If this attribute is missing, a system default + value will be used. +- "mimetype-regexp" specifies the mimetype by regular expression of files the + system should accept (specified regexp language in [regexp-language-restriction] + (#regexp-language-specification)) + +```xml + + + + + + +``` +####Archive restriction + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + +... + + + + +``` + + - "unpack-files-from-archive" specifies if uploaded archives (zip/jar) should + be unpacked automatically. If it is set to *false,* no extraction takes place + and the archive is used as it is. + - the filename of the uploaded archive must match "allowed-archive-filename" + +There is a choice for handling the file restrictions. + +1. by regexp: The archive may contain many files. The regular expression specifies, which files will be extracted from the archive + +```xml + + + regular expression + + +``` + + - “unpack-files-from-archive-regexp” holds a regular expression that + controls which files are automatically extracted. Only matching files (the + whole path of the zip-items matches with “/” as path separator) are + extracted from the archive (specified regexp language in [regexp-language-restriction] + (#regexp-language-specification)). + +2. by filenames: The archive must or may contain files as specified by the following file restrictions + +```xml + + + + + + + + +``` + +- "required" the archive must contain a file with specified "path" (rooted at the archive root) and optional "mime-type-regexp". Otherwise the submission should be rejected. +- "optional" the archive may contain a file with specified attributes + +####File restriction + +```xml + + + + + + + + + + + + + + + + + + +``` +A submission must or may consist of files as specified by the file restrictions. A submission should be rejected, if it does not match the restrictions. + +```xml + + + + + + +``` + +- "required" the submission must have a file with specified "path" (rooted at the archive root). Otherwise the submission should be rejected. +- "optional" the submission may have a file with specified attributes. + +####Regexp restriction +```xml + + + + + + + + +``` + +A submission must consist of one or several files, where all file names must adhere to the regular expression. + +```xml + + regular expression + +``` + +- "regexp-restriction" holds a regular expression of the filenames (only the filename, without path) which the system should accept. Regular expressions can contain less than/greater than signs. CDATA is allowed. + +####Regexp language specification + +TODO!!! ###The files part From a05444ecf9940ac1d6916faa5d6adc420aadca3b Mon Sep 17 00:00:00 2001 From: nino2205 Date: Mon, 16 Mar 2015 10:07:56 +0100 Subject: [PATCH 26/36] Update whitepaper.md added Peter Werner as contributor --- whitepaper.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index d10a2e3..2bef327 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -5,13 +5,12 @@ contributors listed in alphabetical order: -Humboldt-Universität zu Berlin: Niels Pinkwart, Sven Strickroth -Technische Universität Clausthal: Oliver Müller -Universität Duisburg-Essen: Michael Striewe -Hochschule Hannover: Sebastian Becker, Oliver J. Bott, Robert Garmann -Universität Osnabrück: Helmar Gust, Nadine Werner -Ostfalia Hochschule für Angewandte Wissenschaften: Stefan Bisitz, Stefan -Dröschler, Nils Jensen, Uta Priss, Oliver Rod +Humboldt-Universität zu Berlin: *Niels Pinkwart, Sven Strickroth* +Technische Universität Clausthal: *Oliver Müller* +Universität Duisburg-Essen: *Michael Striewe* +Hochschule Hannover: *Sebastian Becker, Oliver J. Bott, Robert Garmann, Peter Werner* +Universität Osnabrück: *Helmar Gust, Nadine Werner* +Ostfalia Hochschule für Angewandte Wissenschaften: *Stefan Bisitz, Stefan Dröschler, Nils Jensen, Uta Priss, Oliver Rod* [TOC] From 606e69963d684194ed50a8ac75fb29a549b1c1c1 Mon Sep 17 00:00:00 2001 From: Peter Werner Date: Thu, 11 Jun 2015 11:07:50 +0200 Subject: [PATCH 27/36] fixed "keyref out of scope" updated to version 1.0.1 including an UUID for tasks Das war ein Schreibfehler (siehe Whitepaper) fixed: fileid must be a unique --- example.xml | 48 +++++++++++++++++++++------------------- taskxml.xsd | 61 +++++++++++++++++++++++++-------------------------- whitepaper.md | 21 +++++++++++++----- 3 files changed, 72 insertions(+), 58 deletions(-) diff --git a/example.xml b/example.xml index 0055a58..4834877 100644 --- a/example.xml +++ b/example.xml @@ -1,33 +1,37 @@ - + + Calculate the n-th Fibonacci number. As a reminder: The first two Fibonacci numbers are 0 and 1. The following numbers are the sum of the previous two numbers (0, 1, 1, 2, 3, 5, 8, 13, 21...). The class should be named Fibonacci and the method to be written fibonacci has an int as an input parameter. java - - - + + + -import junit.framework.TestCase; -public class FibonacciTest extends TestCase { - public void testPos() { - assertEquals(13, Fibonacci.fibonacci(7)); - } - public void testNull() { - assertEquals(0, Fibonacci.fibonacci(0)); - } -} - + import junit.framework.TestCase; + public class FibonacciTest extends TestCase { + public void testPos() { + assertEquals(13, Fibonacci.fibonacci(7)); + } + public void testNull() { + assertEquals(0, Fibonacci.fibonacci(0)); + } + } + -public class Fibonacci { - public int fibonacci(int i) { - if (i <= 0) return 0; - else if (i == 1) return 1; - return fibonacci(i - 2) + fibonacci(i - 1); - } -} - + public class Fibonacci { + public int fibonacci(int i) { + if (i <= 0) return 0; + else if (i == 1) return 1; + return fibonacci(i - 2) + fibonacci(i - 1); + } + } + diff --git a/taskxml.xsd b/taskxml.xsd index 1d00dee..1894f60 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,50 +1,49 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + + - - + + + + + + + + + + + + + + + + + + + - - + + @@ -177,7 +176,7 @@ - + diff --git a/whitepaper.md b/whitepaper.md index 2bef327..03a1c6c 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -1,6 +1,6 @@ #An XML exchange format for (programming) tasks -**Version 1.0.0** +**Version 1.0.1** contributors listed in alphabetical order: @@ -53,7 +53,7 @@ the XML document. The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): ```xml - + @@ -107,9 +107,20 @@ The following code shows the XML Schema for the Task Format: The document root element “task” holds the XML-namespace URI for the current version number of the XML Task Format. The only currently valid -value is “urn:proforma:task:v1.0.0”. The task itself must have an -attribute “lang” which specifies the natural language used. The -description, title etc should be written in this language. The content +value is “urn:proforma:task:v1.0.1”. + +###Task attributes + +The task is identified by attribute "uuid", an automatic generated UUID +in Version 4 (see RFC 4122). There is no need for monitoring the uniqueness, + the chance of generating two UUIDs having the same value is about 6 x 10^-11. + +The optional attribute "parent-uuid" is used whenever a task is changed. It is +an pointer to the original task-uuid. This is usefull to generate a version tree +in a later progress. + +The task itself must have an attribute “lang” which specifies the natural language +used. The description, title etc should be written in this language. The content of the “lang” attribute must comply with the IETF BCP 47, RFC 4647 and ISO 639-1:2002 standards. From 7d013f3da34c2e18f5d4ea41821a54812b2068cc Mon Sep 17 00:00:00 2001 From: upriss Date: Thu, 1 Oct 2015 10:12:05 +0200 Subject: [PATCH 28/36] Create proforma-jartest.xsd target namespace for jar tests Generic test that requires only the execution of a Java jar. Should not be used for unittests. --- proforma-jartest.xsd | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 proforma-jartest.xsd diff --git a/proforma-jartest.xsd b/proforma-jartest.xsd new file mode 100644 index 0000000..7d25faf --- /dev/null +++ b/proforma-jartest.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + + + From da39dec858287260d3af3728812499108f8ae329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20M=C3=BCller?= Date: Tue, 17 May 2016 12:27:46 +0200 Subject: [PATCH 29/36] add regexptest xsd Formatierung fix Syntax fix add framework, version attribute + renaming main-class element modify regexp element bugfixes for regexptest regexptest delete framework and version choice between filename and main-class add regexp-allow and regexp-disallow change regexp elements attributes for regexp flags replace choice between filename and main-class with one element entry-point --- proforma-regexptest.xsd | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 proforma-regexptest.xsd diff --git a/proforma-regexptest.xsd b/proforma-regexptest.xsd new file mode 100644 index 0000000..7600e99 --- /dev/null +++ b/proforma-regexptest.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 3ad9474c532d141f0661936fd02ee2951fbf3eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20M=C3=BCller?= Date: Tue, 12 Jul 2016 13:34:23 +0200 Subject: [PATCH 30/36] delete unnecessary minInclusive --- proforma-regexptest.xsd | 6 ++---- proforma-unittest.xsd | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/proforma-regexptest.xsd b/proforma-regexptest.xsd index 7600e99..6ee1151 100644 --- a/proforma-regexptest.xsd +++ b/proforma-regexptest.xsd @@ -24,12 +24,10 @@ - - - + - \ No newline at end of file + diff --git a/proforma-unittest.xsd b/proforma-unittest.xsd index 3702886..8b9e7ab 100644 --- a/proforma-unittest.xsd +++ b/proforma-unittest.xsd @@ -6,9 +6,7 @@ - - - + From 72779508a2d6d8713765524d550d3b7acc979f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20M=C3=BCller?= Date: Sat, 16 Jul 2016 20:01:07 +0200 Subject: [PATCH 31/36] modify regexp element + add some comments --- proforma-regexptest.xsd | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/proforma-regexptest.xsd b/proforma-regexptest.xsd index 6ee1151..5cc12a0 100644 --- a/proforma-regexptest.xsd +++ b/proforma-regexptest.xsd @@ -1,25 +1,30 @@ - + + + - + - - - - - - - - - + + + + + + + + + + @@ -30,4 +35,15 @@ + + + + + + + + + + + From a1b25d53d5554c757ba093942cefa4e52ed6cd36 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 3 Aug 2016 23:52:41 +0200 Subject: [PATCH 32/36] Move timeout to test-configuration Signed-off-by: Sven Strickroth --- proforma-regexptest.xsd | 5 ----- proforma-unittest.xsd | 7 +------ taskxml.xsd | 7 ++++++- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/proforma-regexptest.xsd b/proforma-regexptest.xsd index 5cc12a0..f4cde11 100644 --- a/proforma-regexptest.xsd +++ b/proforma-regexptest.xsd @@ -27,11 +27,6 @@ - - - - - diff --git a/proforma-unittest.xsd b/proforma-unittest.xsd index 8b9e7ab..00ff1c1 100644 --- a/proforma-unittest.xsd +++ b/proforma-unittest.xsd @@ -1,14 +1,9 @@ - + - - - - - diff --git a/taskxml.xsd b/taskxml.xsd index 1894f60..9bb0a1b 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,5 +1,5 @@ - + @@ -229,6 +229,11 @@ + + + + + From 2574a1c7df72be562bce6e4ace518e85f96819b7 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 3 Aug 2016 23:53:20 +0200 Subject: [PATCH 33/36] Rename main-class to entry-point Signed-off-by: Sven Strickroth --- proforma-unittest.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proforma-unittest.xsd b/proforma-unittest.xsd index 00ff1c1..b2b112f 100644 --- a/proforma-unittest.xsd +++ b/proforma-unittest.xsd @@ -3,7 +3,7 @@ - + From a678d8a44e8a5c50b00c23b523f9d92e16955dff Mon Sep 17 00:00:00 2001 From: Peter Fricke Date: Wed, 31 Aug 2016 13:11:15 +0200 Subject: [PATCH 34/36] Fix inconsistencies in submission-frestrictions * deleted "unpack-files-from-archive", not necessary because the choice of using "archive-restriction" decides to unpack files * changed "allowed-archive-filename" to "allowed-archive-filename-regexp" due to consistency * changed all-Tag to choice for consistency --- taskxml.xsd | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 9bb0a1b..917771f 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -1,5 +1,5 @@ - + @@ -58,22 +58,22 @@ - - + + - + - + @@ -87,10 +87,10 @@ - + - + @@ -118,8 +118,7 @@ - - + From 8167d20089fd6f8094a4c2274fcae5047ac94491 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 31 Aug 2016 13:40:13 +0200 Subject: [PATCH 35/36] Minor cleanup --- taskxml.xsd | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/taskxml.xsd b/taskxml.xsd index 917771f..729aa5e 100644 --- a/taskxml.xsd +++ b/taskxml.xsd @@ -55,36 +55,35 @@ - - + - + - + - + - + - + - + - + @@ -92,17 +91,17 @@ - + - + - + - + - + From 3cbe967cb7eb9ad5b459d5e59e28d8052ca3cb21 Mon Sep 17 00:00:00 2001 From: rghsh Date: Tue, 25 Apr 2017 12:19:23 +0200 Subject: [PATCH 36/36] Headers in Markdown are not being rendered --- whitepaper.md | 74 +++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/whitepaper.md b/whitepaper.md index 03a1c6c..c58ad7e 100644 --- a/whitepaper.md +++ b/whitepaper.md @@ -1,4 +1,4 @@ -#An XML exchange format for (programming) tasks +# An XML exchange format for (programming) tasks **Version 1.0.1** @@ -14,7 +14,7 @@ Ostfalia Hochschule für Angewandte Wissenschaften: *Stefan Bisitz, Stefan Drös [TOC] -##Introduction +## Introduction This document specifies syntax and semantics for a standardized “Task Format” - an exchange format for programming exercises/tasks. It @@ -28,7 +28,7 @@ included in the eCULT project “ProFormA”. The latest version of this document and the corresponding XML Schema can be found at this address: https://github.com/ProFormA/taskxml/ -##General Structure +## General Structure The XML exchange format consists of two parts: The first section shows the description/specification of a task, including supporting files; and @@ -36,7 +36,7 @@ the second section demonstrates a specification of tests which are to be included in the specification of a task under the \ tag. Each task can have many tests. -##Format specification +## Format specification The XML file can be exchanged as a standalone file. However, if it refers to several files, it is recommended to combine the XML file and @@ -46,9 +46,9 @@ be found by tools supporting this format. The XML file should be well formed and encoded in UTF-8 (RFC 3629). ID’s are globally unique within the XML document. -##Task section +## Task section -###XML Specification +### XML Specification The general structure of the XML format is given as follows (this is meant to provide an overview and does not represent a minimal document): @@ -109,7 +109,7 @@ The document root element “task” holds the XML-namespace URI for the current version number of the XML Task Format. The only currently valid value is “urn:proforma:task:v1.0.1”. -###Task attributes +### Task attributes The task is identified by attribute "uuid", an automatic generated UUID in Version 4 (see RFC 4122). There is no need for monitoring the uniqueness, @@ -124,7 +124,7 @@ used. The description, title etc should be written in this language. The content of the “lang” attribute must comply with the IETF BCP 47, RFC 4647 and ISO 639-1:2002 standards. -###The description part +### The description part ```xml @@ -133,7 +133,7 @@ ISO 639-1:2002 standards. An instance of this element contains the task description as text. A subset of HTML is allowed (see Appendix A). -###The proglang part +### The proglang part ```xml @@ -155,7 +155,7 @@ to work with that version – any other requirements about version compatibility must be checked externally.)  The “version” must be entered as a “point” separated list of up to four unsigned integers. -###The submission-restrictions part +### The submission-restrictions part ```xml @@ -192,7 +192,7 @@ All restriction types have two optional attributes ``` -####Archive restriction +#### Archive restriction ```xml @@ -267,7 +267,7 @@ There is a choice for handling the file restrictions. - "required" the archive must contain a file with specified "path" (rooted at the archive root) and optional "mime-type-regexp". Otherwise the submission should be rejected. - "optional" the archive may contain a file with specified attributes -####File restriction +#### File restriction ```xml @@ -303,7 +303,7 @@ A submission must or may consist of files as specified by the file restrictions. - "required" the submission must have a file with specified "path" (rooted at the archive root). Otherwise the submission should be rejected. - "optional" the submission may have a file with specified attributes. -####Regexp restriction +#### Regexp restriction ```xml @@ -325,11 +325,11 @@ A submission must consist of one or several files, where all file names must adh - "regexp-restriction" holds a regular expression of the filenames (only the filename, without path) which the system should accept. Regular expressions can contain less than/greater than signs. CDATA is allowed. -####Regexp language specification +#### Regexp language specification TODO!!! -###The files part +### The files part ```xml @@ -349,7 +349,7 @@ The files element contains 0 or more file elements. A file element is used to attach files to a task. Files can be external or embedded into the XML file. -###The file element +### The file element ```xml @@ -421,7 +421,7 @@ archive (which can be different from the filename attribute). -###The external-resources part +### The external-resources part ```xml @@ -440,7 +440,7 @@ archive (which can be different from the filename attribute). The external-resources element contains 0 or more external-resource elements. An external-resource element is used to refer to a resource that is neither embedded nor directly attached to the task. -###The external-resource element +### The external-resource element ```xml @@ -466,7 +466,7 @@ Each external resource element can be identified by its mandatory “id” attri A task that references at least one external resource is not "self-contained" anymore. The author of the task should take care that the referenced resources are publicly available. Otherwise the task won't be reusable in other than the author's application context. -###The model-solutions part +### The model-solutions part ```xml @@ -481,7 +481,7 @@ A task that references at least one external resource is not "self-contained" an The model solutions element is used to provide one or more solutions of the task. For each model-solution a new model-solution element is added. -###The model-solution element +### The model-solution element ```xml @@ -506,13 +506,13 @@ The optional attribute “comment” can be used for additional information, for example if more than one model solution is provided it can be explained why there are several solutions. -###The tests part +### The tests part The tests element is used to provide automatic checks and tests for the task. More specific information about the test XML is provided in the [second section](#test-section) of this paper. -###The grading-hints element### +### The grading-hints element ```xml @@ -530,7 +530,7 @@ arbitrary elements in different namespaces. This field is mainly intended to support an exchange of grading ideas and also to allow tasks to be exported and imported again from one system to another. -###The meta-data element +### The meta-data element ```xml @@ -550,9 +550,9 @@ meta-data relevant for the whole task should be entered here. Meta-data that is specific to an individual test should be entered in the test-meta-data element. -##Test section +## Test section -###XML Specification +### XML Specification The general structure of the test description is given as follows: @@ -590,7 +590,7 @@ The corresponding XML schema for the test XML structure is: ``` -###The test element +### The test element ```xml @@ -619,7 +619,7 @@ The test element has a required attribute “id” and an optional attribute “validity”. The optional attribute “validity” is used by some systems (such as Vips) for tests which only partially verify the solution code. -###The title element +### The title element ```xml @@ -631,7 +631,7 @@ noted that the title does not have a language attribute because it is assumed that the title is written in the same natural language as specified for the task itself. -###The test-type element +### The test-type element ```xml @@ -640,7 +640,7 @@ specified for the task itself. Examples of values are: java-syntax, unittest. A list of allowed entries is specified in Appendix C. -###The test-configuration part +### The test-configuration part ```xml @@ -662,7 +662,7 @@ the test. It has sub-elements which are required, however, each test can also have elements of its own namespace for test-type specific configuration options. -###The filerefs part +### The filerefs part ```xml @@ -676,7 +676,7 @@ configuration options. Several filerefs can be specified via fileref elements. -###The fileref element +### The fileref element ```xml @@ -690,7 +690,7 @@ The fileref element links a single file to a test based on the ID of the file which has to be defined in task/files. The ID has to be entered as the refid attribute. -###The externalresourcerefs part +### The externalresourcerefs part ```xml @@ -704,7 +704,7 @@ the refid attribute. Several externalresourcerefs can be specified via externalresourceref elements. -###The externalresourceref element +### The externalresourceref element ```xml @@ -718,7 +718,7 @@ The externalresourceref element links a single external-resource to a test based external-resource which has to be defined in task/external-resources. The ID has to be entered as the refid attribute. -###The test-meta-data element +### The test-meta-data element ```xml @@ -735,7 +735,7 @@ of each system. This is particularly useful for attributes that are required for ex- and import in one system but which are not relevant for other systems. -##Appendix A: Subset of HTML +## Appendix A: Subset of HTML <\!\-\- … \-\-\>, a, b, blockquote, br, p, sup, sub, center, div, dl, dd, dt, em, font, h1, h2, h3, h4, h5, h6, hr, img, li, ol, strong, pre, @@ -746,13 +746,13 @@ li, ol, hr, strong, pre, span, table, tbody, td, tr, th, tt and ul there are no attributes allowed in order to avoid problems with different layouts. -##Appendix B: List of programming languages +## Appendix B: List of programming languages - java - SQL - prolog -##Appendix C: List of test types +## Appendix C: List of test types - java-compilation - java-checkstyle