revise arch schema Signed-off-by: Fahrican Koşar <duck2@protonmail.com>
diff --git a/routing_resource.xsd b/routing_resource.xsd index 8b9f4c0..f890844 100644 --- a/routing_resource.xsd +++ b/routing_resource.xsd
@@ -16,12 +16,12 @@ </xs:complexType> <xs:complexType name="x_list"> - <xs:attribute name="index" type="xs:int" use="required"/> + <xs:attribute name="index" type="xs:unsignedInt" use="required"/> <xs:attribute name="info" type="xs:int" use="required"/> </xs:complexType> <xs:complexType name="y_list"> - <xs:attribute name="index" type="xs:int" use="required"/> + <xs:attribute name="index" type="xs:unsignedInt" use="required"/> <xs:attribute name="info" type="xs:int" use="required"/> </xs:complexType> @@ -36,37 +36,37 @@ </xs:simpleType> <xs:complexType name="timing"> - <xs:attribute name="R" type="xs:double"/> - <xs:attribute name="Cin" type="xs:double"/> - <xs:attribute name="Cinternal" type="xs:double"/> - <xs:attribute name="Cout" type="xs:double"/> - <xs:attribute name="Tdel" type="xs:double"/> + <xs:attribute name="R" type="xs:float"/> + <xs:attribute name="Cin" type="xs:float"/> + <xs:attribute name="Cinternal" type="xs:float"/> + <xs:attribute name="Cout" type="xs:float"/> + <xs:attribute name="Tdel" type="xs:float"/> </xs:complexType> <xs:complexType name="sizing"> - <xs:attribute name="mux_trans_size" type="xs:double" use="required"/> - <xs:attribute name="buf_size" type="xs:double" use="required"/> + <xs:attribute name="mux_trans_size" type="xs:float" use="required"/> + <xs:attribute name="buf_size" type="xs:float" use="required"/> </xs:complexType> <xs:complexType name="switch"> - <xs:choice maxOccurs="unbounded"> - <xs:element name="timing" type="timing"/> + <xs:all> + <xs:element name="timing" type="timing" minOccurs="0"/> <xs:element name="sizing" type="sizing"/> - </xs:choice> + </xs:all> <xs:attribute name="id" type="xs:int" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="type" type="switch_type"/> </xs:complexType> <xs:complexType name="segment_timing"> - <xs:attribute name="R_per_meter" type="xs:double"/> - <xs:attribute name="C_per_meter" type="xs:double"/> + <xs:attribute name="R_per_meter" type="xs:float"/> + <xs:attribute name="C_per_meter" type="xs:float"/> </xs:complexType> <xs:complexType name="segment"> - <xs:sequence> - <xs:element name="timing" type="segment_timing" maxOccurs="unbounded"/> - </xs:sequence> + <xs:all> + <xs:element name="timing" type="segment_timing" minOccurs="0"/> + </xs:all> <xs:attribute name="id" type="xs:int" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> @@ -90,8 +90,6 @@ <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> - <xs:attribute name="x_offset" type="xs:int"/> - <xs:attribute name="y_offset" type="xs:int"/> </xs:extension> </xs:simpleContent> </xs:complexType> @@ -166,8 +164,8 @@ </xs:complexType> <xs:complexType name="node_timing"> - <xs:attribute name="R" type="xs:double" use="required"/> - <xs:attribute name="C" type="xs:double" use="required"/> + <xs:attribute name="R" type="xs:float" use="required"/> + <xs:attribute name="C" type="xs:float" use="required"/> </xs:complexType> <xs:complexType name="node_segment"> @@ -175,34 +173,34 @@ </xs:complexType> <xs:complexType name="node"> - <xs:choice maxOccurs="unbounded"> + <xs:all> <xs:element name="loc" type="node_loc"/> - <xs:element name="timing" type="node_timing"/> - <xs:element name="segment" type="node_segment"/> - <xs:element name="metadata" type="metadata"/> - </xs:choice> - <xs:attribute name="id" type="xs:int" use="required"/> + <xs:element name="timing" type="node_timing" minOccurs="0"/> + <xs:element name="segment" type="node_segment" minOccurs="0"/> + <xs:element name="metadata" type="metadata" minOccurs="0"/> + </xs:all> + <xs:attribute name="id" type="xs:unsignedInt" use="required"/> <xs:attribute name="type" type="node_type" use="required"/> <xs:attribute name="direction" type="node_direction"/> - <xs:attribute name="capacity" type="xs:int" use="required"/> + <xs:attribute name="capacity" type="xs:unsignedInt" use="required"/> </xs:complexType> <xs:complexType name="edge"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="metadata" type="metadata"/> - </xs:choice> - <xs:attribute name="id" type="xs:int"/> - <xs:attribute name="src_node" type="xs:int" use="required"/> - <xs:attribute name="sink_node" type="xs:int" use="required"/> - <xs:attribute name="switch_id" type="xs:int" use="required"/> + <xs:all> + <xs:element name="metadata" type="metadata" minOccurs="0"/> + </xs:all> + <xs:attribute name="id" type="xs:unsignedInt"/> + <xs:attribute name="src_node" type="xs:unsignedInt" use="required"/> + <xs:attribute name="sink_node" type="xs:unsignedInt" use="required"/> + <xs:attribute name="switch_id" type="xs:unsignedInt" use="required"/> </xs:complexType> <xs:complexType name="channels"> - <xs:choice maxOccurs="unbounded"> + <xs:sequence> <xs:element name="channel" type="channel"/> - <xs:element name="x_list" type="x_list"/> - <xs:element name="y_list" type="y_list"/> - </xs:choice> + <xs:element name="x_list" type="x_list" maxOccurs="unbounded"/> + <xs:element name="y_list" type="y_list" maxOccurs="unbounded"/> + </xs:sequence> </xs:complexType> <xs:complexType name="switches"> @@ -241,18 +239,37 @@ </xs:choice> </xs:complexType> + <xs:complexType name="bin_nodes"> + <xs:attribute name="file" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="connection_box"> + <xs:attribute name="id" type="xs:int"/> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="connection_boxes"> + <xs:sequence> + <xs:element name="connection_box" type="connection_box" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="x_dim" type="xs:int"/> + <xs:attribute name="y_dim" type="xs:int"/> + <xs:attribute name="num_boxes" type="xs:int"/> + </xs:complexType> + <xs:element name="rr_graph"> <xs:complexType> - <xs:choice maxOccurs="unbounded"> + <xs:all> + <xs:element name="binary_nodes_and_edges" type="bin_nodes" minOccurs="0"/> + <xs:element name="connection_boxes" type="connection_boxes" minOccurs="0"/> <xs:element name="channels" type="channels"/> <xs:element name="switches" type="switches"/> <xs:element name="segments" type="segments"/> <xs:element name="block_types" type="block_types"/> <xs:element name="grid" type="grid_locs"/> <xs:element name="rr_nodes" type="rr_nodes"/> - <xs:element name="rr_edges" type="rr_edges"/> - </xs:choice> + </xs:all> <xs:attribute name="tool_name" type="xs:string"/> <xs:attribute name="tool_version" type="xs:string"/>