// create type as extension of base type
MappingDetail basedet = m_detailDirectory.getMappingDetail(base);
if (isComplexContent(base) || isComplexContent(mapping)) {
// complex extension with complex content
ComplexExtensionElement ext = new ComplexExtensionElement();
setComplexExtensionBase(basedet.getTypeName(), ext, hold);
CommonCompositorDefinition comp = buildCompositor(mapping, 1, false, hold);
if (comp.getParticleList().size() > 0) {
ext.setContentDefinition(comp);
}
fillAttributes(mapping, 0, ext.getAttributeList(), hold);
ComplexContentElement cont = new ComplexContentElement();
cont.setDerivation(ext);
type.setContentType(cont);
} else {
// simple extension with simple content
SimpleExtensionElement ext = new SimpleExtensionElement();
setSimpleExtensionBase(basedet.getTypeName(), ext, hold);
fillAttributes(mapping, 0, ext.getAttributeList(), hold);
SimpleContentElement cont = new SimpleContentElement();
cont.setDerivation(ext);
type.setContentType(cont);
}