String keyName = name + DesignElement.ID_SUFFIX;
String keyName = name + IDesignElementModel.ID_SUFFIX;
	public void parseAttrs( Attributes attrs ) throws XMLParserException	{		name = attrs.getValue( DesignSchemaConstants.NAME_ATTRIB );		if ( StringUtil.isBlank( name ) )		{			handler					.getErrorHandler( )					.semanticError(							new DesignParserException(									DesignParserException.DESIGN_EXCEPTION_NAME_REQUIRED ) );			valid = false;			return;		}		String keyName = name + DesignElement.ID_SUFFIX;		if ( struct != null )		{			propDefn = (PropertyDefn) struct.getDefn( ).getMember( name );			keyPropDefn = (PropertyDefn) struct.getDefn( ).getMember( keyName );		}		else		{			propDefn = element.getPropertyDefn( name );			keyPropDefn = element.getPropertyDefn( keyName );		}		if ( propDefn == null )		{			DesignParserException e = new DesignParserException(					new String[]{name},					DesignParserException.DESIGN_EXCEPTION_UNDEFINED_PROPERTY );			RecoverableError.dealUndefinedProperty( handler, e );			valid = false;			return;		}		if ( keyPropDefn == null )		{			DesignParserException e = new DesignParserException(					new String[]{keyName},					DesignParserException.DESIGN_EXCEPTION_UNDEFINED_PROPERTY );			RecoverableError.dealUndefinedProperty( handler, e );			valid = false;			return;		}		String keyValue = attrs.getValue( DesignSchemaConstants.KEY_ATTRIB );		if ( keyValue == null )			return;		if ( struct != null )			setMember( struct, propDefn.getName( ), keyName, keyValue );		else			setProperty( keyName, keyValue );	}