From ae6d070f636be11b6f307ee91298b0da3936a129 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Mon, 6 Apr 2020 18:20:33 +0200 Subject: [PATCH] correction bug simp de meme nom --- Efi2Xsd/AccasXsd.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index 6f6ed9a9..f4acc10b 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -102,6 +102,8 @@ class X_definition: def definitNomDuTypePyxb(self,forceACreer=False): + try : print ('appel de definitNomDuTypePyxb', self.nom ) + except : pass self.aCreer = True cata = CONTEXT.getCurrentCata() nom='T_'+self.nom @@ -116,8 +118,6 @@ class X_definition: indice=0 while (indice < len(listePossible)) : objAComparer=listePossible[indice] - #print ('je compare', self.nom, 'avec', objAComparer.nom ) - #print (self.compare(objAComparer) ) if self.compare(objAComparer) : return objAComparer.nomDuTypePyxb indice += 1 self.aCreer = True @@ -125,7 +125,7 @@ class X_definition: if self.nom == 'SimpK' : print (cata.dictTypesXSD) nomAlter='T_'+self.nom+'_'+str(indice) if (hasattr (self, 'nomXML')) and self.nomXML != None : nomAlter='T_'+self.nomXML+'_'+str(indice) - traceback.print_stack() + #traceback.print_stack() return nomAlter @@ -304,6 +304,7 @@ class X_compoFactoriseAmbigu(X_definition): def ajouteAuxTextes(self,nomMC,indent) : + print ('ajouteAuxTextes', nomMC) if (indent > 3) : indent = indent - 3 else : indent = 0 if len(self.entites[nomMC]) == 1: @@ -321,30 +322,35 @@ class X_compoFactoriseAmbigu(X_definition): exit() - print (self.entites[nomMC][0]) + # cette boucle ne fonctionne que pour des SIMP resteATraiter=copy(self.entites[nomMC]) + print ('________resteATraiter', resteATraiter) listePourUnion=[] first=1 while resteATraiter != [] : nvlListeATraiter=[] mc=resteATraiter[0] - mc.dumpXsd(dansFactorisation=True,multiple=True,first=first) - first=first * 0 listePourUnion.append(mc) for autre in resteATraiter[1:]: if not (mc.compare(autre)) : nvlListeATraiter.append(autre) resteATraiter=copy(nvlListeATraiter) + print ('listePourUnion', listePourUnion) # on ajoute le nom de l element + self.entites[nomMC][0].dumpXsd(dansFactorisation=True,multiple=True,first=first) self.texteComplexe += '\t'*(indent) + self.entites[nomMC][0].texteElt texteSimpleUnion=debutSimpleType.format(self.entites[nomMC][0].nomDuTypePyxb) texteSimpleUnion+=debutUnion if len(listePourUnion) == 1 : + mc=self.entites[nomMC][0] + mc.dumpXsd(dansFactorisation=True,multiple=True,first=first) self.texteComplexeVenantDesFils += mc.texteComplexe self.texteSimple += mc.texteSimple else : - self.texteComplexeVenantDesFils += mc.texteComplexe for e in listePourUnion : + e.dumpXsd(dansFactorisation=True,multiple=True,first=first) + self.texteComplexeVenantDesFils += e.texteComplexe + first=first * 0 texteSimpleUnion += '\t'+e.texteSimple texteSimpleUnion += finUnion texteSimpleUnion+=fermeSimpleType @@ -631,7 +637,7 @@ class X_BLOC (X_definitionComposee): class X_SIMP (X_definition): #-------------------------------- def dumpXsd(self, dansFactorisation=False, multiple = False, first=False): - #print ('_______________' , '*******************', 'je passe la dans dumpXsd SIMP', self.nom, multiple, first) + print ('_______________' , '*******************', 'je passe la dans dumpXsd SIMP', self.nom, multiple, first) if PourTraduction : print (self.nom) self.prepareDumpXSD() if multiple : self.inUnion=True @@ -647,11 +653,17 @@ class X_SIMP (X_definition): # --> homonymie on peut utiliser genealogie ? self.nomDuTypeDeBase = self.traduitType() if not multiple : + print ('not multiple') self.nomDuTypePyxb = self.definitNomDuTypePyxb() - self.aCreer = True + print (self.nomDuTypePyxb) elif first : + print ('but first') self.nomDuTypePyxb = self.definitNomDuTypePyxb(forceACreer=1) self.aCreer = True + print (self.nomDuTypePyxb) + else : print ('multiple and not first', self.aCreer) + print ('___________________________') + # on se sert des listes ou non pour la gestion des minOccurs /maxOccurs est > 0 @@ -691,7 +703,7 @@ class X_SIMP (X_definition): if self.val_min != float('-inf') : self.texteSimple += "\t\t\t\t"+minInclusiveBorne.format(self.val_min) if self.val_max != float('inf') and self.val_max != '**' : self.texteSimple +="\t\t\t\t"+ maxInclusiveBorne.format(self.val_max) if self.into != None: - # PN --> traduction des ontp + # PN --> traduction des into into=self.into if self.intoXML != None : into = self.intoXML for val in into : self.texteSimple += "\t\t\t\t"+enumeration.format(val) -- 2.39.2