]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
pour les include en cascade. reste le pb de l include du milieu
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 28 Nov 2019 12:50:21 +0000 (13:50 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 28 Nov 2019 12:50:21 +0000 (13:50 +0100)
Efi2Xsd/AccasXsd.py
Efi2Xsd/balisesXSD.py

index d0ef77535e98a1e31f3b9481a95edab21c8a8a40..a4e9274437a00cfbd542f24b4348392932bd77cc 100755 (executable)
@@ -100,7 +100,7 @@ class X_definitionComposee (X_definition):
              fichierDejaDumpe = True
        return texteComplexeVenantDesFils
 
-   def dumpXsd(self, inExtension=False):
+   def dumpXsd(self):
        #print ('------------------------------------------------')
        if PourTraduction  : print (self.nom)
  
@@ -113,13 +113,11 @@ class X_definitionComposee (X_definition):
        # 
        if self.aCreer :
           self.texteComplexe = debutTypeCompo.format(self.nomDuTypePyxb)
-          if inExtension :    self.texteComplexe +=  debutEtension.format(self.nomDuCodeDumpe)
           self.texteComplexe += debutTypeCompoSeq
           texteComplexeVenantDesFils=self.CreeTexteComplexeVenantDesFils()
           self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
           if not isinstance(self,X_OPER ) : 
              self.texteComplexe += finTypeCompoSeq
-             if inExtension : self.texteComplexe += finExtension
              self.texteComplexe += finTypeCompo
        else :
           self.texteComplexe = ""
@@ -159,13 +157,12 @@ class X_FACT (X_definitionComposee):
 # ---------------------------------
 class X_OPER (X_definitionComposee):
 # ---------------------------------
-   def dumpXsd(self,inExtension=False):
+   def dumpXsd(self):
        X_definitionComposee.dumpXsd(self, inExtension)
        self.texteComplexe += finTypeCompoSeq
        self.texteComplexe += operAttributeName
        self.texteComplexe += attributeTypeForASSD
        self.texteComplexe += attributeTypeUtilisateurName.format(self.sd_prod.__name__)
-       if inExtension : self.texteComplexe += finExtension
        self.texteComplexe += finTypeCompo
      
 
@@ -328,55 +325,50 @@ class X_JDC_CATA :
     def dumpXsd(self):
         cata = CONTEXT.getCurrentCata() 
 
-        print ('self.implement  -------------------', self.implement)
-        print ('self.importedBy -------------------', self.importedBy)
+        #print ('self.implement  -------------------', self.implement)
+        #print ('self.importedBy -------------------', self.importedBy)
+        #print ('self.code       -------------------', self.code)
 
         self.texteSimple   = ""
         self.texteComplexe = ""
-        self.texteCata     = ""
+        self.texteCata     = ""  
+        self.texteDeclaration = ""
+        self.texteInclusion   = ""
+        self.texteElt      = ""
 
-        # a verifier
         if self.implement == "" :
            self.nomDuCodeDumpe=self.labelCode
+           self.texteCata    += debutTypeCata.format(self.nomDuCodeDumpe)
         else :
            self.nomDuCodeDumpe = self.implement
+           self.texteCata      +=  debutTypeCataExtension.format(self.nomDuCodeDumpe)
+           self.texteCata      +=  debutExtension.format(self.code,self.nomDuCodeDumpe)
+           self.texteInclusion += includeCata.format(self.code)
 
-        if self.implement == "" :
-           self.texteCata     = debutTypeCata.format(self.nomDuCodeDumpe)
-           self.inExtension = False
-        else :
-           self.inExtension = True
-           self.texteSimple += TypeEtEltAbstraitCodeSpec.format(self.nomDuCodeDumpe,self.nomDuCodeDumpe, self.nomDuCodeDumpe, self.nomDuCodeDumpe,)
-           self.texteCata   += includeCata.format(self.nomDuCodeDumpe)
-           self.texteCata   += EltCodeSpecDsCata.format(self.nomDuCodeDumpe)
-
-        self.texteElt      = ""
         self.nomDuTypePyxb = 'T_'+self.nomDuCodeDumpe
-
         self.dumpLesCommandes()
 
-
-        #for commande in  self.commandes :
-        #    commande.nomDuCodeDumpe=self.nomDuCodeDumpe
-        #    commande.dumpXsd()
-        #    self.texteSimple += commande.texteSimple
-        #    self.texteSimple += commande.texteComplexe
-        #    self.texteCata   += commande.texteElt
         #self.texteSimple += TypeEtEltAbstraitCodeSpec.format(self.nomDuCodeDumpe)
+
         self.texteTypeAbstrait=''
         for codeHeritant in self.importedBy: 
-            self.texteCata   += EltCodeSpecDsCata.format(codeHeritant)
-            self.texteTypeAbstrait += eltAbstrait.format(codeHeritant,codeHeritant,codeHeritant)
-        self.texteCata  += finTypeCata
+            self.texteCata += EltCodeSpecDsCata.format(codeHeritant)
+            self.texteTypeAbstrait += eltAbstrait.format(codeHeritant,codeHeritant,codeHeritant,codeHeritant)
+
+        if self.implement != "" : self.texteCata = self.texteCata + finExtension + finTypeCompo
+        else : self.texteCata  += finTypeCata
+
         self.texteElt  = eltCata.format(self.nomDuCodeDumpe,self.nomDuCodeDumpe, self.nomDuTypePyxb)
 
-        self.texteXSD  = texteDebut.format(self.nomDuCodeDumpe,self.nomDuCodeDumpe,self.nomDuCodeDumpe,self.nomDuCodeDumpe)
-        #self.texteXSD += textDeclaration
+        self.texteXSD  = texteDebut.format(self.code,self.code,self.code,self.code)
+        if self.texteInclusion != ""   : self.texteXSD += self.texteInclusion
         self.texteXSD += self.texteSimple
-        self.texteXSD += self.texteTypeAbstrait
+        self.texteXSD += self.texteComplexe
+        if self.texteTypeAbstrait != "" : self.texteXSD += self.texteTypeAbstrait
         self.texteXSD += self.texteCata
         self.texteXSD += self.texteElt
         self.texteXSD += texteFin
+
         #if not PourTraduction : print (self.texteXSD)
         dico = {}
         for  k in list(cata.dictTypesXSD.keys()):
@@ -391,6 +383,7 @@ class X_JDC_CATA :
   
         #import pprint
         #if (not PourTraduction) and  (dico != {}) : pprint.pprint(dico)
+        print (self.texteXSD)
         return self.texteXSD
 
    
@@ -440,12 +433,12 @@ class X_JDC_CATA :
          
 
         self.texteSimple = ''
-        self.texteElt = ''
+        self.texteComplexe = ''
         for c in allClassToDump :
             if not(isinstance(c, Accas.OPER)) and not(isinstance(c, Accas.PROC))  : continue
             c.nomDuCodeDumpe=self.nomDuCodeDumpe
-            c.dumpXsd(self.inExtension)
-            self.texteSimple += c.texteSimple
-            self.texteSimple += c.texteComplexe
+            c.dumpXsd()
+            self.texteSimple   += c.texteSimple
+            self.texteComplexe += c.texteComplexe
             c.texteElt=eltCompoDsSequenceInExtension.format(c.nom,self.nomDuCodeDumpe,c.nomDuTypePyxb)
-            self.texteCata   += c.texteElt
+            self.texteCata  += c.texteElt
index 77e2021538fd54fc1dd81f8d3b310f8d12179b90..0dc86a3d422c8cd4727e50fe7803812c51698d6e 100644 (file)
@@ -44,19 +44,20 @@ attributeTypeUtilisateurName = '\t\t<xs:attribute name="typeUtilisateur" type="x
 
 # CATA
 debutTypeCata = '\t<xs:complexType name="T_{}">\n\t\t<xs:choice minOccurs="0" maxOccurs="unbounded">\n'
+debutTypeCataExtension = '\t<xs:complexType name="T_{}">\n'
 finTypeCata   = '\t\t</xs:choice>\n\t</xs:complexType>\n'
 finSchema     = '</xs:schema>'
 eltCata = '\t<xs:element name="{}" type="{}:{}"/>\n'
 TypeEtEltAbstraitCodeSpec  = '\t<xs:complexType name="T_{}_Specific" abstract="true"/>\n\t<xs:element name="{}_Specific" type="{}:T_{}_Specific"/>\n'
 EltCodeSpecDsCata='\t\t\t<xs:element ref="{}:Code_Specific" minOccurs="0" maxOccurs="1"/>\n'
-includeCata = '\t<xs:include schemaLocation="cata_{}_genere.xsd" />\n\n'
+includeCata = '<xs:include schemaLocation="cata_{}_genere.xsd" />\n\n'
 
 # EXTENSION
-debutEtension = '\t\t<xs:complexContent>\n\t\t<xs:extension base="{}:T_Code_Specific">\n'
-finExtension = '\t\t</xs:extension>\n\t\t</xs:complexContent>\n'
+debutExtension = '\t\t<xs:complexContent>\n\t\t<xs:extension base="{}:T_{}">\n\t\t<xs:choice minOccurs="0" maxOccurs="unbounded">\n'
+finExtension = '\t\t</xs:choice>\n\t\t</xs:extension>\n\t\t</xs:complexContent>\n'
 
 # TYPE ABSTRAIT
-eltAbstrait = '\t\t<xs:complexType name="T_{}" abstract="true"/>\n\t\t<xs:element name="{}" type="Vimmp:T_{}\n"/>'
+eltAbstrait = '\t<xs:complexType name="T_{}" abstract="true"/>\n\t<xs:element name="{}" type="{}:T_{}"/>\n'
 
 
 if __name__ == '__main__' :