public void setAttribute(String name, Object value) throws IllegalArgumentException { if (name.equals("http://www.galdosinc.com/xml/properties/schemaLocation")) { try { this.grammarPool.cacheGrammars("XmlSchema", new Grammar[] { GrammarUtil.parseGrammar(new URL(value.toString()), this.grammarPool) }); } catch (IOException e) { throw new IllegalArgumentException(e.getMessage()); } } else if (name.startsWith("http://www.galdosinc.com/xml/properties/dtdLocation/")) { String rootName = name.substring("http://www.galdosinc.com/xml/properties/dtdLocation/".length()); this.dtds.put(rootName, value.toString()); } else { super.setAttribute(name, value); } } }