All data is retrieved through a WitsmlServer instance which represents the WITSML server in the client program.
There are three different ways to get data:
1. Get multiple children of a given type from a specific parent
// Get all wellbores from a given well instance List<WitsmlWellbore> wellbores = witsmlServer.get(WitsmlWellbore.class, new WitsmlQuery(), well); // Get all rigs from a given wellbore instance List<WitsmlRig> rigs = witsmlServer.get(WitsmlRig.class, new WitsmlQuery(), wellbore); // ... or through the wellbore ID List<WitsmlRig> rigs = witsmlServer.get(WitsmlRig.class, new WitsmlQuery(), "ID-wellbore"); // Both parent and grandparent may be specified List<WitsmlMudLog> mudLogs = witsmlServer.get(WitsmlMudLog.class, new WitsmlQuery(), "ID-wellbore", "ID-well"); // Wells doesn't have parents so we can skip the parent argument List<WitsmlWell> wells = witsmlServer.get(WitsmlWell.class, new WitsmlQuery()); // Attempt to get all rigs! Some servers will accept this approach // while others will require a valid wellbore parent. // The WITSML standard is unclear on this issue. List<WitsmlRig> rigs = witsmlServer.get(WitsmlRig.class, new WitsmlQuery());