You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by aj...@apache.org on 2005/11/08 21:19:59 UTC
svn commit: r331877 - in
/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2:
om/impl/llom/OMSerializerUtil.java om/impl/llom/builder/StAXOMBuilder.java
soap/impl/llom/builder/StAXSOAPModelBuilder.java
Author: ajith
Date: Tue Nov 8 12:19:56 2005
New Revision: 331877
URL: http://svn.apache.org/viewcvs?rev=331877&view=rev
Log:
1.Did a change to fix the NS prob. The change is still not complete
Modified:
webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java
webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java
webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/StAXSOAPModelBuilder.java
Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java?rev=331877&r1=331876&r2=331877&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java Tue Nov 8 12:19:56 2005
@@ -118,8 +118,9 @@
writer.writeStartElement(nameSpaceName,
element.getLocalName());
} else {
- if (prefix == null) {
- prefix = "ns"+ ++namespaceCounter;
+ //todo - Need to verify whether this'll cause a problem!
+ if (prefix == null || "".equals(prefix)) {
+ prefix = "nsss"+ ++namespaceCounter;
}
writer.writeStartElement(prefix, element.getLocalName(),
nameSpaceName);
@@ -136,8 +137,8 @@
// a namespace, we deliberately associate it with the empty namespace
// If the OMElement is associated with a namespace, even by inheritance
// then it shouldn't be here!!!!. kind of ugly but perfectly legal
- //and gets the thing done!
- writer.writeDefaultNamespace("");
+ // and gets the thing done!
+ // writer.writeDefaultNamespace("");
/////////////////////////////////////////////////////
}
Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java?rev=331877&r1=331876&r2=331877&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java Tue Nov 8 12:19:56 2005
@@ -46,6 +46,7 @@
*/
private boolean doDebug = false;
+ private static int nsCount = 0;
/**
* Constructor StAXOMBuilder
@@ -296,21 +297,17 @@
* @param isSOAPElement
*/
protected void processNamespaceData(OMElement node, boolean isSOAPElement) {
- int namespaceCount = parser.getNamespaceCount();
- for (int i = 0; i < namespaceCount; i++) {
- node.declareNamespace(parser.getNamespaceURI(i),
- parser.getNamespacePrefix(i));
- }
// set the own namespace
String namespaceURI = parser.getNamespaceURI();
String prefix = parser.getPrefix();
+
OMNamespace namespace = null;
if (namespaceURI != null && namespaceURI.length() > 0) {
if (prefix == null) {
// this means, this elements has a default namespace or it has inherited a default namespace from its parent
namespace = node.findNamespace(namespaceURI, "");
if (namespace == null) {
- namespace = node.declareNamespace(namespaceURI, "");
+ namespace = node.declareNamespace(namespaceURI, createPrefix());
}
if (node.getNamespace() == null) {
node.setNamespace(namespace);
@@ -324,6 +321,16 @@
node.setNamespace(namespace);
}
}
+
+
+ }
+
+ int namespaceCount = parser.getNamespaceCount();
+ for (int i = 0; i < namespaceCount; i++) {
+ if (!parser.getNamespaceURI(i).equals(namespaceURI)){
+ node.declareNamespace(parser.getNamespaceURI(i),
+ parser.getNamespacePrefix(i));
+ }
}
}
@@ -332,4 +339,9 @@
public void setDoDebug(boolean doDebug) {
this.doDebug = doDebug;
}
+
+ protected String createPrefix(){
+ return "ns"+ nsCount++;
+ }
+
}
Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/StAXSOAPModelBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/StAXSOAPModelBuilder.java?rev=331877&r1=331876&r2=331877&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/StAXSOAPModelBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/StAXSOAPModelBuilder.java Tue Nov 8 12:19:56 2005
@@ -186,7 +186,7 @@
* @throws OMException
*/
protected OMNode createOMElement() throws OMException {
- elementLevel++;
+ elementLevel++;
OMElement node;
String elementName = parser.getLocalName();
if (lastNode == null) {
@@ -318,28 +318,28 @@
private String getSenderFaultCode() {
if(senderfaultCode == null){
- senderfaultCode = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName()) ? SOAP12Constants.FAULT_CODE_SENDER : SOAP11Constants.FAULT_CODE_SENDER;
+ senderfaultCode = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName()) ? SOAP12Constants.FAULT_CODE_SENDER : SOAP11Constants.FAULT_CODE_SENDER;
}
return senderfaultCode;
}
private String getReceiverFaultCode() {
if(receiverfaultCode == null){
- receiverfaultCode = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName()) ? SOAP12Constants.FAULT_CODE_RECEIVER : SOAP11Constants.FAULT_CODE_RECEIVER;
+ receiverfaultCode = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName()) ? SOAP12Constants.FAULT_CODE_RECEIVER : SOAP11Constants.FAULT_CODE_RECEIVER;
}
return receiverfaultCode;
}
public void endElement(){
- if (lastNode.isComplete()) {
- OMElement parent = (OMElement) lastNode.getParent();
- ((OMNodeEx)parent).setComplete(true);
- lastNode = parent;
- } else {
- OMNode e = lastNode;
- ((OMNodeEx)e).setComplete(true);
- }
- elementLevel--;
+ if (lastNode.isComplete()) {
+ OMElement parent = (OMElement) lastNode.getParent();
+ ((OMNodeEx)parent).setComplete(true);
+ lastNode = parent;
+ } else {
+ OMNode e = lastNode;
+ ((OMNodeEx)e).setComplete(true);
+ }
+ elementLevel--;
}
/**
@@ -349,7 +349,7 @@
* should not have a DTD
*/
protected OMNode createDTD() throws OMException {
- throw new OMException("SOAP message MUST NOT contain a Document Type Declaration(DTD)");
+ throw new OMException("SOAP message MUST NOT contain a Document Type Declaration(DTD)");
}
/**
@@ -359,7 +359,7 @@
* should not have a PI
*/
protected OMNode createPI() throws OMException {
- throw new OMException("SOAP message MUST NOT contain Processing Instructions(PI)");
+ throw new OMException("SOAP message MUST NOT contain Processing Instructions(PI)");
}
/**
@@ -378,11 +378,6 @@
* @param isSOAPElement
*/
protected void processNamespaceData(OMElement node, boolean isSOAPElement) {
- int namespaceCount = parser.getNamespaceCount();
- for (int i = 0; i < namespaceCount; i++) {
- node.declareNamespace(parser.getNamespaceURI(i),
- parser.getNamespacePrefix(i));
- }
// set the owner namespace
String namespaceURI = parser.getNamespaceURI();
@@ -393,12 +388,20 @@
// this means, this elements has a default namespace or it has inherited a default namespace from its parent
namespace = node.findNamespace(namespaceURI, "");
if (namespace == null) {
- namespace = node.declareNamespace(namespaceURI, "");
+ namespace = node.declareNamespace(namespaceURI, createPrefix());
}
} else {
namespace = node.findNamespace(namespaceURI, prefix);
}
node.setNamespace(namespace);
+ }
+
+ int namespaceCount = parser.getNamespaceCount();
+ for (int i = 0; i < namespaceCount; i++) {
+ if (!parser.getNamespaceURI(i).equals(namespaceURI)){
+ node.declareNamespace(parser.getNamespaceURI(i),
+ parser.getNamespacePrefix(i));
+ }
}
if (isSOAPElement) {