// Set the XML catalog.
org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.setExtensionXMLCatalog(XMLCatalogImpl.class.getName(), getClass().getClassLoader());
XMLCatalogImpl xmlCatalog = (XMLCatalogImpl)org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.getExtensionCatalogInstance();
xmlCatalog.addXMLCatalog(globalXMLCatalog);
WSDLValidator wsdlValidator = new WSDLValidator();
WSDLValidationConfiguration configuration = new WSDLValidationConfiguration();
// Set the properties.
Iterator propertyIter = properties.iterator();
while(propertyIter.hasNext())
{
Property property = (Property)propertyIter.next();
configuration.setProperty(property.getName(), property.getValue());
}
// Set the extension URIResolvers.
Iterator resolversIter = extURIResolvers.iterator();
while(resolversIter.hasNext())
{
String resolverClass = (String)resolversIter.next();
wsdlValidator.addURIResolver(new URIResolverDelegate(resolverClass, getClass().getClassLoader()).getURIResolver());
}
// Get the list of files to validate.
List files = getFileList();
// Register the WSDL 1.1 extension validators.
Iterator wsdl11extIter = wsdl11validators.iterator();
while(wsdl11extIter.hasNext())
{
ExtensionValidator extVal = (ExtensionValidator)wsdl11extIter.next();
WSDL11ValidatorDelegate delegate = new ClassloaderWSDL11ValidatorDelegate(extVal.getClassName());
wsdlValidator.registerWSDL11Validator(extVal.getNamespace(), delegate);
}
// Register the extension validators.
Iterator extIter = extvalidators.iterator();
while(extIter.hasNext())
{
ExtensionValidator extVal = (ExtensionValidator)extIter.next();
ClassloaderWSDLValidatorDelegate delegate = new ClassloaderWSDLValidatorDelegate(extVal.getClassName());
wsdlValidator.registerWSDLExtensionValidator(extVal.getNamespace(), delegate);
}
// The user didn't specify any files to validate.
if (files == null || files.isEmpty())
{
log(messGen.getString(_ERROR_NO_FILE_SPECIFIED), Project.MSG_ERR);
return;
}
if (xsdDirectory != null)
{
org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.addSchemaDir(xsdDirectory);
}
// Validate all the files specified.
Iterator iFiles = files.iterator();
// Common strings needed in validation output.
String infoDelim = messGen.getString(_UI_INFORMATION_DELIMITER);
String valid = messGen.getString(_UI_VALID);
String invalid = messGen.getString(_UI_INVALID);
String errormarker = messGen.getString(_UI_ERROR_MARKER);
String warningmarker = messGen.getString(_UI_WARNING_MARKER);
StringBuffer result = null;
boolean notvalid = true;
while (iFiles.hasNext())
{
result = new StringBuffer();
notvalid = false;
String filename = (String)iFiles.next();
try
{
result.append(infoDelim).append("\n");
result.append(messGen.getString(_UI_ACTION_VALIDATING_FILE, filename)).append(" - ");
IValidationReport valReport = wsdlValidator.validate(filename, null, configuration);
IValidationMessage[] messages = valReport.getValidationMessages();
if (!valReport.hasErrors())
{