Bug 184762 BIRT Model - Enhancments to the level defintion
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/parser/ParseStateFactory.java
if ( allowedElementDefn instanceof ExtensionElementDefn )
			{
				ExtensionElementDefn extContentDefn = (ExtensionElementDefn) allowedElementDefn;
				if ( PeerExtensionLoader.EXTENSION_POINT
						.equalsIgnoreCase( extContentDefn.getExtensionPoint( ) ) )
					elementName = ReportDesignConstants.EXTENDED_ITEM;
			}
		}
		String propName = propDefn.getName( );
		ElementDefn tagElementDefn = (ElementDefn) MetaDataDictionary
				.getInstance( ).getElementByXmlName( tagName );
		if ( tagName.equalsIgnoreCase( ( (ElementDefn) allowedElementDefn )
				.getXmlName( ) )
				|| ( tagElementDefn != null && tagElementDefn
						.isKindOf( allowedElementDefn ) ) )
		{
			if ( ReportDesignConstants.TEXT_ITEM.equalsIgnoreCase( elementName ) )
				return new TextItemState( handler, container, propName );
			if ( ReportDesignConstants.GRID_ITEM.equalsIgnoreCase( elementName ) )
				return new GridItemState( handler, container, propName );
			if ( ReportDesignConstants.FREE_FORM_ITEM
					.equalsIgnoreCase( elementName ) )
				return new FreeFormState( handler, container, propName );
			if ( ReportDesignConstants.LIST_ITEM.equalsIgnoreCase( elementName ) )
				return new ListItemState( handler, container, propName );
			if ( ReportDesignConstants.TABLE_ITEM
					.equalsIgnoreCase( elementName ) )
				return new TableItemState( handler, container, propName );
			if ( ReportDesignConstants.LABEL_ITEM
					.equalsIgnoreCase( elementName ) )