]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
1ere version substitution
authorpascale.noyret <pascale.noyret@edf.fr>
Wed, 16 May 2018 08:04:29 +0000 (10:04 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Wed, 16 May 2018 08:04:29 +0000 (10:04 +0200)
Efi2Xsd/AccasXsd.py
Efi2Xsd/MCAccasXsd.py
Efi2Xsd/balises.py
Efi2Xsd/readerEfiXsd.py

index e05e7be4fe1794fc99297274fe4c5f2d158692dc..2d8005049aae2f1ae0a467828a132e2b88372cd5 100755 (executable)
@@ -70,6 +70,8 @@ class X_definitionComposee (X_definition):
 
        self.traduitMinMax()
        self.texteElt=eltDsSequence.format(self.nom,self.code,self.nomDuTypeCree,self.minOccurs,self.maxOccurs)
+       #print (self.texteComplexe)
+       #print ('------------------------------------------------')
 
    def traduitMinMax(self):
    # ____________________
@@ -100,7 +102,29 @@ class X_PROC (X_definitionComposee):
 class X_BLOC (X_definitionComposee):
 #-----------------------------------
    def dumpXsd(self):
-      X_definitionComposee.dumpXsd(self)
+       #print ('------------------------------------------------')
+       #print ('dumpXsd de ' , self.nom)
+       self.getCode()
+       self.nomDuTypeCree  = self.nomSimple()
+       self.texteSimple    = "" # on n ajoute pas de type simple
+
+       self.texteComplexe = debutTypeSubst.format(self.nomDuTypeCree)
+       texteComplexeVenantDesFils=""
+       for nom in self.ordre_mc:
+          mcFils = self.entites[nom]
+          mcFils.dumpXsd()
+          self.texteComplexe += mcFils.texteElt
+          self.texteSimple   += mcFils.texteSimple 
+          texteComplexeVenantDesFils += mcFils.texteComplexe
+       self.texteComplexe += finTypeSubst
+       self.texteComplexe  = texteComplexeVenantDesFils + self.texteComplexe
+
+       self.traduitMinMax()
+       # Pour les blocs le minOccurs vaut 0 bien sur
+       self.minOccurs=0
+       self.texteElt=substDsSequence.format(self.code,self.nomDuTypeCree,self.minOccurs,self.maxOccurs)
+       #print ('------------------------------------------------')
 
 #--------------------------------
 class X_SIMP (X_definition):
@@ -114,7 +138,13 @@ class X_SIMP (X_definition):
        #self.traduitValMinValMax()
        self.nomDuTypeDeBase = self.traduitType()
        self.nomDuTypeCree   = self.nomSimple()
-       self.texteSimple     = typeSimple.format(self.nomDuTypeCree, self.nomDuTypeDeBase)
+       if self.into != None:
+         self.texteSimple   =  debutTypeSimpleWithInto.format (self.nomDuTypeCree, self.nomDuTypeDeBase)
+         for val in self.into :
+             self.texteSimple += typeSimpleWithInto.format(val)
+         self.texteSimple  += finTypeSimpleWithInto
+       else :
+         self.texteSimple     = typeSimple.format(self.nomDuTypeCree, self.nomDuTypeDeBase)
        self.texteComplexe   = ""
 
        # on se sert des listes si maxOccurs est > 0
@@ -149,6 +179,7 @@ class X_JDC_CATA :
 #-----------------
 
     def dumpXsd(self):
+       
         self.texteSimple   = ""
         self.texteComplexe = ""
         self.nomDuTypeCree='T_'+self.code
@@ -160,9 +191,15 @@ class X_JDC_CATA :
             self.texteSimple += commande.texteComplexe
             self.texteCata   += commande.texteElt
         self.texteCata += finTypeCata
-        self.texteElt=eltCata.format(self.code, self.nomDuTypeCree)
-        print (self.texteSimple)
-        print (self.texteComplexe)
-        print (self.texteCata)
-        print (self.texteElt)
+        self.texteElt=eltCata.format(self.code,self.code, self.nomDuTypeCree)
+
+        self.texteXSD  = texteDebut.format(self.code,self.code,self.code)
+        self.texteXSD += self.texteSimple
+        self.texteXSD += self.texteCata
+        self.texteXSD += self.texteElt
+        self.texteXSD += texteFin
+        #print (self.texteSimple)
+        #print (self.texteCata)
+        #print (self.texteElt)
+        print (self.texteXSD)
    
index eb20219c7c25d3accaaca501c84984e40d030ac1..79ee53d5067ca94e6093b58f58fbcad50345d2e4 100755 (executable)
@@ -13,7 +13,7 @@ class X_MCSIMP:
       
    def buildObjPyxb(self) :
       if not self.cata.modeleMetier : return
-      #print ('X_MCSIMP buildObjPyxb', self.nom, self)
+      print ('X_MCSIMP buildObjPyxb', self.nom, self)
       self.monNomDeClasseModeleMetier='T_'+self.nom
       self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomDeClasseModeleMetier)
       if self.val != None : self.objPyxb=self.maClasseModeleMetier(self.val)
