Projet

Général

Profil

Development #78281

ExportToModel: perte des namespaces XML dans les documents lors de la transformation

Ajouté par Pierre Ducroquet il y a 11 mois. Mis à jour il y a 10 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 juin 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

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

Lié à w.c.s. - Development #78836: avoir le(s) namespace(s) nécessaire(s) aux conditions sur sections & paragraphes masqués lors de la génération d'odtFermé21 juin 2023

Actions

Révisions associées

Révision d3b3eba5 (diff)
Ajouté par Pierre Ducroquet il y a 10 mois

general: switch to lxml to have a complete XML parser (#78281)

Historique

#1

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 :

#2

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).

#3

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 ?

#5

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.

#6

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de En cours à Solution proposée
#7

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 :

#8

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de En cours à Solution proposée
#9

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de Solution proposée à Solution validée
#10

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.

#11

Mis à jour par Robot Gitea il y a 10 mois

  • Statut changé de En cours à Solution proposée
#12

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 :

#13

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 :

#14

Mis à jour par Transition automatique il y a 10 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#15

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é
#16

Mis à jour par Transition automatique il y a 8 mois

Automatic expiration

Formats disponibles : Atom PDF