[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