Can you also extract the lineNumber and columnNumber from the SAXParseException and either add 2 new keys to the returned array or update the returned message like in the example below?
Expected result 1
[errorLevel] => ERROR
[errorText] => [SAX] cvc-datatype-valid.1.2.1: '' is not a valid value for 'decimal'.
[lineNumber] => 134
[columnNumber] => 43
Expected result 2 (returned by other software)
org.xml.sax.SAXParseException; lineNumber: 134; columnNumber: 43; cvc-datatype-valid.1.2.1: '' is not a valid value for 'decimal'.
Actual result
[errorLevel] => ERROR
[errorLocationObj] => Array
(
[resource] => uploaded content
)
[errorText] => [SAX] cvc-datatype-valid.1.2.1: '' is not a valid value for 'decimal'.
[exception] => Array
(
[class] => org.xml.sax.SAXParseException
[message] => cvc-datatype-valid.1.2.1: '' is not a valid value for 'decimal'.
[stackTrace] => org.xml.sax.SAXParseException; systemId: uploaded content; cvc-datatype-valid.1.2.1: '' is not a valid value for 'decimal'.
1.: java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
2.: java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:135)
3.: java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
4.: java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
5.: java.xml/com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
6.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:512)
7.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3596)
8.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidComplexType(XMLSchemaValidator.java:3472)
9.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3441)
10.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:3343)
11.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(XMLSchemaValidator.java:2373)
12.: java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:944)
13.: java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.finishNode(DOMValidatorHelper.java:342)
14.: java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:247)
15.: java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:190)
16.: java.xml/com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:108)
17.: com.helger.xml.schema.XMLSchemaValidationHelper.validate(XMLSchemaValidationHelper.java:148)
18.: com.helger.phive.xml.xsd.ValidationExecutorXSD.applyValidation(ValidationExecutorXSD.java:98)
19.: com.helger.phive.xml.xsd.ValidationExecutorXSD.applyValidation(ValidationExecutorXSD.java:56)
20.: com.helger.phive.api.execute.ValidationExecutionManager.executeValidation(ValidationExecutionManager.java:180)
21.: com.helger.phive.api.execute.IValidationExecutionManager.executeValidation(IValidationExecutionManager.java:78)
22.: com.helger.phive.api.execute.ValidationExecutionManager.executeValidation(ValidationExecutionManager.java:260)
23.: com.helger.valsvc.validation.AppValidator.validate(AppValidator.java:135)
24.: com.helger.valsvc.api.ApiPostValidate.lambda$invokeAPI$0(ApiPostValidate.java:131)
25.: com.helger.valsvc.api.CommonAPIInvoker.invoke(CommonAPIInvoker.java:36)
26.: com.helger.valsvc.api.ApiPostValidate.invokeAPI(ApiPostValidate.java:190)
27.: com.helger.valsvc.api.AbstractAPIInvoker.invokeAPI(AbstractAPIInvoker.java:50)
28.: com.helger.photon.api.InvokableAPIDescriptor.invokeAPI(InvokableAPIDescriptor.java:197)
29.: com.helger.photon.api.APIInvoker.invoke(APIInvoker.java:73)
30.: com.helger.photon.api.servlet.APIXServletHandler.handleRequest(APIXServletHandler.java:132)
31.: com.helger.xservlet.handler.simple.XServletHandlerToSimpleHandler.onRequest(XServletHandlerToSimpleHandler.java:239)
32.: com.helger.xservlet.AbstractXServlet._invokeHandler(AbstractXServlet.java:354)
33.: com.helger.xservlet.AbstractXServlet.service(AbstractXServlet.java:539)
34.: jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
35.: com.helger.xservlet.AbstractXServlet.service(AbstractXServlet.java:595)
[22 elements omitted -- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)]
)
)
Can you also extract the lineNumber and columnNumber from the SAXParseException and either add 2 new keys to the returned array or update the returned message like in the example below?
Expected result 1
Expected result 2 (returned by other software)
Actual result