[XMLBEANS-540] fix issue where pretty-print removes whitespace inside elements

git-svn-id: https://svn.apache.org/repos/asf/xmlbeans/trunk@1857677 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/store/org/apache/xmlbeans/impl/store/Saver.java b/src/store/org/apache/xmlbeans/impl/store/Saver.java
index cfa6ab3..7250ed7 100755
--- a/src/store/org/apache/xmlbeans/impl/store/Saver.java
+++ b/src/store/org/apache/xmlbeans/impl/store/Saver.java
@@ -4030,7 +4030,10 @@
                     _isTextCData = _useCDataBookmarks && _cur.isTextCData();
                     CharUtil.getString(_sb, _cur.getChars(), _cur._offSrc, _cur._cchSrc);
                     _cur.next();
-                    trim(_sb);
+                    k = _cur.kind();
+                    if (prevKind != ELEM || k != -ELEM) {
+                        trim(_sb);
+                    }
                 }
 
                 k = _cur.kind();
diff --git a/test/src/xmlobject/checkin/SelectChldAttTests.java b/test/src/xmlobject/checkin/SelectChldAttTests.java
index 6e9b32f..8cca0f6 100755
--- a/test/src/xmlobject/checkin/SelectChldAttTests.java
+++ b/test/src/xmlobject/checkin/SelectChldAttTests.java
@@ -76,14 +76,14 @@
 
         xos = doc.selectChildren(uri, "string");
         //print("2 selectChildren 'string' : ", xos);
-        assertTrue("2 selectChildren 'string' : ", verifyResult(xos, new String[]{"<xml-fragment>... some text ...</xml-fragment>"}));
+        assertTrue("2 selectChildren 'string' : ", verifyResult(xos, new String[]{"<xml-fragment> ... some text ... </xml-fragment>"}));
 
         // elemA
         xos = doc.selectChildren(new QName(uri, "elemA"));
         //print("3 selectChildren 'elemA' : ", xos);
         assertTrue("3 selectChildren 'elemA' : ",
             verifyResult(xos, new String[]{"<xml-fragment price=\"4.321\" xmlns:sel=\"" + uri + "\">\n" +
-                "  <sel:topLevelElement>this is wildcard bucket</sel:topLevelElement>\n" +
+                "  <sel:topLevelElement> this is wildcard bucket </sel:topLevelElement>\n" +
                 "</xml-fragment>"}));
 
         // select a known attribute
@@ -106,7 +106,7 @@
         //print("7     selectChildren set'##other' : " , xos[0].selectChildren(QNameSet.forWildcardNamespaceString("##other", uri)));
         assertTrue("7     selectChildren set'##other' : ",
             verifyResult(xos[0].selectChildren(QNameSet.forWildcardNamespaceString("##other", uri))
-                , new String[]{"<xml-fragment xmlns:p=\"uri:other_namespace\">element in #other namespace</xml-fragment>"}));
+                , new String[]{"<xml-fragment xmlns:p=\"uri:other_namespace\"> element in #other namespace </xml-fragment>"}));
         //print("8     selectAttributes set'##other' : ", xos[0].selectAttributes(QNameSet.forWildcardNamespaceString("##other", uri)));
         assertTrue("8     selectAttributes set'##other' : ",
             verifyResult(xos[0].selectAttributes(QNameSet.forWildcardNamespaceString("##other", uri)),
@@ -118,9 +118,9 @@
         //print("10    selectChildren set'##any' : " , xos[0].selectChildren(QNameSet.forWildcardNamespaceString("##any", uri)));
         assertTrue("10    selectChildren set'##any' : ",
             verifyResult(xos[0].selectChildren(QNameSet.forWildcardNamespaceString("##any", uri))
-                , new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\">element from typeC</xml-fragment>",
-                    "<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\">element in the 'any' bucket for typeExtendedC</xml-fragment>",
-                    "<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\">element from typeExtendedC</xml-fragment>"}));
+                , new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\"> element from typeC </xml-fragment>",
+                    "<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\"> element in the 'any' bucket for typeExtendedC </xml-fragment>",
+                    "<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\"> element from typeExtendedC </xml-fragment>"}));
 
         // select elements in the any bucket by excluding the the known elements
         QNameSetBuilder qnsb = new QNameSetBuilder();
@@ -131,12 +131,12 @@
         //print("11a    selectChildren in the any bucket for typeExtendedC: " , xos[0].selectChildren(qnsb.toQNameSet()));
         assertTrue("11a    selectChildren in the any bucket for typeExtendedC: ",
             verifyResult(xos[0].selectChildren(qnsb.toQNameSet()),
-                new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\">element in the 'any' bucket for typeExtendedC</xml-fragment>"}));
+                new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\"> element in the 'any' bucket for typeExtendedC </xml-fragment>"}));
 
         //print("11b    selectChildren in the any bucket for typeExtendedC: " , xos[0].selectChildren(TypeExtendedC.type.qnameSetForWildcardElements()));
         assertTrue("11b    selectChildren in the any bucket for typeExtendedC: ",
             verifyResult(xos[0].selectChildren(TypeExtendedC.type.qnameSetForWildcardElements()),
-                new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\">element in the 'any' bucket for typeExtendedC</xml-fragment>"}));
+                new String[]{"<xml-fragment xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:p=\"uri_other_namespace\"> element in the 'any' bucket for typeExtendedC </xml-fragment>"}));
 
         // select attributes in the any bucket by excluding the the known attributes
         qnsb = new QNameSetBuilder();
diff --git a/test/src/xmltokensource/detailed/XmlTextTest.java b/test/src/xmltokensource/detailed/XmlTextTest.java
index 5aad39c..6c8bd15 100755
--- a/test/src/xmltokensource/detailed/XmlTextTest.java
+++ b/test/src/xmltokensource/detailed/XmlTextTest.java
@@ -65,7 +65,7 @@
         m_xc = m_xo.newCursor();
         m_map.put(XmlOptions.SAVE_PRETTY_PRINT, "");
         String lnSep = System.getProperty("line.separator");
-        assertEquals("<a>" + lnSep + "  <b>" + lnSep + "    <c>text</c>" + lnSep + "  </b>" + lnSep + "</a>", m_xc.xmlText(m_map));
+        assertEquals("<a>" + lnSep + "  <b>" + lnSep + "    <c> text </c>" + lnSep + "  </b>" + lnSep + "</a>", m_xc.xmlText(m_map));
     }
 
     @Test
@@ -75,7 +75,7 @@
         m_map.put(XmlOptions.SAVE_PRETTY_PRINT, "");
         m_map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(3));
         String lnSep = System.getProperty("line.separator");
-        assertEquals("<a>" + lnSep + "   <b>" + lnSep + "      <c>text</c>" + lnSep + "   </b>" + lnSep + "</a>", m_xc.xmlText(m_map));
+        assertEquals("<a>" + lnSep + "   <b>" + lnSep + "      <c> text </c>" + lnSep + "   </b>" + lnSep + "</a>", m_xc.xmlText(m_map));
     }
 
     @Test
@@ -83,7 +83,7 @@
         m_xc = XmlObject.Factory.parse("<a>  \n  <b>  \n    <c> text   </c>   \n  </b>  \n  </a>").newCursor();
         m_map.put(XmlOptions.SAVE_PRETTY_PRINT, "");
         m_map.put(XmlOptions.SAVE_PRETTY_PRINT_INDENT, new Integer(-1));
-        assertEquals("<a><b><c>text</c></b></a>", m_xc.xmlText(m_map));
+        assertEquals("<a><b><c> text   </c></b></a>", m_xc.xmlText(m_map));
     }
 
     @Test