Nice, will look at it tonight.
One thing: how about implementing a couple of const when generating the xmi:
XMIWriter::CLI = 1;
XMIWriter::BROWSER = 2; // default
$xmi->setEnv( XMIWriter::CLI );
I use tools likt this in the terminal, and getting lots of html tags there doesn't do much good.
Maybe a function:
private function status( $msg )
if( $this->isCli() )
echo $msg . "\
echo $msg . "<br />";
then use that function to print the message depending on where you are executing the file. ( I'll implement this later tonight when I get off work if you don't want to do it )