Hi, Jeremy.
Can you try this patch? It seems that in your environment the SAX XMLReader
may have a different feature settings on "namespaces" or
"namespace-prefixes". With the patch, I enforce them by:
reader.setFeature("http://xml.org/sax/features/namespaces", true); //
Default to true
reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
// Default to false
Thanks,
Raymond
----- Original Message -----
From: "Jeremy Boynes" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Tuesday, July 18, 2006 8:59 AM
Subject: Re: [PATCH] Patch for databinding was: Re: Moving chianti to trunk
On Jul 18, 2006, at 8:46 AM, Raymond Feng wrote:
Hi,
I ran into this issue once inside Eclipse but cannot reproduce it any
more. It's probably related to some settings of the SAX/DOM features on
namespace handling. I'll investigate.
What JDK do you use? I tried IBM and SUN JDKs and both are fine.
$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)
on OSX 10.4.7
--
Jeremy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Index:
databinding-framework/src/main/java/org/apache/tuscany/databinding/PushStyleTransformer.java
===================================================================
---
databinding-framework/src/main/java/org/apache/tuscany/databinding/PushStyleTransformer.java
(revision 422978)
+++
databinding-framework/src/main/java/org/apache/tuscany/databinding/PushStyleTransformer.java
(working copy)
@@ -1,47 +0,0 @@
-/**
- *
- * Copyright 2006 The Apache Software Foundation or its licensors as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.databinding;
-
-
-/**
- * A data pumper pushes data from its source into the sink
- * @param <S>
- * @param <R>
- */
-public interface PushStyleTransformer<S, R> {
- /**
- * @param source
- * @param sink
- * @param context
- */
- public void transform(S source, R sink, TransformationContext context);
-
- /**
- * @return
- */
- public Class<S> getSourceType();
-
- /**
- * @return
- */
- public Class<R> getSinkType();
-
- /**
- * @return
- */
- public int getWeight();
-}
Index:
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/InputSource2SAX.java
===================================================================
---
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/InputSource2SAX.java
(revision 422978)
+++
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/InputSource2SAX.java
(working copy)
@@ -32,6 +32,8 @@
public void transform(InputSource source, ContentHandler target,
TransformationContext context) {
try {
XMLReader reader = XMLReaderFactory.createXMLReader();
+ reader.setFeature("http://xml.org/sax/features/namespaces", true);
+
reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false);
reader.setContentHandler(target);
reader.parse(source);
} catch (Exception e) {
Index:
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Reader2SAX.java
===================================================================
---
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Reader2SAX.java
(revision 422978)
+++
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/Reader2SAX.java
(working copy)
@@ -23,8 +23,6 @@
import org.apache.tuscany.databinding.TransformationException;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
/**
* Transform XML string to SAX
@@ -33,9 +31,7 @@
public class Reader2SAX implements PushTransformer<Reader, ContentHandler> {
public void transform(Reader source, ContentHandler target,
TransformationContext context) {
try {
- XMLReader reader = XMLReaderFactory.createXMLReader();
- reader.setContentHandler(target);
- reader.parse(new InputSource(source));
+ new InputSource2SAX().transform(new InputSource(source), target,
context);
} catch (Exception e) {
throw new TransformationException(e);
}
Index:
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java
===================================================================
---
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java
(revision 422978)
+++
databinding-framework/src/main/java/org/apache/tuscany/databinding/trax/String2SAX.java
(working copy)
@@ -18,31 +18,29 @@
import java.io.StringReader;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.stream.StreamSource;
-
import org.apache.tuscany.databinding.PushTransformer;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.xml.sax.ContentHandler;
+import org.xml.sax.InputSource;
/**
* Transform XML string to SAX
- *
+ *
*/
public class String2SAX implements PushTransformer<String, ContentHandler> {
- private static final TransformerFactory factory =
TransformerFactory.newInstance();
+ /*
+ * private static final TransformerFactory factory =
TransformerFactory.newInstance();
+ *
+ * public void transform(String source, ContentHandler target, TransformationContext context) { try { javax.xml.transform.Transformer transformer =
+ * factory.newTransformer(); Source domSource = new StreamSource(new
StringReader(source));
+ *
+ * Result result = new SAXResult(target); transformer.transform(domSource, result); } catch (Exception e) { throw new TransformationException(e); } }
+ */
public void transform(String source, ContentHandler target,
TransformationContext context) {
try {
- javax.xml.transform.Transformer transformer =
factory.newTransformer();
- Source domSource = new StreamSource(new StringReader(source));
-
- Result result = new SAXResult(target);
- transformer.transform(domSource, result);
+ new InputSource2SAX().transform(new InputSource(new
StringReader(source)), target, context);
} catch (Exception e) {
throw new TransformationException(e);
}
Index:
databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/MediatorImplTestCase.java
===================================================================
---
databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/MediatorImplTestCase.java
(revision 422978)
+++
databinding-framework/src/test/java/org/apache/tuscany/databinding/impl/MediatorImplTestCase.java
(working copy)
@@ -67,22 +67,18 @@
}
public void testTransform1() {
-/*
Object node = mediator.mediate(IPO_XML, String.class, Node.class, null);
Assert.assertTrue(node instanceof Document);
Element root = ((Document) node).getDocumentElement();
Assert.assertEquals(root.getNamespaceURI(),
"http://www.example.com/IPO");
Assert.assertEquals(root.getLocalName(), "purchaseOrder");
-*/
}
public void testTransform2() {
-/*
Writer writer = new StringWriter();
mediator.mediate(IPO_XML, writer, String.class, Writer.class, null);
String str = writer.toString();
Assert.assertTrue(str != null &&
str.indexOf("<shipDate>1999-12-05</shipDate>") != -1);
-*/
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]