处理基于XML的DSL
SWI Prolog作为一个通用的XML处理器提供了很多功能 librarysgml用于读/写XML结构化格式,libraryxpath用于导航等。。。但是,如果我尝试读取SVG,确认它是有效的XML,我会得到以下消息:处理基于XML的DSL,xml,svg,swi-prolog,Xml,Svg,Swi Prolog,SWI Prolog作为一个通用的XML处理器提供了很多功能 librarysgml用于读/写XML结构化格式,libraryxpath用于导航等。。。但是,如果我尝试读取SVG,确认它是有效的XML,我会得到以下消息: ERROR: SGML2PL(xml): ...my_file...svg:2: file "...myfile.path.../http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" does not exist 错 有人对此有什
ERROR: SGML2PL(xml): ...my_file...svg:2: file "...myfile.path.../http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" does not exist
错
有人对此有什么暗示吗?我还想重写最终修改的文件内容,当然要保留独特的DTD。我找到了一个解决方案,在本地保存我用curl获得的DTD文件,我可以请求SGML库使用它
...
new_dtd(svg, DTD),
path(Dir, 'svg11.dtd', DtdFile),
load_dtd(DTD, DtdFile),
path(Dir, 'html_labels.svg', SvgFile),
load_structure(SvgFile, [Svg], svg:[dtd(DTD), dialect(xmlns), xml_no_ns(quiet)]),
...
正如我所说,我是这样得到svg11.dtd的
$ curl http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd > svg11.dtd