You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2012/10/02 08:09:40 UTC
svn commit: r1392752 - in
/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery:
datamodel/values/ValueTag.java serializer/XMLSerializer.java
Author: tillw
Date: Tue Oct 2 06:09:40 2012
New Revision: 1392752
URL: http://svn.apache.org/viewvc?rev=1392752&view=rev
Log:
add spaces only between atomic values during serialization
Modified:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java?rev=1392752&r1=1392751&r2=1392752&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/datamodel/values/ValueTag.java Tue Oct 2 06:09:40 2012
@@ -82,4 +82,22 @@ public class ValueTag {
public static final int COMMENT_NODE_TAG = 105;
public static final int PI_NODE_TAG = 106;
public static final int NODE_TREE_TAG = 107;
+
+ public static boolean isAtomic(int tag) {
+ return tag < 100;
+ }
+
+ public static boolean isNode(int tag) {
+ switch (tag) {
+ case DOCUMENT_NODE_TAG:
+ case ELEMENT_NODE_TAG:
+ case ATTRIBUTE_NODE_TAG:
+ case TEXT_NODE_TAG:
+ case COMMENT_NODE_TAG:
+ case PI_NODE_TAG:
+ return true;
+ default:
+ return false;
+ }
+ }
}
\ No newline at end of file
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java?rev=1392752&r1=1392751&r2=1392752&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/serializer/XMLSerializer.java Tue Oct 2 06:09:40 2012
@@ -65,6 +65,8 @@ public class XMLSerializer implements IP
private CastToStringOperation castToString = new CastToStringOperation();
private UTF8StringPointable stringp = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+ private boolean lastWasAtomic = false;
+
public XMLSerializer() {
pp = PointablePoolFactory.INSTANCE.createPointablePool();
}
@@ -82,6 +84,15 @@ public class XMLSerializer implements IP
private void printTaggedValuePointable(PrintStream ps, TaggedValuePointable tvp) {
byte tag = tvp.getTag();
+ if (ValueTag.isAtomic(tag)) {
+ if (lastWasAtomic) {
+ ps.append(' ');
+ } else {
+ lastWasAtomic = true;
+ }
+ } else {
+ lastWasAtomic = false;
+ }
switch ((int) tag) {
case ValueTag.XS_ANY_URI_TAG:
printString(ps, tvp);
@@ -423,9 +434,6 @@ public class XMLSerializer implements IP
try {
int len = seqp.getEntryCount();
for (int i = 0; i < len; ++i) {
- if (i > 0) {
- ps.append(' ');
- }
seqp.getEntry(i, vp);
print(vp.getByteArray(), vp.getStartOffset(), vp.getLength(), ps);
}