public static XmlSchema[] getAllSchemas(XmlSchema schema) { HashMap map = new HashMap(); traverseSchemas(schema, map); return (XmlSchema[]) map.values().toArray(new XmlSchema[map.values().size()]); }
public static XmlSchema[] getAllSchemas(XmlSchema schema) { HashMap map = new HashMap(); traverseSchemas(schema, map); return (XmlSchema[]) map.values().toArray(new XmlSchema[map.values().size()]); }
private static void traverseSchemas(XmlSchema schema, HashMap map) { String key = schema.getTargetNamespace() + ":" + schema.getSourceURI(); if (map.containsKey(key)) { return; } map.put(key, schema); for (XmlSchemaExternal external : schema.getExternals()) { if (external instanceof XmlSchemaImport) { XmlSchema schema1 = external.getSchema(); if (schema1 != null) { traverseSchemas(schema1, map); } } if (external instanceof XmlSchemaInclude) { XmlSchema schema1 = external.getSchema(); if (schema1 != null) { traverseSchemas(schema1, map); } } } } }
private static void traverseSchemas(XmlSchema schema, HashMap map) { String key = schema.getTargetNamespace() + ":" + schema.getSourceURI(); if (map.containsKey(key)) { return; } map.put(key, schema); for (XmlSchemaExternal external : schema.getExternals()) { if (external instanceof XmlSchemaImport) { XmlSchema schema1 = external.getSchema(); if (schema1 != null) { traverseSchemas(schema1, map); } } if (external instanceof XmlSchemaInclude) { XmlSchema schema1 = external.getSchema(); if (schema1 != null) { traverseSchemas(schema1, map); } } } } }