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/06/29 09:36:00 UTC
svn commit: r202327 - in /webservices/axis/trunk/java: etc/
modules/core/src/org/apache/axis/clientapi/
modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/
modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/
modules/wsdl/src/org/apache/axis/wsd...
Author: ajith
Date: Wed Jun 29 00:35:59 2005
New Revision: 202327
URL: http://svn.apache.org/viewcvs?rev=202327&view=rev
Log:
Adding the new databinding components.May still have problems!
Added:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/StreamWrapper.java
Modified:
webservices/axis/trunk/java/etc/project.xml
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java
webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMDocument.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMStAXWrapper.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/builder/StAXOMBuilder.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java
webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/StaxParserTest.java
Modified: webservices/axis/trunk/java/etc/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/etc/project.xml?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/etc/project.xml (original)
+++ webservices/axis/trunk/java/etc/project.xml Wed Jun 29 00:35:59 2005
@@ -283,7 +283,7 @@
<report>maven-jxr-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-junit-report-plugin</report -->
- <report>maven-clover-plugin</report>
+ <!-- <report>maven-clover-plugin</report> -->
</reports>
</project>
Added: webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/StreamWrapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/StreamWrapper.java?rev=202327&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/StreamWrapper.java (added)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/clientapi/StreamWrapper.java Wed Jun 29 00:35:59 2005
@@ -0,0 +1,415 @@
+package org.apache.axis.clientapi;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.Location;
+import javax.xml.namespace.QName;
+import javax.xml.namespace.NamespaceContext;
+
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* 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.
+*
+*
+*/
+public class StreamWrapper implements XMLStreamReader{
+
+ private XMLStreamReader realReader = null;
+ private static final int STATE_SWITCHED = 0;
+ private static final int STATE_INIT = 1;
+ private static final int STATE_SWITHC_AT_NEXT = 2;
+
+ private int state = STATE_INIT;
+ private int prevState = state;
+
+ public StreamWrapper(XMLStreamReader realReader) {
+ if (realReader==null){
+ throw new UnsupportedOperationException("Reader cannot be null");
+ }
+ this.realReader = realReader;
+ }
+
+ public Object getProperty(String s) throws IllegalArgumentException {
+ if(prevState!=STATE_INIT){
+ return realReader.getProperty(s);
+ }else{
+ throw new IllegalArgumentException();
+ }
+ }
+
+ public int next() throws XMLStreamException {
+
+ prevState = state;
+
+ if (state==STATE_SWITCHED){
+ return realReader.next();
+ }else if (state==STATE_INIT){
+ if (realReader.getEventType()==START_DOCUMENT){
+ state = STATE_SWITCHED;
+ return realReader.getEventType();
+ }else{
+ state = STATE_SWITHC_AT_NEXT;
+ return START_DOCUMENT;
+ }
+ }else if (state==STATE_SWITHC_AT_NEXT) {
+ state = STATE_SWITCHED;
+ return realReader.getEventType();
+ }else{
+ throw new UnsupportedOperationException();
+ }
+
+ }
+
+ public void require(int i, String s, String s1) throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ realReader.require(i, s, s1);
+ }
+ }
+
+ public String getElementText() throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ return realReader.getElementText();
+ }else{
+ throw new XMLStreamException();
+ }
+ }
+
+ public int nextTag() throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ return realReader.nextTag();
+ }else{
+ throw new XMLStreamException();
+ }
+ }
+
+ public boolean hasNext() throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ return realReader.hasNext();
+ }else{
+ return true;
+ }
+ }
+
+ public void close() throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ realReader.close();
+ }else{
+ throw new XMLStreamException();
+ }
+ }
+
+ public String getNamespaceURI(String s) {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespaceURI(s);
+ }else{
+ return null;
+ }
+ }
+
+ public boolean isStartElement() {
+ if(prevState!=STATE_INIT){
+ return realReader.isStartElement();
+ }else{
+ return false;
+ }
+ }
+
+ public boolean isEndElement() {
+ if(prevState!=STATE_INIT){
+ return realReader.isEndElement();
+ }else{
+ return false;
+ }
+ }
+
+ public boolean isCharacters() {
+ if(prevState!=STATE_INIT){
+ return realReader.isCharacters();
+ }else{
+ return false;
+ }
+ }
+
+ public boolean isWhiteSpace() {
+ if(prevState!=STATE_INIT){
+ return realReader.isWhiteSpace();
+ }else{
+ return false;
+ }
+ }
+
+ public String getAttributeValue(String s, String s1) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeValue(s,s1);
+ }else{
+ return null;
+ }
+ }
+
+ public int getAttributeCount() {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeCount();
+ }else{
+ return 0;
+ }
+ }
+
+ public QName getAttributeName(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeName(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getAttributeNamespace(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeNamespace(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getAttributeLocalName(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeLocalName(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getAttributePrefix(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributePrefix(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getAttributeType(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeType(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getAttributeValue(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getAttributeValue(i);
+ }else{
+ return null;
+ }
+ }
+
+ public boolean isAttributeSpecified(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.isAttributeSpecified(i);
+ }else{
+ return false;
+ }
+ }
+
+ public int getNamespaceCount() {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespaceCount();
+ }else{
+ return 0;
+ }
+ }
+
+ public String getNamespacePrefix(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespacePrefix(i);
+ }else{
+ return null;
+ }
+ }
+
+ public String getNamespaceURI(int i) {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespaceURI(i);
+ }else{
+ return null;
+ }
+ }
+
+ public NamespaceContext getNamespaceContext() {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespaceContext();
+ }else{
+ return null;
+ }
+ }
+
+ public int getEventType() {
+ if(prevState==STATE_INIT){
+ return START_DOCUMENT;
+ }else{
+ return realReader.getEventType();
+ }
+ }
+
+ public String getText() {
+ if(prevState!=STATE_INIT){
+ return realReader.getText();
+ }else{
+ return null;
+ }
+ }
+
+ public char[] getTextCharacters() {
+ if(prevState!=STATE_INIT){
+ return realReader.getTextCharacters();
+ }else{
+ return new char[0] ;
+ }
+ }
+
+ public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
+ if(prevState!=STATE_INIT){
+ return realReader.getTextCharacters(i,chars,i1,i2);
+ }else{
+ return 0 ;
+ }
+ }
+
+ public int getTextStart() {
+ if(prevState!=STATE_INIT){
+ return realReader.getTextStart();
+ }else{
+ return 0 ;
+ }
+ }
+
+ public int getTextLength() {
+ if(prevState!=STATE_INIT){
+ return realReader.getTextStart();
+ }else{
+ return 0 ;
+ }
+ }
+
+ public String getEncoding() {
+ if(prevState!=STATE_INIT){
+ return realReader.getEncoding();
+ }else{
+ return null ;
+ }
+ }
+
+ public boolean hasText() {
+ if(prevState!=STATE_INIT){
+ return realReader.hasText();
+ }else{
+ return false ;
+ }
+ }
+
+ public Location getLocation() {
+ if(prevState!=STATE_INIT){
+ return realReader.getLocation();
+ }else{
+ return null ;
+ }
+ }
+
+ public QName getName() {
+ if(prevState!=STATE_INIT){
+ return realReader.getName();
+ }else{
+ return null ;
+ }
+ }
+
+ public String getLocalName() {
+ if(prevState!=STATE_INIT){
+ return realReader.getLocalName();
+ }else{
+ return null ;
+ }
+ }
+
+ public boolean hasName() {
+ if(prevState!=STATE_INIT){
+ return realReader.hasName();
+ }else{
+ return false ;
+ }
+ }
+
+ public String getNamespaceURI() {
+ if(prevState!=STATE_INIT){
+ return realReader.getNamespaceURI();
+ }else{
+ return null ;
+ }
+ }
+
+ public String getPrefix() {
+ if(prevState!=STATE_INIT){
+ return realReader.getPrefix();
+ }else{
+ return null ;
+ }
+ }
+
+ public String getVersion() {
+ if(prevState!=STATE_INIT){
+ return realReader.getVersion();
+ }else{
+ return null ;
+ }
+ }
+
+ public boolean isStandalone() {
+ if(prevState!=STATE_INIT){
+ return realReader.isStandalone();
+ }else{
+ return false ;
+ }
+ }
+
+ public boolean standaloneSet() {
+ if(prevState!=STATE_INIT){
+ return realReader.standaloneSet();
+ }else{
+ return false ;
+ }
+ }
+
+ public String getCharacterEncodingScheme() {
+ if(prevState!=STATE_INIT){
+ return realReader.getCharacterEncodingScheme();
+ }else{
+ return null ;
+ }
+ }
+
+ public String getPITarget() {
+ if(prevState!=STATE_INIT){
+ return realReader.getPITarget();
+ }else{
+ return null ;
+ }
+ }
+
+ public String getPIData() {
+ if(prevState!=STATE_INIT){
+ return realReader.getPIData();
+ }else{
+ return null ;
+ }
+ }
+}
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java Wed Jun 29 00:35:59 2005
@@ -555,7 +555,7 @@
addAttribute(doc,"dbsupportname",localPart+DATABINDING_SUPPORTER_NAME_SUFFIX,methodElement);
addSOAPAction(doc,methodElement,binding);
addAttribute(doc, "mep",operation.getMessageExchangePattern(), methodElement);
- methodElement.appendChild(getInputElement(doc,operation));
+ methodElement.appendChild(getInputElement(doc,operation));
methodElement.appendChild(getOutputElement(doc,operation));
rootElement.appendChild(methodElement);
}
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/extension/XMLBeansExtension.java Wed Jun 29 00:35:59 2005
@@ -62,8 +62,8 @@
Element schemaElement = ((Schema)extensiblityElt).getElelment();
// //add the namespaces
XmlOptions options = new XmlOptions();
- options.setCompileDownloadUrls();
options.setLoadAdditionalNamespaces(configuration.getWom().getNamespaces());
+ //options.
xmlObjects[i] = XmlObject.Factory.parse(schemaElement,options);
} catch (XmlException e) {
throw new RuntimeException(e);
Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java Wed Jun 29 00:35:59 2005
@@ -47,17 +47,17 @@
public JavaTypeMapper() {
//add the basic types to the table
- this.map.put(new QName(XSD_SCHEMA_URL,"string"),String.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"boolean"),Boolean.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"double"),Double.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"long"),Long.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"float"),Float.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"int"),Integer.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"short"),Short.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"byte"),Byte.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"decimal"),BigDecimal.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"date"),Date.class.getName());
- this.map.put(new QName(XSD_SCHEMA_URL,"QName"),QName.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"string"),String.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"boolean"),Boolean.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"double"),Double.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"long"),Long.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"float"),Float.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"int"),Integer.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"short"),Short.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"byte"),Byte.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"decimal"),BigDecimal.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"date"),Date.class.getName());
+// this.map.put(new QName(XSD_SCHEMA_URL,"QName"),QName.class.getName());
}
public String toString() {
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMDocument.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMDocument.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMDocument.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMDocument.java Wed Jun 29 00:35:59 2005
@@ -78,7 +78,7 @@
* @return
*/
public OMElement getRootElement() {
- if (rootElement == null) {
+ while (rootElement == null) {
parserWrapper.next();
}
return rootElement;
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java Wed Jun 29 00:35:59 2005
@@ -785,6 +785,10 @@
* @param namespace
*/
public void setNamespace(OMNamespace namespace) {
+ OMNamespace ns = this.findNamespace(namespace.getName(), namespace.getPrefix());
+ if (ns == null) {
+ ns = this.declareNamespace(namespace);
+ }
this.ns = namespace;
}
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMStAXWrapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMStAXWrapper.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMStAXWrapper.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMStAXWrapper.java Wed Jun 29 00:35:59 2005
@@ -812,7 +812,12 @@
}
log.info(
"Switching to the Real Stax parser to generated the future events");
- currentEvent = parser.getEventType();
+
+ if ((currentEvent == START_DOCUMENT) && (currentEvent == parser.getEventType())){
+ currentEvent = parser.next();
+ } else{
+ currentEvent = parser.getEventType();
+ }
updateCompleteStatus();
break;
case NAVIGABLE:
@@ -1006,9 +1011,9 @@
switch (nodeType) {
case OMNode.ELEMENT_NODE:
OMElement element = (OMElement) node;
- log.info("Generating events from element {"
- + element.getNamespace().getName() + '}'
- + element.getLocalName() + " Generated OM tree");
+// log.info("Generating events from element {"
+// + element.getNamespace().getName() + '}'
+// + element.getLocalName() + " Generated OM tree");
returnEvent = generateElementEvents(element);
break;
case OMNode.TEXT_NODE:
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/builder/StAXOMBuilder.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/builder/StAXOMBuilder.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/builder/StAXOMBuilder.java Wed Jun 29 00:35:59 2005
@@ -1,18 +1,18 @@
/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * 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.
- */
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* 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.axis.om.impl.llom.builder;
import org.apache.axis.om.*;
@@ -26,18 +26,13 @@
* This will construct an OM without using SOAP specific classes like SOAPEnvelope, SOAPHeader, SOAPHeaderBlock and SOAPBody.
* And this will habe the Document concept also.
*/
-public class StAXOMBuilder extends StAXBuilder implements OMXMLParserWrapper {
+public class StAXOMBuilder extends StAXBuilder{
/**
* Field document
*/
protected OMDocument document;
- /**
- * Field omFactory
- */
- protected OMFactory omFactory;
-
- /**
+ /**
* Constructor StAXOMBuilder
*
* @param ombuilderFactory
@@ -113,6 +108,10 @@
if (done) {
throw new OMException();
}
+ ///////////////////////////////////
+// int token = parser.getEventType();
+ //////////////////////////////////
+
int token = parser.next();
if (!cache) {
return token;
@@ -122,7 +121,9 @@
lastNode = createOMElement();
break;
case XMLStreamConstants.START_DOCUMENT:
- document = new OMDocument(this);
+ //Don't do anything in the start document event
+ //We've already assumed that start document has passed!
+ //document = new OMDocument(this);
break;
case XMLStreamConstants.CHARACTERS:
lastNode = createOMText();
@@ -146,6 +147,9 @@
default :
throw new OMException();
}
+ ////////////////////
+ // if (!done) parser.next();
+ ///////////////////
return token;
} catch (OMException e) {
throw e;
@@ -170,16 +174,46 @@
* @param isSOAPElement
*/
protected void processNamespaceData(OMElement node, boolean isSOAPElement) {
- int namespaceCount = parser.getNamespaceCount();
+ int namespaceCount = parser.getNamespaceCount();
for (int i = 0; i < namespaceCount; i++) {
node.declareNamespace(parser.getNamespaceURI(i),
parser.getNamespacePrefix(i));
}
// set the own namespace
- OMNamespace namespace =
- node.findNamespace(parser.getNamespaceURI(),
- parser.getPrefix());
- node.setNamespace(namespace);
+ String namespaceURI = parser.getNamespaceURI();
+ String prefix = parser.getPrefix();
+ OMNamespace namespace = null;
+ if (!"".equals(namespaceURI)) {
+ 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, "");
+ }
+ } else {
+ namespace = node.findNamespace(namespaceURI, prefix);
+ if(namespace == null){
+ node.setNamespace(omfactory.createOMNamespace(namespaceURI, prefix));
+ }else{
+ node.setNamespace(namespace);
+ }
+ }
+
+ } else {
+ // What to do if namespace URI is not available
+ }
}
+// int namespaceCount = parser.getNamespaceCount();
+// for (int i = 0; i < namespaceCount; i++) {
+// node.declareNamespace(parser.getNamespaceURI(i),
+// parser.getNamespacePrefix(i));
+// }
+//
+// // set the own namespace
+// OMNamespace namespace =
+// node.findNamespace(parser.getNamespaceURI(),
+// parser.getPrefix());
+// node.setNamespace(namespace);
+// }
}
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java Wed Jun 29 00:35:59 2005
@@ -127,8 +127,8 @@
}
}
} else {
- throw new OMException(
- "Non namespace qualified elements are not allowed");
+// throw new OMException(
+// "Non namespace qualified elements are not allowed");
}
// add attributes
Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/StaxParserTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/StaxParserTest.java?rev=202327&r1=202326&r2=202327&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/StaxParserTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/StaxParserTest.java Wed Jun 29 00:35:59 2005
@@ -4,6 +4,7 @@
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamException;
import java.io.ByteArrayInputStream;
/*
@@ -28,12 +29,12 @@
XMLStreamReader parser1;
XMLStreamReader parser2;
XMLStreamReader parser3;
- String xmlDocument = "<purchase-order xmlns=\"http://openuri.org/easypo\">\n" +
- " <customer>\n" +
- " <name>Gladys Kravitz</name>\n" +
- " <address>Anytown, PA</address>\n" +
- " </customer>\n" +
- " <date>2005-03-06T14:06:12.697+06:00</date>\n" +
+ String xmlDocument = "<purchase-order xmlns=\"http://openuri.org/easypo\">" +
+ "<customer>" +
+ " <name>Gladys Kravitz</name>" +
+ " <address>Anytown, PA</address>" +
+ " </customer>" +
+ " <date>2005-03-06T14:06:12.697+06:00</date>" +
"</purchase-order>";
public StaxParserTest(String testName) {
@@ -46,11 +47,11 @@
OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getSOAP11Factory(),
XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlDocument.getBytes())));
- parser2 = builder.getDocumentElement().getXMLStreamReaderWithoutCaching();
+ parser2 = builder.getDocumentElement().getXMLStreamReader();
OMXMLParserWrapper builder2 = OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getSOAP11Factory(),
XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlDocument.getBytes())));
- parser3 = builder2.getDocumentElement().getXMLStreamReader();
+ parser3 = builder2.getDocumentElement().getXMLStreamReaderWithoutCaching();
}
@@ -59,9 +60,11 @@
assertEquals(parser1.getEventType(),parser2.getEventType());
while(parser1.hasNext()){
- int parser1Event = parser1.next();
- int parser2Event = parser2.next();
- assertEquals(parser1Event,parser2Event);
+
+ int parser1Event = parser1.next();
+ int parser2Event = parser2.next();
+ assertEquals(parser1Event,parser2Event);
+
}