# on ne fait rien, tout a ete fait dans le init
self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1)
+ def nomComplet(self) :
+ print (self, self.nom)
# def creeTexteComplexe(self,laListe):
# if (len(laListe))==1:
def CreeTexteComplexeVenantDesFils(self,dansFactorisation=False):
texteComplexeVenantDesFils=""
- fichierDejaDumpe=False
+ blocsDejaDumpes=set()
#for nom in self.ordre_mc:
# mcFils = self.entites[nom]
for mcFils in self.mcXSD :
- if not (isinstance(mcFils, Accas.BLOC_FICHIER)) :
+ if not (isinstance(mcFils, Accas.BLOC)) :
mcFils.dumpXsd(dansFactorisation)
self.texteComplexe += mcFils.texteElt
self.texteSimple += mcFils.texteSimple
texteComplexeVenantDesFils += mcFils.texteComplexe
continue
- elif not fichierDejaDumpe :
+ else :
+ if hasattr(mcFils,'nomXML') and mcFils.nomXML in blocsDejaDumpes: continue
+ if hasattr(mcFils,'nomXML') : blocsDejaDumpes.add(mcFils.nomXML)
mcFils.dumpXsd(dansFactorisation)
self.texteComplexe += mcFils.texteElt
self.texteSimple += mcFils.texteSimple
texteComplexeVenantDesFils += mcFils.texteComplexe
- fichierDejaDumpe = True
return texteComplexeVenantDesFils
def dumpXsd(self,dansFactorisation=False):
def compare(self,autreMC):
if self.label != autreMC.label : return False
+ if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
for attr in ( 'regles', 'fr', 'defaut', 'min' ,'max', 'position' , 'docu' ) :
val1=getattr(self,attr)
val2=getattr(autreMC,attr)
independant=True
for (bloc,indInListe) in liste :
if bloc.isDisjoint(child) : continue
+ if bloc.estLeMemeQue(child) : continue
independant=False
vraimentIndependant=False
if not (independant) :
for l in list(self.listeDesBlocsNonDisjointsAvecIndex) :
if len(l) ==1 : self.listeDesBlocsNonDisjointsAvecIndex.remove(l)
+ def estLeMemeQue(self,autreMC):
+ if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
+ return False
+
def aUnPremierCommunDansLesPossibles(self, laListe) :
# fonctionne avec liste de mc ou une liste(mc,index)
import types
def compare(self,autreMC):
if self.label != autreMC.label : return False
+ if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
for attr in ( 'condition', 'regles', ):
val1=getattr(self,attr)
val2=getattr(autreMC,attr)
listeAComparer = [ 'type', 'defaut', 'min' ,'max' ,'val_min' , 'val_max' ]
if self.intoXML != None : listeAComparer.append('intoXML')
else : listeAComparer.append('into')
+ if (hasattr (self, 'nomXML')) and self.nomXML != None : nomUtil=self.nomXML
for attr in listeAComparer :
val1=getattr(self,attr)
val2=getattr(autreMC,attr)