private INDIElementAndValue[] processINDIElements(INDIProperty property, Element xml) {

    String oneType;
    if (property instanceof INDITextProperty) {
      oneType = "oneText";
    } else if (property instanceof INDIBLOBProperty) {
      oneType = "oneBLOB";
    } else if (property instanceof INDINumberProperty) {
      oneType = "oneNumber";
    } else if (property instanceof INDISwitchProperty) {
      oneType = "oneSwitch";
    } else {
      return new INDIElementAndValue[0];
    }

    ArrayList<INDIElementAndValue> list = new ArrayList<INDIElementAndValue>();

    NodeList nodes = xml.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(oneType)) {
          INDIElementAndValue ev = processOneXXX(property, child);

          if (ev != null) {
            list.add(ev);
          }
        }
      }
    }

    return list.toArray(new INDIElementAndValue[0]);
  }