Over zelous whitespace cropping after parsing entity like & ---------------------------------------------------------------
Key: XMLBEANS-274 URL: http://issues.apache.org/jira/browse/XMLBEANS-274 Project: XMLBeans Type: Bug Versions: Version 2.1 Environment: All Reporter: Peter Rodgers When white space stripping is specified the parser does not detect XML entities such as & and strips the whitespace following each entity. For example <root>dog & cat</root> is parsed as <root>doc &cat</root> The cause of the problem is the stripLeft() method in the org.apache.xmlbeans.impl.store.CharUtil Below is a fixed version of the method that detects the ';' character after an entity which indicates that whitespace is significant and must be preserved. Note this code does not fix the case where the iteration is a for loop. public Object stripLeft ( Object src, int off, int cch ) { assert isValid( src, off, cch ); if (cch > 0) { if (src instanceof char[]) { char[] chars = (char[]) src; while ( cch > 0 && isWhiteSpace( chars[ off ] ) && chars[off - 1]!=';' ) //Fix for & etc { cch--; off++; } } else if (src instanceof String) { String s = (String) src; while ( cch > 0 && isWhiteSpace( s.charAt( off ) ) && s.charAt(off - 1)!=';' ) //Fix for & etc { cch--; off++; } } else { int count = 0; for ( _charIter.init( src, off, cch ) ; _charIter.hasNext() ; count++ ) if (!isWhiteSpace( _charIter.next() )) break; _charIter.release(); off += count; } } if (cch == 0) { _offSrc = 0; _cchSrc = 0; return null; } _offSrc = off; _cchSrc = cch; return src; } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]