diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
index cadf2b9..924e2c0 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
@@ -21,9 +21,6 @@
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 import org.apache.hyracks.data.std.api.IMutableValueStorage;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
 import org.apache.vxquery.datamodel.accessors.SequencePointable;
 import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
 import org.apache.vxquery.datamodel.builders.jsonitem.ArrayBuilder;
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
index b980bd6..9e1b663 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
@@ -448,7 +448,6 @@
 
     private void printArrayNode(PrintStream ps, TaggedValuePointable tvp) {
         ArrayPointable ap = pp.takeOne(ArrayPointable.class);
-        SequencePointable seqp = pp.takeOne(SequencePointable.class);
 
         try {
             tvp.getValue(ap);
@@ -456,20 +455,21 @@
                 tvp.getValue(ap);
                 int len = ap.getEntryCount();
                 ps.append('[');
-
+                ps.append(' ');
                 for (int i = 0; i < len; i++) {
                     ap.getEntry(i, tvp);
                     print(tvp.getByteArray(), tvp.getStartOffset(), tvp.getLength(), ps);
                     if (i != len - 1) {
                         ps.append(',');
+                        ps.append(' ');
                     }
                 }
+                ps.append(' ');
                 ps.append(']');
             }
 
         } finally {
             pp.giveBack(ap);
-            pp.giveBack(seqp);
             pp.giveBack(tvp);
         }
     }
