resourceKey( obj, ExtendedItem.ALT_TEXT_KEY_PROP, ExtendedItem.ALT_TEXT_PROP );
	public void visitExtendedItem( ExtendedItem obj )	{		// provide bound column compatibility		boundColumnsMgr.dealExtendedItem( obj, getModule( ) );		writer.startElement( DesignSchemaConstants.EXTENDED_ITEM_TAG );		attribute( obj, DesignSchemaConstants.EXTENSION_NAME_ATTRIB,				ExtendedItem.EXTENSION_NAME_PROP );		super.visitExtendedItem( obj );		// write the extension item local properties		ExtensionElementDefn extDefn = obj.getExtDefn( );		if ( extDefn != null )		{			// TODO: write the style properties			List list = extDefn.getLocalProperties( );			for ( int i = 0; i < list.size( ); i++ )			{				PropertyDefn prop = (PropertyDefn) list.get( i );				if ( ExtendedItem.EXTENSION_NAME_PROP.equals( prop.getName( ) ) )					continue;				// TODO: support extending those xml properties.				// Now, each time a child is initialized, its xml-properties are				// serialized on the IReportItem itself, never minding whether				// the xml-property values are set locally or extended from				// parent.				if ( prop.getTypeCode( ) != PropertyType.XML_TYPE )					writeProperty( obj, getTagByPropertyType( prop ), prop							.getName( ), false );				else					writeProperty( obj, getTagByPropertyType( prop ), prop							.getName( ), true );			}		}		// write filter properties for the extended item		writeStructureList( obj, ExtendedItem.FILTER_PROP );		writer.endElement( );	}