Development #78281
ExportToModel: perte des namespaces XML dans les documents lors de la transformation
0%
Description
Le code de génération des documents ne conserve pas l'ensemble des namespaces XML définis dans le document source. Or, LibreOffice peut stocker des éléments référençant les namespaces dans des attributs, ce qui n'est pas pris en compte par les parseurs XML, et provoque donc la perte pure et simple des namespaces en question à la génération.
Ce bug est responsable du non-fonctionnement d'au moins deux éléments demandés sur la génération de documents:
- les paragraphes masqués,
- les conditions d'affichage sur les sections.
Le correctif ne devrait pas être trop complexe, mais impliquera certainement de passer d'ElementTree à un "vrai" parseur XML plus exhaustif comme lxml.
Related issues
Associated revisions
History
Updated by Robot Gitea 4 months ago
- Status changed from Nouveau to En cours
Pierre Ducroquet (pducroquet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/362
- Titre : WIP: export_to_model: switch to lxml to have a complete XML parser (#78281)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/362/files
Updated by Pierre Ducroquet 4 months ago
Après vérification dans la norme OpenDocument, ce comportement surprenant y est pourtant clairement indiqué.
http://docs.oasis-open.org/office/v1.2/cs01/OpenDocument-v1.2-cs01-part1.html#__RefHeading__1418812_253892949
The text:condition attribute specifies a condition. Conditions do not have a predefined syntax, but the attribute value should begin with a namespace prefix, followed by a ":" (U+003A, COLON) separator, followed by the text of a formula. The namespace bound to the prefix determines the syntax and semantics of the formula.
Donc avec ElementTree, on risque de casser les documents à cause de cette syntaxe qui est en dehors de la syntaxe XML "normale", seule comprise et prise en compte par ElementTree. Et ElementTree ne permet pas d'ajouter arbitrairement un ensemble de namespaces devant être présents dans le document (choix d'implémentation acceptable, mais du coup problématique ici).
Updated by Frédéric Péters 4 months ago
Il y a déjà eu un ticket sur cette affaire, #66352, et bricolage pour ce cas particulier.
À propos de :
- les paragraphes masqués,
- les conditions d'affichage sur les sections.
Il y a un ticket à lier qui exposerait le problème, avec des documents, ou c'est se prémunir d'un problème sur ces éléments ?
Updated by Frédéric Péters 4 months ago
Pas de ticket, ça vient de tracim, https://publik.tracim.fr/ui/workspaces/1/contents/thread/2229 / https://publik.tracim.fr/ui/workspaces/1/contents/thread/371
Updated by Pierre Ducroquet 4 months ago
Frédéric Péters a écrit :
Pas de ticket, ça vient de tracim, https://publik.tracim.fr/ui/workspaces/1/contents/thread/2229 / https://publik.tracim.fr/ui/workspaces/1/contents/thread/371
tracim + villejuif lors du club jeudi (pendant la présentation de la roadmap, et j'étais convaincu que ça devait fonctionner en théorie, puis j'ai vu ce problème avec ElementTree)
D'ailleurs au club utilisateur ça a été mentionné dans les diapositives comme fonctionnalités à ajouter.
Updated by Robot Gitea 4 months ago
- Status changed from Solution proposée to En cours
Frédéric Péters (fpeters) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Updated by Thomas Noël 4 months ago
- Status changed from Solution validée to En cours
Robot Gitea a écrit :
Thomas NOËL (tnoel) a approuvé une pull request
Non, erreur de manip.
Updated by Robot Gitea 4 months ago
- Status changed from Solution proposée to Solution validée
Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :
Updated by Robot Gitea 4 months ago
- Status changed from Solution validée to Résolu (à déployer)
Pierre Ducroquet (pducroquet) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/362
- Titre : switch to lxml to have a complete XML parser (#78281)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/362/files
Updated by Transition automatique 4 months ago
- Status changed from Résolu (à déployer) to Solution déployée
Updated by Frédéric Péters 3 months ago
- Related to Development #78836: avoir le(s) namespace(s) nécessaire(s) aux conditions sur sections & paragraphes masqués lors de la génération d'odt added
general: switch to lxml to have a complete XML parser (#78281)