return o;
}
private static Class getClass(String className, ElementBinding element, QName elementName)
{
TypeBinding type = element.getType();
String localClassName = className;
if(localClassName == null)
{
QName typeBaseQName = type.getQName();
if(typeBaseQName == null)
{
typeBaseQName = elementName;
}
SchemaBinding schemaBinding = type.getSchemaBinding();
PackageMetaData jaxbPackage = schemaBinding == null ? null : schemaBinding.getPackageMetaData();
String pkg = jaxbPackage == null ?
Util.xmlNamespaceToJavaPackage(typeBaseQName.getNamespaceURI()) :
jaxbPackage.getName();
localClassName = Util.xmlNameToClassName(typeBaseQName.getLocalPart(), element.getSchema().isIgnoreLowLine());
if(pkg != null && pkg.length() > 0)
{
localClassName = pkg + '.' + localClassName;
}
}
Class cls = null;
try
{
cls = Thread.currentThread().getContextClassLoader().loadClass(localClassName);
}
catch(ClassNotFoundException e)
{
if(element.getSchema().isIgnoreUnresolvedFieldOrClass())
{
if(log.isTraceEnabled())
{
log.trace("Failed to resolve class for element " +
elementName +
" of type " +
type.getQName() +
": " +
localClassName
);
}
}
else
{
throw new JBossXBRuntimeException("Failed to resolve class name for " +
elementName +
" of type " +
type.getQName() +
": " +
e.getMessage()
);
}
}