Ticket #21 (accepted chyba)

Opened 11 years ago

Last modified 11 years ago

Kompatibilita s procesorem Saxon 9.1.0.8

Reported by: fiki Owned by: fiki
Priority: blokuje Milestone: Uvedení na světový trh
Component: XSLT šablona Version: vývojová
Keywords: Cc:

Description

Po přechodu ze Saxonu 9.0 (lucid) na Saxon 9.1.0.8 (raring) se objevily dva problémy.

1) Booleovské parametry předávané z Antu

V dřívější verzi se řetězec true pořetypoval na xs:boolean (díky as="xs:boolean"). V novější verzi dojde k vyhození chyby:

Fatal Error! Required type is xs:boolean; supplied value has type xs:string

Problém by šlo obejít pomocí

<xsl:param name="parametrBezTypu"/>
<xsl:variable name="parametr" select="$parametrBezTypu cast as xs:boolean"/>

Ale je to ošklivé, protože pro jeden parametr bychom měli dva názvy – v Antu by se jmenoval jinak než v XSLT. Lze z Antu předat přímo boolean? Lze v XSLT procesoru vynutit automatické přetypování?

2) chybějící atributy předávané z XSLT do javovské funkce

Při předávání atributu, který ve zdrojovém dokumentu chybí, z XSLT do Javy

<xsl:variable name="souborDiagramu" select="j:vytvořDiagram(
    $zadání, 
    @orientace = 'vodorovně', 
    $kompletní,
    tokenize(base-uri(), '/')[last()],
    @src
    )"/>

dojde v nové verzi Saxonu k chybě:

[xslt] Failed to process null

BUILD FAILED
…/build.xml:39: ; SystemID: file:…/šablona/makra/diagramy.xsl; Line#: 63; Column#: -1
net.sf.saxon.instruct.TerminationException: Processing terminated by xsl:message at line 89 in diagramy.xsl
    at net.sf.saxon.instruct.Message.processLeavingTail(Unknown Source)
    at net.sf.saxon.instruct.Choose.processLeavingTail(Unknown Source)
    at net.sf.saxon.expr.LetExpression.processLeavingTail(Unknown Source)

Odkazy

Change History

Changed 11 years ago by fiki

  • status changed from new to accepted

Jak obejít problém: použít tuto verzi Saxonu (SHA-256):

3cb7336b154eabfb0d78a1b9b5f7c70e15a9c790193676803fa4391b60de7ebb saxonb-9.0-lucid.jar

Stačí v build.uživatelské.properties nastavit:

xslt.jar=/…/saxonb-9.0-lucid.jar
Note: See TracTickets for help on using tickets.