]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
Première version du catalogue Eficas-Xsd de mascaret
authorEric Fayolle <eric.fayolle@edf.fr>
Wed, 7 Mar 2018 16:17:08 +0000 (17:17 +0100)
committerEric Fayolle <eric.fayolle@edf.fr>
Wed, 7 Mar 2018 16:17:08 +0000 (17:17 +0100)
Efi2Xsd/ModeleEficas/Model Efficas (1.1) v9.xsd [new file with mode: 0755]
mascaret/cata-mascaret-v1.0.xml [new file with mode: 0755]

diff --git a/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v9.xsd b/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v9.xsd
new file mode 100755 (executable)
index 0000000..724f6ae
--- /dev/null
@@ -0,0 +1,724 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- édité avec XMLSpy v2018 sp1 (http://www.altova.com) par Fayolle (EDF R&D) -->\r
+<!-- edited with XMLSpy v2015 rel. 4 (http://www.altova.com) by USER1 (EDF-DSP) -->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
+       <xs:element name="doc" type="T_doc"/>\r
+       <xs:element name="cata" type="T_cata"/>\r
+       <xs:element name="regles" type="T_regles"/>\r
+       <xs:element name="typeCree" type="T_classeUtilisateur"/>\r
+       <xs:element name="valeurDef" type="T_typeAttendu"/>\r
+       <xs:element name="valeurSugg" type="T_typeAttendu"/>\r
+       <xs:element name="fonctionUtilisateur" type="T_fonctionUtilisateur"/>\r
+       <xs:element name="commandes" type="T_commandes">\r
+               <!-- La contrainte suivante fonctionne -->\r
+               <xs:unique name="Uniq_Command">\r
+                       <xs:selector xpath="*"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:element name="validators" type="T_validators"/>\r
+       <xs:element name="plageValeur" type="T_plageValeur"/>\r
+       <xs:element name="typeAttendu" type="T_name"/>\r
+       <xs:element name="classeUtilisateurName" type="T_classeUtilisateurName" abstract="true" substitutionGroup="typeAttendu"/>\r
+       <xs:element name="SIMP" type="T_SIMP"/>\r
+       <xs:element name="portee" type="T_portee" default="None"/>\r
+       <xs:element name="condition" type="T_fonctionUtilisateur"/>\r
+       <xs:element name="borneSup" type="T_typeAttendu"/>\r
+       <xs:element name="borneInf" type="T_typeAttendu"/>\r
+       <!--    <xs:element name="into" type="T_into"/>-->\r
+       <xs:element name="into" type="T_into"/>\r
+       <!--    <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->\r
+       <xs:attribute name="nom" type="AT_nom"/>\r
+       <xs:attribute name="fr" type="xs:string"/>\r
+       <xs:attribute name="ang" type="xs:string"/>\r
+       <xs:attribute name="docu" type="AT_docu"/>\r
+       <xs:attribute name="valeurSugg" type="AT_valeurSugg"/>\r
+       <xs:attribute name="statut" type="AT_statut" default="o"/>\r
+       <xs:attribute name="maxOccurences" type="AT_maxOccurences"/>\r
+       <xs:attribute name="minOccurences" type="AT_minOccurences"/>\r
+       <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>\r
+       <xs:complexType name="T_doc">\r
+               <xs:attribute ref="fr" use="optional"/>\r
+               <xs:attribute ref="ang"/>\r
+               <xs:attribute ref="docu"/>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_cata">\r
+               <xs:sequence>\r
+                       <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_commandes">\r
+               <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+                       <xs:element ref="OPER"/>\r
+                       <xs:element ref="PROC"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_plageValeur">\r
+               <xs:choice>\r
+                       <xs:sequence>\r
+                               <xs:element ref="borneSup" minOccurs="0"/>\r
+                               <xs:element ref="borneInf" minOccurs="0"/>\r
+                       </xs:sequence>\r
+                       <xs:element ref="into"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_accasCommon">\r
+               <xs:sequence>\r
+                       <xs:element ref="regles" minOccurs="0"/>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:choice maxOccurs="unbounded">\r
+                               <xs:element ref="BLOC"/>\r
+                               <xs:element ref="FACT"/>\r
+                               <xs:element ref="SIMP"/>\r
+                       </xs:choice>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+       </xs:complexType>\r
+       <xs:element name="OPER" type="T_OPER">\r
+               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
+               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau dans OPER ou PROC    -->\r
+               <xs:key name="Key_Name_In_Oper">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Exclus" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Exclus">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_A_Classer">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Au_Moins_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Au_Plus_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Ensemble">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Present_Absent">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Present_Present">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Un_Parmi">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:complexType name="T_OPER">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_accasCommon">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="typeCree"/>\r
+                               </xs:sequence>\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="PROC" type="T_PROC">\r
+               <!-- La contrainte fonctionne pour toutes les PROC adjacentes et devrait être par PROC -->\r
+               <xs:key name="Key_Name_In_Proc">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC | ./efficas:FACT| ./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Exclus" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Exclus">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_A_Classer">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Au_Moins_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Au_Plus_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Ensemble">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Present_Absent">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Present_Present">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Un_Parmi">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:complexType name="T_PROC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_accasCommon">\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="FACT" type="T_FACT">\r
+               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
+               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau de FACT              -->\r
+               <xs:key name="Key_Name_In_Fact">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Fact" refer="Key_Name_In_Fact">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+       </xs:element>\r
+       <!-- Définition par restriction -->\r
+       <!--    <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_accasCommon">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="regles" minOccurs="0"/>\r
+                                       <xs:element ref="doc" minOccurs="0"/>\r
+                                       <xs:choice maxOccurs="unbounded">\r
+                                               <xs:element ref="BLOC"/>\r
+                                               <xs:element ref="FACT"/>\r
+                                               <xs:element ref="SIMP"/>\r
+                                       </xs:choice>\r
+                               </xs:sequence>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>-->\r
+       <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_accasCommon">\r
+                               <xs:attribute ref="statut"/>\r
+                               <xs:attribute ref="minOccurences" default="1"/>\r
+                               <xs:attribute ref="maxOccurences" default="1">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:attribute>\r
+                       </xs:extension>\r
+                       <!--                            <xs:assert test=".[exists(@efficas:maxOccurences) and exists(@efficas:minOccurences) and @efficas:maxOccurences  gt @efficas:minOccurences]"/>\r
+-->\r
+                       <!--<xs:assert test="if (.[exists(@efficas:maxOccurences)] and .[exists(@efficas:minOccurences)] ) then (@efficas:maxOccurences  gt @efficas:minOccurences) or @efficas:maxOccurences = -1 else true" altova:message="Erreur maxOccurences  > minOccurences "/>-->\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_fonctionUtilisateur">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:element name="BLOC" type="T_BLOC">\r
+               <xs:key name="Key_Name_In_Bloc">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Bloc" refer="Key_Name_In_Bloc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+       </xs:element>\r
+       <xs:complexType name="T_BLOC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_accasCommon">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="condition"/>\r
+                               </xs:sequence>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_SIMP">\r
+               <xs:sequence>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:element ref="portee" minOccurs="0">\r
+                               <xs:annotation>\r
+                                       <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
+                               </xs:annotation>\r
+                       </xs:element>\r
+                       <xs:element ref="valeurDef" minOccurs="0"/>\r
+                       <xs:element ref="valeurSugg" minOccurs="0"/>\r
+                       <xs:element ref="plageValeur" minOccurs="0"/>\r
+                       <xs:element ref="typeAttendu"/>\r
+                       <xs:element ref="validators" minOccurs="0"/>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+               <xs:attribute ref="statut" default="o"/>\r
+               <xs:attribute ref="minOccurences" default="1"/>\r
+               <xs:attribute ref="maxOccurences" default="1">\r
+                       <xs:annotation>\r
+                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+                       </xs:annotation>\r
+               </xs:attribute>\r
+       </xs:complexType>\r
+       <xs:simpleType name="AT_statut">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="f"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!--<xs:simpleType name="T_repetable">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="n"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>-->\r
+       <xs:simpleType name="T_portee">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="None"/>\r
+                       <xs:enumeration value="Global"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_maxOccurences">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minInclusive value="-1"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_minOccurences">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minInclusive value="0"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Comparable -->\r
+       <!--    <xs:simpleType name="AT_borne_sup">\r
+       <xs:atomic base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_borne_inf">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_docu">\r
+               <xs:annotation>\r
+                       <xs:documentation>Référence une position dans un fichier maître contenant une liste de références à des pages de documentations</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_valeurSugg">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <!-- TODO: Exclure mots clés python|efficas -->\r
+       <xs:simpleType name="AT_nom">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_predicat1">\r
+               <xs:list itemType="AT_nom"/>\r
+               <!-- TODO: Supprimer la liste -->\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_predicat2">\r
+               <xs:sequence>\r
+                       <xs:element name="p1" type="T_predicat1" minOccurs="1"/>\r
+                       <xs:element name="p2" type="AT_nom" minOccurs="1"/>\r
+               </xs:sequence>\r
+               <!-- TODO: Supprimer la séquence -->\r
+       </xs:complexType>\r
+       <xs:element name="A_CLASSER" type="T_predicat2"/>\r
+       <xs:element name="AU_MOINS_UN" type="T_predicat1"/>\r
+       <xs:element name="AU_PLUS_UN" type="T_predicat1"/>\r
+       <xs:element name="ENSEMBLE" type="T_predicat1"/>\r
+       <xs:element name="EXCLUS" type="T_predicat1"/>\r
+       <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>\r
+       <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>\r
+       <xs:element name="UN_PARMI" type="T_predicat1"/>\r
+       <xs:group name="predicat">\r
+               <xs:choice>\r
+                       <xs:element ref="A_CLASSER"/>\r
+                       <xs:element ref="AU_MOINS_UN"/>\r
+                       <xs:element ref="AU_PLUS_UN"/>\r
+                       <xs:element ref="ENSEMBLE"/>\r
+                       <xs:element ref="EXCLUS"/>\r
+                       <xs:element ref="PRESENT_ABSENT"/>\r
+                       <xs:element ref="PRESENT_PRESENT"/>\r
+                       <xs:element ref="UN_PARMI"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+       <xs:complexType name="T_regles">\r
+               <xs:sequence maxOccurs="unbounded">\r
+                       <xs:group ref="predicat"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <!--    <xs:simpleType name="T_typeCree">\r
+               <xs:restriction base="T_classeUtilisateur"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_subroutine">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_validators">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="NoRepeat"/>\r
+                       <xs:enumeration value="OnlyStr"/>\r
+                       <xs:enumeration value="VerifExiste"/>\r
+                       <xs:enumeration value="VerifTypeTuple"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_Bool">\r
+               <xs:restriction base="xs:boolean"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_Bool">\r
+               <xs:list itemType="T_Bool"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_I">\r
+               <xs:restriction base="xs:int"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_I">\r
+               <xs:list itemType="T_I"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_R">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_R">\r
+               <xs:list itemType="T_R"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_TXM">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_TXM">\r
+               <xs:list itemType="T_TXM"/>\r
+       </xs:simpleType>\r
+       <!--fonctionne mais ne permet pas de créer une liste de liste -->\r
+       <xs:simpleType name="T_C">\r
+               <xs:restriction>\r
+                       <xs:simpleType>\r
+                               <xs:list itemType="xs:double"/>\r
+                       </xs:simpleType>\r
+                       <xs:minLength value="2"/>\r
+                       <xs:maxLength value="2"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Ajouter une contrainte : taille pair -->\r
+       <!-- Il n'est pas possible de définir des listes de listes -->\r
+       <xs:simpleType name="T_list_C">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_nameBase">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simpleName">\r
+               <xs:restriction base="T_nameBase">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- On ne peut pas rendre abstrait un simpleType && \r
+          Il n'est pas possible de dériver par restriction un simplecontent d'un type complex qui\r
+          lui peut être abstrait.\r
+    -->\r
+       <xs:simpleType name="T_classeUtilisateurTypeName">\r
+               <xs:restriction base="T_name">\r
+                       <xs:enumeration value="T_classeUtilisateur"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_classeUtilisateurName">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_classeUtilisateurTypeName">\r
+                               <xs:attribute ref="nom" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_name">\r
+               <xs:union memberTypes="T_simpleName">\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="AT_nom">\r
+                                       <xs:enumeration value="T_matriceDouble"/>\r
+                                       <xs:enumeration value="T_matriceSymetriqueDouble"/>\r
+                                       <xs:enumeration value="T_tuple"/>\r
+                                       <xs:enumeration value="T_classeUtilisateur"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:union>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_grma"/>\r
+       <xs:complexType name="T_grno"/>\r
+       <xs:complexType name="T_SalomeEntry"/>\r
+       <xs:complexType name="T_Fichier"/>\r
+       <!--    <xs:complexType name="T_Repertoire"/>-->\r
+       <xs:simpleType name="T_Repertoire">\r
+               <xs:list>\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="xs:string">\r
+                                       <xs:whiteSpace value="preserve"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:list>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simple">\r
+               <xs:union memberTypes="T_I T_list_I T_R T_list_R T_C T_list_C T_TXM T_list_TXM T_Bool T_list_Bool T_Repertoire"/>\r
+       </xs:simpleType>\r
+       <!--    <xs:complexType name="T_TXM"/>-->\r
+       <!--    <xs:simpleType name="T_simple">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="T_list_Double">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <!-- Possibilité d'utiliser un type paramétré ? -->\r
+       <xs:complexType name="T_matriceDouble">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_Double">\r
+                               <xs:attribute name="n" type="xs:integer" use="required"/>\r
+                               <xs:attribute name="m" type="xs:integer" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Faire l'exercice de dériver de T_matriceDouble -->\r
+       <xs:complexType name="T_matriceSymetriqueDouble">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_Double">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Une liste est aussi un type simple ! -->\r
+       <!--    <xs:simpleType name="T_list_anySimpleType">\r
+               <xs:list itemType="xs:anySimpleType"/>\r
+       </xs:simpleType>\r
+-->\r
+       <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->\r
+       <xs:complexType name="T_tuple">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="xs:anySimpleType">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_classeUtilisateur">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:element name="typesimple" type="T_simple"/>\r
+       <xs:element name="matriceDouble" type="T_matriceDouble"/>\r
+       <xs:element name="matriceSymetriqueDouble" type="T_matriceSymetriqueDouble"/>\r
+       <xs:element name="tuple" type="T_tuple"/>\r
+       <xs:element name="classeUtilisateur" type="T_classeUtilisateur"/>\r
+       <!-- Essai -->\r
+       <!--    <xs:group name="T_Attendu_group1">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matriceDouble"/>\r
+                       <xs:element ref="matriceSymetriqueDouble"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classeUtilisateur"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:group name="T_Attendu_group2">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matriceDouble"/>\r
+                       <xs:element ref="matriceSymetriqueDouble"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classeUtilisateur"/>\r
+                       <xs:element ref="fonctionUtilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:group ref="T_Attendu_group1"/>\r
+       </xs:complexType>\r
+       -->\r
+       <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->\r
+       <!--\r
+       <xs:complexType name="T_into">\r
+         <xs:group ref="T_Attendu_group2"/>\r
+       </xs:complexType>\r
+       -->\r
+       <xs:complexType name="T_into">\r
+               <xs:choice>\r
+                       <!--                    <xs:element ref="typesimple" type="T_Base"/>-->\r
+                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="matriceDouble" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="matriceSymetriqueDouble" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="classeUtilisateur" minOccurs="0" maxOccurs="unbounded"/>\r
+                       <xs:element ref="fonctionUtilisateur" minOccurs="0" maxOccurs="1"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_into">\r
+                               <xs:choice>\r
+                                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="matriceDouble" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="matriceSymetriqueDouble" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="classeUtilisateur" minOccurs="0" maxOccurs="1"/>\r
+                               </xs:choice>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+</xs:schema>\r
+<!-- Catalogue EFFICAS équivalent\r
+\r
+# coding: utf-8\r
+from Accas import *\r
+\r
+class carte   (ASSD) : pass\r
+class maille   (ASSD) : pass\r
+class carte_flux_r   (carte):pass\r
+\r
+class NOM_CHAM_INTO:\r
+    def __call__(self, *l_typ_cham, **kwargs):\r
+        return tuple(('A','B','C'))\r
+C_NOM_CHAM_INTO = NOM_CHAM_INTO()\r
+\r
+JdC = JDC_CATA(code='MAP',\r
+               execmodul=None,\r
+               regles=ENSEMBLE('E1','E2','E3')\r
+               )\r
+\r
+CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);\r
+\r
+CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,\r
+                   NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),\r
+                );\r
+\r
+CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,\r
+                NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)\r
+              );\r
+\r
+E1=PROC(nom="E1",\r
+        op=None,\r
+        regles    = (EXCLUS('ETAT_INIT','RESULTAT',),),\r
+        ETAT_INIT = FACT(statut='f', max='**',\r
+                         GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),\r
+                         GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),\r
+                    ),\r
+\r
+        RESULTAT  = FACT(statut='f',\r
+                         DEPL=SIMP(statut='o', typ='R',  validators=NoRepeat()),\r
+                         VITE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                         ACCE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                    ), \r
+        );\r
+\r
+E2=PROC(nom="E2", op=None,\r
+        regles   = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),\r
+        CONCEPT  = FACT(statut='f',max='**',\r
+                   NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),\r
+                   ),\r
+        CHAINE   = SIMP(statut='f',typ='TXM'),\r
+        POSITION = SIMP(statut='f',typ='I',defaut=1),\r
+        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),\r
+        );\r
+\r
+E3=PROC(nom="E3",op=None,\r
+        DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",\r
+                           into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),\r
+        b_blocIn    = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",\r
+             ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),\r
+             ALGO_INTE     = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),\r
+             CARTE        = SIMP(statut='f',typ=carte,),\r
+             b_carte       = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",\r
+                             CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',\r
+                                          fr="Options pour le calcul de contraintes et efforts generalises",\r
+                                           into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)\r
+                             ),\r
+                      ),  \r
+       );\r
+\r
+-->\r
diff --git a/mascaret/cata-mascaret-v1.0.xml b/mascaret/cata-mascaret-v1.0.xml
new file mode 100755 (executable)
index 0000000..6e72049
--- /dev/null
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--Sample XML file generated by XMLSpy v2015 rel. 4 (http://www.altova.com)-->\r
+<cata xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://chercheurs.edf.com/logiciels/efficas ../Efi2Xsd/ModeleEficas/Model%20Efficas%20(1.1)%20%20v9.xsd">\r
+       <commandes>\r
+               <PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="parametresGenerauxAssim">\r
+                       <efficas:SIMP efficas:nom="ctlKS" efficas:statut="o">\r
+                               <efficas:valeurDef>\r
+                                       <efficas:typesimple>false</efficas:typesimple>\r
+                               </efficas:valeurDef>\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="ctlLois" efficas:statut="o">\r
+                               <efficas:valeurDef>\r
+                                       <efficas:typesimple>true</efficas:typesimple>\r
+                               </efficas:valeurDef>\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="ctlWaterline" efficas:statut="o">\r
+                               <efficas:valeurDef>\r
+                                       <efficas:typesimple>true</efficas:typesimple>\r
+                               </efficas:valeurDef>\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="sauvegardeLigneIni" efficas:statut="o">\r
+                               <efficas:valeurDef>\r
+                                       <efficas:typesimple>true</efficas:typesimple>\r
+                               </efficas:valeurDef>\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       <efficas:SIMP efficas:nom="impressionResultats" efficas:statut="o">\r
+                               <efficas:valeurDef>\r
+                                       <efficas:typesimple>true</efficas:typesimple>\r
+                               </efficas:valeurDef>\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+               </PROC>\r
+               <PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="parametresCtlKS">\r
+                       <FACT efficas:nom="parametresGenerauxKS" efficas:statut="o">\r
+                               <SIMP efficas:nom="grandeurObserveeKS" efficas:statut="o">\r
+                                       <efficas:valeurDef>\r
+                                               <efficas:typesimple>Z</efficas:typesimple>\r
+                                       </efficas:valeurDef>\r
+                                       <efficas:plageValeur>\r
+                                       <efficas:into>\r
+                                               <efficas:typesimple>Z</efficas:typesimple>      <efficas:typesimple>Q</efficas:typesimple>                                              \r
+                                       </efficas:into>\r
+                                       </efficas:plageValeur>\r
+                                       <typeAttendu>TXM</typeAttendu>\r
+                               </SIMP>\r
+                               <efficas:SIMP efficas:nom="perturbationLitMin" efficas:statut="o">\r
+                                   <efficas:valeurDef><efficas:typesimple>1</efficas:typesimple></efficas:valeurDef>\r
+                                       <typeAttendu>R</typeAttendu>\r
+                               </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="perturbationLitMaj" efficas:statut="o">\r
+                                   <efficas:valeurDef><efficas:typesimple>1</efficas:typesimple></efficas:valeurDef>\r
+                                       <typeAttendu>R</typeAttendu>\r
+                               </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="seuilRejetMisfitKS" efficas:statut="o">\r
+                                   <efficas:valeurDef><efficas:typesimple>20000</efficas:typesimple></efficas:valeurDef>\r
+                                       <typeAttendu>R</typeAttendu>\r
+                               </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="impressionKS" efficas:statut="o">\r
+                                   <efficas:valeurDef><efficas:typesimple>false</efficas:typesimple></efficas:valeurDef>\r
+                                       <typeAttendu>Bool</typeAttendu>\r
+                               </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="iterationsSigmaKS" efficas:statut="f">\r
+                                       <typeAttendu>R</typeAttendu>\r
+                               </efficas:SIMP>\r
+                       </FACT>\r
+                       <FACT efficas:nom="tempsCtlKS" efficas:statut="o">\r
+                                       <SIMP efficas:nom="tempsDebutCtlKS" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </SIMP>\r
+                               <efficas:SIMP efficas:nom="tempsFinCtlKS" efficas:statut="o">\r
+                                           <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="frequenceObsCtlKS" efficas:statut="o">\r
+                                           <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="dureeCtlKS" efficas:statut="f">\r
+                                           <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                       </FACT>\r
+                       <efficas:FACT efficas:nom="zonesKS" efficas:statut="o">\r
+                               <efficas:FACT efficas:nom="zoneKS" efficas:statut="f">\r
+                                    <efficas:doc efficas:ang="Utiliser le modèle étendu d'Eficas pour projeter NUM en attribut"/>\r
+                    <efficas:FACT efficas:nom="ctlLitMin" efficas:statut="f">\r
+                      <efficas:SIMP efficas:nom="activation" efficas:statut="f">\r
+                                               <typeAttendu>Bool</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="ecartType" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="valMinKS" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="valMaxKS" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                    </efficas:FACT>\r
+                    <efficas:FACT efficas:nom="ctlLitMax" efficas:statut="f">\r
+                      <efficas:SIMP efficas:nom="activation" efficas:statut="f">\r
+                                               <typeAttendu>Bool</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="ecartType" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="valMinKS" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="valMaxKS" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                    </efficas:FACT>\r
+                    <efficas:FACT efficas:nom="stationsObsKS" efficas:statut="o" >\r
+                        <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="1">\r
+                           <efficas:doc efficas:ang="choix dans la projection : soit une sequence d'éléments soit une liste de type simple (Modèle Eficas Etendu)"/>\r
+                                               <typeAttendu>TXM</typeAttendu>\r
+                                               </efficas:SIMP>\r
+                                   </efficas:FACT>\r
+                               </efficas:FACT>\r
+                       </efficas:FACT>\r
+               </PROC>\r
+               <PROC xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" efficas:nom="parametresCtlLois">\r
+               <efficas:FACT efficas:nom="parametresGenerauxLois" efficas:statut="o">\r
+               <efficas:SIMP efficas:nom="grandeurObserveeLois" efficas:statut="o">\r
+                       <efficas:valeurDef><efficas:typesimple>Z</efficas:typesimple></efficas:valeurDef>\r
+                   <efficas:plageValeur><efficas:into><efficas:typesimple>Z</efficas:typesimple><efficas:typesimple>Q</efficas:typesimple></efficas:into></efficas:plageValeur>\r
+                       <typeAttendu>TXM</typeAttendu>\r
+               </efficas:SIMP>\r
+               <efficas:FACT efficas:nom="perturbationsLois" efficas:statut="o">\r
+                       <efficas:FACT efficas:nom="perturbationsCote" efficas:statut="o">\r
+                         <efficas:SIMP efficas:nom="perturbationA" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationB" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationC" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                       </efficas:FACT>\r
+                       \r
+                       <efficas:FACT efficas:nom="perturbationsDebit" efficas:statut="o">\r
+                         <efficas:SIMP efficas:nom="perturbationA" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationB" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationC" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                       </efficas:FACT>\r
+\r
+                       <efficas:FACT efficas:nom="perturbationsDebitLineique" efficas:statut="o">\r
+                         <efficas:SIMP efficas:nom="perturbationA" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationB" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="perturbationC" efficas:statut="o"> <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                       </efficas:FACT>\r
+                       \r
+                       <efficas:SIMP efficas:nom="seuilRejetMisfitLois" efficas:statut="o">\r
+                               <typeAttendu>R</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       \r
+                       <efficas:SIMP efficas:nom="impressionLois" efficas:statut="o">\r
+                               <typeAttendu>Bool</typeAttendu>\r
+                       </efficas:SIMP>\r
+                       \r
+                       <efficas:SIMP efficas:nom="iterationsSigmaLois">\r
+                               <typeAttendu>I</typeAttendu>\r
+                       </efficas:SIMP>\r
+               </efficas:FACT> \r
+               \r
+               <efficas:FACT efficas:nom="tempsCtlLois" efficas:statut="o">\r
+                         <efficas:SIMP efficas:nom="tempsDebutCtlLois" efficas:statut="o">     <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="tempsFinCtlLois" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="frequenceObsCtlLois" efficas:statut="o">   <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="dureeCtlLois" efficas:statut="f">  <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+               </efficas:FACT>\r
+               \r
+               <efficas:FACT efficas:nom="loiCtl" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="-1">\r
+             <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="o"><typeAttendu>TXM</typeAttendu></efficas:SIMP>\r
+             <efficas:FACT efficas:nom="ctlA">\r
+                      <efficas:SIMP efficas:nom="activation" efficas:statut="f">\r
+                                               <typeAttendu>Bool</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="ecartType" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                       </efficas:FACT>\r
+             <efficas:FACT efficas:nom="ctlB">\r
+                      <efficas:SIMP efficas:nom="activation" efficas:statut="f">\r
+                                               <typeAttendu>Bool</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="ecartType" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                       </efficas:FACT>\r
+             <efficas:FACT efficas:nom="ctlC">\r
+                      <efficas:SIMP efficas:nom="activation" efficas:statut="f">\r
+                                               <typeAttendu>Bool</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                      <efficas:SIMP efficas:nom="ecartType" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                       </efficas:FACT>\r
+                       \r
+                       <efficas:FACT efficas:nom="stationsObsLois" efficas:statut="o" >\r
+                        <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="1">\r
+                           <efficas:doc efficas:ang="choix dans la projection : soit une sequence d'éléments soit une liste de type simple (Modèle Eficas Etendu)"/>\r
+                                               <typeAttendu>TXM</typeAttendu>\r
+                                               </efficas:SIMP>\r
+                       </efficas:FACT>\r
+\r
+            <efficas:SIMP efficas:nom="valeurMin" efficas:statut="o"> <typeAttendu>R</typeAttendu> </efficas:SIMP>\r
+            <efficas:SIMP efficas:nom="valeurMax" efficas:statut="o"> <typeAttendu>R</typeAttendu> </efficas:SIMP>\r
+            <efficas:SIMP efficas:nom="constanteApresTBase" efficas:statut="o"> <typeAttendu>Bool</typeAttendu> </efficas:SIMP>\r
+               </efficas:FACT> \r
+               </efficas:FACT>\r
+               </PROC>\r
+               <PROC efficas:nom="parametresCtlWaterline">\r
+                   <FACT efficas:nom="parametresGenerauxWaterline" efficas:statut="o">                    \r
+                         <efficas:SIMP efficas:nom="grandeurObserveeWaterline" efficas:statut="o">\r
+                            <valeurDef><typesimple>Z</typesimple></valeurDef>\r
+                 <efficas:plageValeur><efficas:into><efficas:typesimple>Z</efficas:typesimple><efficas:typesimple>Q</efficas:typesimple></efficas:into></efficas:plageValeur>                    \r
+                                <typeAttendu>TXM</typeAttendu>\r
+                          </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="seuilRejetMisfitWaterline" efficas:statut="o">                 <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="correctionSystematiqueWaterline" efficas:statut="o">       <typeAttendu>Bool</typeAttendu>  </efficas:SIMP>\r
+                   </FACT>\r
+\r
+\r
+                       <FACT efficas:nom="Waterline" efficas:statut="o">\r
+                                       <SIMP efficas:nom="tempsFinCorrection" efficas:statut="o">\r
+                                               <typeAttendu>R</typeAttendu>\r
+                                       </SIMP>\r
+                               <efficas:SIMP efficas:nom="frequenceCorrection" efficas:statut="o">\r
+                                           <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                               <efficas:SIMP efficas:nom="tempsDebutMoyenneIncrements" efficas:statut="o">\r
+                                           <typeAttendu>R</typeAttendu>\r
+                                       </efficas:SIMP>\r
+                       </FACT>\r
+\r
+                       <FACT efficas:nom="sectionsCtlWaterline" efficas:statut="o">\r
+                               <FACT efficas:nom="sectionCtlWaterline" efficas:statut="f" efficas:minOccurences="1" efficas:maxOccurences="-1">\r
+\r
+                    <efficas:FACT efficas:nom="stationsObsWaterline" efficas:statut="o" >\r
+                        <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="1">\r
+                           <efficas:doc efficas:ang="choix dans la projection : soit une sequence d'éléments soit une liste de type simple (Modèle Eficas Etendu)"/>\r
+                                               <typeAttendu>TXM</typeAttendu>\r
+                                               </efficas:SIMP>\r
+                                   </efficas:FACT>\r
+\r
+                                       <efficas:FACT efficas:nom="ecartTypeAvantCtl" efficas:statut="o">\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrEbaucheZ" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrEbaucheQ" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                       </efficas:FACT>\r
+       \r
+                                       <efficas:FACT efficas:nom="ecartTypeApresCtl" efficas:statut="o">\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrEbaucheZ" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrEbaucheQ" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                       </efficas:FACT>\r
+       \r
+                                       <efficas:FACT efficas:nom="longueursPorteeZ" efficas:statut="o">\r
+                                         <efficas:SIMP efficas:nom="longueurPorteeAmont" efficas:statut="o">   <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="longueurPorteeAval" efficas:statut="o">    <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                       </efficas:FACT>\r
+       \r
+                                       <efficas:FACT efficas:nom="longueursPorteeQ" efficas:statut="o">\r
+                                         <efficas:SIMP efficas:nom="longueurPorteeAmont" efficas:statut="o">   <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="longueurPorteeAval" efficas:statut="o">    <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                       </efficas:FACT>\r
+       \r
+                                       <efficas:FACT efficas:nom="courbeTarage" efficas:statut="o">\r
+                                                 <efficas:SIMP efficas:nom="coefficientA" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                                 <efficas:SIMP efficas:nom="coefficientR" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                                 <efficas:SIMP efficas:nom="coefficientB" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                       </efficas:FACT>\r
+       \r
+                               </FACT>\r
+                       </FACT>\r
+\r
+                   \r
+               </PROC>\r
+               <PROC efficas:nom="parametresObservations">\r
+\r
+                       <efficas:FACT efficas:nom="parametresGenerauxObservations" efficas:statut="o">\r
+                                 <efficas:SIMP efficas:nom="prefixeFichierObs" efficas:statut="o">     <typeAttendu>Repertoire</typeAttendu>  </efficas:SIMP>\r
+                                 <efficas:SIMP efficas:nom="pasDeTempsFichierObs" efficas:statut="o">  <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                 <efficas:SIMP efficas:nom="tailleFenetreLissageObs" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                       </efficas:FACT>\r
+\r
+                       <efficas:FACT efficas:nom="stationsObs" efficas:statut="o" >\r
+                               <efficas:FACT efficas:nom="stationObs" efficas:statut="o" >\r
+                        <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="1">\r
+                           <efficas:doc efficas:ang="choix dans la projection : soit une sequence d'éléments soit une liste de type simple (Modèle Eficas Etendu)"/>\r
+                                               <typeAttendu>TXM</typeAttendu>\r
+                                               </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="lbStationHydro" efficas:statut="f">        <typeAttendu>TXM</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="brancheStation" efficas:statut="o">        <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="abscisseStation" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="decalageStation" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrObsZ" efficas:statut="o">      <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="ecartTypeErrObsQ" efficas:statut="o">      <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="seuilRejetObsZ" efficas:statut="o">        <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="seuilRejetObsQ" efficas:statut="o">        <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                               </efficas:FACT>\r
+                       </efficas:FACT>\r
+                       \r
+               </PROC>\r
+               \r
+               <PROC efficas:nom="parametresSauvegardeLigneIni">\r
+                         <efficas:SIMP efficas:nom="tempsSauvegardeLigneIni" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="cheminSauvegardeLigneIni" efficas:statut="o">      <typeAttendu>Repertoire</typeAttendu>  </efficas:SIMP>\r
+               </PROC>\r
+               \r
+               <PROC efficas:nom="parametresImpressionResultats">\r
+\r
+                       <efficas:FACT efficas:nom="stationsRes" efficas:statut="o" >\r
+                               <efficas:FACT efficas:nom="stationRes" efficas:statut="o" >\r
+                        <efficas:SIMP efficas:nom="cdStationHydro" efficas:statut="f" efficas:minOccurences="0" efficas:maxOccurences="1">\r
+                           <efficas:doc efficas:ang="choix dans la projection : soit une sequence d'éléments soit une liste de type simple (Modèle Eficas Etendu)"/>\r
+                                               <typeAttendu>TXM</typeAttendu>\r
+                                               </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="lbStationHydro" efficas:statut="f">        <typeAttendu>TXM</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="brancheStation" efficas:statut="o">        <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="abscisseStation" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="decalageStation" efficas:statut="o">       <typeAttendu>R</typeAttendu>  </efficas:SIMP>\r
+                                         <efficas:SIMP efficas:nom="sectionStRes" efficas:statut="o">  <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                               </efficas:FACT>\r
+                       </efficas:FACT>\r
+\r
+                         <efficas:SIMP efficas:nom="nbMaxEcheances" efficas:statut="o">        <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="echeance" efficas:statut="o" efficas:minOccurences="0" efficas:maxOccurences="-1"> <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="echeancePassee" efficas:statut="o">        <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="nrStationTracerObsAbcMn" efficas:statut="o">       <typeAttendu>I</typeAttendu>  </efficas:SIMP>\r
+                         <efficas:SIMP efficas:nom="fichierIncrements" efficas:statut="o">     <typeAttendu>Fichier</typeAttendu>  </efficas:SIMP>\r
+\r
+\r
+\r
+               </PROC>\r
+       </commandes>\r
+</cata>\r