将包含对另一个 relax ng 文件的引用的 relaxng 文件转换为 xsd
convert relaxng file that include reference to another relax ng file to xsd
我要将 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
首先 运行 使用 -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.
我要将 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
首先 运行 使用 -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.