if ( OdaDataSource.PUBLIC_DRIVER_PROPERTIES_PROP.equals( name ) )
if ( IOdaDataSourceModel.PUBLIC_DRIVER_PROPERTIES_PROP.equals( name ) )
	public void parseAttrs( Attributes attrs ) throws XMLParserException	{		super.parseAttrs( attrs );		if ( StringUtil.isBlank( name ) )			return;		// compatible for old Action list property.		if ( this.struct instanceof Action )		{			if ( ( ActionStructureState.DRILLTHROUGH_PARAM_BINDINGS_MEMBER					.equals( name ) ) )			{				name = Action.PARAM_BINDINGS_MEMBER;			}			else if ( ActionStructureState.DRILLTHROUGH_SEARCH_MEMBER					.equals( name ) )			{				name = Action.SEARCH_MEMBER;			}		}		if ( struct != null )		{			propDefn = (PropertyDefn) struct.getDefn( ).getMember( name );		}		else		{			propDefn = element.getPropertyDefn( name );		}		// prop maybe is null, for example, user properties.		if ( !DesignElement.USER_PROPERTIES_PROP.equals( name ) )		{			if ( propDefn == null )			{				// ROM does not contain public driver properties any more.				if ( OdaDataSource.PUBLIC_DRIVER_PROPERTIES_PROP.equals( name ) )					return;				// compatible for "includeLibrary" in the module				if ( element instanceof Module						&& "includeLibraries".equalsIgnoreCase( name ) ) //$NON-NLS-1$					return;				if ( element instanceof ScriptDataSet						&& "resultSet".equalsIgnoreCase( name ) ) //$NON-NLS-1$					return;				// the property has been removed. It must be handled before				// checking the				// validation of <code>valid</code>.				if ( handler.versionNumber > VersionUtil.VERSION_3_0_0						&& handler.versionNumber <= VersionUtil.VERSION_3_2_1						&& ( "boundDataColumns".equals( name ) ) //$NON-NLS-1$ 						&& ( element instanceof GroupElement ) )					return;				// If the property name is invalid, no error will be reported.				DesignParserException e = new DesignParserException(						new String[]{name},						DesignParserException.DESIGN_EXCEPTION_UNDEFINED_PROPERTY );				RecoverableError.dealUndefinedProperty( handler, e );				valid = false;			}			else			{				if ( PropertyType.STRUCT_TYPE != propDefn.getTypeCode( ) )				{					DesignParserException e = new DesignParserException(							DesignParserException.DESIGN_EXCEPTION_WRONG_STRUCTURE_LIST_TYPE );					handler.getErrorHandler( ).semanticError( e );					valid = false;				}			}		}	}