From db02993bdeb857dadb0683ce141ed3be5d62617a Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Fri, 17 Feb 2023 12:11:34 +0100 Subject: [PATCH 01/27] Added meta tags needed for RWD --- Frontend/assets/css/tools/r11form.css | 2 +- Frontend/tools/xpath.html | 1 + Frontend/tools/xsd.html | 1 + Frontend/tools/xslt.html | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index f4af46e..600e28a 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -479,6 +479,6 @@ textarea { box-sizing: border-box; } -code{ +code { line-height: 150%; } \ No newline at end of file diff --git a/Frontend/tools/xpath.html b/Frontend/tools/xpath.html index 776cc66..dad6da6 100644 --- a/Frontend/tools/xpath.html +++ b/Frontend/tools/xpath.html @@ -7,6 +7,7 @@ + diff --git a/Frontend/tools/xsd.html b/Frontend/tools/xsd.html index 84234bf..57e1f51 100644 --- a/Frontend/tools/xsd.html +++ b/Frontend/tools/xsd.html @@ -5,6 +5,7 @@ + diff --git a/Frontend/tools/xslt.html b/Frontend/tools/xslt.html index 131fd3a..061b46a 100644 --- a/Frontend/tools/xslt.html +++ b/Frontend/tools/xslt.html @@ -5,6 +5,7 @@ + From cb48f3017a8c7bd1d89878c2ec53caa3393c9e58 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Fri, 17 Feb 2023 12:25:16 +0100 Subject: [PATCH 02/27] Implemented basic RWD --- Frontend/assets/css/tools/r11form.css | 10 ++++++++++ Frontend/tools/xpath.html | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index 600e28a..06bc195 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -481,4 +481,14 @@ textarea { code { line-height: 150%; +} + +@media only screen and (max-width: 768px) { + .rwd-hideable { + display: none; + } + + .rwd-expandable { + width: 100%; + } } \ No newline at end of file diff --git a/Frontend/tools/xpath.html b/Frontend/tools/xpath.html index dad6da6..87d71ea 100644 --- a/Frontend/tools/xpath.html +++ b/Frontend/tools/xpath.html @@ -14,7 +14,7 @@
-
+

Online XPath tester v0.4

@@ -62,7 +62,7 @@
-
+

What is XPath?

XPath is a querry language used for selecting nodes from XML and processing them.
It may perform operations on strings, numbers and boolean values.

From 19c47d3cd251d91a2a5cdfc3afc4b2bc9b304ed5 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Fri, 17 Feb 2023 12:27:33 +0100 Subject: [PATCH 03/27] Removed empty class in r11form.css --- Frontend/assets/css/tools/r11form.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index 06bc195..1ac42a9 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -437,10 +437,6 @@ content: "▼"; } -.content.active{ - -} - .hiddable { display: none; } From df8b7cd007b200cbe8a0b04418156eeb6baa85f8 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Fri, 17 Feb 2023 12:40:50 +0100 Subject: [PATCH 04/27] Added RWD for XPath and XSD tools --- Frontend/tools/xsd.html | 4 ++-- Frontend/tools/xslt.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Frontend/tools/xsd.html b/Frontend/tools/xsd.html index 57e1f51..64da26c 100644 --- a/Frontend/tools/xsd.html +++ b/Frontend/tools/xsd.html @@ -11,7 +11,7 @@
-
+

Online XSD tester v0.4 BETA @@ -48,7 +48,7 @@

-
+

What is XSD?

XSD is a W3C recomedation that specifies how to describe the elements in XML document

XSD specifies data types, order and arity of elements in XML file.
diff --git a/Frontend/tools/xslt.html b/Frontend/tools/xslt.html index 061b46a..cab7360 100644 --- a/Frontend/tools/xslt.html +++ b/Frontend/tools/xslt.html @@ -11,7 +11,7 @@

-
+

Online XSLT tester v0.4

@@ -48,7 +48,7 @@
-
+

What is XSLT?

XSLT is a language for transforming XML documents into other documents such as XML, HTML and many other.

From 8c132d12d34312b83fa6226ea1416de250ab7752 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 09:58:49 +0100 Subject: [PATCH 05/27] Added interface for formater rool --- Frontend/assets/css/tools/r11form.css | 4 + Frontend/tools/formatter.html | 157 ++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 Frontend/tools/formatter.html diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index f4af46e..47f635a 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -287,6 +287,10 @@ width: 100%; } +.half-width { + width: 50%; +} + .max-width.with-padding { width: 94%; } diff --git a/Frontend/tools/formatter.html b/Frontend/tools/formatter.html new file mode 100644 index 0000000..f7bbd1e --- /dev/null +++ b/Frontend/tools/formatter.html @@ -0,0 +1,157 @@ + + + + + + + + + + + + +
+
+
+
+

