From a9c36c872deef96d54f5ec6790ab84fac52f523c Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Fri, 20 Mar 2020 15:52:07 +0100 Subject: [PATCH] ajout d une sequence si necessaire apres un choix --- Efi2Xsd/AccasXsd.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index c8cd6c8d..211c1b58 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -206,7 +206,7 @@ class X_factCompoAmbigu(X_definition): # #if reste != [] :self.creeTexteComplexe(reste) # - def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2): + def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2, apresChoice=False): print ('debut factorise ********', laListe, indent) maListeRetour=[] aReduire={} @@ -217,6 +217,12 @@ class X_factCompoAmbigu(X_definition): else : declencheChoiceAvecSeqVid=False + doitFermerSequence=False + if len(laListe) > 1 and apresChoice : + self.texteComplexe += '\t'*(indent) + debSequenceDsBloc + indent=indent+1 + doitFermerSequence=True + for ligne in laListe : #print (ligne) if aReduire.has_key(ligne[0]) : aReduire[ligne[0]].append(ligne[1:]) @@ -237,7 +243,6 @@ class X_factCompoAmbigu(X_definition): self.texteComplexe += '\t'*indent + debutChoiceDsBloc indent += 1 - print ('creeChoice ', creeChoice, 'creeSequence', creeSequence) for nomMC in aReduire.keys(): if creeSequence : self.texteComplexe += '\t'*(indent) + debSequenceDsBloc; indent=indent+1 @@ -245,7 +250,7 @@ class X_factCompoAmbigu(X_definition): listeSuivante=aReduire[nomMC] if listeSuivante == [[]] : continue # Est-ce toujours vrai ? if len(listeSuivante) == 1 : self.ajouteAuxTextes(listeSuivante[0]) - else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence)) + else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence), creeChoice) if creeSequence : indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc if declencheChoiceAvecSeqVid : @@ -253,6 +258,7 @@ class X_factCompoAmbigu(X_definition): self.texteComplexe += '\t'*indent + finSequenceDsBloc if creeChoice : indent=indent -1 ; self.texteComplexe += '\t'*indent + finChoiceDsBloc + if doitFermerSequence : indent=indent-1;self.texteComplexe += '\t'*(indent) + finSequenceDsBloc print ('________ fin factorise________' , laListe) return (maListeRetour) -- 2.39.2