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 di...@apache.org on 2005/07/11 00:23:28 UTC

svn commit: r210053 - /webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java

Author: dims
Date: Sun Jul 10 15:23:24 2005
New Revision: 210053

URL: http://svn.apache.org/viewcvs?rev=210053&view=rev
Log:
Handle PI better.


Modified:
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java?rev=210053&r1=210052&r2=210053&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXOMBuilder.java Sun Jul 10 15:23:24 2005
@@ -127,6 +127,32 @@
         return node;
     }
 
+    protected OMNode createPI() throws OMException {
+        OMNode node;
+        String target = parser.getPITarget();
+        String data = parser.getPIData();
+        if (lastNode == null) {
+            node = omfactory.createText("<?" + target + " " + data + "?>");
+            node.setType(OMNode.PI_NODE);
+            document.addChild(node);
+        } else if (lastNode.isComplete()) {
+            node = omfactory.createText((OMElement)lastNode.getParent(), "<?" + target + " " + data + "?>");
+            node.setType(OMNode.PI_NODE);
+            lastNode.setNextSibling(node);
+            node.setPreviousSibling(lastNode);
+        } else if (lastNode instanceof OMText) {
+            node = omfactory.createText("<?" + target + " " + data + "?>");
+            node.setType(OMNode.PI_NODE);
+            lastNode.getParent().addChild(node);
+        } else {
+            OMElement e = (OMElement) lastNode;
+            node = omfactory.createText(e, "<?" + target + " " + data + "?>");
+            node.setType(OMNode.PI_NODE);
+            e.setFirstChild(node);
+        }
+        return node;
+    }
+
     /**
      * Method getOMEnvelope
      *
@@ -191,7 +217,7 @@
                     createDTD();
                     break;
                 case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                    next();
+                    createPI();
                     break;
                 default :
                     throw new OMException();