我要将relaxng压缩文件转换为xsd。 所以这里给用户的命令是:
java -jar tang.jar test.rng newtest.xsd
我的问题如下: 我有几个rnc文件,其中一些文件引用了另一个rnc文件。例如,我有test1.rnc如下:
start= test
test =
element test {
(element ref {xsd:anyURL}?,
element links {
element link {
attribute handle {text},
attribute id {text}
}*
}?,
element name { text }?,
external "util/phone.rnc"?
}
在util文件夹中我有phone.rnc,就像这样:
start = phone
phone =
element phone {
element number {
element phonenumber {text }'
element type { text }?
},
}
所以我的问题是如何以正确的方式将它们转换为xsd?
我试过了trang,但得到了test.rnc:29:6: error: sorry, externalRef is not yet supported
答案 0 :(得分:0)
首先使用-s
选项运行架构以生成“简化”版本:
java -jar jing.jar -s -c test.rnc > test-simplified.rnc
然后将该简化模式作为trang的输入:
java -jar trang.jar test-simplified.rnc newtest.xsd
如果你的jing版本没有提供-s
选项,那么你需要找到并安装新版本,否则只需从源代码构建一个新版本:
git clone https://github.com/relaxng/jing-trang.git
cd jing-trang
./ant
java -jar build/jing.jar
最后一个命令应该发出如下内容:
Jing version 20151127
usage: java com.thaiopensource.relaxng.util.Driver [-i] [-c] [-s] [-t] [-C catalogFile] [-e encoding] RNGFile XMLFile...
RELAX NG is a schema language for XML
See http://relaxng.org/ for more information.