2013-09-25 2 views
0

Java UUID 클래스의 도움으로 난수를 생성하려고합니다.XSLT에서 Java 메소드 호출

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" xmlns:uuid="java:java.util.UUID"> 
<xsl:template match="/"> 
<xsl:variable name="uid" select="uuid:randomUUID()"/> 
<ClientPK><xsl:value-of select="$uid"/></ClientPK> 

당신은 색슨 (9)를 사용하고 그 기능을 갖고 싶어

Cannot find a matching 0-argument function named {java:java.util.UUID}randomUUID(). 
    Note that direct calls to Java methods are not available under Saxon-HE 

답변

2

http://saxonica.com/documentation/index.html#!extensibility 참조 오류 (라고 반사적 확장 기능) 당신은 PE 또는 EE에 대한 라이센스가 필요합니다.

+0

그렇다면 Saxon (높은) 라이센스 비용을 지불하는 것보다 XSLT 변환 중에 다른 Java 기능을 호출 할 방법이 있습니까? – Black

+0

당신이 사용하고자하는 XSLT 프로세서에 따라 XSLT 1.0 프로세서 Xalan이 Java와 비슷한 메커니즘을 가지고 있다고 생각합니다. Saxon 6.5와 XSLT 1.0 프로세서가 있습니다. Saxon 9, Saxon 9.1 B는 Java로 직접 호출 할 수있는 최신 오픈 소스 제품 버전입니다. 9.2 이후로 http://saxonica.com/documentation/index.html#!extensibility에서 "reflexive extension functions"이라고 부르는 기능 매트릭스를 원한다면 PE 또는 EE가 필요하지만 오픈 소스는 " 통합 확장 기능 ". 훌륭한 정보를 주셔서 감사합니다. –

+0

Saxon 6.5를 사용하고 있었지만 Java를 버전 8로 업데이트하면 이전 Saxon의 버그가 있습니다.이 버그는 업데이트만으로 해결할 수 있습니다. (HE의 새로운 기능이 무엇인지 확인할 것입니다. – Black