protected void startParsing(final Attributes attrs) throws SAXException
{
domain = attrs.getValue(getUri(), "domain");
if (domain == null)
{
throw new ParseException("Required attribute 'domain' is missing.", getLocator());
}
name = attrs.getValue(getUri(), "name");
if (name == null)
{
throw new ParseException("Required attribute 'name' is missing.", getLocator());
}
final String type = attrs.getValue(getUri(), "type");
final String rawValue = attrs.getValue(getUri(), "value");
if (rawValue == null)
{
value = null;
}
else if (type == null)
{
value = rawValue;
}
else
{
try
{
final ClassLoader loader = ObjectUtilities.getClassLoader(MetaSelectorReadHandler.class);
final Class aClass = Class.forName(CompatibilityMapperUtil.mapClassName(type), false, loader);
value = ConverterRegistry.toPropertyValue(rawValue, aClass);
}
catch (ClassNotFoundException e)
{
throw new ParseException("Required attribute 'type' is invalid.", e, getLocator());
}
catch (BeanException e)
{
throw new ParseException("Required attribute 'value' is invalid.", e, getLocator());
}
}
}