2012-12-10 2 views
1

많은 템플릿이 포함 된 다소 큰 XSL 파일이 있습니다. 이제 다른 XSL 파일의 템플릿을 추가해야합니다. 불행히도, 거기에 사용 된 일부 템플릿 이름은 첫 번째 파일의 템플릿 이름과 동일합니다. 따라서 복사하여 붙여 넣기 만하면 전체 XSL이 손상됩니다.병합하기 전에 XSL 파일을 리팩터링하는 방법은 무엇입니까?

두 번째 XSL 파일을 추가하기 전에 리팩토링하는 가장 간단한 방법은 무엇입니까? 템플릿을 다른 네임 스페이스 또는 다른 것에 넣을 수 있습니까?

답변

1

새 코드를 작성하는 경우 템플릿 이름을 네임 스페이스에 넣을 수 있습니다.

코드가 이미 존재하는 경우

, 당신은 XSLT 변환을 처리하고 $SomeSuffix 글로벌/외부 변수입니다 '_', $SomeSuffix와 연결된 값 어떤

/*/xsl:template/@name 

을 대체하는 새로운 변환을 작성할 수 있습니다.

동일한 프로세스를 사용하여 이름 공간에있는 템플리트의 이름을 매개 변수로 대체 할 수 있습니다.

+0

허, XSL로 XSL 리팩토링. 좋은데! 나는 그것을 시도 할 것이다. – svz

+0

@svz, 괜찮습니다. 문제가 발생하면 알려주세요. –

+0

@DimitreNovatcev는 매력처럼 작동했지만,'call-template' 노드의 이름도 바꿔야했습니다. – svz

0

이름이 지정된 템플릿 (예 : template name="foo") 인 경우 예 : <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:l1="http://example.com/l1" version="1.0"><xsl:template name="l1:foo">...</xsl:template></xsl:stylesheet>과 같은 네임 스페이스를 사용하여 구분합니다.

관련 문제