* {@inheritDoc}
*/
protected Database readModel()
{
DatabaseIO reader = new DatabaseIO();
Database model = null;
reader.setValidateXml(_validateXml);
reader.setUseInternalDtd(_useInternalDtd);
if ((_singleSchemaFile != null) && !_fileSets.isEmpty())
{
throw new BuildException("Please use either the schemafile attribute or the sub fileset element, but not both");
}
if (_singleSchemaFile != null)
{
model = readSingleSchemaFile(reader, _singleSchemaFile);
}
else
{
for (Iterator it = _fileSets.iterator(); it.hasNext();)
{
FileSet fileSet = (FileSet)it.next();
File fileSetDir = fileSet.getDir(getProject());
DirectoryScanner scanner = fileSet.getDirectoryScanner(getProject());
String[] files = scanner.getIncludedFiles();
for (int idx = 0; (files != null) && (idx < files.length); idx++)
{
Database curModel = readSingleSchemaFile(reader, new File(fileSetDir, files[idx]));
if (model == null)
{
model = curModel;
}