Обработка на XML базиран DSL

SWI-Prolog има какво да предложи като обобщен XML процесор.

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.


person CapelliC    schedule 04.05.2012    source източник


Отговори (1)


Намерих решение, запазвайки локално 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
person CapelliC    schedule 30.05.2012