2014-11-15 2 views
-1

Saxon을 사용하여 프로그래밍 방식으로 XSLT를 생성하려고합니다. 이것은 Create xslt files programmatically과 비슷한 질문이지만 그 질문에 대한 답이 없었기 때문에 다시 한 번 질문합니다.프로그래밍 방식으로 XSLT를 생성하는 방법

http://saxon.sourceforge.net/saxon7.0/api-guide.html에 따르면 "이 문서는 XSLT 스타일 시트를 사용하지 않고 Saxon을 Java 클래스 라이브러리로 사용하는 방법을 설명합니다."

(나는 위에서 언급 한 다른 질문에 답합니다.) 그런 다음 나중에 다시로드하고 실행할 수있는 스타일 시트로 직렬화 할 수 있습니다. 그러나 나는 이미 그럴 것이라고 생각했습니다.

Saxon이 답이 아니라면 어떤 Java 라이브러리가이를 지원합니까?

그런데 닷넷을 사용하여이 모든 작업을 수행하는 것은 쉽지 않습니다. 불행히도 나는 이것을위한 자바 솔루션이 필요하다.

도움을 주시면 대단히 감사하겠습니다.

+4

XSLT는 XML입니다. 따라서 XSLT를 생성하려면 XML을 생성하는 것과 동일한 프로세스가 필요합니다. (당신이하고 싶은 것을 .NET 버전으로 작동한다면, 그것을 보여주십시오. 적절한 명세가 없으면이 질문은 너무 광범위합니다.) – Tomalak

답변

1

글쎄, 처음에는 릴리스 7.0 이후 Saxon의 26 가지 주요 릴리스와 무수한 유지 관리 릴리스가 있었으므로 거기에서 읽은 것을 잊어 버리십시오.

XSLT 코드 생성기를 Java 또는 XSLT로 작성할지 여부는 명확하지 않습니다. XSLT가 아닌 Java로 왜 그렇게하고 싶은지 알 수는 없지만 어느 것도 어렵지 않습니다. 당신의 질문에 대한 주된 문제는 그것이 당신이 왜 그것이 문제라고 생각하는지 설명하지 않는다는 것입니다. XSLT 스타일 시트를 생성하는 것은 다른 XML 문서를 생성하는 것과 같습니다. 무엇이 문제입니까?

0

나는 이것을 얼마 전에 알아 냈고, 나는 나의 대답을 나눌 것이라고 생각했다. 이것은 Create xslt files programmatically에 대한 대답 일 수도 있고있을 수도 있지만 내 질문이 아니기 때문에 그렇게 생각하지 않을 것입니다.

대답은 XSLT (또는 Saxon)를 전혀 사용하지 않는 것입니다. 원래는 특정 (xml) 트리 구조를 변환하기위한 규칙이 프로그래밍 방식으로 알려진 XSLT 모델을 생성하는 API가 필요했습니다. 그런 다음 모델을 다시로드하여 동일한 구조의 다른 트리를 다시 변환 할 수 있도록 스타일 시트로 유지할 수 있습니다. 물론 XSLT 스타일 시트 문서가 포함 된 DOM을 프로그래밍 방식으로 만들 수는 있지만 왜 내가 원하는 것일까 요? 비효율적 인 - 모든 XSLT 구문 (지루한)을 사용하여 DOM을 만들고 저장 한 다음 SAXON을 사용하여 읽는 등 비효율적입니다. 차라리 XSLT를 기본적으로 이해하는 API를 사용하고 싶습니다. 프로그래밍하고 직렬화 할 수 있습니까?

어쨌든 내 문제에 대한 대답은 SAX를 사용하는 것입니다. 프로그래밍 방식으로 내 트리에 대한 특정 변환 규칙을 알고 있기 때문에 규칙을 사용하여 스트림을 처리하는 처리기를 작성하기 만하면됩니다. 결국에는 프로그램 외부에서 살 수있는 XSLT 스타일 시트가 없지만 그걸로 살게 될 것입니다.

그리고 나는 .Net이 나의 첫 번째 접근 방식을지지한다고 말한 것을 되돌립니다. 나는 그것이 게시하기 전에 귀하의 가정을 확인하는 것이 단지 알림임을 알았습니다.

그러나 내 질문에 대한 대답은 달성하기가 쉽지만 방법을 대략적으로 설명하기보다는 왜 내가 원하는지에 대해 의문을 제기했습니다. 누군가에게 질문하는 이유를 물어볼 필요가 있다고 느끼면 적어도 질문에 대답하려고 할 수 있습니까?

+0

"* 질문을하는 이유를 물어볼 필요가 있다고 느껴질 때 적어도 질문에 대답하려고 할 수 있습니까? *"사람들에게 질문하는 이유를 묻습니다. 그래서 대답을 찾을 수 있습니다. 그들에게 도움이 될 수 있습니다. –

+0

Michael, 제 질문은 Saxon을 사용하여 프로그래밍 방식으로 XSLT를 생성 할 수 있는지 여부입니다. 답장하면서 나는 그것이 쉽지만 어떤 세부 사항도없이 말하게되었다. 나는 또한 XSLT가 단지 XML이고 다른 XML과 마찬가지로 (세부 사항없이 - 아마도 Saxon을 포함하지 않는 DOM을 통해) 생성한다고 들었다. 그래서 내 질문에 대한 대답은 내가 추측 해선 안된다. Saxon을 사용하여 XSLT를 생성 할 수 있다면 세부 사항이 좋을 것입니다. 내가 겪고있는 문제는 내 대답으로 묘사했다. 프로그래밍 방식으로 변환 할 구조를 알고 있으며이를 변환하기위한 간단한 프로그래밍 방식이 필요합니다. – Paul

+0

나는 이것이이 토론을하기에 좋은 장소라고 생각하지 않는다. 나는 왜 질문을하는 사람이 어디에서 왔는지를 이해해야하는 이유에 대해 논평하고있었습니다. –

관련 문제