XmlStreamingMarkupBuilder不接受对2.5.7版的xmlns命名空间的绑定

时间:2019-06-03 22:48:12

标签: xml groovy

我正在使用Groovy XmlStreamingMarkupBuilder为工作监视系统构建一些xml。但是,名称空间在我继承的架构中绑定到xmlns。解析器抛出错误,抱怨我无法显式绑定到xmlns。有没有办法解决这个问题?代码如下:如果将xmlns更改为其他代码,则可以正常工作。

Object buildJobsXml() {
    markupBuilder.useDoubleQuotes = true
    def jobsXml = markupBuilder.bind{ builder ->
        mkp.xmlDeclaration()
        namespaces << [xmlns:'http://fancy-web-paraphernalia']
        jobs{
            version('3.0')
            jobId('id')
         }
    }
    return  jobsXml
}

我能够设置名称空间,但是它级联到每个元素,我只希望它在最外面的元素中。这就是我所做的。我使用了空的双引号,并且允许将名称空间设置为

xmlns:"http://fancy-web-paraphernalia"

但是,它现在出现在所有我不想要的元素中

Object buildJobsXml() {
    markupBuilder.useDoubleQuotes = true
    def jobsXml = markupBuilder.bind{
        mkp.xmlDeclaration()
        namespaces << ["":'http://fancy-web-paraphernalia']
        jobs{
            version('3.0')
            jobId('id')
         }
    }
    return  jobsXml

}

1 个答案:

答案 0 :(得分:0)

这有效。如果有更好的方法,请发布您的解决方案

 Object buildJobsXml() {
   markupBuilder.useDoubleQuotes = true
  def jobsXml =  markupBuilder.bind{
    mkp.xmlDeclaration()
    jobs(xmlns:"http://fancy-web-paraphernalia"){
        version('3.0')
        jobId('id')
    }
  }
def result = XmlUtil.serialize(jobsXml)
println "${result}"

}