public XSSchemaSet getResult() throws SAXException {
    // run all the patchers
    for (Patch patcher : patchers) patcher.run();
    patchers.clear();

    // build the element substitutability map
    Iterator itr = schemaSet.iterateElementDecls();
    while (itr.hasNext()) ((ElementDecl) itr.next()).updateSubstitutabilityMap();

    // run all the error checkers
    for (Patch patcher : errorCheckers) patcher.run();
    errorCheckers.clear();

    if (hadError) return null;
    else return schemaSet;
  }