Bug 152834 support HTML description of the template
The template descrition is a fragment of HTML, use that fragment to render the template in HTML.
engine/org.eclipse.birt.report.engine.emitter.html/src/org/eclipse/birt/report/engine/emitter/html/HTMLReportEmitter.java
t getGroup(IBandContent bandContent)
	{
		IContent parent = (IContent)bandContent.getParent();
		 (parent instanceof IGroupContent)
		{
			return (IGroupContent)parent;
		}
		return null;
	}
	
	protected void outputRowMetaData( IRowContent rowContent )
	{
		Object parent = rowContent.getParent( );
		 ( parent instanceof ITableBandContent )
		{
			ITableBandContent bandContent = (ITableBandContent) parent;
			IGroupContent group = rowContent.getGroup( );
			String groupId = rowContent.getGroupId( );
			 ( groupId != null )
			{
				r.attribute( HTMLTags.ATTR_GOURP_ID, groupId );
			}
			String rowType = null;
			String metaType = null;
			int bandType = bandContent.getBandType( );
			 ( bandType == ITableBandContent.BAND_HEADER )
			{
				metaType = "wrth";
				rowType = "header";
			}
			else  ( bandType == ITableBandContent.BAND_FOOTER )
			{
				metaType = "wrtf";
				rowType = "footer";
			}
			else  ( bandType == ITableBandContent.BAND_GROUP_HEADER )
			{
				rowType = "group-header";
				 ( group != null )
				{
					metaType = "wrgh" + group.getGroupLevel( );
				}
			}
			else  ( bandType == ITableBandContent.BAND_GROUP_FOOTER )
			{
				rowType = "group-footer";
				 ( group != null )
				{
					metaType = "wrgf" + group.getGroupLevel( );
				}
			}
			r.attribute( HTMLTags.ATTR_TYPE, metaType );
			r.attribute( HTMLTags.ATTR_ROW_TYPE, rowType );
		}
	}
	
	*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.birt.report.engine.emitter.IContentEmitter#endRow(org.eclipse.birt.report.engine.content.IRowContent)
	 *
	public void endRow( IRowContent row )
	{
		 ( pop( ) )
		{
			return;
		}
		 ( enableMetadata )
		{
			DetailRowState state = (DetailRowState) detailRowStateStack.peek( );
			 ( state.isStartOfDetail )
			{
				state.isStartOfDetail = false;
			}
		}
		 assert currentData != null;
		
		 currentData.adjustCols( );
		r.closeTag( HTMLTags.TAG_TR );
	}
	private boolean isCellInTableHead( ICellContent cell )
	{
		IElement row = cell.getParent( );
		 ( row insta