<xs:element block="#all" name="graph" type="graph.type"> <xs:unique name="graph_data_key_unique"> <xs:selector xpath="./g:data"/>
<xs:field xpath="@key"/>
</xs:unique> <xs:key name="node_id_key"> <xs:selector xpath=".//g:node"/>
<xs:field xpath="@id"/>
</xs:key> <xs:unique name="edge_id_unique"> <xs:selector xpath=".//g:edge"/>
<xs:field xpath="@id"/>
</xs:unique> <xs:unique name="hyperedge_id_unique"> <xs:selector xpath=".//g:hyperedge"/>
<xs:field xpath="@id"/>
</xs:unique> <xs:unique name="endpoint_id_unique"> <xs:selector xpath=".//g:endpoint"/>
<xs:field xpath="@id"/>
</xs:unique> <xs:keyref name="edge_source_ref" refer="node_id_key"> <xs:selector xpath=".//g:edge"/>
<xs:field xpath="@source"/>
</xs:keyref> <xs:keyref name="edge_target_ref" refer="node_id_key"> <xs:selector xpath=".//g:edge"/>
<xs:field xpath="@target"/>
</xs:keyref> <xs:keyref name="endpoint_node_ref" refer="node_id_key"> <xs:selector xpath=".//g:endpoint"/>
<xs:field xpath="@node"/>
</xs:keyref> </xs:element>