X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/abbc64cf04a35ab3549d5c516f44c7c5921baa63..756baf5c8eaf003e8271dab9c395de2b0e704857:/projectfile.xsd

diff --git a/projectfile.xsd b/projectfile.xsd
index 36fe54e..02ba8fd 100644
--- a/projectfile.xsd
+++ b/projectfile.xsd
@@ -2,332 +2,472 @@
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 
 
-    <!-- déclaration des groupes d'attributs -->
-
-    <xs:attributeGroup name="group_itemAttrGroup">
-	<xs:attribute ref="id"/>
-	<xs:attribute ref="name"/>
-	<xs:attribute ref="upper_group"/>
-	<xs:attribute ref="upper_item"/>
-	<xs:attribute ref="position"/>
-	<xs:attribute ref="dimension"/>
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="group_ifaceAttrGroup">
-	<xs:attribute ref="id"/>
-	<xs:attribute ref="name"/>
-	<xs:attribute ref="level"/>
-	<xs:attribute ref="direction"/>
-	<xs:attribute ref="orientation"/>
-	<xs:attribute ref="position"/>
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="block_itemsAttrGroup">
-	<xs:attribute ref="functional_count" />
-	<xs:attribute ref="group_count" />
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="bi_functionalAttrGroup">
-	<xs:attribute ref="id" />
-	<xs:attribute ref="ref_xml" />
-	<xs:attribute ref="ref_md5" />
-	<xs:attribute ref="name" />
-	<xs:attribute ref="position" />
-	<xs:attribute ref="dimension" />
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="bif_parameterAttrGroup">
-	<xs:attribute ref="name" />
-	<xs:attribute ref="value" />
-	<xs:attribute ref="context" />
-	<xs:attribute ref="type" />
-
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="bif_ifaceAttrGroup">
-	<xs:attribute ref="id" />
-	<xs:attribute ref="name" />
-	<xs:attribute ref="ref_name" />
-	<xs:attribute ref="orientation" />
-	<xs:attribute ref="position" />
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="bi_groupAttrGroup">
-	<xs:attribute ref="id" />
-	<xs:attribute ref="inside_group" />
-	<xs:attribute ref="position" />
-	<xs:attribute ref="dimension" />
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="big_ifaceAttrGroup">
-	<xs:attribute ref="id" />
-	<xs:attribute ref="ref_name" />
-	<xs:attribute ref="orientation" />
-	<xs:attribute ref="position" />
-    </xs:attributeGroup>
-
-    <xs:attributeGroup name="connectionAttrGroup">
-	<xs:attribute ref="from" />
-	<xs:attribute ref="to" />
-    </xs:attributeGroup>
-
-
-    <!-- déclaration des attributs -->
-
-    <xs:attribute name="count">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="id">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="upper_group">
-	<xs:simpleType>
-	    <xs:restriction base="xs:integer">
-		<xs:minInclusive value="-1"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="upper_item">
-	<xs:simpleType>
-	    <xs:restriction base="xs:integer">
-		<xs:minInclusive value="-1"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="inside_group">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="functional_count">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="group_count">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="value">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="from">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="to">
-	<xs:simpleType>
-	    <xs:restriction base="xs:nonNegativeInteger">
-		<xs:minInclusive value="0"/>
-	    </xs:restriction>
-	</xs:simpleType>
-    </xs:attribute>
-
-    <xs:attribute name="position" type="xs:string"/>
-    <xs:attribute name="dimension" type="xs:string"/>
-    <xs:attribute name="level" type="xs:string"/>
-    <xs:attribute name="direction" type="xs:string"/>
-    <xs:attribute name="orientation" type="xs:string"/>
-    <xs:attribute name="name" type="xs:string"/>
-    <xs:attribute name="ref_name" type="xs:string"/>
-    <xs:attribute name="ref_xml" type="xs:string"/>
-    <xs:attribute name="ref_md5" type="xs:string"/>
-    <xs:attribute name="context" type="xs:string"/>
-    <xs:attribute name="type" type="xs:string"/>
-
-
-    <!-- déclaration des groupes d'éléments -->
-
-    <xs:group name="rootElmtGroup">
-	<xs:sequence>
-	    <xs:element ref="scenes"/>
-	    <xs:element ref="connections"/>	
-	</xs:sequence>
-    </xs:group>
-
-    <xs:group name="sceneElmtGroup">
-	<xs:sequence>
-	    <xs:element ref="group_item"/>
-	    <xs:element ref="block_items"/>
-	</xs:sequence>
-    </xs:group>
-
-    <xs:group name="block_itemsElmtGroup">
-	<xs:sequence>
-	    <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
-	    <xs:element ref="bi_group" minOccurs="0"/>
-	</xs:sequence>
-    </xs:group>
-
-    <xs:group name="bi_functionalElmtGroup">
-	<xs:sequence>
-	    <xs:element ref="bif_parameters"/>
-	    <xs:element ref="bif_ifaces"/>
-	</xs:sequence>
-    </xs:group>
-
-
-    <!-- déclaration des éléments -->
-
-    <xs:element name="scenes">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="scene" maxOccurs="unbounded" />
-	    </xs:sequence>
-	    <xs:attribute ref="count"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="scene">
-	<xs:complexType>
-	    <xs:group ref="sceneElmtGroup"/>
-	    <xs:attribute ref="id"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="group_item">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="group_ifaces" maxOccurs="unbounded" />
-	    </xs:sequence>	
-	    <xs:attributeGroup ref="group_itemAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="group_ifaces">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
-	    </xs:sequence>
-	    <xs:attribute ref="count"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="group_iface">
-	<xs:complexType>
-	    <xs:attributeGroup ref="group_ifaceAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="block_items">
-	<xs:complexType>
-	    <xs:group ref="block_itemsElmtGroup"/>
-	    <xs:attributeGroup ref="block_itemsAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="bi_functional">
-	<xs:complexType>
-	    <xs:group ref="bi_functionalElmtGroup"/>
-	    <xs:attributeGroup ref="bi_functionalAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="bif_parameters">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
-	    </xs:sequence>
-	</xs:complexType>
-    </xs:element>
-	
-    <xs:element name="bif_parameter">
-	<xs:complexType>
-	    <xs:attributeGroup ref="bif_parameterAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="bif_ifaces">
-	<xs:complexType>
-	    <xs:sequence>
-	        <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
-	    </xs:sequence>
-	    <xs:attribute ref="count"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="bif_iface">
-	<xs:complexType>
-	    <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="bi_group">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="big_ifaces"/>
-	    </xs:sequence>
-	    <xs:attributeGroup ref="bi_groupAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="big_ifaces">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
-	    </xs:sequence>
-	    <xs:attribute ref="count" />
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="big_iface">
-	<xs:complexType>
-	    <xs:attributeGroup ref="big_ifaceAttrGroup" />
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="connections">
-	<xs:complexType>
-	    <xs:sequence>
-		<xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
-	    </xs:sequence>
-	    <xs:attribute ref="count" />
-	</xs:complexType>
-    </xs:element>
-
-    <xs:element name="connection">
-	<xs:complexType>
-	    <xs:attributeGroup ref="connectionAttrGroup"/>
-	</xs:complexType>
-    </xs:element>
-
-    <!-- racine du document -->
-
-    <xs:element name="blast_project">
-	<xs:complexType>
-	    <xs:group ref="rootElmtGroup"/>
-	</xs:complexType>
-    </xs:element>
+  <!-- déclaration des groupes d'attributs -->
+
+  <xs:attributeGroup name="group_itemAttrGroup">
+    <xs:attribute ref="id"/>
+    <xs:attribute ref="name"/>
+    <xs:attribute ref="upper_group"/>
+    <xs:attribute ref="upper_item"/>
+    <xs:attribute ref="position"/>
+    <xs:attribute ref="dimension"/>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="group_ifaceAttrGroup">
+    <xs:attribute ref="id"/>
+    <xs:attribute ref="name"/>
+    <xs:attribute ref="purpose"/>
+    <xs:attribute ref="direction"/>
+    <xs:attribute ref="orientation"/>
+    <xs:attribute ref="position"/>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="source_itemsAttrGroup">
+    <xs:attribute ref="count" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="block_itemsAttrGroup">
+    <xs:attribute ref="functional_count" />
+    <xs:attribute ref="group_count" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="source_itemAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="ref_xml" />
+    <xs:attribute ref="ref_md5" />
+    <xs:attribute ref="name" />
+    <xs:attribute ref="position" />
+    <xs:attribute ref="dimension" />
+  </xs:attributeGroup>
+  
+  <xs:attributeGroup name="bi_functionalAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="ref_xml" />
+    <xs:attribute ref="ref_md5" />
+    <xs:attribute ref="name" />
+    <xs:attribute ref="position" />
+    <xs:attribute ref="dimension" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="source_parameterAttrGroup">
+    <xs:attribute ref="name" />
+    <xs:attribute ref="value" />
+    <xs:attribute ref="context" />
+    <xs:attribute ref="type" />
+  </xs:attributeGroup>
+  
+  <xs:attributeGroup name="bif_parameterAttrGroup">
+    <xs:attribute ref="name" />
+    <xs:attribute ref="value" />
+    <xs:attribute ref="context" />
+    <xs:attribute ref="type" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="source_ifaceAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="name" />
+    <xs:attribute ref="ref_name" />
+    <xs:attribute ref="orientation" />
+    <xs:attribute ref="position" />
+  </xs:attributeGroup>
+  
+  <xs:attributeGroup name="bif_ifaceAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="name" />
+    <xs:attribute ref="ref_name" />
+    <xs:attribute ref="orientation" />
+    <xs:attribute ref="position" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="bi_groupAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="inside_group" />
+    <xs:attribute ref="position" />
+    <xs:attribute ref="dimension" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="big_ifaceAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="ref_name" />
+    <xs:attribute ref="orientation" />
+    <xs:attribute ref="position" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="connectionAttrGroup">
+    <xs:attribute ref="from" />
+    <xs:attribute ref="to" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="modifierAttrGroup">
+    <xs:attribute ref="id" />
+    <xs:attribute ref="type" />
+    <xs:attribute ref="params" />
+  </xs:attributeGroup>
+  
+
+  <!-- déclaration des attributs -->
+
+  <xs:attribute name="count">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="id">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="upper_scene">
+    <xs:simpleType>
+      <xs:restriction base="xs:integer">
+	<xs:minInclusive value="-1"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="upper_group">
+    <xs:simpleType>
+      <xs:restriction base="xs:integer">
+	<xs:minInclusive value="-1"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="upper_item">
+    <xs:simpleType>
+      <xs:restriction base="xs:integer">
+	<xs:minInclusive value="-1"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="inside_group">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="functional_count">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="group_count">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="value" type="xs:string"/>
+
+  <xs:attribute name="from">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="to">
+    <xs:simpleType>
+      <xs:restriction base="xs:nonNegativeInteger">
+	<xs:minInclusive value="0"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="purpose">
+    <xs:simpleType>
+      <xs:restriction base="xs:string">
+	<xs:enumeration value="data"/>
+	<xs:enumeration value="clock"/>
+	<xs:enumeration value="reset"/>
+	<xs:enumeration value="wishbone"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+  
+  <xs:attribute name="direction">
+    <xs:simpleType>
+      <xs:restriction base="xs:string">
+	<xs:enumeration value="input"/>
+	<xs:enumeration value="output"/>
+	<xs:enumeration value="inout"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+
+  <xs:attribute name="orientation">
+    <xs:simpleType>
+      <xs:restriction base="xs:string">
+      <xs:enumeration value="west"/>
+      <xs:enumeration value="east"/>
+      <xs:enumeration value="north"/>
+      <xs:enumeration value="south"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+  
+  <xs:attribute name="position" type="xs:string"/>
+  <xs:attribute name="dimension" type="xs:string"/>
+  <xs:attribute name="name" type="xs:string"/>
+  <xs:attribute name="ref_name" type="xs:string"/>
+  <xs:attribute name="ref_xml" type="xs:string"/>
+  <xs:attribute name="ref_md5" type="xs:string"/>
+  <xs:attribute name="context" type="xs:string"/>
+  <xs:attribute name="type" type="xs:string"/>
+  <xs:attribute name="params" type="xs:string"/>
+  <xs:attribute name="project_path" type="xs:string"/>  
+
+
+  <!-- déclaration des groupes d'éléments -->
+
+  <xs:group name="rootElmtGroup">
+    <xs:sequence>
+      <xs:element ref="scenes"/>
+      <xs:element ref="connections"/>
+      <xs:element ref="modifiers"/>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:group name="sceneElmtGroup">
+    <xs:sequence>
+      <xs:element ref="group_item"/>
+      <xs:element ref="source_items" minOccurs="0" maxOccurs="unbounded"/>	  
+      <xs:element ref="block_items"/>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:group name="source_itemsElmtGroup">
+    <xs:sequence>
+      <xs:element ref="source_item" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:group>
+  
+  <xs:group name="block_itemsElmtGroup">
+    <xs:sequence>
+      <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>      
+    </xs:sequence>
+  </xs:group>
+
+  <xs:group name="source_itemElmtGroup">
+    <xs:sequence>
+      <xs:element ref="source_parameters"/>
+      <xs:element ref="source_ifaces"/>
+    </xs:sequence>
+  </xs:group>
+  
+  <xs:group name="bi_functionalElmtGroup">
+    <xs:sequence>
+      <xs:element ref="bif_parameters"/>
+      <xs:element ref="bif_ifaces"/>
+    </xs:sequence>
+  </xs:group>
+
+
+  <!-- déclaration des éléments -->
+
+  <xs:element name="scenes">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="scene" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute ref="count"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="scene">
+    <xs:complexType>
+      <xs:group ref="sceneElmtGroup"/>
+      <xs:attribute ref="id"/>
+      <xs:attribute ref="upper_scene"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="group_item">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="group_ifaces" maxOccurs="unbounded" />
+      </xs:sequence>	
+      <xs:attributeGroup ref="group_itemAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="group_ifaces">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute ref="count"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="group_iface">
+    <xs:complexType>
+      <xs:attributeGroup ref="group_ifaceAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="source_items">
+    <xs:complexType>
+      <xs:group ref="source_itemsElmtGroup"/>
+      <xs:attributeGroup ref="source_itemsAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="block_items">
+    <xs:complexType>
+      <xs:group ref="block_itemsElmtGroup"/>
+      <xs:attributeGroup ref="block_itemsAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="source_item">
+    <xs:complexType>
+      <xs:group ref="source_itemElmtGroup"/>
+      <xs:attributeGroup ref="source_itemAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="bi_functional">
+    <xs:complexType>
+      <xs:group ref="bi_functionalElmtGroup"/>
+      <xs:attributeGroup ref="bi_functionalAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="source_parameters">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="source_parameter" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="source_parameter">
+    <xs:complexType>
+      <xs:attributeGroup ref="source_parameterAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="bif_parameters">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="bif_parameter">
+    <xs:complexType>
+      <xs:attributeGroup ref="bif_parameterAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="source_ifaces">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="source_iface" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute ref="count"/>
+    </xs:complexType>
+  </xs:element>
+  
+  <xs:element name="source_iface">
+    <xs:complexType>
+      <xs:attributeGroup ref="source_ifaceAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="bif_ifaces">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute ref="count"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="bif_iface">
+    <xs:complexType>
+      <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="bi_group">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="big_ifaces"/>
+      </xs:sequence>
+      <xs:attributeGroup ref="bi_groupAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="big_ifaces">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute ref="count" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="big_iface">
+    <xs:complexType>
+      <xs:attributeGroup ref="big_ifaceAttrGroup" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="connections">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute ref="count" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="connection">
+    <xs:complexType>
+      <xs:attributeGroup ref="connectionAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="modifiers">
+    <xs:complexType>
+      <xs:sequence>
+	<xs:element ref="modifier" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="modifier">
+    <xs:complexType>
+      <xs:attributeGroup ref="modifierAttrGroup"/>
+    </xs:complexType>
+  </xs:element>
+  
+  <!-- racine du document -->
+
+  <xs:element name="blast_project">
+    <xs:complexType>
+      <xs:group ref="rootElmtGroup"/>
+      <xs:attribute ref="project_path" />
+    </xs:complexType>
+  </xs:element>
 
 </xs:schema>