@@ -45,8 +45,9 @@ class X_MCCOMPO:
          if isinstance(objAccas,MCList) :
             for mcfact in objAccas : listArg.append(mcfact.objPyxb)
          else : listArg.append(objAccas.objPyxb)
-      print (listArg)
+      #print (listArg)
       self.objPyxb=self.maClasseModeleMetier(*listArg)
+  
 
 class X_MCFACT :
 # --------------
@@ -60,7 +61,6 @@ class X_MCFACT :
 
 class X_MCLIST:
 # --------------
   
    def buildObjPyxb(self,factList):
       if not self.cata.modeleMetier : return
index c0eee9952e2923106fdf9de880b78f28d7a69bdc..0451a0f19bc099e1d4872c19a34d8a946089d027 100644 (file)
@@ -1,13 +1,28 @@
+texteDebut='<?xml version="1.0" encoding="UTF-8"?>\n<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:{}="http://chercheurs.edf.com/logiciels/{}" targetNamespace="http://chercheurs.edf.com/logiciels/{}" elementFormDefault="qualified" attributeFormDefault="qualified"\n>'
+texteFin='</schema>'
+
+# SIMP
 typeSimple    = '\t<simpleType name="{}">\n\t\t<restriction base="{}"/>\n\t</simpleType>\n'
+debutTypeSimpleWithInto  = '\t<simpleType name="{}">\n\t\t<restriction base="{}">\n'
+typeSimpleWithInto       = '\t\t\t<enumeration value="{}"/>\n'
+finTypeSimpleWithInto    = '\t\t</restriction>\n\t</simpleType>\n'
 eltDsSequence = '\t\t\t<element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
 
+# COMPO
 debutTypeComplexe = '\t<complexType name="{}">\n\t\t<sequence>\n'
 finTypeComplexe   = '\t\t</sequence>\n\t</complexType>\n'
+eltCompoDsSequence = '\t\t\t<element name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}"/>\n'
+
+# BLOC
+debutTypeSubst = '\t<group name="{}">  minOccurs="{}" maxOccurs="{}"\n\t\t<sequence>\n'
+finTypeSubst   = '\t\t</sequence>\n\t</group>\n'
+substDsSequence = '\t\t\t<group ref="{}:{}"  minOccurs="{}" maxOccurs="{}"/>\n'
 
+
+# CATA
 debutTypeCata = '\t<complexType name="{}">\n\t\t<choice minOccurs="0" maxOccurs="unbounded">\n'
 finTypeCata   = '\t\t</choice>\n\t</complexType> '
-
-eltCata = '<element name="JDD" type="{}:{}"/>\n'
+eltCata = '\t<element name="{}" type="{}:{}"/>\n'
 
 
 if __name__ == '__main__' :
index 8288303800784d900902b70ec08c8fc480d5bc1a..c98a16cda8a423454f7e6e7f9549812b5f9c123c 100755 (executable)
@@ -94,6 +94,8 @@ class monSIMP (efficas.T_SIMP,  objetDefinitionAccas):
       #print ("je passe dans  explore pour SIMP ", self.nom)
       self.dictATraiter= dictSIMPXMLEficas
       self.argumentXMLToEficas()
+      #print (self.dictArgsEficas)
+      
 
       self.objAccas=A_SIMP.SIMP(**self.dictArgsEficas)
       self.objAccas.nom=self.nomObj
@@ -109,7 +111,6 @@ class monSIMP (efficas.T_SIMP,  objetDefinitionAccas):
 
 
       self.traiteLesSequences()
-      print (self.dictArgsEficas)
       #self.convertitLesTypes()
 
    def attendListe(self):
@@ -136,8 +137,15 @@ class monSIMP (efficas.T_SIMP,  objetDefinitionAccas):
        for param in listeParamTjsSequence :
           if  param in self.dictArgsEficas :
               if listeDeListe == False: 
-                listeDElt=self.dictArgsEficas[param][0].content()
+                #print ('________________________________')
+                listeDElt=[]
+                for i in range(len(self.dictArgsEficas[param])):
+                # ou typesimple ?
+                # ici on ne sait pas si on est un type simple ou complexe ?
+                    listeDElt.append(self.dictArgsEficas[param][i].content()[0])
                 listeRetour=self.convertitListeDsLeBonType(listeDElt)
+                #print (listeRetour)
+                #print ('________________________________')
                 self.dictArgsEficas[param]=listeRetour
               else :
                  listeResultat=[]
@@ -268,8 +276,10 @@ class monBLOC(efficas.T_BLOC, objetComposeDefinitionAccas):
 class monCata(efficas.T_cata):
 # ------------------------------
    def exploreCata(self):
+      # PNPNPN --> il faut revoir ce mecanisme
+      self.modeleMetier = None
    # On positionne le contexte ACCAS
-      self.JdC = JDC_CATA (code = 'MED', execmodul = None,)
+      self.JdC = JDC_CATA (code = 'Atmo', execmodul = None,)
       self.contexteXML={}
       objAExplorer=self.commandes[0]
       for obj in objAExplorer.content():