2014-02-20 3 views
0

두 번째 스타일 시트를로드하고 몇 가지를 재정의하는 스타일 시트를 작성했습니다. 문제는 xsl:import 요소를 사용하기 위해 가져 오려는 스타일 시트의 절대 경로를 알아야하는 것 같습니다. 이 문제를 어떻게 해결할 수 있습니까?Xalan-Java : 검색 경로 설정

이상적으로 나는 절대 경로를 스타일 시트에 넣고 싶지 않습니다. 커맨드 라인에서 전달하고 싶습니다. 그렇게하면 기본 스타일 시트가 움직이면 편집 할 필요가 없습니다. 내 스타일 시트 중 모두입니다.

저는 명령 행 Xalan-Java 도구를 사용하여 XSLT를 적용하고 있습니다. A 매뉴얼을 보았지만 "여기 스타일 시트"와 같은 종류의 옵션이없는 것 같습니다.

어떤 힌트 ...하지만 내가 xsl:import 요소의 href 속성으로 그것을 밀어 수있는 방법을 볼 수 없습니다 -

나는 또한 XSL 매개 변수로 기본 경로를 통과하는 생각? 분명히 나는 ​​이것을 할 수있는 최초의 사람이 될 수 없다 ...


기본적으로 나는 DocBook을 사용하여 문서를 작성하고있다. 나는 공식 DocBook XSL 스타일 시트 (거대한 것이고 수천 개의 XSL 파일들로 구성되어있다)의 사본을 다운로드했다. 필자가 작성한 각 문서의 경우, 공식 DocBook XSL을 가져오고 몇 가지 설정 (용지 크기 등)을 조정하는 작은 XSL 파일을 만들고 싶습니다.

그렇게하기 위해, 공식 DocBook XSL 파일의 경로를 각 문서의 로컬 XSL에 하드 코딩합니다. 그리고 입니다. 공식 스타일 시트의 최신 버전으로 업데이트하면 스타일 시트 버전 번호가 경로 이름에 있기 때문에 작성한 모든 사용자 정의 XSL을 편집해야합니다.

무엇을 과 같이 할 것인가는과 같은 것이 Xalan을 실행하는 스크립트에 대한 하드 코드입니다. 따라서 스타일 시트가 움직이면 하나의 스크립트 만 편집하면됩니다. 그러나 나는 그것을하는 방법을 이해할 수 없다. 나는 Xalan에게 수입 된 스타일 시트를 찾을 곳을 말할 방법이 전혀 없다.

상대 경로를 사용하더라도 해당 경로에 여전히 버전 번호가 하드 코드되어 있습니다. 그리고 Windows는 심볼릭 링크를 할 수 없기 때문에 ...

답변

0

href 속성은 상대 경로 일 수 있습니다. 베이스 URI가 알려져있는 한.

명령 줄에서 실행중인 경우 일반적으로 "마스터"스타일 시트의 기본 URI가 알려져 있으므로 문제가되지 않습니다. 나는 당신이하고있는 일과 실패한 일에 대해 더 구체적으로 생각할 필요가 있다고 생각합니다.

쓰기의 DocBook 스타일 시트가 하드 코딩 공식에 대한 절대 경로와 하나 개의 XSL 파일 :

0

OK, 그럼 난 해결책을 발견. 모든 사용자 정의 스타일 시트를 가져옵니다. (분명히 그렇게 할 수 있습니다.)

공식 스타일 시트가 움직이는 경우 하나의 파일 만 편집하면됩니다.

(이는 여전히 마법 스타일 시트를 찾을 수 있어야 함을 의미합니다. 모든 문서를 보관하는 위의 폴더에 넣으면이 간단한 경로가 상대 경로로 사용됩니다.)