}
@Override
public void addTypes(Definition definition) throws WSDLException {
Assert.notNull(getSchemaCollection(), "setting 'schema' or 'schemaCollection' is required");
Types types = definition.createTypes();
XsdSchema[] schemas = schemaCollection.getXsdSchemas();
for (int i = 0; i < schemas.length; i++) {
if (logger.isDebugEnabled()) {
logger.debug("Inlining " + schemas[i]);
}
if (schemas.length == 1) {
definition.addNamespace(SCHEMA_PREFIX, schemas[i].getTargetNamespace());
}
else {
String prefix = SCHEMA_PREFIX + i;
definition.addNamespace(prefix, schemas[i].getTargetNamespace());
}
Element schemaElement = getSchemaElement(schemas[i]);
Schema schema = (Schema) definition.getExtensionRegistry()
.createExtension(Types.class, new QName("http://www.w3.org/2001/XMLSchema", "schema"));
types.addExtensibilityElement(schema);
schema.setElement(schemaElement);
}
definition.setTypes(types);
}