8

Relax NG 主页列出了 Sun RELAX NG 转换器,它显然能够将 XSD 文件转换为松弛文件 - 但链接已失效,有关二级来源的博客条目似乎也已过时。

我对基于 Web 的转换器不感兴趣。

顺便说一句,我要转换的 XML 模式使用继承。

4

3 回答 3

5

Kohsuke Kawaguchi 的 Relax NG 转换器(又名 Sun Relax NG 转换器)目前可在http://java.net/projects/msvhttp://search.maven.org/#search%7Cga%7C1%7Cg%3A%获得22net.java.dev.msv%22(感谢 KK 提供的信息)。

于 2013-02-11T02:44:21.050 回答
5

旧的 Sun RELAX NG 转换器现在与 (Sun) 'Multi-Schema Validator' - msv 捆绑在一起。使用该术语,您可以在您的分发包存储库中进行搜索。

例如 Fedora (eg 17) 包含它。

在 Fedora 上安装

# yum install msv-rngconv msv-manual

在 Fedora 上的使用

$ rngconv my.xsd > my.rng

测试结果:

$ xmllint --relaxng my.rng --noout some.xml

转换为紧凑语法:

$ trang -I rng -O rnc my.rng my.rnc

(trang 也可以通过主要的 Fedora 软件包存储库获得)

另一种方式(可能在向紧凑语法文件添加内容之后):

$ trang -I rnc -O rng my.rnc my.rng

Msv 似乎非常强大——我用一个相当大的 xsd 文件对其进行了测试,该文件使用继承、扩展模式并包含另一个 xsd 文件。

于 2013-02-11T21:02:36.593 回答
0

你试过董里吗?(我不知道它如何处理继承)

有关将 XSD 转换为 RELAXNG 的一般讨论,另请参见xsd 到 rnc(或 rng)转换(unix 命令行) 。看起来 Sun RELAX NG 转换器的名称为 rngconv,并且仍然隐藏在某些地方:http ://rpm.pbone.net/index.php3?stat=3&search=msv-rngconv&srodzaj=3

于 2013-02-11T00:50:33.980 回答