如何将 XML 模式 (XSD) 转换为 Relax NG?

问题描述 投票:0回答:4

The Relax NG 主页列出了 Sun RELAX NG Converter,它显然能够将 XSD 文件转换为 Relaxng 文件 - 但链接已失效,并且有关辅助来源的博客条目似乎也已过时。

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

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

xsd converters relaxng
4个回答
6
投票

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 提供信息)。


5
投票

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

例如 Fedora(例如 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 文件。


0
投票

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

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


0
投票

Sun 多模式验证器现在在 Github 上,并且包含转换器。

© www.soinside.com 2019 - 2024. All rights reserved.