// do nothing
}
else
{
String namespace = attr.getNamespaceURI();
XMPSchema schema = xmp.getSchema(namespace);
if (schema == null)
{
schema = tm.getSchemaFactory(namespace).createXMPSchema(xmp, attr.getPrefix());
loadAttributes(schema, description);
}
ComplexPropertyContainer container = schema.getContainer();
PropertyType type = checkPropertyDefinition(xmp,
new QName(attr.getNamespaceURI(), attr.getLocalName()));
AbstractSimpleProperty sp = tm.instanciateSimpleProperty(namespace, schema.getPrefix(),
attr.getLocalName(), attr.getValue(), type.type());
container.addProperty(sp);
}
}
// parse children elements as properties
for (Element property : properties)
{
String namespace = property.getNamespaceURI();
PropertyType type = checkPropertyDefinition(xmp, DomHelper.getQName(property));
// create the container
if (!tm.isDefinedSchema(namespace))
{
throw new XmpParsingException(ErrorType.NoSchema,
"This namespace is not a schema or a structured type : " + namespace);
}
XMPSchema schema = xmp.getSchema(namespace);
if (schema == null)
{
schema = tm.getSchemaFactory(namespace).createXMPSchema(xmp, property.getPrefix());
loadAttributes(schema, description);
}
ComplexPropertyContainer container = schema.getContainer();
// create property
createProperty(xmp, property, type, container);
}
}
catch (XmpSchemaException e)