1

XSLT クックブック: 第 2 版(O'Reilly: Mangano、2006 年)から例をコピーしています。マンガノは SVG を使用してツリー図を作成します。このコードをすばやくテストする方法として、JSTL の<x:transform/>タグを使用して XML を変換し、それを Jetty 6 で実行していますjava:java.lang.Math:max

エラー: 「外部メソッド 'max' が見つかりません (パブリックである必要があります)。」致命的なエラー: 「スタイルシートをコンパイルできませんでした」

エラーが発生するコードは、次の場所に含まれています...Math:max(...

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
                xmlns:emath="http://www.exslt.org/math"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:tree="http://www.ora.com/XSLTCookboox/ns/tree"
                xmlns:xalan="http://xml.apache.org/xslt"
                xmlns:Math="xalan:java.lang.Math">
...
<!--Pass 1 copies input with added bookkeeping attributes -->  
<xsl:variable name="treeWithLayout">
  <xsl:apply-templates mode="layout"/>
</xsl:variable>

<xsl:variable name="maxPos" 
      select="Math:max($treeWithLayout/*/@tree:WEIGHT * 
                       ($nodeWidth + $horzSpace),
                       $treeWithLayout/*/@tree:MAXDEPTH * 
                         ($nodeHeight + $vertSpace))"/>
...
4

2 に答える 2

1

私はこの使用法をオンラインで見つけました:

<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:math="xalan://java.lang.Math"
  extension-element-prefixes="math">
于 2009-03-13T17:39:51.617 に答える
1

不足している引数がある場合、このメッセージを受け取ることができます。例えば:

あなたが書く

<xsl:variable name="maxPos" select="Math:max(9)"/>

代わりは

<xsl:variable name="maxPos" select="Math:max(9, 15)"/>
于 2011-02-18T15:00:22.803 に答える