2012-05-04 2 views
1

В SWI-Prolog есть что предложить в качестве обобщенного XML-процессора.Обработка XML на основе DSL

library(sgml) для чтения/записи XML-структурированных форматов, library(xpath) для навигации и многое другое ... но если я пытаюсь читать 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 

ложной.

У кого-нибудь есть намек на это? Я также хотел бы переписать окончательно измененный контент, сохраняющий, конечно, отличительный DTD.

ответ

0

Я нашел решение, сохраняя локально файл DTD, который у меня есть с curl, я могу запросить библиотеку 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 
Смежные вопросы