У меня есть XSD, корневой элемент которого содержит два объявления пространства имен, которые не используются в последующем определении схемы, например, xmlns:foo="urn:bar"
, где foo не используется.
Когда я использую XmlSlurper и StreamingMarkupBuilder, чтобы прочитать и записать его снова без изменений:
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
public class NS {
public static main(String[] args) {
File xsdFile = new File("A.xsd")
XmlSlurper slurper = new XmlSlurper()
def xml = slurper.parse(xsdFile)
def outputBuilder = new StreamingMarkupBuilder()
String xmlStr = outputBuilder.bind { mkp.yield xml }
println xmlStr
}
}
Он удаляет эти объявления пространства имен. Как я могу заставить их читать и записывать XML в точности как есть, без каких-либо изменений?