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.
Demandes liées
Révisions associées
Historique
Mis à jour par Robot Gitea il y a 11 mois
- Statut changé de Nouveau à 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
Mis à jour par Pierre Ducroquet il y a 10 mois
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).
Mis à jour par Frédéric Péters il y a 10 mois
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 ?
Mis à jour par Frédéric Péters il y a 10 mois
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
Mis à jour par Pierre Ducroquet il y a 10 mois
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.
Mis à jour par Robot Gitea il y a 10 mois
- Statut changé de Solution proposée à En cours
Frédéric Péters (fpeters) a relu et demandé des modifications sur une pull request sur Gitea concernant cette demande :
Mis à jour par Thomas Noël il y a 10 mois
- Statut changé de Solution validée à En cours
Robot Gitea a écrit :
Thomas NOËL (tnoel) a approuvé une pull request
Non, erreur de manip.
Mis à jour par Robot Gitea il y a 10 mois
- Statut changé de Solution proposée à Solution validée
Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 10 mois
- Statut changé de Solution validée à 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
Mis à jour par Transition automatique il y a 10 mois
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Frédéric Péters il y a 10 mois
- Lié à 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 ajouté
general: switch to lxml to have a complete XML parser (#78281)