// is used to resolve them in the DTD and the DTD is re-parsed.
try
{
String content = dtd;
DtdParserImpl parser;
parser = new DtdParserImpl( new StringReader( content ) );
parser.Start();
if( ! parser.entities.isEmpty() )
{
String substitutedContent = substituteEntity(content, parser.entities);
while (!content.equals(substitutedContent)) {
content = substitutedContent;
substitutedContent = substituteEntity(content, parser.entities);
}
parser = new DtdParserImpl( new StringReader( content ) );
parser.Start();
}
return parser.schema.create();
}
catch( Exception e )