2016-09-12 1 views
0

저는 작년에 Saxon을 사용하여 Windows 명령 줄에서 일련의 XQuery 업데이트를 호출하기 위해 작성한 배치 스크립트를 실행 해 왔습니다. 우리가 oXygen 16을 사용하는 동안 잘 작동했지만, 우리 부서의 모든 기계가 oXygen 17.1로 업그레이드 된 후에 스크립트에서 오류가 발생하여 수정 할 수없는 것으로 보입니다. 어떤 생각이라도 대단히 감사하겠습니다. oXygen으로 업데이트 한 후 명령 줄에서 XQuery 업데이트를 호출합니다. 17.1

산소 (16)가 설치 될 때 작동하도록 사용 (산소 버전이 경로에 대한 유일한 변경 인 상태) I는 .jar 파일은 상대적으로 동일한 위치에 있음을 확인했다

java -cp "C:\Program Files\Oxygen XML Editor 16\lib\saxon9ee.jar" net.sf.saxon.Query -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq" 

및 이전과 같은 이름입니다. 그럼에도 불구하고, 클래스 경로를 업데이트 한 후에 "C : 17 \ lib이 \ saxon9ee.jar \ 프로그램 파일 \ 산소 XML 편집기"스크립트가 다음과 같은 오류가 발생합니다 : 자바 8 내 컴퓨터에 설치되어

Saxon-EE 9.6.0.7J from Saxonica

Java version 1.8.0_92

java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

at net.sf.saxon.s9api.XQueryCompiler.setUpdatingEnabled(XQueryCompiler.java:212)

at net.sf.saxon.Query.doQuery(Query.java:281)

at net.sf.saxon.Query.main(Query.java:111)

Fatal error during query: java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

The filename, directory name, or volume label syntax is incorrect.

. 또한 oXygen 편집기에서 호출 할 때 XQuery 업데이트가 계속 작동하도록했습니다. 문서, XQuery에 따르면

java -cp "C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar" net.sf.saxon.Query -qversion:1.0 -tree:linked -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq" 

: 링크 플래그와 -qversion : 1.0 플래그 (그들은 같은 오류 메시지가 표시)

http://www.saxonica.com/documentation9.6/index.html#!using-xquery/commandlinehttp://www.saxonica.com/documentation9.6/index.html#!conformance/update에 최대 읽은 후, 나는 - 트리 추가 업데이트는 -update : on 플래그가 설정되어 있고 doc() 또는 collection() 함수를 사용하여 XML을 읽는 경우에도 실행해야합니다.이 함수는 내 XQuery 파일의 변수입니다.

declare variable $EAD as document-node()* := doc("sample_input.xml"); 
declare variable $ITEMS as document-node()* := doc("sample_input.AbID.xml"); 

나는 그 밖에 무엇을 시도해야 할지를 놓치고 있습니다. 아무도 여기서 무슨 일이 일어나고 있는지 알 수 없다면, 나는 어떤 포인터에 대해서도 크게 감사 할 것입니다!

답변

0

Saxon-EE 라이센스가 있습니까? 아니면 oXygen과 함께 제공되는 라이센스에 의존하고 있습니까? oXygen 라이센스는 oXygen 외부에서 Saxon-EE의 사용을 다루지 않습니다 (따라서 Saxon을 명령 행에서 실행하는 방식을 다루지는 않습니다). 아마도 oXygen이 이전 릴리스에서 작동했던 Saxon 활성화를 처리하는 방식에서 허점을 발견했을 수도 있지만 oXygen 또는 Saxon에서 수정 된 것일 수도 있습니다.

+0

감사합니다. 우리는 실제로 oXygen 라이센스에 의존해 왔습니다. – user3657755

관련 문제