String u = url.toString();
Map<String,SequenceNode> types = new HashMap<String,SequenceNode>();
RNGParser rngparser = new RNGParser();
RestrRelaxNG2XMLGraph rrng2xg = new RestrRelaxNG2XMLGraph(xg, datatypes);
if (u.endsWith(".xsd")) {
XMLSchema2RestrRelaxNG xsd2rrng = new XMLSchema2RestrRelaxNG(datatypes);
if (extend)
rrng2xg.extend(rngparser.parse(xsd2rrng.convert(url), url));
else
xg = rrng2xg.convert(rngparser.parse(xsd2rrng.convert(url), url));
Map<String,String> m1 = xsd2rrng.getNameMap();
Map<String,String> m2 = rngparser.getTopLevelNewNames();
Map<String,SequenceNode> m3 = rrng2xg.getDefineNodes();
for (Map.Entry<String,String> e : m1.entrySet())
types.put(e.getKey(), m3.get(m2.get(e.getValue())));
} else if (u.endsWith(".dtd")) {