opendap/src/main/java/ucar/nc2/dods/DodsV.java
static DodsV parseDDS(DDS dds) {
    DodsV root = new DodsV(null, null);

    // recursively get the Variables from the DDS
    Enumeration variables = dds.getVariables();
    parseVariables(root, variables);

    // assign depth first sequence number
    root.assignSequence(root);
    return root;
  }
static DodsV parseDDS(DDS dds) {
    DodsV root = new DodsV(null, null);

    // recursively get the Variables from the DDS
    Enumeration variables = dds.getVariables();
    parseVariables(root, variables);

    // assign depth first sequence number
    root.assignSequence(root);
    return root;
  }
Parse the DDS, creating a tree of DodsV objects. The root node is only a container, ie it has no BaseType.
The Darray object (which has the dimension info) becomes a field of the DodsV, rather than being in the tree.

@param dds the DDS to parse
@return the root dodsV object