protected String[] listResources() throws IOException, URISyntaxException {
    String[] files = new String[0];
    URL dirURL = ClassLoader.getSystemResource(schemaPath);
    FilenameFilter fileFilter =
        new FilenameFilter() {

          @Override
          public boolean accept(File dir, String name) {
            return ((name.lastIndexOf('.') > -1)
                && (".xml".equalsIgnoreCase(name.substring(name.lastIndexOf('.')))));
          }
        };

    if (dirURL == null) {
      throw new FileNotFoundException(schemaPath);
    }

    if (dirURL.getProtocol().equals("file")) {
      files = listFileResources(dirURL, schemaPath, fileFilter);
    }

    if (dirURL.getProtocol().equals("jar")) {
      files = listJarResources(dirURL, fileFilter);
    }

    return files;
  }
  protected void loadFromXmlFiles() throws IOException, XMLStreamException, URISyntaxException {
    XMLInputFactory xmlIf = XMLInputFactory.newInstance();
    final List<StoreObject> storeObjects = new ArrayList<>();

    xmlIf.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE);

    for (String resname : listResources()) {
      URL filePath = ClassLoader.getSystemResource(resname);

      if (filePath == null) {
        throw new FileNotFoundException(resname);
      }

      loadFromXmlFile(xmlIf, filePath, storeObjects);
    }

    mergeXmlSchemas(storeObjects);
  }