When I recently switched to Eclipse Galileo, I noticed that a Mule configuration file that had previously validated correctly now had validation errors. Since I did not change the file, something in Galileo’s validation of XML files must have changed.
The symptoms are these:
- The very first line of the document has an error message saying “Referenced file contains errors” and mentions mule.xsd.
- The model, service, and endpoint elements all have an error message saying that invalid content was found and that some other kind of element was expected.
After some googling, I found out that this is indeed related to Eclipse and not an error in the Mule configuration. The Xerces parser used by Eclipse’s WTP for parsing tries to resolve all namespaces referenced in the config file in all schemas.
Since Mule’s schemas are not split over multiple schema files, it’s safe to turn off this feature. In Eclipse’s preferences, go to XML > XML Files > Validation and clear the Honour all schema locations check box. Mule config files should now validate without errors again.
For details, see the issue in Eclipse’s bug tracker.