2017-03-28 4 views
1

relaxng compact 파일을 xsd로 변환 할 예정입니다. 그래서 여기에 사용자에게 명령은 다음과 같습니다 여기다른 relax ng 파일에 대한 참조를 포함하는 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"? 
} 

을하고 폴더의 유틸리티 폴더에 나는이처럼 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 jing.jar -s -c test.rnc > test-simplified.rnc 

그런 다음 나트랑에 입력으로하는 단순화 된 스키마를 제공합니다 :

java -jar trang.jar test-simplified.rnc newtest.xsd 

jing 버전이 -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 

마지막 명령은 다음과 같이 방출한다