1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <!-- edited with XMLSpy v2014 rel. 2 (x64) (http://www.altova.com) by BC (ED) -->
\r
3 <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
4 <xs:element name="doc" type="T_doc"/>
\r
5 <xs:element name="cata" type="T_cata"/>
\r
6 <xs:element name="regles" type="T_regles"/>
\r
7 <xs:element name="typeCree" type="T_classe_utilisateur"/>
\r
8 <xs:element name="ValeurDef" type="T_typeAttendu"/>
\r
9 <xs:element name="ValeurSugg" type="T_typeAttendu"/>
\r
10 <xs:element name="fonction_utilisateur" type="T_fonction_python"/>
\r
11 <xs:element name="commandes" type="T_commandes">
\r
12 <xs:unique name="Uniq_Command">
\r
13 <xs:selector xpath="*"/>
\r
14 <xs:field xpath="@efficas:nom"/>
\r
16 <xs:key name="Uniq_Name_In_Oper">
\r
18 <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>
\r
20 <xs:selector xpath="./OPER/BLOC |./OPER/FACT|./OPER/SIMP"/>
\r
21 <xs:field xpath="@efficas:nom"/>
\r
23 <xs:keyref name="Ref_A_Name_In_Oper" refer="Uniq_Name_In_Oper">
\r
24 <xs:selector xpath="./OPER/regles"/>
\r
25 <xs:field xpath="EXCLUS"/>
\r
27 <xs:key name="Uniq_Name_In_Proc">
\r
29 <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>
\r
31 <xs:selector xpath="./PROC/BLOC | ./PROC/FACT| ./PROC/SIMP"/>
\r
32 <xs:field xpath="@efficas:nom"/>
\r
34 <xs:keyref name="Ref_A_Name_In_Proc" refer="Uniq_Name_In_Proc">
\r
35 <xs:selector xpath="./PROC/regles"/>
\r
36 <xs:field xpath="EXCLUS"/>
\r
39 <xs:element name="validators" type="T_validators"/>
\r
40 <xs:element name="PlageValeur" type="T_PlageValeur"/>
\r
41 <xs:element name="typeAttendu" type="T_name"/>
\r
42 <xs:element name="classeUtilisateurName" type="T_classe_utilisateur_username" abstract="true" substitutionGroup="typeAttendu"/>
\r
43 <xs:element name="SIMP" type="T_SIMP"/>
\r
44 <xs:element name="portee" type="T_portee" default="None"/>
\r
45 <xs:element name="condition" type="T_fonction_python"/>
\r
46 <xs:element name="borne_sup" type="T_typeAttendu"/>
\r
47 <xs:element name="borne_inf" type="T_typeAttendu"/>
\r
48 <!-- <xs:element name="into" type="T_into"/>-->
\r
49 <xs:element name="into" type="T_into"/>
\r
50 <!-- <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->
\r
51 <xs:attribute name="nom" type="AT_nom"/>
\r
52 <xs:attribute name="ag" type="AT_ag"/>
\r
53 <xs:attribute name="fr" type="xs:string"/>
\r
54 <xs:attribute name="ang" type="xs:string"/>
\r
55 <xs:attribute name="docu" type="AT_docu"/>
\r
56 <xs:attribute name="valeur_sugg" type="AT_valeur_sugg"/>
\r
57 <xs:attribute name="statut" type="AT_statut" default="o"/>
\r
58 <xs:attribute name="max_occurs" type="AT_max_occurs"/>
\r
59 <xs:attribute name="min_occurs" type="AT_min_occurs"/>
\r
60 <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>
\r
61 <xs:complexType name="T_doc">
\r
62 <xs:attribute ref="fr" use="optional"/>
\r
63 <xs:attribute ref="ang"/>
\r
64 <xs:attribute ref="docu"/>
\r
66 <xs:complexType name="T_cata">
\r
68 <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>
\r
71 <xs:complexType name="T_commandes">
\r
72 <xs:choice minOccurs="0" maxOccurs="unbounded">
\r
73 <xs:element ref="OPER"/>
\r
74 <xs:element ref="PROC"/>
\r
77 <xs:complexType name="T_Cardinalite"/>
\r
78 <xs:complexType name="T_PlageValeur">
\r
81 <xs:element ref="borne_sup" minOccurs="0"/>
\r
82 <xs:element ref="borne_inf" minOccurs="0"/>
\r
84 <xs:element ref="into"/>
\r
87 <xs:complexType name="T_Accas.Common">
\r
89 <xs:element ref="regles" minOccurs="0"/>
\r
90 <xs:element ref="doc" minOccurs="0"/>
\r
91 <xs:choice maxOccurs="unbounded">
\r
92 <xs:element ref="BLOC"/>
\r
93 <xs:element ref="FACT"/>
\r
94 <xs:element ref="SIMP"/>
\r
97 <xs:attribute ref="nom" use="required"/>
\r
99 <xs:element name="OPER" type="T_OPER"/>
\r
100 <xs:complexType name="T_OPER">
\r
101 <xs:complexContent>
\r
102 <xs:extension base="T_Accas.Common">
\r
104 <xs:element ref="typeCree"/>
\r
106 <xs:attribute ref="subroutine"/>
\r
108 </xs:complexContent>
\r
110 <xs:element name="PROC" type="T_PROC">
\r
111 <xs:unique name="Uniqb_NAme_In_PRoc">
\r
112 <xs:selector xpath="BLOC|FACT|SIMP"/>
\r
113 <xs:field xpath="@efficas:nom"/>
\r
116 <xs:complexType name="T_PROC">
\r
117 <xs:complexContent>
\r
118 <xs:extension base="T_Accas.Common">
\r
119 <xs:attribute ref="subroutine"/>
\r
121 </xs:complexContent>
\r
123 <xs:element name="FACT" type="T_FACT"/>
\r
124 <!-- <xs:complexType name="T_FACT">
\r
125 <xs:complexContent>
\r
126 <xs:restriction base="T_Accas.Common">
\r
128 <xs:element ref="regles" minOccurs="0"/>
\r
129 <xs:element ref="doc" minOccurs="0"/>
\r
130 <xs:choice maxOccurs="unbounded">
\r
131 <xs:element ref="BLOC"/>
\r
132 <xs:element ref="FACT"/>
\r
133 <xs:element ref="SIMP"/>
\r
137 </xs:complexContent>
\r
138 </xs:complexType>-->
\r
139 <xs:complexType name="T_FACT">
\r
140 <xs:complexContent>
\r
141 <xs:extension base="T_Accas.Common">
\r
142 <xs:attribute ref="statut"/>
\r
143 <xs:attribute ref="min_occurs" default="1"/>
\r
144 <xs:attribute ref="max_occurs" default="1">
\r
146 <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>
\r
149 <xs:assert test=".[exists(@efficas:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs gt @efficas:min_occurs]"/>
\r
150 <!--<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
152 </xs:complexContent>
\r
154 <xs:simpleType name="T_fonction_python">
\r
155 <xs:restriction base="xs:string"/>
\r
157 <xs:element name="BLOC" type="T_BLOC"/>
\r
158 <xs:complexType name="T_BLOC">
\r
159 <xs:complexContent>
\r
160 <xs:extension base="T_Accas.Common">
\r
162 <xs:element ref="condition"/>
\r
165 </xs:complexContent>
\r
167 <xs:complexType name="T_SIMP">
\r
169 <xs:element ref="doc" minOccurs="0"/>
\r
170 <xs:element ref="portee" minOccurs="0">
\r
172 <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
175 <xs:element ref="ValeurDef" minOccurs="0"/>
\r
176 <xs:element ref="ValeurSugg" minOccurs="0"/>
\r
177 <xs:element ref="PlageValeur" minOccurs="0"/>
\r
178 <xs:element ref="typeAttendu"/>
\r
179 <xs:element ref="validators" minOccurs="0"/>
\r
181 <xs:attribute ref="nom" use="required"/>
\r
182 <xs:attribute ref="statut"/>
\r
183 <xs:attribute ref="min_occurs" default="1"/>
\r
184 <xs:attribute ref="max_occurs" default="1">
\r
186 <xs:documentation>La valuer -1 equivaut à oo</xs:documentation>
\r
190 <xs:simpleType name="AT_statut">
\r
191 <xs:restriction base="xs:string">
\r
192 <xs:enumeration value="f"/>
\r
193 <xs:enumeration value="o"/>
\r
196 <!--<xs:simpleType name="T_repetable">
\r
197 <xs:restriction base="xs:string">
\r
198 <xs:enumeration value="n"/>
\r
199 <xs:enumeration value="o"/>
\r
201 </xs:simpleType>-->
\r
202 <xs:simpleType name="T_portee">
\r
203 <xs:restriction base="xs:string">
\r
204 <xs:enumeration value="None"/>
\r
205 <xs:enumeration value="Global"/>
\r
208 <xs:simpleType name="AT_max_occurs">
\r
209 <xs:restriction base="xs:long">
\r
210 <xs:minInclusive value="-1"/>
\r
213 <xs:simpleType name="AT_min_occurs">
\r
214 <xs:restriction base="xs:long">
\r
215 <xs:minExclusive value="0"/>
\r
218 <!-- Comparable -->
\r
219 <!-- <xs:simpleType name="AT_borne_sup">
\r
220 <xs:atomic base="xs:double"/>
\r
222 <xs:simpleType name="AT_borne_inf">
\r
223 <xs:restriction base="xs:double"/>
\r
226 <xs:simpleType name="AT_ag">
\r
227 <xs:restriction base="xs:string">
\r
228 <xs:enumeration value="No comment"/>
\r
231 <xs:simpleType name="AT_docu">
\r
233 <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
235 <xs:restriction base="xs:string"/>
\r
237 <xs:simpleType name="AT_valeur_sugg">
\r
238 <xs:restriction base="xs:string"/>
\r
240 <!-- TODO: Exclure mots clés python|efficas -->
\r
241 <xs:simpleType name="AT_nom">
\r
242 <xs:restriction base="xs:string">
\r
243 <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>
\r
246 <xs:simpleType name="T_predicat1">
\r
247 <xs:list itemType="AT_nom"/>
\r
248 <!-- TODO: Supprimer la liste -->
\r
250 <xs:complexType name="T_predicat2">
\r
252 <xs:element name="p1" type="T_predicat1" minOccurs="1"/>
\r
253 <xs:element name="p2" type="AT_nom" minOccurs="1"/>
\r
255 <!-- TODO: Supprimer la séquence -->
\r
257 <xs:element name="A_CLASSER" type="T_predicat2"/>
\r
258 <xs:element name="AU_MOINS_UN" type="T_predicat1"/>
\r
259 <xs:element name="AU_PLUS_UN" type="T_predicat1"/>
\r
260 <xs:element name="ENSEMBLE" type="T_predicat1"/>
\r
261 <xs:element name="EXCLUS" type="T_predicat1">
\r
262 <!-- A priori, ce n'est pas l'endroit pour le placer : ? scope de Uniq_Command-->
\r
263 <!-- <xs:keyref name="referToAnAlreadyDefinedName" refer="Uniq_Command">
\r
264 <xs:selector xpath="."/>
\r
265 <xs:field xpath="."/>
\r
269 <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>
\r
270 <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>
\r
271 <xs:element name="UN_PARMI" type="T_predicat1"/>
\r
272 <xs:group name="predicat">
\r
274 <xs:element ref="A_CLASSER"/>
\r
275 <xs:element ref="AU_MOINS_UN"/>
\r
276 <xs:element ref="AU_PLUS_UN"/>
\r
277 <xs:element ref="ENSEMBLE"/>
\r
278 <xs:element ref="EXCLUS">
\r
279 <!-- A priori, ce n'est pas l'endroit pour le placer -->
\r
280 <!-- <xs:keyref name="referToAnAlreadyDefinedName" refer="/Uniq_Command">
\r
281 <xs:selector xpath="."/>
\r
282 <xs:field xpath="."/>
\r
286 <xs:element ref="PRESENT_ABSENT"/>
\r
287 <xs:element ref="PRESENT_PRESENT"/>
\r
288 <xs:element ref="UN_PARMI"/>
\r
291 <xs:complexType name="T_regles">
\r
292 <xs:sequence maxOccurs="unbounded">
\r
293 <xs:group ref="predicat"/>
\r
296 <!-- <xs:simpleType name="T_typeCree">
\r
297 <xs:restriction base="T_classe_utilisateur"/>
\r
300 <xs:simpleType name="AT_subroutine">
\r
301 <xs:restriction base="AT_nom"/>
\r
303 <xs:simpleType name="T_validators">
\r
304 <xs:restriction base="xs:string">
\r
305 <xs:enumeration value="NoRepeat"/>
\r
306 <xs:enumeration value="OnlyStr"/>
\r
307 <xs:enumeration value="VerifExiste"/>
\r
308 <xs:enumeration value="VerifTypeTuple"/>
\r
311 <xs:simpleType name="T_Bool">
\r
312 <xs:restriction base="xs:boolean"/>
\r
314 <xs:simpleType name="T_list_Bool">
\r
315 <xs:list itemType="T_Bool"/>
\r
317 <xs:simpleType name="T_I">
\r
318 <xs:restriction base="xs:int"/>
\r
320 <xs:simpleType name="T_list_I">
\r
321 <xs:list itemType="T_I"/>
\r
323 <xs:simpleType name="T_R">
\r
324 <xs:restriction base="xs:double"/>
\r
326 <xs:simpleType name="T_list_R">
\r
327 <xs:list itemType="T_R"/>
\r
329 <xs:simpleType name="T_TXM">
\r
330 <xs:restriction base="AT_nom"/>
\r
332 <xs:simpleType name="T_list_TXM">
\r
333 <xs:list itemType="T_TXM"/>
\r
335 <!--fonctionne mais ne permet pas de créer une liste de liste -->
\r
336 <xs:simpleType name="T_C">
\r
339 <xs:list itemType="xs:double"/>
\r
341 <xs:minLength value="2"/>
\r
342 <xs:maxLength value="2"/>
\r
345 <!-- Ajouter une contrainte : taille pair -->
\r
346 <!-- Il n'est pas possible de définir des listes de listes -->
\r
347 <xs:simpleType name="T_list_C">
\r
348 <xs:list itemType="xs:double"/>
\r
350 <xs:simpleType name="T_name_base">
\r
351 <xs:restriction base="AT_nom"/>
\r
353 <xs:simpleType name="T_simple_name">
\r
354 <xs:restriction base="T_name_base">
\r
355 <xs:enumeration value="Fichier"/>
\r
356 <xs:enumeration value="Repertoire"/>
\r
357 <xs:enumeration value="TXM"/>
\r
358 <xs:enumeration value="I"/>
\r
359 <xs:enumeration value="R"/>
\r
360 <xs:enumeration value="C"/>
\r
361 <xs:enumeration value="Bool"/>
\r
362 <xs:enumeration value="grma"/>
\r
363 <xs:enumeration value="grno"/>
\r
364 <xs:enumeration value="SalomeEntry"/>
\r
367 <!-- On ne peut pas rendre abstrait un simpleType &&
\r
368 Il n'est pas possible de dérivé par restriction un simplecontent d'un type complex qui
\r
369 lui peut être abstrait
\r
371 <xs:simpleType name="T_classe_utilisateur_name">
\r
372 <xs:restriction base="T_name">
\r
373 <xs:enumeration value="T_classe_utilisateur"/>
\r
376 <xs:complexType name="T_classe_utilisateur_username">
\r
378 <xs:extension base="T_classe_utilisateur_name">
\r
379 <xs:attribute ref="nom" use="required"/>
\r
381 </xs:simpleContent>
\r
383 <xs:simpleType name="T_name">
\r
384 <xs:union memberTypes="T_simple_name">
\r
386 <xs:restriction base="AT_nom">
\r
387 <xs:enumeration value="T_Matrice_double"/>
\r
388 <xs:enumeration value="T_Matrice_Symetrique_double"/>
\r
389 <xs:enumeration value="T_tuple"/>
\r
390 <xs:enumeration value="T_classe_utilisateur"/>
\r
395 <xs:complexType name="T_grma"/>
\r
396 <xs:complexType name="T_grno"/>
\r
397 <xs:complexType name="T_SalomeEntry"/>
\r
398 <xs:complexType name="T_Fichier"/>
\r
399 <!-- <xs:complexType name="T_Repertoire"/>-->
\r
400 <xs:simpleType name="T_Repertoire">
\r
403 <xs:restriction base="xs:string">
\r
404 <xs:whiteSpace value="preserve"/>
\r
409 <xs:simpleType name="T_simple">
\r
410 <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
412 <!-- <xs:complexType name="T_TXM"/>-->
\r
413 <!-- <xs:simpleType name="T_simple">
\r
414 <xs:restriction base="xs:string">
\r
415 <xs:enumeration value="Fichier"/>
\r
416 <xs:enumeration value="Repertoire"/>
\r
417 <xs:enumeration value="TXM"/>
\r
418 <xs:enumeration value="I"/>
\r
419 <xs:enumeration value="R"/>
\r
420 <xs:enumeration value="C"/>
\r
421 <xs:enumeration value="Bool"/>
\r
422 <xs:enumeration value="grma"/>
\r
423 <xs:enumeration value="grno"/>
\r
424 <xs:enumeration value="SalomeEntry"/>
\r
428 <xs:simpleType name="T_list_double">
\r
429 <xs:list itemType="xs:double"/>
\r
431 <!-- Possibilité d'utiliser un type paramétré ? -->
\r
432 <xs:complexType name="T_Matrice_double">
\r
434 <xs:extension base="T_list_double">
\r
435 <xs:attribute name="n" type="xs:integer" use="required"/>
\r
436 <xs:attribute name="m" type="xs:integer" use="required"/>
\r
438 </xs:simpleContent>
\r
440 <!-- Faire l'exercice de dériver de T_Matrice_double -->
\r
441 <xs:complexType name="T_Matrice_Symetrique_double">
\r
443 <xs:extension base="T_list_double">
\r
444 <xs:attribute name="n" type="xs:int" use="required"/>
\r
446 </xs:simpleContent>
\r
448 <!-- Une liste est aussi un type simple !!!! -->
\r
449 <!-- <xs:simpleType name="T_list_anySimpleType">
\r
450 <xs:list itemType="xs:anySimpleType"/>
\r
453 <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->
\r
454 <xs:complexType name="T_tuple">
\r
456 <xs:extension base="xs:anySimpleType">
\r
457 <xs:attribute name="n" type="xs:int" use="required"/>
\r
459 </xs:simpleContent>
\r
461 <xs:simpleType name="T_classe_utilisateur">
\r
462 <xs:restriction base="AT_nom"/>
\r
464 <xs:element name="typesimple" type="T_simple"/>
\r
465 <xs:element name="matrice_double" type="T_Matrice_double"/>
\r
466 <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>
\r
467 <xs:element name="tuple" type="T_tuple"/>
\r
468 <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>
\r
470 <!-- <xs:group name="T_Attendu_group1">
\r
472 <xs:element ref="typesimple"/>
\r
473 <xs:element ref="matrice_double"/>
\r
474 <xs:element ref="matrice_symetrique_double"/>
\r
475 <xs:element ref="tuple"/>
\r
476 <xs:element ref="classe_utilisateur"/>
\r
480 <xs:group name="T_Attendu_group2">
\r
482 <xs:element ref="typesimple"/>
\r
483 <xs:element ref="matrice_double"/>
\r
484 <xs:element ref="matrice_symetrique_double"/>
\r
485 <xs:element ref="tuple"/>
\r
486 <xs:element ref="classe_utilisateur"/>
\r
487 <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>
\r
491 <xs:complexType name="T_typeAttendu">
\r
492 <xs:group ref="T_Attendu_group1"/>
\r
495 <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->
\r
497 <xs:complexType name="T_into">
\r
498 <xs:group ref="T_Attendu_group2"/>
\r
501 <xs:complexType name="T_into">
\r
503 <!-- <xs:element ref="typesimple" type="T_Base"/>-->
\r
504 <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>
\r
505 <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>
\r
506 <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>
\r
507 <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>
\r
508 <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>
\r
509 <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>
\r
512 <xs:complexType name="T_typeAttendu">
\r
513 <xs:complexContent>
\r
514 <xs:restriction base="T_into">
\r
516 <xs:element ref="typesimple" minOccurs="0" maxOccurs="unbounded"/>
\r
517 <xs:element ref="matrice_double" minOccurs="0" maxOccurs="unbounded"/>
\r
518 <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="unbounded"/>
\r
519 <xs:element ref="tuple" minOccurs="0" maxOccurs="unbounded"/>
\r
520 <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="unbounded"/>
\r
523 </xs:complexContent>
\r
526 <!-- Catalogue EFFICAS équivalent
\r
529 from Accas import *
\r
531 class carte (ASSD) : pass
\r
532 class maille (ASSD) : pass
\r
533 class carte_flux_r (carte):pass
\r
535 class NOM_CHAM_INTO:
\r
536 def __call__(self, *l_typ_cham, **kwargs):
\r
537 return tuple(('A','B','C'))
\r
538 C_NOM_CHAM_INTO = NOM_CHAM_INTO()
\r
540 JdC = JDC_CATA(code='MAP',
\r
542 regles=ENSEMBLE('E1','E2','E3')
\r
545 CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);
\r
547 CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,
\r
548 NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),
\r
551 CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,
\r
552 NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)
\r
557 regles = (EXCLUS('ETAT_INIT','RESULTAT',),),
\r
558 ETAT_INIT = FACT(statut='f', max='**',
\r
559 GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),
\r
560 GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
\r
563 RESULTAT = FACT(statut='f',
\r
564 DEPL=SIMP(statut='o', typ='R', validators=NoRepeat()),
\r
565 VITE=SIMP(statut='f', typ='R', validators=NoRepeat()),
\r
566 ACCE=SIMP(statut='f', typ='R', validators=NoRepeat()),
\r
570 E2=PROC(nom="E2", op=None,
\r
571 regles = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
\r
572 CONCEPT = FACT(statut='f',max='**',
\r
573 NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
\r
575 CHAINE = SIMP(statut='f',typ='TXM'),
\r
576 POSITION = SIMP(statut='f',typ='I',defaut=1),
\r
577 TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
\r
580 E3=PROC(nom="E3",op=None,
\r
581 DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",
\r
582 into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),
\r
583 b_blocIn = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",
\r
584 ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),
\r
585 ALGO_INTE = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),
\r
586 CARTE = SIMP(statut='f',typ=carte,),
\r
587 b_carte = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",
\r
588 CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
\r
589 fr="Options pour le calcul de contraintes et efforts generalises",
\r
590 into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)
\r