private Set<ManifestEntry> getSignatureEntries(Signature signature) { Set<ManifestEntry> signatureEntries = new HashSet<>(); XadesSignature origin; if (signature.getClass() == BDocSignature.class) { origin = ((BDocSignature) signature).getOrigin(); } else { origin = ((AsicESignature) signature).getOrigin(); } List<Reference> references = origin.getReferences(); for (Reference reference : references) { if (reference.getType().equals("")) { String mimeTypeString = null; Node signatureNode = origin.getDssSignature().getSignatureElement(); Node node = DomUtils.getNode(signatureNode, "./ds:SignedInfo/ds:Reference[@URI=\"" + reference.getURI() + "\"]"); if (node != null) { String referenceId = node.getAttributes().getNamedItem("Id").getNodeValue(); mimeTypeString = DomUtils.getValue(signatureNode, "./ds:Object/xades:QualifyingProperties/xades:SignedProperties/" + "xades:SignedDataObjectProperties/xades:DataObjectFormat" + "[@ObjectReference=\"#" + referenceId + "\"]/xades:MimeType"); } // TODO: mimeTypeString == null ? node == null? String uri = getFileURI(reference); signatureEntries.add(new ManifestEntry(uri, mimeTypeString)); } } return signatureEntries; }