Deleting from a Registry
The UDDI specification also provides delete functionality that can be used to retire any resources that no longer need to be advertised. The corresponding APIs in .NET require appropriate authentication to delete a resource and the unique identifier key. Ideally, the publisher would have a list of all the resource identifier keys. If not, the publisher could find the resource, obtain its identifier key, and then delete it from the registry. Simply obtaining the identifier key of a resource does not provide ownership over the resource; the identifier key is merely a unique reference to the resource. The UDDI registry establishes ownership relationships within the registry itself. Therefore, only the UDDI user who published a resource to the registry can delete it. The following code segment demonstrates deleting a service:
DeleteService ds = new DeleteService(); ds.ServiceKeys.Add("UUID key of the service to be deleted"); DispositionReport dr = ds.Send();
Other UDDI-registered resources such as binding templates, tModels, and business entities can be deleted in a similar manner using corresponding APIs and classes. Because tModels are extensively referenced in the UDDI data model, they cannot simply be deleted from the registry. When a delete_tModel API is invoked, the specified tModel is "hidden." This means that the deleted tModel cannot be discovered using find_tModel, but the details can still be obtained using get_tModel. Discoverability is removed, but existing users can continue to use the tModel. The only way to completely remove a tModel is to petition the operator where the tModel was saved.