public List<DataProviderStatus> getStatuses() throws Exception {

		if(this.statuses == null) {
	    	this.statuses = new ArrayList<DataProviderStatus>();
			
	    	NodeList nodes = Utilities.selectNodes(this.getDocument(), "/dc:DCTransaction/dc:CheckStatusRs/dc:Payload/dc:DataProviders/dc:DataProvider", XMLLabels.STANDARD_NAMESPACES);
	    	for(int i = 0; i < nodes.getLength(); ++i) {
	    		Node node = nodes.item(i);
	    		
	    		String name = Utilities.selectSingleText(node, "./dc:Name", XMLLabels.STANDARD_NAMESPACES);
	    		String status = Utilities.selectSingleText(node, "./dc:Status", XMLLabels.STANDARD_NAMESPACES);
	    		String version = Utilities.selectSingleText(node, "./dc:Version", XMLLabels.STANDARD_NAMESPACES);
	    		
	    		this.statuses.add(new DataProviderStatus(name, status, version));
	    	}
		}
		
		return this.statuses;
	}