Xml 将包含对另一个relaxng文件的引用的relaxng文件转换为xsd

Xml 将包含对另一个relaxng文件的引用的relaxng文件转换为xsd,xml,xsd,relaxng,relaxng-compact,Xml,Xsd,Relaxng,Relaxng Compact,我将把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 {

我将把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 }?
    },
  }
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.  
所以我的问题是如何以正确的方式将它们转换为xsd?
我尝试了trang,但得到了
测试。rnc:29:6:错误:抱歉,externalRef尚不受支持

首先使用
-s
选项在架构上运行jing以生成“简化”版本:

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
最后一个命令应发出如下内容:

start = phone
phone = 
   element phone {
     element number {
       element phonenumber {text }' 
       element type { text }?
    },
  }
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.  

首先使用
-s
选项在模式上运行jing,以生成“简化”版本:

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
最后一个命令应发出如下内容:

start = phone
phone = 
   element phone {
     element number {
       element phonenumber {text }' 
       element type { text }?
    },
  }
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.