如何在Intersystems IRIS中导出无命名空间的类为XML?
解决方案
你可以通过两种方式实现无命名空间的XML导出:
方案1:移除所有关联类的NAMESPACE参数
直接删除Class.Test、Class.Person、Class.Address三个类中定义的Parameter NAMESPACE = "http://mynamespace.com/test";行即可,无需修改导出代码,运行后即可得到无任何命名空间声明的XML。
你之前只删除了Test类的命名空间配置,Person和Address类仍保留命名空间参数,因此导出时子节点会自动生成命名空间前缀。
方案2:保留类命名空间配置,通过XML Writer参数抑制命名空间输出
如果你的命名空间参数在其他业务场景还需要使用,不想修改类定义,可以直接在导出代码中开启SuppressNamespaces属性,该属性会强制Writer忽略所有类的命名空间配置,输出无命名空间的XML,修改后的导出代码如下:
set writer=##class(%XML.Writer).%New() set writer.Indent=1 set writer.Charset="ISO-8859-1" set writer.SuppressNamespaces=1 set status=writer.OutputToString() set status=writer.RootObject(objectTest) set xml=writer.GetXMLString()
内容的提问来源于stack exchange,提问作者Flávio Naves Jr
相关产品推荐
相关产品推荐

