Java 将xmlns:mdssi添加到XMLObject

Java 将xmlns:mdssi添加到XMLObject,java,xml,openxml,xml-namespaces,Java,Xml,Openxml,Xml Namespaces,我正在做一个关于微软office文件docx、xlsx、pptx上数字签名的java项目 我可以使用以下方法创建将添加到xml签名中的对象: XMLSignatureFactory xml_fac = XMLSignatureFactory.newInstance("DOM"); XMLObject xml_object = XMLSignatureFactory.newXMLObject(... ArrayList<XMLObject> obj_list = new ArrayL

我正在做一个关于微软office文件docx、xlsx、pptx上数字签名的java项目

我可以使用以下方法创建将添加到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,...
我要补充一点:

xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature"
打开标签

但java中的XMLObject无法添加这些内容,它只有Id、MimeType、编码和内容

有什么建议吗

SignatureProperty property = XML_SIGNATURE_FACTORY.newSignatureProperty(
    ...);

SignatureProperties properties = XML_SIGNATURE_FACTORY.newSignatureProperties(
    Collections.singletonList(property), ...);

XMLObject object = XML_SIGNATURE_FACTORY.newXMLObject(
    Collections.singletonList(properties), ...);
第2版:

故事来了。我使用Java。JSR-105 我正在为W3C小部件挖掘XML数字签名

签名/对象 -第一次看到API似乎很容易。我刚刚创建了如上所述的XMLObject

但是,正如spec所说,我必须插入一个引用1创建的XMLObject的引用。 -什么?如何引用输出节点? -如何为尚未创建的节点返回数据

我意识到我应该准备一个org.w3c.dom.Document,其中包含元素及其子元素,并将其用作参考。 ->使用UrideReference,您可以从此文档的getDocumentElement结果返回NodeSetData

所以解决办法来了

创建一个org.w3c.dom.Document实例,其中包含作为其根元素的元素。您可以根据需要添加任何属性和子元素。 您可以将XML签名作为分离或封装方案生成。 看看这个。这就是我找到解决办法的地方。我想你的问题会解决的。

对不起,我的英语很差。我是韩国人

我的问候。
Jin Kwon

如何将这个问题放在今天的未回答列表的首位?最后有人回答了,但是,问题还没有解决,我需要的是添加名称空间xmlns:mdssi=。。。进入“对象”开头标记,如下所示:
SignatureProperty property = XML_SIGNATURE_FACTORY.newSignatureProperty(
    ...);

SignatureProperties properties = XML_SIGNATURE_FACTORY.newSignatureProperties(
    Collections.singletonList(property), ...);

XMLObject object = XML_SIGNATURE_FACTORY.newXMLObject(
    Collections.singletonList(properties), ...);