summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/common-xml/src/main/java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-09-29 23:41:25 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-09-29 23:41:25 +0000
commitb7fb8ba1b979ed77a8d9ad29acd15d9ae9a78d8f (patch)
tree17c1ac5452f43fb8e090c751232ec62900061b75 /java/sca/modules/common-xml/src/main/java
parentbd77e0fb2851f7ae6a45a11ea9cda0979c035539 (diff)
Start to integrate the policy attachment builder
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@820125 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/common-xml/src/main/java')
-rw-r--r--java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java21
-rw-r--r--java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java1
2 files changed, 15 insertions, 7 deletions
diff --git a/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java b/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java
index 5ef5a03d9f..883199e4dd 100644
--- a/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java
+++ b/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/stax/impl/XMLStreamSerializer.java
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.common.xml.stax.impl;
import static javax.xml.XMLConstants.DEFAULT_NS_PREFIX;
import static javax.xml.XMLConstants.NULL_NS_URI;
+import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
@@ -120,10 +121,10 @@ public class XMLStreamSerializer implements XMLStreamConstants {
}
public String writeAttribute(XMLStreamWriter writer,
- String prefix,
- String localName,
- String namespaceURI,
- String value) throws XMLStreamException {
+ String prefix,
+ String localName,
+ String namespaceURI,
+ String value) throws XMLStreamException {
String writerPrefix;
/*
* Due to parser implementations returning null as the namespace URI (for the empty namespace) we need to
@@ -231,17 +232,17 @@ public class XMLStreamSerializer implements XMLStreamConstants {
public void writeStartElement(XMLStreamWriter writer, QName name) throws XMLStreamException {
writeStartElement(writer, name.getPrefix(), name.getLocalPart(), name.getNamespaceURI());
}
-
+
public void writeStartElement(XMLStreamWriter writer, String prefix, String localName, String namespaceURI)
throws XMLStreamException {
-
+
if (namespaceURI == null) {
namespaceURI = NULL_NS_URI;
}
if (prefix == null) {
prefix = DEFAULT_NS_PREFIX;
}
-
+
if (isRepairingNamespaces) {
writer.writeStartElement(prefix, localName, namespaceURI);
return;
@@ -298,6 +299,12 @@ public class XMLStreamSerializer implements XMLStreamConstants {
if (prefix == null) {
prefix = DEFAULT_NS_PREFIX;
}
+ if (DEFAULT_NS_PREFIX.equals(prefix) && !XMLConstants.NULL_NS_URI.equals(uri)) {
+ String ns = writer.getNamespaceContext().getNamespaceURI(prefix);
+ if (ns != null) {
+ prefix = generateUniquePrefix(writer.getNamespaceContext());
+ }
+ }
writer.writeNamespace(prefix, uri);
return prefix;
} else {
diff --git a/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java b/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java
index 85306622b2..a65bd5fe15 100644
--- a/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java
+++ b/java/sca/modules/common-xml/src/main/java/org/apache/tuscany/sca/common/xml/xpath/XPathHelper.java
@@ -102,6 +102,7 @@ public class XPathHelper {
*/
private Collection<String> getPrefixes(String expression) {
Collection<String> prefixes = new HashSet<String>();
+ prefixes.add(XMLConstants.DEFAULT_NS_PREFIX);
Pattern pattern = Pattern.compile("([^:]+):([^:]+)");
Matcher matcher = pattern.matcher(expression);
while (matcher.find()) {