Sachon (버전 8.9)을 호출하는 배치 파일을 XProc 파이프 라인 (Calabash)으로 변환하려고합니다. 매개 변수 설정이 방법으로 스타일 시트에 정의되어XSLT with XProc - 필수 유형의 매개 변수 바인딩
java -jar saxon8.jar -o out.xml in.xml style.xsl +config=config-file.cfg
:
이<xsl:param name="config" as="document-node()"/>
XProc 부분은 다음과 같습니다
<p:load name="configLoad">
<p:with-option name="href" select="'config-file.cfg'"/>
</p:load>
<p:xslt name="config">
<p:input port="source">
<p:document href="in.xml"/>
</p:input>
<p:input port="parameters">
<p:inline>
<c:param name="config">
<p:pipe port="result" step="configLoad"/>
</c:param>
</p:inline>
</p:input>
<p:input port="stylesheet">
<p:document href="style.xsl"/>
</p:input>
</p:xslt>
오류 메시지 이 내 배치 전화입니다 이 :
필수 i 변수 $ config의 값의 형식은 document-node()입니다. 는 config 파일은 나중에 다른 XSLT의 tranformations에 의해 생성되어야하기 때문에, 문자열
나는 <p:exec>
단계를 알고 있지만 내가 그것을 사용하지 않을 : 제공된 값은 항목 유형은 xs 있습니다. 또한 다른 XProc 단계에서도 재사용됩니다.
XSLT 스타일 시트를 올바른 매개 변수 유형으로 호출 할 수 있습니까? 도움 주셔서 감사합니다.
감사합니다. 그게 확실합니다. 나는 그것을 생각했지만, 나는 당신이 링크 된이 선을 놓쳤다. 예, 실행 순서가 문제 중 하나였습니다. 나는 p : exec 단계를 거절했습니다. 글쎄, 나는 선언 된 단계에서 그것을 포함하여 명령을 강요 할 수 있다고 생각한다. 하지만 좋은 해결책은 아닙니다. 도움을 주셔서 감사합니다. –
나는 같은 문제를 만난다. 내 XSLT는 2 xml 파일을받습니다. 하나는 기본 입력 용이고 다른 하나는 매개 변수 용입니다. 두 번째 것은 XProc의 또 다른 XSLT에 의해 자동 생성됩니다. 임시 해결책의 유일한 방법은 p : store에 의해 XProc에서 임시로 두 번째 파일을 생성하고이 임시 파일의 URL을 XSLT에 전달하고 전체 파이프 라인이 끝난 후에 삭제하는 것입니다. – chansey
@chansey 두 소스의 입력을 집계하여 하나의 입력 문서로 두 번째 XSLT 단계에 입력 할 수 있다고 확신합니다. 디스크에서 쓰기 및 읽기가 순차적이거나 동기화되지 않을 수도 있습니다. 이것에 대해 새로운 질문을 올릴 수 있습니까? – grtjn