Salome HOME
Merge from V6_main_20120808 08Aug12
[samples/datafiles.git] / Yacs / Schemas / foreach2.xml
diff --git a/Yacs/Schemas/foreach2.xml b/Yacs/Schemas/foreach2.xml
new file mode 100644 (file)
index 0000000..e3ef9d5
--- /dev/null
@@ -0,0 +1,79 @@
+<!--
+  Copyright (C) 2006-2011  CEA/DEN, 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
+
+-->
+<proc>
+    <!-- a for each loop with 3 branches in a bloc -->
+    <!--types -->
+    <sequence name="dblevec" content="double"/>
+
+    <!--nodes -->
+    <inline name="node0" >
+      <script>
+        <code>p1=[i*0.5 for i in range(10)]</code>
+      </script>
+      <outport name="p1" type="dblevec"/>
+    </inline>
+
+    <bloc name="b">
+    <foreach name="b1" nbranch="3" type="double" >
+      <inline name="node2" >
+        <function name="f">
+            <code>a=0</code>
+            <code>def f(p1):</code>
+            <code>  global a</code>
+            <code>  p1= p1+10.</code>
+            <code>  print a</code>
+            <code>  a=a+p1</code>
+            <code>  print a</code>
+            <code>  return p1</code>
+        </function>
+        <inport name="p1" type="double"/>
+        <outport name="p1" type="double"/>
+      </inline>
+    </foreach>
+    <datalink>
+      <fromnode>b1</fromnode><fromport>SmplPrt</fromport>
+      <tonode>b1.node2</tonode> <toport>p1</toport>
+    </datalink>
+  </bloc>
+    <inline name="node1" >
+      <script>
+        <code>print p1</code>
+      </script>
+      <inport name="p1" type="dblevec"/>
+    </inline>
+
+    <!--control -->
+    <control> <fromnode>node0</fromnode> <tonode>b</tonode> </control>
+    <control> <fromnode>b</fromnode> <tonode>node1</tonode> </control>
+
+    <!--datalink -->
+    <datalink>
+      <fromnode>node0</fromnode><fromport>p1</fromport>
+      <tonode>b.b1</tonode> <toport>SmplsCollection</toport>
+    </datalink>
+    <datalink>
+      <fromnode>b.b1.node2</fromnode><fromport>p1</fromport>
+      <tonode>node1</tonode> <toport>p1</toport>
+    </datalink>
+
+    <!--parameters -->
+
+</proc>