Vector ad_default_vector = new Vector(7);
		public void init(String name, Attributes atts, Vector ad_vector) throws SAXException {			Logging.log(Logging.TRACE, "Here is AttributeDefinitionHandler():init()"); //$NON-NLS-1$			_parent_ADs_vector = ad_vector;			String ad_name_val = atts.getValue(NAME);			if (ad_name_val == null) {				// Not a problem, because NAME is an optional attribute.			}			String ad_description_val = atts.getValue(DESCRIPTION);			if (ad_description_val == null) {				// Not a problem, because DESCRIPTION is an optional attribute.			}			String ad_id_val = atts.getValue(ID);			if (ad_id_val == null) {				_isParsedDataValid = false;				Logging.log(Logging.ERROR, this, "init(String, Attributes, Vector)", //$NON-NLS-1$						NLS.bind(MetaTypeMsg.MISSING_ATTRIBUTE, ID, name));				return;			}			String ad_type_val = atts.getValue(TYPE);			if (ad_type_val.equalsIgnoreCase(STRING)) {				_dataType = AttributeDefinition.STRING;			} else if (ad_type_val.equalsIgnoreCase(LONG)) {				_dataType = AttributeDefinition.LONG;			} else if (ad_type_val.equalsIgnoreCase(DOUBLE)) {				_dataType = AttributeDefinition.DOUBLE;			} else if (ad_type_val.equalsIgnoreCase(FLOAT)) {				_dataType = AttributeDefinition.FLOAT;			} else if (ad_type_val.equalsIgnoreCase(INTEGER)) {				_dataType = AttributeDefinition.INTEGER;			} else if (ad_type_val.equalsIgnoreCase(BYTE)) {				_dataType = AttributeDefinition.BYTE;			} else if (ad_type_val.equalsIgnoreCase(CHAR)) {				_dataType = AttributeDefinition.CHARACTER;			} else if (ad_type_val.equalsIgnoreCase(BOOLEAN)) {				_dataType = AttributeDefinition.BOOLEAN;			} else if (ad_type_val.equalsIgnoreCase(SHORT)) {				_dataType = AttributeDefinition.SHORT;			} else {				_isParsedDataValid = false;				Logging.log(Logging.ERROR, this, "init(String, Attributes, Vector)", //$NON-NLS-1$						NLS.bind(MetaTypeMsg.MISSING_ATTRIBUTE, TYPE, name));				return;			}			String ad_cardinality_str = atts.getValue(CARDINALITY);			int ad_cardinality_val = 0;			if (ad_cardinality_str == null) {				// Not a problem, because CARDINALITY is an optional attribute.				// And the default value is 0.			} else {				ad_cardinality_val = Integer.parseInt(ad_cardinality_str);			}			String ad_min_val = atts.getValue(MIN);			if (ad_min_val == null) {				// Not a problem, because MIN is an optional attribute.			}			String ad_max_val = atts.getValue(MAX);			if (ad_max_val == null) {				// Not a problem, because MAX is an optional attribute.			}			String ad_defaults_str = atts.getValue(DEFAULT);			Vector ad_default_vector = new Vector(7);			if (ad_defaults_str == null) {				// Not a problem, because DEFAULT is an optional attribute.				if (ad_cardinality_val == 0) {					// But when it is not assigned, CARDINALITY cannot be '0'.					_isParsedDataValid = false;					Logging.log(Logging.ERROR, this, "init(String, Attributes, Vector)", //$NON-NLS-1$							MetaTypeMsg.NULL_DEFAULTS);					return;				}			}			String ad_required_val = atts.getValue(REQUIRED);			if (ad_required_val == null) {				// Not a problem, because REQUIRED is an optional attribute.				// And the default value is 'true'.				ad_required_val = Boolean.TRUE.toString();			}			_ad = new AttributeDefinitionImpl(ad_id_val, ad_name_val, ad_description_val, _dataType, ad_cardinality_val, convert(ad_min_val, _dataType), convert(ad_max_val, _dataType), Boolean.valueOf(ad_required_val).booleanValue(), _dp_localization);			if (ad_cardinality_val == 0) {				// Attribute DEFAULT has one and only one occurance.				_ad.setDefaultValue(new String[] {ad_defaults_str}, false);			} else {				// Attribute DEFAULT is a comma delimited list.				_ad.setDefaultValue(ad_defaults_str, false);			}		}