+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\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:import schemaLocation="./Model Efficas (1.1) v5.xsd" namespace="http://chercheurs.edf.com/logiciels/efficas"/>\r
--->\r
- <xs:override schemaLocation="./Model Efficas (1.1) v7.xsd">\r
- <xs:attribute name="attribut" type="AT_attribut"/>\r
- <xs:simpleType name="AT_attribut">\r
- <xs:restriction base="xs:string">\r
- <xs:enumeration value="n"/>\r
- <xs:enumeration value="o"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- <!-- <xs:complexType name="essai">\r
- <xs:sequence>\r
- <xs:element ref="valeurDef" minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:attribute ref="attribut" default="n"/>\r
- </xs:complexType>\r
--->\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="min_occurs" default="1"/>\r
- <xs:attribute ref="max_occurs" default="1">\r
- <xs:annotation>\r
- <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="attribut" default="n">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:string">\r
- <xs:enumeration value="n"/>\r
- <xs:enumeration value="o"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <!-- Les deux lignes suivantes ne fonctionnent pas car il faut que la cible référencée soit déjà définie dans le fichier importé ? -->\r
- <!-- <xs:attribute default="n" ref="attribut"/>-->\r
- <!-- <xs:attribute default="n" name="attribut" type="AT_attribut" />-->\r
- </xs:complexType>\r
- </xs:override>\r
-</xs:schema>\r
+++ /dev/null
-<?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_classe_utilisateur"/>\r
- <xs:element name="valeurDef" type="T_typeAttendu"/>\r
- <xs:element name="valeurSugg" type="T_typeAttendu"/>\r
- <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\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_classe_utilisateur_username" 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_fonction_python"/>\r
- <xs:element name="borne_sup" type="T_typeAttendu"/>\r
- <xs:element name="borne_inf" 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="ag" type="AT_ag"/>\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="valeur_sugg" type="AT_valeur_sugg"/>\r
- <xs:attribute name="statut" type="AT_statut" default="o"/>\r
- <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
- <xs:attribute name="min_occurs" type="AT_min_occurs"/>\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_Cardinalite"/>\r
- <xs:complexType name="T_plageValeur">\r
- <xs:choice>\r
- <xs:sequence>\r
- <xs:element ref="borne_sup" minOccurs="0"/>\r
- <xs:element ref="borne_inf" minOccurs="0"/>\r
- </xs:sequence>\r
- <xs:element ref="into"/>\r
- </xs:choice>\r
- </xs:complexType>\r
- <xs:complexType name="T_Accas_Common">\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_Accas_Common">\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_Accas_Common">\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_Accas_Common">\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_Accas_Common">\r
- <xs:attribute ref="statut"/>\r
- <xs:attribute ref="min_occurs" default="1"/>\r
- <xs:attribute ref="max_occurs" 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:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs gt @efficas:min_occurs]"/>\r
--->\r
- <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs > min_occurs "/>-->\r
- </xs:complexContent>\r
- </xs:complexType>\r
- <xs:simpleType name="T_fonction_python">\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_Accas_Common">\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="min_occurs" default="1"/>\r
- <xs:attribute ref="max_occurs" 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_max_occurs">\r
- <xs:restriction base="xs:long">\r
- <xs:minInclusive value="-1"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- <xs:simpleType name="AT_min_occurs">\r
- <xs:restriction base="xs:long">\r
- <xs:minExclusive 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_ag">\r
- <xs:restriction base="xs:string">\r
- <xs:enumeration value="No comment"/>\r
- </xs:restriction>\r
- </xs:simpleType>\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_valeur_sugg">\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_classe_utilisateur"/>\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_name_base">\r
- <xs:restriction base="AT_nom"/>\r
- </xs:simpleType>\r
- <xs:simpleType name="T_simple_name">\r
- <xs:restriction base="T_name_base">\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_classe_utilisateur_name">\r
- <xs:restriction base="T_name">\r
- <xs:enumeration value="T_classe_utilisateur"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- <xs:complexType name="T_classe_utilisateur_username">\r
- <xs:simpleContent>\r
- <xs:extension base="T_classe_utilisateur_name">\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_simple_name">\r
- <xs:simpleType>\r
- <xs:restriction base="AT_nom">\r
- <xs:enumeration value="T_Matrice_double"/>\r
- <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
- <xs:enumeration value="T_tuple"/>\r
- <xs:enumeration value="T_classe_utilisateur"/>\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_Matrice_double">\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_Matrice_double -->\r
- <xs:complexType name="T_Matrice_Symetrique_double">\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_classe_utilisateur">\r
- <xs:restriction base="AT_nom"/>\r
- </xs:simpleType>\r
- <xs:element name="typesimple" type="T_simple"/>\r
- <xs:element name="matrice_double" type="T_Matrice_double"/>\r
- <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
- <xs:element name="tuple" type="T_tuple"/>\r
- <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
- <!-- Essai -->\r
- <!-- <xs:group name="T_Attendu_group1">\r
- <xs:choice>\r
- <xs:element ref="typesimple"/>\r
- <xs:element ref="matrice_double"/>\r
- <xs:element ref="matrice_symetrique_double"/>\r
- <xs:element ref="tuple"/>\r
- <xs:element ref="classe_utilisateur"/>\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="matrice_double"/>\r
- <xs:element ref="matrice_symetrique_double"/>\r
- <xs:element ref="tuple"/>\r
- <xs:element ref="classe_utilisateur"/>\r
- <xs:element ref="fonction_utilisateur" 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="1"/>\r
- <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="fonction_utilisateur" 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="matrice_double" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
- <xs:element ref="classe_utilisateur" 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
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\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:import schemaLocation="./Model Efficas (1.1) v5.xsd" namespace="http://chercheurs.edf.com/logiciels/efficas"/>\r
+-->\r
+ <xs:override schemaLocation="./Model Efficas (1.1) v7.xsd">\r
+ <xs:attribute name="attribut" type="AT_attribut"/>\r
+ <xs:simpleType name="AT_attribut">\r
+ <xs:restriction base="xs:string">\r
+ <xs:enumeration value="n"/>\r
+ <xs:enumeration value="o"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ <!-- <xs:complexType name="essai">\r
+ <xs:sequence>\r
+ <xs:element ref="valeurDef" minOccurs="0"/>\r
+ </xs:sequence>\r
+ <xs:attribute ref="attribut" default="n"/>\r
+ </xs:complexType>\r
+-->\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="min_occurs" default="1"/>\r
+ <xs:attribute ref="max_occurs" default="1">\r
+ <xs:annotation>\r
+ <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="attribut" default="n">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:string">\r
+ <xs:enumeration value="n"/>\r
+ <xs:enumeration value="o"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <!-- Les deux lignes suivantes ne fonctionnent pas car il faut que la cible référencée soit déjà définie dans le fichier importé ? -->\r
+ <!-- <xs:attribute default="n" ref="attribut"/>-->\r
+ <!-- <xs:attribute default="n" name="attribut" type="AT_attribut" />-->\r
+ </xs:complexType>\r
+ </xs:override>\r
+</xs:schema>\r
--- /dev/null
+<?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_classe_utilisateur"/>\r
+ <xs:element name="valeurDef" type="T_typeAttendu"/>\r
+ <xs:element name="valeurSugg" type="T_typeAttendu"/>\r
+ <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\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_classe_utilisateur_username" 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_fonction_python"/>\r
+ <xs:element name="borne_sup" type="T_typeAttendu"/>\r
+ <xs:element name="borne_inf" 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="ag" type="AT_ag"/>\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="valeur_sugg" type="AT_valeur_sugg"/>\r
+ <xs:attribute name="statut" type="AT_statut" default="o"/>\r
+ <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
+ <xs:attribute name="min_occurs" type="AT_min_occurs"/>\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_Cardinalite"/>\r
+ <xs:complexType name="T_plageValeur">\r
+ <xs:choice>\r
+ <xs:sequence>\r
+ <xs:element ref="borne_sup" minOccurs="0"/>\r
+ <xs:element ref="borne_inf" minOccurs="0"/>\r
+ </xs:sequence>\r
+ <xs:element ref="into"/>\r
+ </xs:choice>\r
+ </xs:complexType>\r
+ <xs:complexType name="T_Accas_Common">\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_Accas_Common">\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_Accas_Common">\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_Accas_Common">\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_Accas_Common">\r
+ <xs:attribute ref="statut"/>\r
+ <xs:attribute ref="min_occurs" default="1"/>\r
+ <xs:attribute ref="max_occurs" 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:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs gt @efficas:min_occurs]"/>\r
+-->\r
+ <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs > min_occurs "/>-->\r
+ </xs:complexContent>\r
+ </xs:complexType>\r
+ <xs:simpleType name="T_fonction_python">\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_Accas_Common">\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="min_occurs" default="1"/>\r
+ <xs:attribute ref="max_occurs" 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_max_occurs">\r
+ <xs:restriction base="xs:long">\r
+ <xs:minInclusive value="-1"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ <xs:simpleType name="AT_min_occurs">\r
+ <xs:restriction base="xs:long">\r
+ <xs:minExclusive 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_ag">\r
+ <xs:restriction base="xs:string">\r
+ <xs:enumeration value="No comment"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\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_valeur_sugg">\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_classe_utilisateur"/>\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_name_base">\r
+ <xs:restriction base="AT_nom"/>\r
+ </xs:simpleType>\r
+ <xs:simpleType name="T_simple_name">\r
+ <xs:restriction base="T_name_base">\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_classe_utilisateur_name">\r
+ <xs:restriction base="T_name">\r
+ <xs:enumeration value="T_classe_utilisateur"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ <xs:complexType name="T_classe_utilisateur_username">\r
+ <xs:simpleContent>\r
+ <xs:extension base="T_classe_utilisateur_name">\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_simple_name">\r
+ <xs:simpleType>\r
+ <xs:restriction base="AT_nom">\r
+ <xs:enumeration value="T_Matrice_double"/>\r
+ <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
+ <xs:enumeration value="T_tuple"/>\r
+ <xs:enumeration value="T_classe_utilisateur"/>\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_Matrice_double">\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_Matrice_double -->\r
+ <xs:complexType name="T_Matrice_Symetrique_double">\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_classe_utilisateur">\r
+ <xs:restriction base="AT_nom"/>\r
+ </xs:simpleType>\r
+ <xs:element name="typesimple" type="T_simple"/>\r
+ <xs:element name="matrice_double" type="T_Matrice_double"/>\r
+ <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
+ <xs:element name="tuple" type="T_tuple"/>\r
+ <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
+ <!-- Essai -->\r
+ <!-- <xs:group name="T_Attendu_group1">\r
+ <xs:choice>\r
+ <xs:element ref="typesimple"/>\r
+ <xs:element ref="matrice_double"/>\r
+ <xs:element ref="matrice_symetrique_double"/>\r
+ <xs:element ref="tuple"/>\r
+ <xs:element ref="classe_utilisateur"/>\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="matrice_double"/>\r
+ <xs:element ref="matrice_symetrique_double"/>\r
+ <xs:element ref="tuple"/>\r
+ <xs:element ref="classe_utilisateur"/>\r
+ <xs:element ref="fonction_utilisateur" 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="1"/>\r
+ <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="fonction_utilisateur" 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="matrice_double" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
+ <xs:element ref="classe_utilisateur" 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
self.actif=1
self.state="unchanged"
self.register()
+ self.fenetreIhm=None
def register(self):
"""
# Modules Eficas
from Extensions.i18n import tr
from Extensions.eficas_exception import EficasException
-from . import I_ETAPE
-from . import I_ENTITE
-from . import I_OBJECT
+from Ihm import I_ETAPE
+from Ihm import I_ENTITE
+from Ihm import I_OBJECT
import Noyau
from Noyau.N_ASSD import ASSD
from Noyau import N__F
-import convert
from Extensions import param2
# import rajoutes suite a l'ajout de buildSd --> a resorber
def init(self):
# Si l'objet Accas (MCList) a moins d'un mot cle facteur
# on utilise directement ce mot cle facteur comme delegue
- print ('je suis dans init de MCListTreeItem')
- #import traceback
- #traceback.print_stack()
self.updateDelegate()
def updateDelegate(self):
FACTPanel.
Si la liste est plus longue on utilise le panneau MCLISTPanel.
"""
- print ('je suis dans panel de MCListTreeItem')
if len(self._object) > 1:
return MCLISTPanel(jdcdisplay,pane,node)
elif isinstance(self._object.data[0],ErrorObj):
from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
elif maDefinition.into != [] and maDefinition.into != None:
- if len(monInto) < 4 :
+ if maDefinition.fenetreIhm=='menuDeroulant' :
+ from InterfaceQT4.monWidgetCB import MonWidgetCB
+ widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+ elif len(monInto) < 4 :
from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
elif len(monInto) < 7 :
widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
elif self.item.waitTuple() :
if self.item.object.definition.fenetreIhm == 'Tableau' :
- from InterfaceQT4.monWidgetPlusieursTuple2 import MonWidgetTableau
+ from InterfaceQT4.monWidgetTableau import MonWidgetTableau
widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
elif self.item.object.definition.type[0].ntuple == 2:
from InterfaceQT4.monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2
import traceback
# Modules Eficas
-import convert, generator
from Extensions.i18n import tr
from Editeur import session
self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
+ if self.appliEficas.readercata.demandeCatalogue==True :
+ nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.versionCode)
+ if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
+ translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
+ from Extensions import localisation
+ localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
+
+
if self.jdc_item and self.appliEficas.ssIhm==False :
self.tree = browser.JDCTree( self.jdc_item, self )
self.appliEficas.construitMenu()
self.generator.writeDefault(fn)
elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
msgBox = QMessageBox(None)
- msgBox.setWindowTitle(tr("Fichier Cas invalide"))
- msgBox.setText(tr("Le fichier cas est invalide"))
+ msgBox.setWindowTitle(tr("Fichier .cas invalide / incomplet"))
+ msgBox.setText(tr("Le fichier .cas est invalide / incomplet"))
msgBox.addButton(tr("&Sauvegarder"),1)
msgBox.addButton(tr("&Quitter sans sauvegarder"),0)
msgBox.addButton(tr("&Annuler"),2)
self.version_code = session.d_env.cata
- if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.multi==True:
+ if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.readercata.demandeCatalogue==True or self.appliEficas.multi==True:
if self.maConfiguration.typeDeCata == 'XML' :
from InterfaceQT4 import readercataXML as readercata
else :
from InterfaceQT4 import readercata
- print (self.maConfiguration.typeDeCata)
- print (readercata)
self.readercata = readercata.READERCATA( self, self.appliEficas )
self.appliEficas.readercata=self.readercata
self.readercata.dumpToXml()
from InterfaceQT4.feuille import Feuille
from InterfaceQT4.monWidgetPlusieursTuple import MonWidgetPlusieursTuple
from desWidgetPlusieursTuple import Ui_WidgetPlusieursTuple
-from desWidgetTableau import Ui_WidgetTableau
class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
self.nbValeurs=2
MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
- def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
- self.nbValeurs=len(monSimpDef.homo)
- MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
- self.resize(self.width(),1800)
-
- def ajoutLineEdit(self,valeur=None,inInit=False):
- hauteurAvant=(self.frame.height())
- MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
# Modules Eficas
from Extensions.i18n import tr
-from .feuille import Feuille
-from .politiquesValidation import PolitiqueUnique
-from .qtSaisie import SaisieValeur
+from InterfaceQT4.feuille import Feuille
+from InterfaceQT4.politiquesValidation import PolitiqueUnique
+from InterfaceQT4.qtSaisie import SaisieValeur
class MonWidgetSimpTuple(Feuille):
#from PyQt4.QtCore import *
from Extensions.i18n import tr
-from .feuille import Feuille
-from .monWidgetSimpTuple import MonWidgetSimpTuple
+from InterfaceQT4.feuille import Feuille
+from InterfaceQT4.monWidgetSimpTuple import MonWidgetSimpTuple
from desWidgetTuple2 import Ui_WidgetTuple2
--- /dev/null
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017 EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Modules Python
+from __future__ import absolute_import
+import types,os
+
+# Modules Eficas
+
+from PyQt5.QtWidgets import QLabel, QSizePolicy, QSpacerItem
+from PyQt5.QtCore import QSize
+
+from InterfaceQT4.feuille import Feuille
+from InterfaceQT4.monWidgetPlusieursTuple import MonWidgetPlusieursTuple
+from desWidgetPlusieursTuple import Ui_WidgetPlusieursTuple
+from desWidgetTableau import Ui_WidgetTableau
+
+maxLen=3
+
+
+class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
+ def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+ self.nbValeurs=len(monSimpDef.homo)
+ MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+
+ sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+
+
+ for i in range(len(monSimpDef.homo)):
+ nomCol='LECol'+str(i+1)
+ objCol=QLabel(self)
+ objCol.setMinimumSize(QSize(80, 25))
+ objCol.setText(monSimpDef.homo[i])
+ self.LATitre.addWidget(objCol)
+ setattr(self,nomCol,objCol)
+ spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+ self.LATitre.addItem(spacerItem)
+
+
+
+# monObjTitreCol=getattr(self,nomCol)
+# monObjTitreCol.setText(monSimpDef.homo[i])
+
+# for i in range(maxLen-len(monSimpDef.homo)):
+# index=i+len(monSimpDef.homo)+1
+# nomCol='LECol'+str(index)
+# monObjTitreCol=getattr(self,nomCol)
+# monObjTitreCol.close()
+
+ self.resize(self.width(),1800)
+
+ def ajoutLineEdit(self,valeur=None,inInit=False):
+ hauteurAvant=(self.frame.height())
+ MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
+
import analyse_catalogue_initial
import autre_analyse_cata
import uiinfo
-from .monChoixCata import MonChoixCata
+from InterfaceQT4.monChoixCata import MonChoixCata
from Extensions.i18n import tr
from Extensions.eficas_exception import EficasException
self.QWParent=QWParent
self.appliEficas=self.QWParent.appliEficas
self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+ self.demandeCatalogue=False
self.code=self.appliEficas.code
self.ssCode=self.appliEficas.ssCode
self.appliEficas.format_fichier='python'
# plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
# lequel il veut utiliser ...
self.askChoixCatalogue(cata_choice_list)
+ self.demandeCatalogue=True
if self.fic_cata == None :
if self.appliEficas.salome == 0 :
if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') :
self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
else : self.Classement_Commandes_Ds_Arbre=()
+ if hasattr(self.cata,'enum'):
+ _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
+ self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
+ self.TelemacdicoEn = _temp.TelemacdicoEn
+
#print self.cata.Ordre_Des_Commandes
#
widgetChoix = MonChoixCata(self.appliEficas, [cata.user_name for cata in cata_choice_list], title)
ret=widgetChoix.exec_()
+
lab=str(self.VERSION_EFICAS)+" "
lab+=tr(" pour ")
lab+=str(self.code)
lab+=tr(" avec le catalogue ")
if ret == QDialog.Accepted:
- print (widgetChoix.CBChoixCata.currentIndex())
cata = cata_choice_list[widgetChoix.CBChoixCata.currentIndex()]
self.fic_cata = cata.cata_file_path
self.versionCode = cata.identifier
self.appliEficas.format_fichier = cata.file_format
self.appliEficas.format_fichier_in = cata.file_format_in
- lab+=self.versionCata
+ lab+=self.versionCode
self.appliEficas.setWindowTitle(lab)
#qApp.mainWidget().setCaption(lab)
widgetChoix.close()
self.titre='Eficas XML'
self.Ordre_Des_Commandes=None
self.Classement_Commandes_Ds_Arbre=()
+ self.demandeCatalogue=False
#self.traiteIcones()
#self.creeDicoInverse()
def OpenCata(self):
- self.fic_cata = 'Cata_MED_FAM.xml'
-
- xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+ #self.fic_cata = 'Cata_MED_FAM.xml'
+ #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+ self.fic_cata = 'cata_test1.xml'
+ xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
SchemaMed = readerEfficas.efficas.CreateFromDocument(xml)
SchemaMed.exploreCata()
#self.cata=(SchemaMed,)
eficas_compile_ui ( desWidgetSimpFichier.ui )
eficas_compile_ui ( desWidgetSimpSalome.ui )
eficas_compile_ui ( desWidgetSimpTxt.ui )
+eficas_compile_ui ( desWidgetTableau.ui )
eficas_compile_ui ( desWidgetTuple2.ui )
eficas_compile_ui ( desWidgetTuple3.ui )
eficas_compile_ui ( desWidgetUniqueSDCO.ui )
<rect>
<x>0</x>
<y>0</y>
- <width>880</width>
- <height>33</height>
+ <width>490</width>
+ <height>29</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="spacing">
<number>0</number>
</property>
- <property name="margin">
+ <property name="leftMargin">
+ <number>1</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
<number>0</number>
</property>
<item>
<item>
<widget class="LECustomTuple" name="lineEditVal_1">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item>
<widget class="LECustomTuple" name="lineEditVal_2">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
- <width>805</width>
+ <width>10000</width>
<height>16777215</height>
</size>
</property>
<item>
<widget class="LECustomTuple" name="lineEditVal_3">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
- <width>805</width>
+ <width>10000</width>
<height>16777215</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Preferred</enum>
+ </property>
<property name="sizeHint" stdset="0">
<size>
- <width>123</width>
+ <width>5</width>
<height>20</height>
</size>
</property>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Form</class>
- <widget class="QWidget" name="Form">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>760</width>
- <height>515</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QTableWidget" name="TBMatrice"/>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
<property name="verticalSpacing">
<number>0</number>
</property>
- <item row="0" column="0">
- <widget class="QPushButton" name="bAvant">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>24</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>60</width>
- <height>24</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::ClickFocus</enum>
- </property>
- <property name="toolTip">
- <string>Affiche le formulaire de la commande précédente</string>
- </property>
- <property name="styleSheet">
- <string notr="true">background-color:rgb(104,110,149);
-color :white;
-border-radius : 12px
-</string>
- </property>
- <property name="text">
- <string><<</string>
- </property>
- <property name="shortcut">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QPushButton" name="bApres">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>24</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>60</width>
- <height>24</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::ClickFocus</enum>
- </property>
- <property name="toolTip">
- <string>Affiche le formulaire de la commande suivante</string>
- </property>
- <property name="styleSheet">
- <string notr="true">background-color:rgb(104,110,149);
-color :white;
-border-radius : 12px
-</string>
- </property>
- <property name="text">
- <string>>></string>
- </property>
- <property name="shortcut">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</item>
</layout>
<rect>
<x>0</x>
<y>0</y>
- <width>662</width>
- <height>163</height>
+ <width>740</width>
+ <height>386</height>
</rect>
</property>
<property name="sizePolicy">
</size>
</property>
<property name="text">
- <string><html><head/><body><p>TextLabel dqDFDQ</p><p><br/></p></body></html></string>
+ <string><html><head/><body><p><br/></p><p><br/></p></body></html></string>
</property>
</widget>
</item>
<rect>
<x>0</x>
<y>0</y>
- <width>211</width>
- <height>84</height>
+ <width>289</width>
+ <height>307</height>
</rect>
</property>
<property name="sizePolicy">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
<enum>QFrame::Box</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_6">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
</property>
<property name="icon">
<iconset theme="go-up">
- <normaloff>.</normaloff>.</iconset>
+ <normaloff/>
+ </iconset>
</property>
<property name="iconSize">
<size>
</property>
<property name="icon">
<iconset theme="go-down">
- <normaloff>.</normaloff>.</iconset>
+ <normaloff/>
+ </iconset>
</property>
<property name="iconSize">
<size>
</property>
<property name="icon">
<iconset theme="text-x-generic">
- <normaloff>.</normaloff>.</iconset>
+ <normaloff/>
+ </iconset>
</property>
<property name="iconSize">
<size>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>WidgetTableau</class>
+ <widget class="QWidget" name="WidgetTableau">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>1232</width>
+ <height>656</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="sizeConstraint">
+ <enum>QLayout::SetFixedSize</enum>
+ </property>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>21</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="MonBoutonValide" name="RBValide">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Affiche le rapport de validation du mot-clef</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../Editeur/icons/ast-green-ball.png</normaloff>../Editeur/icons/ast-green-ball.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>25</width>
+ <height>25</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::Box</enum>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QToolButton" name="RBPlus">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Ajoute une ligne</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../Editeur/icons/PlusBleu.png</normaloff>../Editeur/icons/PlusBleu.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="RBMoins">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>supprime une ligne</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../Editeur/icons/MoinsBleu.png</normaloff>../Editeur/icons/MoinsBleu.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="RBHaut">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Remonte la ligne</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset theme="go-up">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="RBBas">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Descend la ligne</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset theme="go-down">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="RBVoisListe">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Montre l'ensemble des valeurs</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>13</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="MonLabelClic" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>178</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="text">
+ <string><html><head/><body><p>aaa</p><p>dqsklmdqm</p></body></html></string>
+ </property>
+ <property name="scaledContents">
+ <bool>false</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="LATitre">
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QFrame" name="frame">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">background : rgb(247,247,247)</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+ </property>
+ <widget class="QWidget" name="verticalWidgetLE">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>1091</width>
+ <height>524</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayoutLE">
+ <item>
+ <spacer name="verticalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>500</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QToolButton" name="BSelectFichier">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>25</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Ouvre un fichier de sélection des valeurs</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border:0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset theme="text-x-generic">
+ <normaloff>.</normaloff>.</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>13</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QToolButton" name="RBPoubelle">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::ClickFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>Détruit le mot-clef</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../Editeur/icons/deleteRond.png</normaloff>../Editeur/icons/deleteRond.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ <zorder></zorder>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>MonBoutonValide</class>
+ <extends>QToolButton</extends>
+ <header>monBoutonValide.h</header>
+ </customwidget>
+ <customwidget>
+ <class>MonLabelClic</class>
+ <extends>QLabel</extends>
+ <header>monLabelClic.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \
desChoixLangue.py desRecherche.py desRechercheCatalogue.py\
desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \
- desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py \
+ desWidgetOptionnel.py Tuple2.py Tuple3.py \
desWidgetBloc.py desWidgetCB.py desWidgetCBIntoSug.py desWidgetCommentaire.py desWidgetDate.py \
desWidgetFact.py desWidgetFactPlie.py desWidgetFactTableau.py desWidgetFormule.py desGroupeOptionnel.py \
desWidgetHeure.py desWidgetInformation.py desWidgetIntoSug.py desWidgetInactif.py \
desWidgetMatrice.py desWidgetParam.py desWidgetPlusieursBase.py desWidgetPlusieursInto.py \
desWidgetPlusieursIntoOrdonne.py desWidgetPlusieursTuple.py desWidgetRadioButton.py \
desWidget4a6RadioButton.py desWidgetSimpBase.py desWidgetSDCOInto.py desWidgetSimpBool.py \
- desWidgetSimpSalome.py desPBOptionnelMT.py\
+ desWidgetSimpSalome.py desPBOptionnelMT.py desWidgetTableau.py\
desWidgetSimpComplexe.py desWidgetSimpFichier.py desWidgetSimpTxt.py desWidgetTuple2.py \
desWidgetTuple3.py desWidgetVide.py desWidgetUniqueSDCO.py desWidgetPlusieursPlie.py \
- desWidgetNiveauFact.py commandeTableau.py dateEtHeure.py
+ desWidgetNiveauFact.py dateEtHeure.py