code: public void load(XMLReader r) throws KNXMLException
  	{
  		if (r.getPosition() != XMLReader.START_TAG)
  			r.read();
  		final Element e = r.getCurrent();
  		if (r.getPosition() != XMLReader.START_TAG || !e.getName().equals(TAG_DATAPOINTS))
  			throw new KNXMLException(TAG_DATAPOINTS + " element not found", e != null ? e
  				.getName() : null, r.getLineNumber());
  		synchronized (points) {
  			while (r.read() == XMLReader.START_TAG) {
  				final Datapoint dp = Datapoint.create(r);
  				if (points.containsKey(dp.getMainAddress()))
  					throw new KNXMLException(TAG_DATAPOINTS + " element contains "
  						+ "duplicate datapoint", dp.getMainAddress().toString(), r
  						.getLineNumber());
  				points.put(dp.getMainAddress(), dp);
  			}
  		}
  	}
docs: /* (non-Javadoc)
  @see tuwien.auto.calimero.datapoint.DatapointModel#load
  (tuwien.auto.calimero.xml.XMLReader)