Online XML Formatter v0.21.37 BETA +

+
+ + + +

+ + +

+ + + + +
+
+
+

What is this?

+

This tool has 2 main functions: +

    +
  • Prettify XML to make it human-readable (add indentation etc.)
  • +
  • Minimize XML to make it more compact (exactly opposite to above)
  • +
+

+
+ + + +
+ + + + + + + + + + + + + + From e2cf490f9da047c67a04be8cefbeda69f6f9fc38 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 09:59:48 +0100 Subject: [PATCH 06/27] Removed empty class --- Frontend/assets/css/tools/r11form.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index 47f635a..c917aac 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -441,10 +441,6 @@ content: "▼"; } -.content.active{ - -} - .hiddable { display: none; } From 78cc13a6616c4db3d77381b3eb5631afbf3768b2 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 10:00:28 +0100 Subject: [PATCH 07/27] Added new tool to frame --- Frontend/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Frontend/index.html b/Frontend/index.html index 162acd4..d9d0cd2 100644 --- a/Frontend/index.html +++ b/Frontend/index.html @@ -25,6 +25,7 @@
  • XPath
  • XSLT
  • XSD
  • +
  • Formatter
  • From 4955a7cc4f0644f78ed0ebe5fd57dbb1ee13ab54 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 11:02:16 +0100 Subject: [PATCH 08/27] Implemented new tool in backend --- Backend-libXML/Parser.py | 18 +++++++++--------- Backend-libXML/main.py | 8 +++++--- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Backend-libXML/Parser.py b/Backend-libXML/Parser.py index c652212..2722386 100644 --- a/Backend-libXML/Parser.py +++ b/Backend-libXML/Parser.py @@ -1,16 +1,22 @@ from lxml import etree +def prettify(source: str) -> str: + xml = etree.XML(source) + return etree.tostring(xml, pretty_print=True) + +def minimize(source: str) -> str: + xml = etree.XML(source) + return etree.tostring(xml, pretty_print=False) + + def xpath(source: str, xpath: str) -> str: """ Method used to get nodes from XML string using XPath :param source: XML string used for selection - :type source: str :param xpath: XPath query used for selection - :type xpath: str :return: Nodes selected using XPath - :rtype: str """ @@ -34,11 +40,8 @@ def xsd(source: str, xsd: str) -> bool: """ Method used to validate XML string against XSD schema :param source: XML string used for validation - :type source: str :param xsd: XSD schema to validate XML against - :type xsd: str :return: Message saying, if the validation was successful or not - :rtype: str """ xml_schema = etree.XMLSchema(etree.XML(xsd)) @@ -54,11 +57,8 @@ def xslt(source: str, xslt: str) -> str: Method used to transformate XML string using XSLT :param source: XML string to transform - :type source: str :param xslt: XSLT string used to transformate XML - :type xslt: str :return: Result of transformation - :rtype: str """ xslt_transform = etree.XSLT(etree.XML(xslt)) diff --git a/Backend-libXML/main.py b/Backend-libXML/main.py index 0869a00..0996a1d 100644 --- a/Backend-libXML/main.py +++ b/Backend-libXML/main.py @@ -19,12 +19,9 @@ def process_xml(request: request, type: str) -> str: """Function to process :param request: Received request - :type request: request :param type: Type of needed processing: xsd, xslt or xpath - :type type: str :raises ValueError: is raised when type is different than those provided above :return: response JSON converted to string and response code - :rtype: str, int """ start = time.time_ns() code = 200 @@ -70,5 +67,10 @@ def xsd(): def xslt(): return process_xml(request, "xslt") +@app.route("/prettifypost", methods=["POST"]) +def prettify(): + request_data = json.loads(request.get_data(as_text=True)) + return Parser.prettify(request_data['data']) + if __name__ == "__main__": app.run() \ No newline at end of file From 153a7313ef58db1f14417ef97fc42656df7927f8 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 11:02:30 +0100 Subject: [PATCH 09/27] Added new sample files --- Backend-libXML/sample/minimize/minimize.curl | 3 + Backend-libXML/sample/minimize/minimize.json | 5 + Backend-libXML/sample/minimize/pretty | 104 +++++++++++++++++++ Backend-libXML/sample/prettify/prettify.curl | 3 + Backend-libXML/sample/prettify/prettify.json | 5 + 5 files changed, 120 insertions(+) create mode 100644 Backend-libXML/sample/minimize/minimize.curl create mode 100644 Backend-libXML/sample/minimize/minimize.json create mode 100644 Backend-libXML/sample/minimize/pretty create mode 100644 Backend-libXML/sample/prettify/prettify.curl create mode 100644 Backend-libXML/sample/prettify/prettify.json diff --git a/Backend-libXML/sample/minimize/minimize.curl b/Backend-libXML/sample/minimize/minimize.curl new file mode 100644 index 0000000..f75d62a --- /dev/null +++ b/Backend-libXML/sample/minimize/minimize.curl @@ -0,0 +1,3 @@ +url = "http://localhost:5000/minimizepost" +data = "@minimize.json" +request = POST diff --git a/Backend-libXML/sample/minimize/minimize.json b/Backend-libXML/sample/minimize/minimize.json new file mode 100644 index 0000000..10bfc79 --- /dev/null +++ b/Backend-libXML/sample/minimize/minimize.json @@ -0,0 +1,5 @@ +{ + "data": "Hamlet2001-05-041falseMacbeth2000-12-131falseHarry Potter and the Sorcerer's Stone2005-04-292trueThe Long Walk2018-07-014trueMisery2018-01-314trueThink and Grow Rich2004-09-106trueThe Law of Success1982-05-096falsePatriot Games1995-10-215falseThe Sum of All Fears1992-09-195falseThe Alchemist2017-02-203falseHamlet1994-06-011falseMeasure for Measure1990-03-231falseHamlet1989-05-051trueHamlet1999-05-301trueThe Law of Success2004-11-266trueRomeo and Juliet1997-02-081trueThe Alchemist2009-08-213true", + "processor": "libxml", + "version": "1.0" +} diff --git a/Backend-libXML/sample/minimize/pretty b/Backend-libXML/sample/minimize/pretty new file mode 100644 index 0000000..7690e96 --- /dev/null +++ b/Backend-libXML/sample/minimize/pretty @@ -0,0 +1,104 @@ + + + Hamlet + 2001-05-04 + 1 + false + + + Macbeth + 2000-12-13 + 1 + false + + + Harry Potter and the Sorcerer's Stone + 2005-04-29 + 2 + true + + + The Long Walk + 2018-07-01 + 4 + true + + + Misery + 2018-01-31 + 4 + true + + + Think and Grow Rich + 2004-09-10 + 6 + true + + + The Law of Success + 1982-05-09 + 6 + false + + + Patriot Games + 1995-10-21 + 5 + false + + + The Sum of All Fears + 1992-09-19 + 5 + false + + + The Alchemist + 2017-02-20 + 3 + false + + + Hamlet + 1994-06-01 + 1 + false + + + Measure for Measure + 1990-03-23 + 1 + false + + + Hamlet + 1989-05-05 + 1 + true + + + Hamlet + 1999-05-30 + 1 + true + + + The Law of Success + 2004-11-26 + 6 + true + + + Romeo and Juliet + 1997-02-08 + 1 + true + + + The Alchemist + 2009-08-21 + 3 + true + + diff --git a/Backend-libXML/sample/prettify/prettify.curl b/Backend-libXML/sample/prettify/prettify.curl new file mode 100644 index 0000000..643474d --- /dev/null +++ b/Backend-libXML/sample/prettify/prettify.curl @@ -0,0 +1,3 @@ +url = "http://localhost:5000/prettifypost" +data = "@prettify.json" +request = POST diff --git a/Backend-libXML/sample/prettify/prettify.json b/Backend-libXML/sample/prettify/prettify.json new file mode 100644 index 0000000..10bfc79 --- /dev/null +++ b/Backend-libXML/sample/prettify/prettify.json @@ -0,0 +1,5 @@ +{ + "data": "Hamlet2001-05-041falseMacbeth2000-12-131falseHarry Potter and the Sorcerer's Stone2005-04-292trueThe Long Walk2018-07-014trueMisery2018-01-314trueThink and Grow Rich2004-09-106trueThe Law of Success1982-05-096falsePatriot Games1995-10-215falseThe Sum of All Fears1992-09-195falseThe Alchemist2017-02-203falseHamlet1994-06-011falseMeasure for Measure1990-03-231falseHamlet1989-05-051trueHamlet1999-05-301trueThe Law of Success2004-11-266trueRomeo and Juliet1997-02-081trueThe Alchemist2009-08-213true", + "processor": "libxml", + "version": "1.0" +} From b9e2e527fd900eddd3e9e8f45c79c94f78a6146f Mon Sep 17 00:00:00 2001 From: mikolaj widla Date: Mon, 20 Feb 2023 14:03:50 +0100 Subject: [PATCH 10/27] Added buttons for default XML in XSD and XSLT --- Frontend/tools/xsd.html | 8 +++++++- Frontend/tools/xslt.html | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Frontend/tools/xsd.html b/Frontend/tools/xsd.html index 84234bf..5cafd92 100644 --- a/Frontend/tools/xsd.html +++ b/Frontend/tools/xsd.html @@ -16,13 +16,19 @@

    Online XSD tester v0.4 BETA

    +
    +
    +
    + +
    + -


    + onclick="performFormatRequest('prettifypost', true)">Prettify XML + onclick="performFormatRequest('minimizepost', true)">Minimize XML

    @@ -73,22 +73,17 @@ From 935b1d01eacda58f6f022327514bd604a55666c6 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 14:58:50 +0100 Subject: [PATCH 13/27] Updated sample files --- Backend-libXML/sample/prettify/prettify.json | 1 + Backend-libXML/sample/xpath/non-ns.curl | 2 +- Backend-libXML/sample/xpath/ns.curl | 2 +- Backend-libXML/sample/xsd/xsd.curl | 4 ++-- Backend-libXML/sample/xslt/xslt.curl | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Backend-libXML/sample/prettify/prettify.json b/Backend-libXML/sample/prettify/prettify.json index 10bfc79..cb3a5ec 100644 --- a/Backend-libXML/sample/prettify/prettify.json +++ b/Backend-libXML/sample/prettify/prettify.json @@ -1,5 +1,6 @@ { "data": "Hamlet2001-05-041falseMacbeth2000-12-131falseHarry Potter and the Sorcerer's Stone2005-04-292trueThe Long Walk2018-07-014trueMisery2018-01-314trueThink and Grow Rich2004-09-106trueThe Law of Success1982-05-096falsePatriot Games1995-10-215falseThe Sum of All Fears1992-09-195falseThe Alchemist2017-02-203falseHamlet1994-06-011falseMeasure for Measure1990-03-231falseHamlet1989-05-051trueHamlet1999-05-301trueThe Law of Success2004-11-266trueRomeo and Juliet1997-02-081trueThe Alchemist2009-08-213true", + "process": "whatever", "processor": "libxml", "version": "1.0" } diff --git a/Backend-libXML/sample/xpath/non-ns.curl b/Backend-libXML/sample/xpath/non-ns.curl index 7d4219f..b059ae6 100644 --- a/Backend-libXML/sample/xpath/non-ns.curl +++ b/Backend-libXML/sample/xpath/non-ns.curl @@ -1,4 +1,4 @@ #url = "localhost:8081/xpathpost" -url = "localhost:5000/xpath" +url = "localhost:5000/xpathpost" request = "POST" data = "@data.json" diff --git a/Backend-libXML/sample/xpath/ns.curl b/Backend-libXML/sample/xpath/ns.curl index f439c0e..90af030 100644 --- a/Backend-libXML/sample/xpath/ns.curl +++ b/Backend-libXML/sample/xpath/ns.curl @@ -1,4 +1,4 @@ #url = "localhost:8081/xpathpost" -url = "localhost:5000/xpath" +url = "localhost:5000/xpathpost" request = "POST" data = "@dataNS.json" diff --git a/Backend-libXML/sample/xsd/xsd.curl b/Backend-libXML/sample/xsd/xsd.curl index 2481c02..ae731a5 100644 --- a/Backend-libXML/sample/xsd/xsd.curl +++ b/Backend-libXML/sample/xsd/xsd.curl @@ -1,4 +1,4 @@ -#url = "http://localhost:8082/xsd" -url = "http://localhost:5000/xsd" +#url = "http://localhost:8082/xsdpost" +url = "http://localhost:5000/xsdpost" data = "@xsd.json" request = POST diff --git a/Backend-libXML/sample/xslt/xslt.curl b/Backend-libXML/sample/xslt/xslt.curl index d50edd1..a7a6f94 100644 --- a/Backend-libXML/sample/xslt/xslt.curl +++ b/Backend-libXML/sample/xslt/xslt.curl @@ -1,3 +1,3 @@ -url = "http://localhost:5000/xslt" +url = "http://localhost:5000/xsltpost" data = "@xslt.json" request = POST From cc7664519e5d352ebf3be82dfa86ae2ed2867ee9 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 15:01:54 +0100 Subject: [PATCH 14/27] Implemented Q&D minimalizer --- Backend-libXML/Parser.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Backend-libXML/Parser.py b/Backend-libXML/Parser.py index a694edd..24f5967 100644 --- a/Backend-libXML/Parser.py +++ b/Backend-libXML/Parser.py @@ -6,8 +6,12 @@ def prettify(source: str) -> str: return etree.tostring(xml, pretty_print=True).decode() def minimize(source: str) -> str: - xml = etree.XML(source) - return etree.tostring(xml, pretty_print=False).decode() + result = source + result = result.replace(" ", "") + result = result.replace(" ", "") + result = result.replace("\t", "") + result = result.replace("\n", "") + return result def xpath(source: str, xpath: str) -> str: From e37ce3c678df16eb59f5b68e3985e7ff38d23a14 Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 15:04:57 +0100 Subject: [PATCH 15/27] Fixed bug in minimalizer --- Backend-libXML/Parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Backend-libXML/Parser.py b/Backend-libXML/Parser.py index 24f5967..ef2428e 100644 --- a/Backend-libXML/Parser.py +++ b/Backend-libXML/Parser.py @@ -7,8 +7,8 @@ def prettify(source: str) -> str: def minimize(source: str) -> str: result = source + result = result.replace(" ", "") result = result.replace(" ", "") - result = result.replace(" ", "") result = result.replace("\t", "") result = result.replace("\n", "") return result From 91dc131fbad343a213a80d277757a3556a11959d Mon Sep 17 00:00:00 2001 From: Adam Bem Date: Mon, 20 Feb 2023 15:18:20 +0100 Subject: [PATCH 16/27] Some refactor allowing to use same js code as everywhere --- Frontend/tools/formatter.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Frontend/tools/formatter.html b/Frontend/tools/formatter.html index f583346..c5d88f6 100644 --- a/Frontend/tools/formatter.html +++ b/Frontend/tools/formatter.html @@ -18,6 +18,10 @@
    + +