@Override
  public void parseXML(Document doc) {
    Element el = doc.getDocumentElement();

    if (el.getNodeName().compareTo("INDI") != 0) {
      return;
    }

    NodeList nodes = el.getChildNodes();

    for (int i = 0 ; i < nodes.getLength() ; i++) {
      Node n = nodes.item(i);

      if (n instanceof Element) {
        Element child = (Element) n;

        String name = child.getNodeName();

        if (name.equals("getProperties")) {
          processGetProperties(child);
        } else if (name.equals("newTextVector")) {
          processNewXXXVector(child);
        } else if (name.equals("newNumberVector")) {
          processNewXXXVector(child);
        } else if (name.equals("newSwitchVector")) {
          processNewXXXVector(child);
        } else if (name.equals("newBLOBVector")) {
          processNewXXXVector(child);
        } else if (name.equals("enableBLOB")) {
          processEnableBLOB(child);
        }
      }
    }
  }