2011-02-10 3 views
1

입력 XML의 시간로부터 - 시간의 XPath 기능을 사용 :
<test><TotalDuration>PT1H32M7S</TotalDuration></test>

입력 XSLT :
<?xml version="1.0"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <xsl:template match="/test"> Hours=<xsl:value-of select="fn:hours-from-duration(TotalDuration)"/> hr </xsl:template> </xsl:stylesheet>

예상 출력 : 시간 = 1 시간

대신 다음을 가져 오십시오. [IBM] [DB2/NT64] SQL16280N XSLT 프로세서가 다음 erro r : "XalanXPathException : 함수 x 호"http://www.w3.org/2005/xpath ". SQLSTATE = 225X0는오류 XalanXPathException 때 IBM의 DB2 XSLT 변환

+0

'XalanXpathException'이 표시됩니다. 실제로 Xalan XSLT 프로세서는 XSLT 1.0 프로세서이고 XSLT 2.0 프로세서는 아닙니다. –

답변

0

Expected Output: Hours=1 hr

Instead Getting: [IBM][DB2/NT64] SQL16280N The XSLT processor returned the following error: "XalanXPathException: The function number 'http://www.w3.org/2005/xpath". SQLSTATE=225X0

너무 분명하다 : 당신이 사용하고있는 XSLT 프로세서 (의 Xalan)가 XSLT 2.0을 구현하지 않습니다.

XSLT 2.0을 구현하는 XSLT 프로세서에만 XSLT 2.0 코드를 제공해야합니다.

+0

변환은 DB2 데이터베이스에서 수행됩니다. 즉, XSLT 프로세서는 db2 내부에 있습니다. DB2 데이터베이스가 지원하는 xslt 프로세서를 모릅니다. – pdshah

+0

@ pdshah : 현재 Xalan XSLT 2.0 프로세서가 없다는 것은 잘 알려진 사실입니다. 그리고 오류 메시지는 프로세서를 "Xalan"으로 식별합니다. 그래서 명확하지 않은 것이 있습니까? XSLT 1.0 프로세서에 XSLT 2.0 스타일 시트를 제공 할 수 없습니다. 풀 스톱. –

+0

@Alejandro 귀하의 빠른 답변에 감사드립니다. Xlang은 xslt 1을 구현하므로 예외가 발생합니다. Saxon과 같은 다른 엔진을 사용하도록 DB2를 구성 할 수 있는지 궁금합니다. IBM도 XSLT 2.0 엔진을 보유하고있는 것 같습니다 ([ref] http://www.infoq.com/news/2009/12/was7xmlfp). – pdshah