]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
correction bug simp de meme nom
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 6 Apr 2020 16:20:33 +0000 (18:20 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 6 Apr 2020 16:20:33 +0000 (18:20 +0200)
Efi2Xsd/AccasXsd.py

index 6f6ed9a974cf5c41f7c545a2aa605bde07265515..f4acc10b2721896bbd986456b1034e0ea9175c8e 100755 (executable)
@@ -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)