def definitNomDuTypePyxb(self,forceACreer=False):
- if hasattr(self,'nomDuTypePyxb') :
- self.aCreer = False
- return self.nomDuTypePyxb
+ if hasattr(self,'nomDuTypePyxb') : return self.nomDuTypePyxb
+ #except : pass
self.aCreer = True
cata = CONTEXT.getCurrentCata()
nom='T_'+self.nom
def __init__(self,nom,listeDeCreation,pere):
#print ('__ X_compoFactoriseAmbigu', listeDeCreation)
- #for (i,index) in listeDeCreation : print (i.nom)
+ #for (i,index) in listeDeCreation : print i.nom
self.label = 'compoAmbigu'
self.nom=nom
self.pere=pere
self.mcXSD.append(mc)
self.ordre_mc.append(mc.nom)
- print (self.mcXSD)
- print (self.ordre_mc)
+ #print (self.mcXSD)
+ #print (self.ordre_mc)
self.construitEntites(self.mcXSD)
self.constructionArbrePossibles()
lesPossibles=deepcopy(self.arbrePossibles)
#print ('self.mcXSD',self.mcXSD)
self.texteComplexe += finTypeSubstDsBlocFactorise
self.texteComplexe +=self.texteComplexeVenantDesFils
- # PN ?? 12 mai self.texteComplexe=self.texteComplexe+self.texteComplexeVenantDesFils
+ self.texteComplexe=self.texteComplexe+self.texteComplexeVenantDesFils
self.label='BlocAmbigu'
#print ('fin pour prepareDumpXSD pour', self.nom)
def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None):
#print ('_______________________________ factoriseEtCreeDump')
#print(self.nom, laListe, indent, nomAppel)
- import traceback; traceback.print_stack()
maListeRetour=[]
aReduire={}
#print (self.texteComplexe)
#print ('_____', 'self.texteComplexeVenantDesFils')
#print (self.texteComplexeVenantDesFils)
- print ('fin pour _______________________________', self.nom)
+ #print ('fin pour _______________________________', self.nom)
return (maListeRetour)
def ajouteAuxTextes(self,nomMC,indent) :
#print ('ajouteAuxTextes', nomMC, self.nom, self.entites)
- print ('ajouteAuxTextes', nomMC, self.entites[nomMC])
+ #print ('ajouteAuxTextes', nomMC, self.entites[nomMC])
#for i in self.entites.keys() : print (self.entites[i][0].nom)
if (indent > 3) : indent = indent - 3
else : indent = 0
mc=self.entites[nomMC][0]
mc.dumpXsd(dansFactorisation=True)
self.texteComplexe += '\t'*(indent) + mc.texteElt
- if mc.nomDuTypePyxb not in self.mcDejaDumpe :
- self.texteComplexeVenantDesFils += mc.texteComplexe
- self.texteSimple += mc.texteSimple
- self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+ self.texteComplexeVenantDesFils += mc.texteComplexe
+ self.texteSimple += mc.texteSimple
return
leType=type(self.entites[nomMC][0])
# cette boucle ne fonctionne que pour des SIMP
resteATraiter=copy(self.entites[nomMC])
- print ('________resteATraiter', resteATraiter)
+ #print ('________resteATraiter', resteATraiter)
listePourUnion=[]
first=1
while resteATraiter != [] :
nvlListeATraiter=[]
mc=resteATraiter[0]
- #print (mc)
listePourUnion.append(mc)
for autre in resteATraiter[1:]:
if not (mc.compare(autre)) : nvlListeATraiter.append(autre)
if len(listePourUnion) == 1:
mc=listePourUnion[0]
mc.dumpXsd(dansFactorisation=True,multiple=False,first=first)
+ if self.nom == 'B1_B2' and nomMC == 'Numerical': print (mc.dumpXsd)
self.texteComplexe += '\t'*(indent) + mc.texteElt
- if mc.nomDuTypePyxb not in self.mcDejaDumpe :
- self.texteComplexeVenantDesFils += mc.texteComplexe
- self.texteSimple += mc.texteSimple
- self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+ self.texteComplexeVenantDesFils += mc.texteComplexe
+ self.texteSimple += mc.texteSimple
return
# on ajoute le nom de l element
if len(listePourUnion) == 1 :
mc=self.entites[nomMC][0]
mc.dumpXsd(dansFactorisation=True,multiple=True,first=first)
- if mc.nomDuTypePyxb not in self.mcDejaDumpe :
- self.texteComplexeVenantDesFils += mc.texteComplexe
- self.texteSimple += mc.texteSimple
- self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+ self.texteComplexeVenantDesFils += mc.texteComplexe
+ self.texteSimple += mc.texteSimple
else :
- # PN --> faire tous les cas tests
for e in listePourUnion :
- #print ( 'dans le else ', e)
e.dumpXsd(dansFactorisation=True,multiple=True,first=first)
- if first and (e.nomDuTypePyxb not in self.mcDejaDumpe) :
- #print ('first -------- ',e.texteSimple)
- self.texteComplexeVenantDesFils += e.texteComplexe
- self.mcDejaDumpe.add(e.nomDuTypePyxb)
- texteSimpleUnion += '\t'*(indent)+e.texteSimple
- first=first * 0
- else :
- texteSimpleUnion += '\t'*(indent)+e.texteSimple
- #print ('non first -------- ',e.texteSimple)
- # print (e.texteSimple)
+ self.texteComplexeVenantDesFils += e.texteComplexe
+ first=first * 0
+ texteSimpleUnion += '\t'*(indent)+e.texteSimple
texteSimpleUnion += finUnion
texteSimpleUnion+=fermeSimpleType
self.texteSimple += texteSimpleUnion
#print (self.nom)
for mcFils in self.mcXSD :
if not (isinstance(mcFils, Accas.BLOC)) :
+ #print (mcFils.nom , 'ajout')
mcFils.dumpXsd(dansFactorisation)
+ #print (mcFils.texteSimple)
self.texteComplexe += mcFils.texteElt
self.texteSimple += mcFils.texteSimple
texteComplexeVenantDesFils += mcFils.texteComplexe
- continue
else :
#print (mcFils.nom)
if hasattr(mcFils,'nomXML') and mcFils.nomXML in blocsDejaDumpes and mcFils.nomXML != None : continue
return texteComplexeVenantDesFils
def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
- #print ('_________ dumpXsd___________', self.nom)
- #if PourTraduction : print (self.nom)
- self.prepareDumpXSD()
+ print ('_________ dumpXsd___________', self.nom)
+ if PourTraduction : print (self.nom)
+ # le prepareDump est appele sur les fils
+ if not (self.dejaPrepareDump) : self.prepareDumpXSD()
self.getNomDuCodeDumpe()
self.nomDuTypePyxb = self.definitNomDuTypePyxb()
return True
def prepareDumpXSD(self):
- #print (' ************************ prepareDumpXSD pour', self.nom)
+ #print (' uuuuuuuuuuuuuuuuuuuuuuuuu prepareDumpXSD pour', self.nom)
+ self.dejaPrepareDump=True
self.inUnion=False
self.tousLesFils=[]
self.mcXSD=[]
newListe=self.mcXSD[0:indexDebut]
monEltFacteur=X_compoFactoriseAmbigu(nom,listeAFactoriser,self)
-
newListe.append(monEltFacteur)
newListe=newListe+self.mcXSD[indexFin:]
self.mcXSD=newListe
#--------------------------------
def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
#print ('_______________' , '*******************', 'je passe la dans dumpXsd SIMP', self.nom, multiple, first)
- if PourTraduction : print (self.nom)
+ #if PourTraduction : print (self.nom)
self.prepareDumpXSD()
if multiple : self.inUnion=True
#print ('exploreObjet SIMP')
# self.aCreer est mis a jour ds definitNomDuTypePyxb
# ou si elt est le 1er d une liste identique
+ #print ('je suis aCreer', self.aCreer)
if not self.aCreer : return
if not multiple : self.texteSimple += debutSimpleType.format(self.nomDuTypePyxb)
if existeunUserASSD:
if existeASSD : texteDesFields = texteDesFields + texteDesUserASSD[0:-2] +"/>\n\t\t"
else: texteDesFields = texteDesUserASSD[0:-2]
- print (texteDesUserASSD)
- print (texteDesFields)
+ #print (texteDesUserASSD)
+ #print (texteDesFields)
if texteDesFields != "" :
texteKeyRef += producingASSDkeyRefDeclaration.format( clef ,texteDesFields)
#import pprint
#if (not PourTraduction) and (dico != {}) : pprint.pprint(dico)
print ('__________________________ decommenter pour le texteXSD________________________')
- print (self.texteXSD)
+ #print (self.texteXSD)
return self.texteXSD