Relax NG主页列出了Sun RELAX NG Converter,该工具似乎可以将XSD文件转换为relaxng格式,但该链接已失效,关于二次来源的博客文章也似乎已过时。
我不感兴趣使用基于Web的转换器。
顺便说一下,我要转换的XML模式使用了继承。
Relax NG主页列出了Sun RELAX NG Converter,该工具似乎可以将XSD文件转换为relaxng格式,但该链接已失效,关于二次来源的博客文章也似乎已过时。
我不感兴趣使用基于Web的转换器。
顺便说一下,我要转换的XML模式使用了继承。
旧版的Sun RELAX NG转换器现在与(Sun)'多模式验证器'- msv一起捆绑。您可以使用该术语在发行包存储库中搜索。
例如,Fedora(例如17)已经包含了它。
# yum install msv-rngconv msv-manual
$ rngconv my.xsd > my.rng
测试结果:
$ xmllint --relaxng my.rng --noout some.xml
转换为紧凑语法:
$ trang -I rng -O rnc my.rng my.rnc
$ trang -I rnc -O rng my.rnc my.rng
Msv似乎非常强大 - 我使用了一个相当大的xsd文件进行测试,其中包含继承、广泛的模式和另一个xsd文件的包含。
你尝试过Trang吗?(我不知道它如何处理继承)
另请参阅xsd to rnc (or rng) conversion (unix command line),了解将XSD转换为RELAXNG的一般讨论。看起来Sun RELAX NG Converter被称为rngconv,并且仍然隐藏在某些地方:http://rpm.pbone.net/index.php3?stat=3&search=msv-rngconv&srodzaj=3
trang
对于Debian来说不够自由了:D。开个玩笑,我的trang
示例中输入/输出格式选项(-I
/-O
)的顺序混乱了,现在已经修复了。也许这才是你真正遇到的问题? - maxschlepzig