]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
keyref pour les ASSD et les UserASSD
authorpascale.noyret <pascale.noyret@edf.fr>
Wed, 11 Dec 2019 08:52:58 +0000 (09:52 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Wed, 11 Dec 2019 08:52:58 +0000 (09:52 +0100)
Efi2Xsd/AccasXsd.py

index 2262ee798c8d9132f34a49f1b7e4d0caf7bc2824..ac7b084e5512ec0da85fad51bed7a9a6c568e751 100755 (executable)
@@ -46,16 +46,14 @@ class X_definition:
        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
@@ -397,7 +395,9 @@ class X_JDC_CATA :
         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
@@ -411,22 +411,22 @@ class X_JDC_CATA :
             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'