Descobrir quando o arquivo termina de ser escrito é a parte difícil. É melhor usar um script como:
#!/bin/sh
program-that-creates-xsd
program-that-does-further-processing
Realmente não há boas soluções se você não puder estruturar seu programa dessa maneira. Mesmo com o inotify, é quase impossível dizer quando o XSD está realmente pronto.