Bug #3380
TXM 0.8.3, XTZ Import, 1-split-merge and 4-edition XSL steps broken
Status: | New | Start date: | 04/27/2023 | ||
---|---|---|---|---|---|
Priority: | Normal | Due date: | |||
Assignee: | - | % Done: | 80% |
||
Category: | Import | Spent time: | - | ||
Target version: | TXM 0.8.3 |
Description
TXM RCP 0.8.3.202304121142
System: Ubuntu 20.04
- [Sharedocs] Cactus/Projets/JournauxFrancophones/TXM 0.8.3 Testing/davydovachron-fr-txm080/
- [Sharedocs] HRIM Data/Pole HN/EThAP 2023/Ethap 2023 - Fichiers/Jour_2/Exercices_corr/JOUBERT
- No files are transmitted via split-merge (1st example)
- *-pager.xsl transformation fails (2nd example)
Both corpora are correctly imported via TXM 0.8.2
1st example¶
Le corpus DAVYDOVACHRON-FR-TXM080 sera créé à partir du dossier /home/alavrent/xml/davydovachron-fr-txm080. Le paramètre d'importation 'annotate' est activé par défaut car l'extensionTreeTagger est installée. Restauration des paramètres d'importation à partir du fichier de paramètres import.xml. Sauvegarde des paramètres d'importation… Compiling the "xtz" import module scripts... Démarrage du module d'import "xtz"... Import du corpus... -- IMPORTER - Reading source files -- Split-Merge XSL Step with /home/alavrent/xml/davydovachron-fr-txm080/xsl/1-split-merge -- Applying /home/alavrent/xml/davydovachron-fr-txm080/xsl/1-split-merge/txm-merge-and-split-davydova.xsl XSL to 8 files with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/split/} 8 . -- Front XSL Step with the /home/alavrent/xml/davydovachron-fr-txm080/xsl/2-front directory. -- Applying '/home/alavrent/xml/davydovachron-fr-txm080/xsl/2-front/1-remove-seg.xsl' XSL to 0 files from directory '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/split' with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080/} result written in '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' -- Applying '/home/alavrent/xml/davydovachron-fr-txm080/xsl/2-front/2-merge-adjacent-elements.xsl' XSL to 0 files from directory '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080/} result written in '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' -- Applying '/home/alavrent/xml/davydovachron-fr-txm080/xsl/2-front/3-merge-adjacent-elements-pass2.xsl' XSL to 0 files from directory '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080/} result written in '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' -- Applying '/home/alavrent/xml/davydovachron-fr-txm080/xsl/2-front/4-txm-filter-teip5-og-xtz-davydova.xsl' XSL to 0 files from directory '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080/} result written in '/home/alavrent/TXM-0.8.3/corpora/DAVYDOVACHRON-FR-TXM080/txm/DAVYDOVACHRON-FR-TXM080' -- Checking XML-TEI files for well-formedness. No XML file (*.xml) to process. Aborting Error while importing corpus during 'importer' step, reason=not set.
2nd example¶
Applying /home/alavrent/Documents/Enseignement/EThAP 2023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl XSL to 2 files with parameters: {output-directory=file:/home/alavrent/TXM-0.8.3/corpora/JOUBERT-TEST-CORR/HTML/JOUBERT-TEST-CORR/default/, number-words-per-page=1000, import-xml-path=/home/alavrent/TXM-0.8.3/corpora/JOUBERT-TEST-CORR, pagination-element=pb} 2 .Error in xsl:result-document/@href on line 211 column 97 of 2-default-pager.xsl: XTDE1480 Cannot execute xsl:result-document while evaluating xsl:variable invoked by xsl:for-each-group at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#207 In template rule with match="*[a[xs:string(@class) eq "txm-page"]]" on line 203 of 2-default-pager.xsl invoked by xsl:apply-templates at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#85 invoked by xsl:for-each at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#84 In template rule with match="html/body" on line 76 of 2-default-pager.xsl invoked by xsl:apply-templates at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#177 at template groupbypb on line 160 column 34 of 2-default-pager.xsl: invoked by xsl:for-each at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#175 at template groupbypb on line 160 column 34 of 2-default-pager.xsl: invoked by xsl:for-each-group at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#163 at template groupbypb on line 160 column 34 of 2-default-pager.xsl: invoked by xsl:call-template at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#148 at template checkpb on line 139 column 32 of 2-default-pager.xsl: invoked by xsl:call-template at file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl#97 In template rule with match="*" on line 96 of 2-default-pager.xsl invoked by built-in template rule (text-only) Exception in thread "XTZ Pager - JOUBERT" ; SystemID: file:/home/alavrent/Documents/Enseignement/EThAP%202023/Jour_2/Exercices_corr/JOUBERT/xsl/4-edition/2-default-pager.xsl; Line#: 211; Column#: 97 net.sf.saxon.trans.XPathException: Cannot execute xsl:result-document while evaluating xsl:variable at net.sf.saxon.expr.instruct.ResultDocument.checkNotTemporaryOutputState(ResultDocument.java:509) at net.sf.saxon.expr.instruct.ResultDocument.process(ResultDocument.java:385) at net.sf.saxon.expr.instruct.ResultDocument.processLeavingTail(ResultDocument.java:380) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:755) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:943) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:142) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:614) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:755) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:142) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:357) at net.sf.saxon.expr.instruct.Copy.processLeavingTail(Copy.java:437) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:392) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:551) at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:634) at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:362) at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:299) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:755) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:142) at net.sf.saxon.expr.instruct.ForEach.lambda$processLeavingTail$0(ForEach.java:531) at net.sf.saxon.om.SequenceTool.supply(SequenceTool.java:147) at net.sf.saxon.expr.instruct.ForEach.processLeavingTail(ForEach.java:531) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:142) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:357) at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:298) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:755) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:943) at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:142) at net.sf.saxon.expr.instruct.ForEachGroup.processLeavingTail(ForEachGroup.java:614) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:755) at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:266) at net.sf.saxon.expr.instruct.CallTemplate.process(CallTemplate.java:384) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:302) at net.sf.saxon.expr.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:45) at net.sf.saxon.expr.parser.Evaluator$SingleItem.evaluate(Evaluator.java:179) at net.sf.saxon.expr.parser.Evaluator$SingleItem.evaluate(Evaluator.java:167) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:554) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:746) at net.sf.saxon.expr.instruct.Choose.processLeavingTail(Choose.java:943) at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:755) at net.sf.saxon.expr.instruct.NamedTemplate.expand(NamedTemplate.java:266) at net.sf.saxon.expr.instruct.CallTemplate$CallTemplatePackage.processLeavingTail(CallTemplate.java:561) at net.sf.saxon.trans.rules.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:74) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:524) at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:685) at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:421) at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:353) at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:75) at org.txm.importer.ApplyXsl2.process(ApplyXsl2.java:309) at org.txm.importer.ApplyXsl2.processImportSources(ApplyXsl2.java:517) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318) at org.txm.scripts.importer.xtz.XTZPager.doPostEditionXSLStep(XTZPager.groovy:424) at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318) at org.txm.scripts.importer.xtz.XTZPager.process(XTZPager.groovy:72) at org.txm.importer.xtz.ImportModule$2.run(ImportModule.java:242)
Solution¶
During the importer step, in the split-merge XSL : the function in Saxon 11 (see https://www.saxonica.com/html/documentation12/functions/fn/document-uri.html). This function was used to retrieve files testing their names. The solution is to add "stable=yes" to the URI of collection.
During the XSL pager step, in the Edition+Merge XSL : calling xsl:result-document while evaluating a xsl:variable is forbidden (or the XSL test fails). Move the first pass of the split XSL in the edition XSL
History
#1 Updated by Alexey Lavrentev 5 months ago
- Subject changed from TXM 0.8.3, XTZ Import, 1-split-merge ans 4-edition steps broken to TXM 0.8.3, XTZ Import, 1-split-merge and 4-edition XSL steps broken
#2 Updated by Serge Heiden 5 months ago
- Description updated (diff)
#3 Updated by Alexey Lavrentev 5 months ago
UPDATE:
As far *-pager.xsl transformation is concerned, the problem can be reproduced with Oxygen 25 / Saxon 11.4. It may be related to the "streaming" processing mode, but this mode should only be available in Saxon EE and its desactivation in Oxygen has no effect on the error message.
Further investigation is necessary to see whether it is a Saxon bug or a more strict implementation of the norm.
As a work-around, the 1st pass of the pagination algorithm may be executed at the -html step. A new version of 1-default-html and 2-default-pager stylesheets will be provided.
The problem with 1-split-merge transformation is different.
#4 Updated by Alexey Lavrentev 5 months ago
- % Done changed from 0 to 80
The problem with the split-merge step of Davydova corps is due to the change of the document-uri() function in Saxon 11 (see https://www.saxonica.com/html/documentation12/functions/fn/document-uri.html). This function was used to retrieve files testing their names.
The solution is to add "stable=yes" to the URI of collection.
#5 Updated by Matthieu Decorde 5 months ago
- Description updated (diff)