public abstract class XmlPayloadTranslatorImpl extends ResultSetTranslatorImp
Modifier and Type | Class and Description |
---|---|
protected class |
XmlPayloadTranslatorImpl.DocumentWrapper |
StyledResultTranslatorImp.ColumnStyle
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
ELEMENT_NAME_COLUMN |
protected static java.lang.String |
ELEMENT_NAME_RESULTS |
protected static java.lang.String |
ELEMENT_NAME_ROW |
log
Constructor and Description |
---|
XmlPayloadTranslatorImpl() |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the component.
|
protected static org.xml.sax.InputSource |
createInputSource(java.lang.String value) |
protected java.util.List<org.w3c.dom.Element> |
createListFromResultSet(XmlPayloadTranslatorImpl.DocumentWrapper wrapper,
JdbcResultSet rs) |
protected org.w3c.dom.Node |
createTextNode(org.w3c.dom.Document doc,
java.lang.String value,
boolean isCDATA) |
protected static javax.xml.transform.Transformer |
createTransformer(XmlPayloadTranslatorImpl.DocumentWrapper wrapper) |
protected XmlPayloadTranslatorImpl.DocumentWrapper |
createWrapper(AdaptrisMessage msg) |
protected static XmlUtils |
createXmlUtils(AdaptrisMessage msg) |
java.lang.String |
getCdataColumnRegexp() |
java.lang.String |
getOutputMessageEncoding() |
java.lang.Boolean |
getStripIllegalXmlChars() |
java.lang.String |
getXmlColumnPrefix() |
java.lang.String |
getXmlColumnRegexp() |
void |
init()
Initialises the component.
|
protected boolean |
isCdataColumn(java.lang.String name,
XmlPayloadTranslatorImpl.DocumentWrapper wrapper) |
protected boolean |
isXmlColumn(java.lang.String name) |
void |
setCdataColumnRegexp(java.lang.String s)
Set the regular expression that will be used to check if a column should be wrapped in a CDATA element.
|
void |
setOutputMessageEncoding(java.lang.String encoding)
Set the encoding for the resulting XML document.
|
void |
setStripIllegalXmlChars(java.lang.Boolean s)
Specify whether or not to strip illegal XML characters from all the data before converting to XML.
|
void |
setXmlColumnPrefix(java.lang.String s)
Sets the prefix that is used to identify columns that should be treated as XML rather than text.
|
void |
setXmlColumnRegexp(java.lang.String s)
Set a regular expression that will be used to check if a column should be treated as XML rather than text.
|
protected boolean |
stripIllegalXmlChars() |
addColumnTranslator, getAttemptAutoConvert, getColumnTranslators, getDisplayColumnErrors, getResultCountMetadataItem, getUpdateCountMetadataItem, isDisplayColumnErrors, logColumnErrors, setAttemptAutoConvert, setColumnTranslators, setDisplayColumnErrors, setResultCountMetadataItem, setUpdateCountMetadataItem, toString, translate, translateResult, updateMetadata, updateMetadataQueryCount, updateMetadataUpdateCount, withAttemptAutoConvert, withColumnTranslators, withColumnTranslators
getColumnNameStyle, setColumnNameStyle, withColumnNameStyle
prepare
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
start, stop
protected static final java.lang.String ELEMENT_NAME_COLUMN
protected static final java.lang.String ELEMENT_NAME_ROW
protected static final java.lang.String ELEMENT_NAME_RESULTS
public void init() throws CoreException
ComponentLifecycle
Component initialisation includes config verification, creation of connections etc.
CoreException
- wrapping any underlying Exception
spublic void close()
ComponentLifecycle
A closed component should release any connections it uses, etc. and clean up completely. Throwing a RuntimeException
may
cause unintended consequences
protected java.util.List<org.w3c.dom.Element> createListFromResultSet(XmlPayloadTranslatorImpl.DocumentWrapper wrapper, JdbcResultSet rs) throws java.sql.SQLException
java.sql.SQLException
protected static XmlUtils createXmlUtils(AdaptrisMessage msg)
protected boolean isXmlColumn(java.lang.String name)
protected boolean isCdataColumn(java.lang.String name, XmlPayloadTranslatorImpl.DocumentWrapper wrapper)
protected org.w3c.dom.Node createTextNode(org.w3c.dom.Document doc, java.lang.String value, boolean isCDATA)
protected static org.xml.sax.InputSource createInputSource(java.lang.String value)
public java.lang.String getXmlColumnPrefix()
public void setXmlColumnPrefix(java.lang.String s)
s
- the prefix; note that this will be a case sensitive match, so if the behaviour of the database / JDBC driver is to
make all columns / labels uppercase, then make sure you use the right case.public java.lang.String getXmlColumnRegexp()
public void setXmlColumnRegexp(java.lang.String s)
s
- the regular expression to match that indicates the column is XML, setXmlColumnPrefix(String)
is always
checked first.setXmlColumnPrefix(String)
public java.lang.String getOutputMessageEncoding()
public void setOutputMessageEncoding(java.lang.String encoding)
If not specified the following rules will be applied:
AdaptrisMessage.getCharEncoding()
is non-null then that will be used.
As a result; the character encoding on the message is always set using AdaptrisMessage.setCharEncoding(String)
.
encoding
- the characterpublic java.lang.String getCdataColumnRegexp()
public void setCdataColumnRegexp(java.lang.String s)
s
- the regular expression to match that indicates the column should be wrapped in a CDATA element.public java.lang.Boolean getStripIllegalXmlChars()
public void setStripIllegalXmlChars(java.lang.Boolean s)
The following regular expression is used to strip out all invalid XML 1.0 characters :
"[^ \r\n --�𐀀-]"
. Note that not stripping Illegal XML characters
can still mean that you get output that looks like XML, but you will not be able to subsequently process it as a DOM object.
s
- true to enable stripping, default is null (false)protected boolean stripIllegalXmlChars()
protected static javax.xml.transform.Transformer createTransformer(XmlPayloadTranslatorImpl.DocumentWrapper wrapper) throws java.lang.Exception
java.lang.Exception
protected XmlPayloadTranslatorImpl.DocumentWrapper createWrapper(AdaptrisMessage msg) throws java.lang.Exception
java.lang.Exception