- let current_node = ref (0,None) in
- let current_entry = Array.create 7 SOF.empty in
- let current_assign = ref 0 in
- { XPP.default_callbacks with
- XPP.start_element = Some( fun name attlist ->
- match name with
- | "entry" ->
- let id = List.assoc "id" attlist in
- let uri = List.assoc "uri" attlist in
- current_node := (int_of_string id,Some (UriManager.uri_of_string uri))
- | "node" ->
- let id = int_of_string (List.assoc "id" attlist) in
- let uri = List.assoc "uri" attlist in
- current_entry.(!current_assign) <-
- SOF.add (id,Some (UriManager.uri_of_string uri))
- current_entry.(!current_assign)
- | s -> current_assign := assigner_of' s
- );
- XPP.end_element = Some( fun name ->
- match name with
- | "entry" ->
- m := MAL.add !current_node (entry_of_array current_entry) !m;
- Array.fill current_entry 0 7 SOF.empty
- | _ -> ()
- );
- }
-;;
-
-
-let ugraph_of_xml filename =
- let module XPP = XmlPushParser in
- let result = ref MAL.empty in
- let cb = cb_factory result in
-(*let cb = cb_factory' result in*)