cziegeler 2003/11/07 01:14:34
Modified: . status.xml
src/blocks/databases/java/org/apache/cocoon/transformation
SQLTransformer.java
Log:
<action dev="CZ" type="fix" fixes-bug="24326" due-to-email="[EMAIL
PROTECTED]" due-to="Andrzej Taramina">
SQLTransformer: Correcting handling of XML data with XML declarations.
Applying
patch from Andrzej Taramina ([EMAIL PROTECTED]).
</action>
Revision Changes Path
1.184 +5 -1 cocoon-2.1/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/status.xml,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -r1.183 -r1.184
--- status.xml 6 Nov 2003 14:30:00 -0000 1.183
+++ status.xml 7 Nov 2003 09:14:34 -0000 1.184
@@ -192,6 +192,10 @@
<changes>
<release version="@version@" date="@date@">
+ <action dev="CZ" type="fix" fixes-bug="24326" due-to-email="[EMAIL
PROTECTED]" due-to="Andrzej Taramina">
+ SQLTransformer: Correcting handling of XML data with XML declarations.
Applying
+ patch from Andrzej Taramina ([EMAIL PROTECTED]).
+ </action>
<action dev="CZ" type="fix" due-to="Volker Schmitt">
Fixing threading problems in the ExtendedComponentSelector.
</action>
1.13 +10 -3
cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java
Index: SQLTransformer.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/databases/java/org/apache/cocoon/transformation/SQLTransformer.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SQLTransformer.java 21 Oct 2003 12:39:17 -0000 1.12
+++ SQLTransformer.java 7 Nov 2003 09:14:34 -0000 1.13
@@ -1237,8 +1237,15 @@
if (value != null) {
value = value.trim();
// Could this be XML ?
- if (value.length() > 0 && value.charAt(0) == '<') {
+ if ( value.length() > 0 && value.charAt(0) == '<') {
try {
+ String stripped = value;
+
+ // Strip off the XML Declaration if there is one!
+ if( stripped.startsWith( "<?xml " ) ) {
+ stripped = stripped.substring( stripped.indexOf(
"?>" ) + 2 );
+ }
+
if (transformer.parser == null) {
transformer.parser =
(SAXParser)manager.lookup(SAXParser.ROLE);
}
@@ -1248,7 +1255,7 @@
if (transformer.interpreter == null) {
transformer.interpreter =
(XMLDeserializer)manager.lookup(XMLDeserializer.ROLE);
}
- transformer.parser.parse(new InputSource(new
StringReader("<root>" + value + "</root>")),
+ transformer.parser.parse(new InputSource(new
StringReader("<root>" + stripped + "</root>")),
transformer.compiler);
IncludeXMLConsumer filter = new
IncludeXMLConsumer(transformer, transformer);