@Override
	public QueryResults<String> parseObjectIdentifiers(AtmosResponse response) {
		Collection<String> identifiers = new LinkedList<String>();
		HttpEntity body = response.getEntity();

		if (body != null) {
			try {
				DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

				Document xml = documentBuilder.parse(body.getContent());

				NodeList objects = xml.getElementsByTagName("Object");
				for (int i = 0; i < objects.getLength(); i++) {
					Node objectNode = objects.item(i);
					NodeList objectNodeChildren = objectNode.getChildNodes();
					for (int j = 0; j < objectNodeChildren.getLength(); j++) {
						Node objectNodeChild = objectNodeChildren.item(j);
						if (isNamedElement(objectNodeChild, "ObjectID")) {
							identifiers.add(objectNodeChild.getFirstChild().getNodeValue());
							break;
						}
					}
				}

			} catch (ParserConfigurationException e) {
				throw new AtmosStorageException(e.getMessage(), e);
			} catch (IllegalStateException e) {
				throw new AtmosStorageException(e.getMessage(), e);
			} catch (SAXException e) {
				throw new AtmosStorageException(e.getMessage(), e);
			} catch (IOException e) {
				throw new AtmosStorageException(e.getMessage(), e);
			}
		}

		identifiers = (identifiers.size() > 0) ? identifiers : null;
		return new QueryResults<String>(identifiers, response.getContinuationToken());
	}