public static MavenCoordinate loadCoordinate(final ZipFile artifactFile) {
        MavenCoordinate coord = MavenCoordinate.NIL;
        final ZipFile zf = artifactFile;
        try {
            final Document pomDoc = loadPom(zf);
            loadXPathExpressions();
            final String projAid = POM_PROJ_AID.evaluate(pomDoc);
            final String parentGid = POM_PARENT_GID.evaluate(pomDoc);
            final String parentVer = POM_PARENT_VER.evaluate(pomDoc);

            String projGid = POM_PROJ_GID.evaluate(pomDoc);
            String projVer = POM_PROJ_VER.evaluate(pomDoc);
            if (projGid == null || projGid.isEmpty()) {
                projGid = parentGid;
            }
            if (projVer == null || projVer.isEmpty()) {
                projVer = parentVer;
            }
            if (projAid != null && !projAid.isEmpty() && projGid != null && !projGid.isEmpty()) {
                coord = new MavenCoordinate(projGid, projAid, projVer);
            }
        } catch (final Exception e) { //NOPMD //NOSONAR
            log.log(Level.WARNING, "Unable to calculate coordinate for: " + artifactFile + " Returning: " + coord);
        }
        return coord;
    }