Bug 129424 BIRT XML ODA Driver does not handle non-English strings properly
When a report is bound to an XML data source with non-English strings, those strings cannot be displayed in the report properly. Steps to reproduce the problem: . Prepare an XML file with some non-English characters in the values/attributes of its XML elements. (A sample XML file with traditional Chinese strings is attached. Those strings can also be replaced by the other non-English strings.) . Inside BIRT's Report Design Perspective, create a new report design. . Use the XML Data Source option to create a new data source with this XML file. . Create a new data set using that data source. If you use the attached XML file, specify "/library/book" for the Table Mapping, and add "/title" to the Column Mapping. Look at the Preview Results and the data in the "title" column are already scrambled. . If we keep going forward to add a single-column table and bind the title column to the table, the preview/generated results shows illegible characters. This would be a serious issue for supporting non-English languages.
data/org.eclipse.birt.report.data.oda.xml/src/org/eclipse/birt/report/data/oda/xml/util/SaxParser.java
{
		return pathHolder.getPath( )
				+ "[@"
				+ getElementName( atts.getURI( i ),
						atts.getQName( i ),
						atts.getLocalName( i ) )+"]";
	}
	/*
	 *  (non-Javadoc)
	 * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
	 */
	public void endElement( String uri, String localName, String qName )
			throws SAXException
	{
		
		
		spConsumer.manipulateData( pathHolder.getPath( ), this.currentCacheValue.trim() );
		this.currentCacheValue = "";
		spConsumer.detectNewRow( pathHolder.getPath( ) );
		
		
		String path = pathHolder.getPath();
		Object[] keys = this.currentElementRecoder.keySet().toArray();
		for(int i= 0; i < keys.length&&path!=""; i++)
		{
			if (keys[i].toString().startsWith(path)&&(!keys[i].toString().equals(path)))
			{
				this.currentElementRecoder.remove(keys[i]);
			}
		}