Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 有没有办法从DTD生成BNF文件?_Xml_Dtd_Context Free Grammar_Bnf_Format Conversion - Fatal编程技术网

Xml 有没有办法从DTD生成BNF文件?

Xml 有没有办法从DTD生成BNF文件?,xml,dtd,context-free-grammar,bnf,format-conversion,Xml,Dtd,Context Free Grammar,Bnf,Format Conversion,我对学习写a感兴趣已经有一段时间了,今天我决定尝试一下。基本上,我正在为SVG文档添加语言支持,因为内置的XML语言支持无法处理SVG中使用xlink:命名空间的标记/属性 因此,我正在努力通过我的方式,我已经得到了。基本上,我要创建一个BNF文件来定义SVG文档中使用的语法。问题在于SVG语法将永远无法严格定义 我想做的是从自动生成这个BNF文档,因为这个DTD应该包含足够的信息来完全定义SVG的语法(我猜) 有没有办法把DTD转换成BNF?我不知道有什么现成的工具;如果您有任何XSLT技能,

我对学习写a感兴趣已经有一段时间了,今天我决定尝试一下。基本上,我正在为SVG文档添加语言支持,因为内置的XML语言支持无法处理SVG中使用
xlink:
命名空间的标记/属性

因此,我正在努力通过我的方式,我已经得到了。基本上,我要创建一个BNF文件来定义SVG文档中使用的语法。问题在于SVG语法将永远无法严格定义

我想做的是从自动生成这个BNF文档,因为这个DTD应该包含足够的信息来完全定义SVG的语法(我猜)


有没有办法把DTD转换成BNF?

我不知道有什么现成的工具;如果您有任何XSLT技能,那么可以直接使用各种工具将DTD转换为XML形式(有时转换为XSD或RNG,有时只是转换为DTD结构的XML表示形式),然后编写XSLT转换以转换为您需要的语法格式


在BNF中,允许XML属性以任何顺序出现,但不包括重复的属性名称是相当繁琐的;您可以选择在软件的不同级别强制禁止重复属性名。

可能是一个很好的开始。@bitfiddler尝试过,但失败。该脚本在命令行或注释中都没有关于如何使用它的文档。