Symptom
The sqlToParameters action fails with the following error: "The content of elements must consist of well-formed character data or markup".
Sample stack trace:
sqlToParametersWithInferiorOperator/SqlToParameters
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 38; The content of elements must consist of well-formed character data or markup.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
at com.indy.engine.actionCodes.sqlToParameters.getDocumentFromXmlPart(SourceFile:106)
at com.indy.engine.actionCodes.sqlToParameters.executeSimpleCode(SourceFile:262)
at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1646)
at com.indy.engine.action.common.ActionCodeTypeI.run(SourceFile:1805)
at java.lang.Thread.run(Thread.java:745)
Solution
Your query expression might contain XML-specific characters, like "<" or ">".
Replace them with their entities: "<" or ">" respectively.
Sample expression:
<sqlToParameters>
<parameter name="/testHtml_${CORE_NAME}$" type="String">
select val from %x{$keyval/tech:physicalPath()}x%
where keycode < 'toto'
limit 1
</parameter>
</sqlToParameters>