【发布时间】:2011-02-13 02:05:39
【问题描述】:
是否有 C 头文件(和/或 Java jar)的数据绑定 Parser/Generator 来生成 [也许] XML 数据绑定以供使用/导入(或生成包装器)到“其他”语言? (例如python、Haskell、Go! 和 others)这个解析器将用于减少:
- 图书馆中的共享程序
- 与磁盘之间的数据分流
- 进程间消息
在最简单的情况下:已经为glibc 维护了“XML 数据绑定”吗? (也许GCC 中有一个magic 选项可以生成 XML 数据绑定?)
背景示例:在Tandem Guardian上有一个DDL Compiler(“数据定义语言”),基本上DDL语言包含很多record definitions,可以被DDL编译器“编译”生成C/@987654330 @、TAL/struct、Pascal/Record、Fortran/named-commons 或 COBOL/Record 声明可以在编译 C(或 TAL/Pascal/Fortran/COBOL)程序时“包含”然后 . DDL 语言使得库的创建和跨语言共享变得非常容易。 DDL 输出也可以用于在磁盘和inter-process messages 中分流数据,因此可以轻松地在用不同语言编写的程序之间共享数据。
一些接近的当代例子:
C++允许直接导入C头文件,例如:
extern "C" {
#include "header.h"
}
Python 特别允许解析 GTK C 库,并通过“Defs”文件生成带有PyGTK-Codegen 的python 包装模块:
(define-object name
(in-module "module")
(docstring "doc")
(parent "parent")
(c-name "name")
(gtype-id "id")
(fields
("type" "name")
...
)
(implements "interface")
)
在某种程度上RPCs 解决了不同 CPU 架构之间的 IPC 问题。但不是本地数据绑定声明问题到其他语言。
在第一个例子中,一个仅用于解析 C 生成 XML 的开源工具会很棒(并且来自 java 的一个真正的好处)。如果这个解析器已经在一个主要的 Linux 发行版上就更好了。
我发现 Parser 摘要位于:XML Data Binding Tools
【问题讨论】:
标签: java xml parsing data-binding gcc