Xml 有没有办法从DTD生成BNF文件?
我对学习写a感兴趣已经有一段时间了,今天我决定尝试一下。基本上,我正在为SVG文档添加语言支持,因为内置的XML语言支持无法处理SVG中使用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技能,
xlink:
命名空间的标记/属性
因此,我正在努力通过我的方式,我已经得到了。基本上,我要创建一个BNF文件来定义SVG文档中使用的语法。问题在于SVG语法将永远无法严格定义
我想做的是从自动生成这个BNF文档,因为这个DTD应该包含足够的信息来完全定义SVG的语法(我猜)
有没有办法把DTD转换成BNF?我不知道有什么现成的工具;如果您有任何XSLT技能,那么可以直接使用各种工具将DTD转换为XML形式(有时转换为XSD或RNG,有时只是转换为DTD结构的XML表示形式),然后编写XSLT转换以转换为您需要的语法格式
在BNF中,允许XML属性以任何顺序出现,但不包括重复的属性名称是相当繁琐的;您可以选择在软件的不同级别强制禁止重复属性名。可能是一个很好的开始。@bitfiddler尝试过,但失败。该脚本在命令行或注释中都没有关于如何使用它的文档。