2017-03-28 9 views
1

relaxng compactファイルをxsdに変換します。 ので、ここでユーザへのコマンドは次のようになります。ここrelaxngファイルを別のrelax ngファイルへの参照を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? 私はトランを試みたが、「簡略化」バージョンを生成する-sオプションでスキーマ上test.rnc:29:6: error: sorry, externalRef is not yet supported

答えて

0

最初の実行ジンだ:

java -jar trang.jar test-simplified.rnc newtest.xsd 
:次にトランへの入力として、その単純化されたスキーマを与える

java -jar jing.jar -s -c test.rnc > test-simplified.rnc 

あなたが持っているjingのバージョンに-sオプションがない場合、新しいバージョンを見つけてインストールする必要があります。そうでない場合は、sから新しいバージョンをビルドする必要がありますources:

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. 

git clone https://github.com/relaxng/jing-trang.git 
cd jing-trang 
./ant 
java -jar build/jing.jar 

最後のコマンドは次のようなものを放出しなければなりません

関連する問題