2011-05-03 4 views
3

XSLT에서 사용자 지정 함수를 수행하는 방법을 배우고 있습니다. 내가 찾은 모든 예는 맞춤 네임 스페이스를 선언 한 것 같습니다.XSLT의 네임 스페이스

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:mynamespace="http://whatever"> 

내가 이해할 수없는 것은 현재 'http : // whatever'가있는 곳으로 무엇이 있어야하며 무엇이 수행됩니까? 함수를 만들기 위해 기본 xsl 네임 스페이스를 사용할 수 없습니까? 사전에 어떤 도움

감사에서

답변

2

http://www.w3.org/TR/xslt20/#stylesheet-functions

참고 :

접두사가 reserved namespace를 참조해서는 안됩니다에서 [see ERR XTSE0080]

,559,553,210

정의 : XSLT 네임 스페이스 는 XSLT 프로세서 인식 어떤 다른 네임 가되어 함께 예약 스페이스로 분류 이 및 관련 사양에 사용되는 전용으로 지정해야한다. 그것은 에 정적 오류가 이름으로 예약 된 네임 스페이스를 사용하다 http://www.w3.org/TR/xslt20/#err-XTSE0080

에서

명명 된 템플릿, 모드, 세트 속성, 핵심하는 진수 포맷의 , 변수 또는 매개 변수, 스타일 시트 함수, 명명 된 출력 정의 또는 문자 맵입니다.

+0

감사합니다. – Mitya

+0

@Mitya : 천만에요. –

1

스타일 시트가 제거 가능 코드 인 경우 로컬 기능의 네임 스페이스에 대해 원하는 것을 사용하십시오. 나는 때때로 "http : // localhost /"를 사용하지만, "my : functions"도 사용하는 것으로 알려져있다. 스타일 시트를 다른 사람들이 보거나 사용하고 함수를 재사용하고 문서화해야하는 경우에는 전역 적으로 고유 한 이름 공간을 선택하는 것을주의 깊게 생각하고 함수 사양에 대한 설계 권한을 반영해야합니다. 대부분의 사람들은 http://your.domain.name/ns/purpose과 같은 것을 선택하고, 웹의 해당 위치에 함수 스펙을 두는 것도 고려해 볼 수 있습니다. 함수 라이브러리가 특정 XML 어휘와 밀접하게 관련되어 있고 해당 어휘와 동일한 설계 권한을 가진 또 다른 규칙은 해당 어휘의 요소와 동일한 네임 스페이스에 함수를 넣는 것입니다.