Ticket #21 (accepted chyba)
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