[ http://issues.apache.org/jira/browse/XMLBEANS-274?page=all ]
Cezar Andrei resolved XMLBEANS-274.
-----------------------------------
Fix Version/s: TBD
Resolution: Fixed
The fix is a little bit more complicated, the CurLoadContext had to be modified
to avoid leftStrip of consecutive text events.
> Over zealous whitespace cropping after parsing entity like &
> ----------------------------------------------------------------
>
> Key: XMLBEANS-274
> URL: http://issues.apache.org/jira/browse/XMLBEANS-274
> Project: XMLBeans
> Issue Type: Bug
> Affects Versions: Version 2.1
> Environment: All
> Reporter: Peter Rodgers
> Fix For: TBD
>
>
> 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>dog &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]