src/main/java/com/buschmais/jqassistant/plugin/xml/api/scanner/XMLFileFilter.java
public static boolean rootElementMatches(FileResource fileResource, String path, String expectedRootElement) throws IOException {
        try (InputStream stream = fileResource.createStream()) {
            XMLStreamReader reader = factory.createXMLStreamReader(stream);
            while (reader.hasNext()) {
                int event = reader.next();
                switch (event) {
                    case XMLStreamConstants.START_ELEMENT:
                        String rootElement = reader.getLocalName();
                        return expectedRootElement.equals(rootElement);
                }
            }
        } catch (XMLStreamException e) {
            LOGGER.warn("Cannot parse XML file '{}'.", path);
        }
        return false;

    }
public static boolean rootElementMatches(FileResource fileResource, String path, String expectedRootElement) throws IOException {
        try (InputStream stream = fileResource.createStream()) {
            XMLStreamReader reader = factory.createXMLStreamReader(stream);
            while (reader.hasNext()) {
                int event = reader.next();
                switch (event) {
                    case XMLStreamConstants.START_ELEMENT:
                        String rootElement = reader.getLocalName();
                        return expectedRootElement.equals(rootElement);
                }
            }
        } catch (XMLStreamException e) {
            LOGGER.warn("Cannot parse XML file '{}'.", path);
        }
        return false;

    }
Matches a file resource for being an XML file with a specific root
element.

@param fileResource
The file resource.
@param path
The path of the file resource.
@param expectedRootElement
The expected local name of the root element.
@return `true` If the file is an XML file and contains the
expected root element.
@throws IOException
If the file resource cannot be read.