textePath='./'+ self.code + ":" + textePath
return textePath
- #def genealogie(self,n):
- # texte=self.nom
- # obj=self
- # j=1
- # while ( hasattr(obj,'pere') ):
- # texte=obj.pere.nom+'_'+texte
- # obj=obj.pere
- # j=j+1
- # if j > n : return (True, 'T_'+texte)
- # return (False, 'T_'+texte)
+ def getNomCompletAvecBloc(self):
+ obj=self
+ texteNom=self.nom
+ while ( hasattr(obj,'pere') ):
+ texteNom=obj.pere.nom+'_'+texteNom
+ obj=obj.pere
+ return texteNom
+
def definitNomDuTypePyxb(self):
self.aCreer = True
self.texteXSD += self.texteCata
self.texteXSD += self.texteElt
+ toutesLesKeys=set()
texteKeyRef = ""
+ # Pour le nom des key_ref en creation : le type ( une seule key-ref par type. facile a retrouver)
for clef in self.dictTypesASSDorUserASSDCrees:
print ('---- En creation', clef, '__________________')
existeASSD=0
existeunUserASSD=0
for unSimp in self.dictTypesASSDorUserASSDCrees[clef]:
if not (isinstance(unSimp, Accas.SIMP)) : continue
- texteDesUserASSD +="\n\t\t<xs:field xpath="+self.code+":"+unSimp.getXPath()
+ texteDesUserASSD += unSimp.getXPath() + " | "
existeunUserASSD=1
if existeunUserASSD:
- if existeASSD : texteDesFields = texteDesFields + "/>\n\t\t"+texteDesUserASSD
- else: texteDesFields = texteDesUserASSD[19:]
+ if existeASSD : texteDesFields = texteDesFields + texteDesUserASSD[0:-2] +"/>\n\t\t"
+ else: texteDesFields = texteDesUserASSD[0:-2]
#print (texteDesUserASSD)
#print (texteDesFields)
if texteDesFields != "" :
- #print (texteDesFields)
texteKeyRef += producingASSDkeyRefDeclaration.format( clef ,texteDesFields)
+ # Pour le nom des key-ref en utilisation : la genealogie complete ( une key-ref par utilisation et on retrouve facilement la )
for clef in self.dictTypesASSDorUserASSDUtilises:
for unSimp in self.dictTypesASSDorUserASSDUtilises[clef]:
# il faut la genealogie
- texteKeyRef += UsingASSDkeyRefDeclaration.format(unSimp.nom, unSimp.type[0].__name__,self.code, unSimp.type[0].__name__,unSimp.getXPath() )
+ texteKeyRef += UsingASSDkeyRefDeclaration.format(unSimp.getNomCompletAvecBloc(), unSimp.type[0].__name__,self.code, unSimp.type[0].__name__,unSimp.getXPath() )
if texteKeyRef != '' :
self.texteXSD = self.texteXSD[0:-3]+'>\n'