SAXParseException使用Scala未定义命名空间xml

时间:2011-11-06 18:54:58

标签: java xml scala namespaces

我有一个SVG文档,SVG样式元素的属性为xml:space =“preserve”。

尝试使用Scala解析此文档时,会引发堆栈跟踪异常 线程“main”中的异常org.xml.sax.SAXParseException:Namespace xml undefined     at com.dautelle.xml.sax.RealtimeParser.parseError(Unknown Source)     at com.dautelle.xml.sax.RealtimeParser.processAttribute(Unknown Source)     at com.dautelle.xml.sax.RealtimeParser.parseContent(Unknown Source)     在com.dautelle.xml.sax.RealtimeParser.parse(未知来源)     在com.dautelle.xml.sax.XMLReaderImpl.parse(未知来源)     在javax.xml.parsers.SAXParser.parse(SAXParser.java:395)     在scala.xml.factory.XMLLoader $ class.loadXML(XMLLoader.scala:40)     在scala.xml.XML $ .loadXML(XML.scala:40)     在scalaapplication11.Main $ .main(Main.scala:144)     在scalaapplication11.Main.main(Main.scala) Java结果:1

这是SVG元素的顶部 < svg xmlns =“http://www.w3.org/2000/svg”xmlns:jdipNS =“http://jdip.sourceforge.org/jdipNS”xmlns:xlink =“http://www.w3。 org / 1999 / xlink“color-rendering =”optimizeQuality“contentScriptType =”text / ecmascript“contentStyleType =”text / css“height =”680px“preserveAspectRatio =”xMinYMin“version =”1.0“viewBox =”0 0 1835 1360“ width =“918px”zoomAndPan =“magnify”>

这是样式元素 < style type =“text / css”xml:space =“preserve”><![CDATA [

    /* text */
    .titletext  {text-anchor:middle;stroke-width:0.3;font-family:sansserif;font-size:12;stroke:black;fill:black;}
    .provtext   {text-anchor:middle;stroke-width:0.3;font-family:sansserif;font-size:12;stroke:black;fill:black;}
    .labeltext  {stroke-width:0.1;stroke:black;fill:black;}
    .unordered           {fill:red; stroke:black; stroke-width:1;fill-opacity:0.90;}
    .labeltext

我能够使用Java的DocumentBuilderFactory将xmlns:jdipNS属性附加到文档的根目录。但是xmlns:xml没有被追加(可能是因为它是标准的命名空间)。我不知道如何让Scala处理xml命名空间。

1 个答案:

答案 0 :(得分:2)

从表面上看,这看起来像是dautelle(Javolution?)XML解析器中的一个严重错误。我不太了解Scala环境,但似乎解析器已使用标准Java DocumentBuilderFactory进行分配,因此您应该只需更改类路径就可以切换到不同的XML解析器。