Я делаю Java-проект о цифровой подписи в файлах Microsoft Office (docx, xlsx, pptx).
Я могу создать объект, который будет добавлен в подпись xml, используя:
XMLSignatureFactory xml_fac = XMLSignatureFactory.newInstance("DOM");
XMLObject xml_object = XMLSignatureFactory.newXMLObject(...
ArrayList<XMLObject> obj_list = new ArrayList<XMLObject>();
obj_list.add(xml_object);
XMLSignature xml_sig = xml_fac.newXMLSignature(...,...,obj_list,...
однако эта xml-подпись, сгенерированная java, не содержит xmlns
для типа XMLObject
для Microsoft Office для распознавания этого объекта xml:
<Object>
<SignatureProperties>
<SignatureProperty Id="idSignatureTime" Target="#idPackageSignature">
<mdssi:SignatureTime>
<mdssi:Format>YYYY-MM-DDThh:mm:ssTZD</mdssi:Format>
<mdssi:Value>2011-04-02T10:10:10Z</mdssi:Value>
</mdssi:SignatureTime>
</SignatureProperty>
</SignatureProperties>
</Object>
я должен добавить:
xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature"
в открывающий тег <Object>
, но XMLObject
в Java не может добавить это, он имеет только Id
, MimeType
Encoding
и Content
есть предложения?