使用Altova XMLSpy 2012生成的代码(版本2007r3)附加命名空间前缀标记



显然在最新版本的Altova XMLSpy 2012 sp1的代码生成器中存在错误使用使用标记命名空间前缀的 XML 文件时,您会发现生成的 XML 缺少前缀。在尝试了不同的版本并四处寻找后,我找到了该问题的解决方法,基本上您必须替换以下方法的内容(typebase.cs中的第 110 行):

public XmlNode CreateElement(MemberInfo member) 

return XmlTreeOperations.AddElement(node, member);

这应该会变魔术。

有人可以证实这一点吗?

注意:我在这里发布这个是因为 Altova 似乎已经关闭了他们的支持论坛,并且没有回复电子邮件查询......

问候并希望这对某人有所帮助。

弗拉克斯

您还可以修改用于创建元素的构造函数:

public XmlNode CreateElement(MemberInfo member)
{
    string prefix = member.ContainingType.Namespace.prefix;
    XmlDocument doc = node.OwnerDocument;
    if (doc == null)
        doc = (XmlDocument)node;
    XmlNode child = doc.CreateElement(prefix, member.LocalName, member.NamespaceURI);
    node.AppendChild(child);
    return child;
}

但是,您仍然需要从生成的元素中删除命名空间 uri。可能的解决方案在这里:从 XML 中清除命名空间

您需要切换到 SPL 目录以自定义自动生成的代码。下面是 SPL 目录的路径。在修改 SPL 目录之前。请先学习声压级。

C:Program FilesAltovaXMLSpy2012spl
1. Study SPL directory first.
2. Select your lang in which you work. 
Suppose you work in c# then modify the files inside the  below path
C:Program FilesAltovaXMLSpy2012splcsMapForce

最新更新