diff --git a/Backend/tools-services/src/main/java/com/r11/tools/controller/MultipleXMLController.java b/Backend/tools-services/src/main/java/com/r11/tools/controller/MultipleXMLController.java
index b6c24bb..ad87cf2 100644
--- a/Backend/tools-services/src/main/java/com/r11/tools/controller/MultipleXMLController.java
+++ b/Backend/tools-services/src/main/java/com/r11/tools/controller/MultipleXMLController.java
@@ -68,7 +68,7 @@ public class MultipleXMLController implements RestController {
private XMLResponseBody processData(MultipleXmlJob xmlJob) throws Exception {
XmlEngine engine = xmlJob.getEngine();
XMLMultipleFilesBody requestBody = xmlJob.getRequestBody();
- String result = engine.processXSLT(requestBody.getData(), requestBody.getProcessorData());
+ String result = engine.processXSLT(requestBody.getParams(), requestBody.getData(), requestBody.getProcessorData());
return new XMLResponseBody(result, "OK", requestBody.getVersion());
}
diff --git a/Backend/tools-services/src/main/java/com/r11/tools/model/Param.java b/Backend/tools-services/src/main/java/com/r11/tools/model/Param.java
new file mode 100644
index 0000000..f60308d
--- /dev/null
+++ b/Backend/tools-services/src/main/java/com/r11/tools/model/Param.java
@@ -0,0 +1,20 @@
+package com.r11.tools.model;
+
+import com.google.gson.annotations.SerializedName;
+
+
+public class Param {
+ @SerializedName("key")
+ private String key;
+ @SerializedName("value")
+ private String value;
+
+ public String getKey() {
+ return key;
+ }
+
+ public String getValue() {
+ return value;
+ }
+}
+
diff --git a/Backend/tools-services/src/main/java/com/r11/tools/model/XMLMultipleFilesBody.java b/Backend/tools-services/src/main/java/com/r11/tools/model/XMLMultipleFilesBody.java
index 67291a4..9223c83 100644
--- a/Backend/tools-services/src/main/java/com/r11/tools/model/XMLMultipleFilesBody.java
+++ b/Backend/tools-services/src/main/java/com/r11/tools/model/XMLMultipleFilesBody.java
@@ -2,6 +2,8 @@ package com.r11.tools.model;
import com.google.gson.annotations.SerializedName;
+import java.util.List;
+
public class XMLMultipleFilesBody {
@SerializedName("data")
@@ -12,6 +14,8 @@ public class XMLMultipleFilesBody {
private String processor;
@SerializedName("version")
private String version;
+ @SerializedName("params")
+ private List params;
public String getProcessorData() {
@@ -29,4 +33,9 @@ public class XMLMultipleFilesBody {
public XMLMultipleFilesData[] getData() {
return data;
}
+
+ public List getParams() {
+ return params;
+ }
+
}
diff --git a/Backend/tools-services/src/main/java/com/r11/tools/xml/Saxon.java b/Backend/tools-services/src/main/java/com/r11/tools/xml/Saxon.java
index 8495e62..677a44b 100644
--- a/Backend/tools-services/src/main/java/com/r11/tools/xml/Saxon.java
+++ b/Backend/tools-services/src/main/java/com/r11/tools/xml/Saxon.java
@@ -1,5 +1,6 @@
package com.r11.tools.xml;
+import com.r11.tools.model.Param;
import com.r11.tools.model.XMLMultipleFilesData;
import com.r11.tools.model.XMLRequestBody;
import com.r11.tools.model.XPathQueryResult;
@@ -30,11 +31,11 @@ public class Saxon implements XmlEngine{
* @throws IOException thrown when file does not exist, or cannot be read.
*/
XmlTools tools = new XmlTools();
- public String processXSLT(XMLMultipleFilesData[] data, String transform) throws SaxonApiException, IOException{
+ public String processXSLT(List params, XMLMultipleFilesData[] data, String transform) throws SaxonApiException, IOException{
Processor processor = new Processor(false);
XsltCompiler compiler = processor.newXsltCompiler();
- // transform = tools.addParams(params,transform);
+ transform = tools.addParams(params,transform);
String filesPath = "/tmp/"+UUID.randomUUID()+"/";
try{
@@ -91,7 +92,7 @@ public class Saxon implements XmlEngine{
* @return transformed xml
* @throws SaxonApiException thrown on stylesheet or transformation errors
*/
- public String processXSLT(List params, String data, String transform) throws SaxonApiException {
+ public String processXSLT(List params, String data, String transform) throws SaxonApiException {
Processor processor = new Processor(false);
XsltCompiler compiler = processor.newXsltCompiler();
transform = tools.addParams(params,transform);
diff --git a/Backend/tools-services/src/main/java/com/r11/tools/xml/Xalan.java b/Backend/tools-services/src/main/java/com/r11/tools/xml/Xalan.java
index ee3b884..2b4d64c 100644
--- a/Backend/tools-services/src/main/java/com/r11/tools/xml/Xalan.java
+++ b/Backend/tools-services/src/main/java/com/r11/tools/xml/Xalan.java
@@ -1,5 +1,6 @@
package com.r11.tools.xml;
+import com.r11.tools.model.Param;
import com.r11.tools.model.XMLMultipleFilesData;
import com.r11.tools.model.XMLRequestBody;
import com.r11.tools.model.XPathQueryResult;
@@ -41,7 +42,7 @@ public class Xalan implements XmlEngine{
* @return transformed xml
* @throws Exception thrown on stylesheet or transformation errors
*/
- public String processXSLT(List params, String data, String transform) throws Exception {
+ public String processXSLT(List params, String data, String transform) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(data)));
@@ -69,7 +70,7 @@ public class Xalan implements XmlEngine{
}
@Override
- public String processXSLT(XMLMultipleFilesData[] data, String transform) throws Exception {
+ public String processXSLT(List params, XMLMultipleFilesData[] data, String transform) throws Exception {
throw new UnsupportedOperationException("Xalan does not support multiple files XSLT processing");
}
diff --git a/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java b/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java
index e66645d..e422509 100644
--- a/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java
+++ b/Backend/tools-services/src/main/java/com/r11/tools/xml/XmlEngine.java
@@ -1,16 +1,16 @@
package com.r11.tools.xml;
+import com.r11.tools.model.Param;
import com.r11.tools.model.XMLMultipleFilesData;
-import com.r11.tools.model.XMLRequestBody;
import com.r11.tools.model.XPathQueryResult;
import java.util.List;
public interface XmlEngine {
- String processXSLT(XMLMultipleFilesData[] data, String transform) throws Exception;
+ String processXSLT(List params, XMLMultipleFilesData[] data, String transform) throws Exception;
XPathQueryResult processXPath(String data, String query, String version) throws Exception;
- String processXSLT(List params, String data, String transform) throws Exception;
+ String processXSLT(List params, String data, String transform) throws Exception;
String validate(String data, String xsd) throws Exception;
String executeXQuery(String data, String xquery, String version) throws Exception;
public String getVersion();
diff --git a/Frontend/src/components/XsltParamComponent.vue b/Frontend/src/components/XsltParamComponent.vue
index 57608ea..32a1a9a 100644
--- a/Frontend/src/components/XsltParamComponent.vue
+++ b/Frontend/src/components/XsltParamComponent.vue
@@ -23,7 +23,11 @@ const selectedOption = ref(options.value[0].name)
const selectedFunction = () => {
if (selectOption(selectedOption.value) === 'Add Param') {
- options.value.push({name: nameInput.value + " = " + valueInput.value});
+ if(!valueInput.value.length == 0 && !nameInput.value.length == 0){
+ options.value.push({name: nameInput.value + " = " + valueInput.value});
+ valueInput.value = "";
+ nameInput.value = "";
+ }
}
if (selectOption(selectedOption.value) === 'Remove Param') {
@@ -106,6 +110,22 @@ function selectOption(option: string): string {
+
+
-
-
-
+
+
diff --git a/Frontend/src/components/xml/XmlOutputFieldComponent.vue b/Frontend/src/components/xml/XmlOutputFieldComponent.vue
index dd074e1..8f198e1 100644
--- a/Frontend/src/components/xml/XmlOutputFieldComponent.vue
+++ b/Frontend/src/components/xml/XmlOutputFieldComponent.vue
@@ -149,12 +149,15 @@ function prepareRequestBodySingleXml(data: string):string {
}
function prepareRequestBodyMultiXml():string {
- if (!Array.isArray(props.xml))
+ const formattedParams = formatParams();
+
+ if (!Array.isArray(props.xml))
return "";
let xmlFilesArray = convertDataArray(props.xml);
let requestBody = JSON.stringify({
+ "params": formattedParams,
"data": xmlFilesArray,
"processorData": props.query,
"processor": engine.value,