* through the collection, that's what it is for.
*/
private void fillInSchemaCrossreferences() {
Service service = getService();
for (ServiceInfo serviceInfo : service.getServiceInfos()) {
SchemaCollection schemaCollection = serviceInfo.getXmlSchemaCollection();
// First pass, fill in any types for which we have a name but no
// type.
for (SchemaInfo schemaInfo : serviceInfo.getSchemas()) {
XmlSchemaObjectTable elementsTable = schemaInfo.getSchema().getElements();
Iterator elementsIterator = elementsTable.getNames();
while (elementsIterator.hasNext()) {
QName elementName = (QName)elementsIterator.next();
XmlSchemaElement element = schemaInfo.getSchema().getElementByName(elementName);
if (element.getSchemaType() == null) {
QName typeName = element.getSchemaTypeName();
if (typeName != null) {
XmlSchemaType type = schemaCollection.getTypeByQName(typeName);
if (type == null) {
Message message = new Message("REFERENCE_TO_UNDEFINED_TYPE", LOG, element
.getQName(), typeName, service.getName());
LOG.severe(message.toString());
} else {