使用goxmldsig编组XML后,xmlns值无效

时间:2017-08-12 19:56:55

标签: xml go

下面的代码在编组XML时奇怪地将xmlns属性添加到根元素。根据我的阅读,不应该显式设置xmlns属性。但生成的XML包含xmlns属性:

move_uploaded_file($file_tmp,"../complains_photos/".date("d-m-Y").".".$file_ext);

尝试使用XMLSecTool验证XML签名时,收到以下错误:

  

org.xml.sax.SAXParseException:前缀" xml"不能绑定任何   命名空间除了通常的命名空间命名空间也不行   for" xml"绑定到" xml"。

以外的任何前缀

我可以使用有效的xmlns属性值,还是我错误地使用了库?

<?xml version="1.0" encoding="UTF-8"?>
<ExampleElement xmlns="http://www.w3.org/XML/1998/namespace" ID="id1234">
...

1 个答案:

答案 0 :(得分:2)

您的命名空间未正确设置。另请参阅xml namespace

在此处添加命名空间:

elementToSign := &etree.Element{
    Tag: "ExampleElement",
    Space: "xml",
}
elementToSign.CreateAttr("ID", "id1234")

添加的行将通过验证。使用XML Validator

进行测试