Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/GS3JavaClient.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/GS3JavaClient.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/GS3JavaClient.java	(revision 21835)
@@ -736,5 +736,5 @@
 			JEditorPane information = new JEditorPane();
 			information.setEditable(false);
-	        information.setContentType("text/html");
+			information.setContentType("text/html");
 			information.setText(collDataEl.info());
 			
@@ -929,6 +929,7 @@
 	 * to be retrieved. */
 	public void doBrowse(ClassifierData classifier) {
+		String[] classifierNames = { classifier.name };
 		String response = dlAPIA.retrieveBrowseStructure(
-				this.colName, this.serviceName, classifier.name);
+				this.colName, this.serviceName, classifierNames);
 		
 		browseResponseObject.clear();
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/DigitalLibraryServicesAPIA.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/DigitalLibraryServicesAPIA.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/DigitalLibraryServicesAPIA.java	(revision 21835)
@@ -201,11 +201,11 @@
 	 * classifierID (including the structures of document descendents of 
 	 * the classifier). 
-	 * @param classifierID is of the form CL# where the number (#) marks
-	 * out structured sections like CL1.1.3 or CL2 
+	 * @param classifierIDs - each ID is of the form CL# where the number (#)
+	 * marks out structured sections like CL1.1.3 or CL2 
 	 * @param collection is the name of the collection 
 	 * @param service is the name of the browse service (=ClassifierBrowse usually) 
 	*/
 	public String retrieveBrowseStructure(
-			String collection, String service, String classifierID);
+			String collection, String service, String[] classifierIDs);
 
 	/**	@return a String representing Greenstone3 
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/FedoraServicesAPIA.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/FedoraServicesAPIA.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/FedoraServicesAPIA.java	(revision 21835)
@@ -121,5 +121,5 @@
 	}
 
-	/**	@return a String representing Greenstone3 DocumentMetadataRetrieve XML
+	/**	@return a String representing Greenstone3 DocumentStructureRetrieve XML
 	 * containing the document structure of the documents indicated by docIDs: 
 	 * this means all their descendents 
@@ -131,5 +131,5 @@
 	}
 	
-	/**	@return a String representing Greenstone3 DocumentMetadataRetrieve XML 
+	/**	@return a String representing Greenstone3 DocumentStructureRetrieve XML 
 	 * containing the document structure of the document indicated by docID: 
 	 * this means all its descendents 
@@ -142,5 +142,5 @@
 
 	// UNUSED by the client, but still a very useful method:
-	/**	@return a String representing Greenstone3 DocumentMetadataRetrieve XML 
+	/**	@return a String representing Greenstone3 DocumentStructureRetrieve XML 
 	 * containing a view of the document structure of the documents denoted by 
 	 * docs where only the requested documents and their direct children are  
@@ -153,5 +153,5 @@
 	}
 	
-	/**	@return a String representing Greenstone3 DocumentMetadataRetrieve XML 
+	/**	@return a String representing Greenstone3 DocumentStructureRetrieve XML 
 	 * containing a view of the document structure of the document denoted by 
 	 * docID where only the document and its direct children are returned. 
@@ -167,13 +167,13 @@
 	 * classifierID (including the structures of document descendents of 
 	 * the classifier). 
-	 * @param classifierID is of the form CL# where the number (#) marks
-	 * out structured sections like CL1.1.3 or CL2 
+	 * @param classifierIDs - each ID is of the form CL# where the number (#)
+	 * marks out structured sections like CL1.1.3 or CL2 
 	 * @param collection is the name of the collection 
 	 * @param service is the name of the browse service (=ClassifierBrowse usually)
 	*/
 	public String retrieveBrowseStructure(
-			String collection, String service, String classifierID) 
+			String collection, String service, String[] classifierIDs) 
 	{
-		return this.browse(collection, classifierID);
+		return this.browse(collection, classifierIDs);
 	}
 
@@ -194,21 +194,3 @@
 	}
 	
-	/**	@return a String representing Greenstone3 XML for a query process
-	 * response returning the results for the query denoted by parameter
-	 * nameValParamsMap.
-	 * @param nameValParamsMap is a Map of name and value pairs for all the
-	 * query field data values. The names match the field names that
-	 * describeCollectionService() would have returned for the query service. 
-	 * @param collection is the name of the collection 
-	 * @param service is the name of the query service
-	 * This method is only ever called when any of the services in the digital 
-	 * library described themselves as type=query. Therefore any digital
-	 * libraries that have no query services, can just return emtpy message 
-	 * strings (or even "") since this method will never be called on them 
-	 * anyway. */
-	public String query(String collection, String service, 
-			Map nameValParamsMap) 
-	{	
-		return super.query(collection, service, nameValParamsMap);
-	}
 }
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/GS3ServicesAPIA.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/GS3ServicesAPIA.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3DemoClient/org/greenstone/gs3client/dlservices/GS3ServicesAPIA.java	(revision 21835)
@@ -356,13 +356,12 @@
 	 * classifierID (including the structures of document descendants of 
 	 * the classifier). 
-	 * @param classifierID is of the form CL# where the number (#) marks
-	 * out structured sections like CL1.1.3 or CL2 
+	 * @param classifierIDs - each ID is of the form CL# where the number (#)
+	 * marks out structured sections like CL1.1.3 or CL2 
 	 * @param collection is the name of the collection 
 	 * @param service is the name of the browse service (=ClassifierBrowse usually)
 	*/
 	public String retrieveBrowseStructure(
-			String collection, String service, String classifierID) 
+			String collection, String service, String[] classifierIDs) 
 	{
-		String[] classifierIDs = { classifierID }; 
 		return this.browseDescendants(collection, service, 
 				language, classifierIDs );
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraConnection.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraConnection.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraConnection.java	(revision 21835)
@@ -244,5 +244,5 @@
 		// get user input
 		setInitialisationProperties(properties);
-    	properties = null; // finished
+		properties = null; // finished
 	}
 	
@@ -524,6 +524,6 @@
 		// fewer files of FedoraClient.jar
 		FedoraAPIAServiceLocator serviceLocator 
-			= new FedoraAPIAServiceLocator(fedoraServerUsername,
-					fedoraServerPassword);
+		    = new FedoraAPIAServiceLocator(fedoraServerUsername,
+						   fedoraServerPassword);
 		
 		APIA = null;
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraGS3Connection.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraGS3Connection.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraGS3Connection.java	(revision 21835)
@@ -161,5 +161,5 @@
 	 * administrative password and username of the fedora server showing 
 	 * the values in the properties file as default. If the necessary 
-	 * initialisation are not present in the file, they corresponding fields
+	 * initialisation are not present in the file, the corresponding fields
 	 * in the dialog will be blank. 
 	 * If no password was set on the fedora repository when installing it, 
@@ -1301,7 +1301,6 @@
 	 * serviceNames: DocumentContent/Metadata/StructureRetrieve, ClassifierBrowse,
 	 * ClassifierBrowseMetadataRetrieve.   
-	 * All collections in this Digital Library (Fedora Repository) share 
-	 * the same services, so this method returns the same as 
-	 * describeService(serviceName).
+	 * All collections in this Digital Library (Fedora Repository) share the
+	 * same services, so this method returns the same services as getServiceList();
 	 * @param collectionName - the name of the collection whose services are to
 	 * be described. It will be converted to a fedora collection pid, which is of 
@@ -1679,5 +1678,5 @@
 	 * user to browse the titles of documents in the given collection by letter
 	 * and returning the results.
-	 * @param classifierID is the id of the classifier on which to browse. In
+	 * @param classifierIDs are the ids of the classifiers on which to browse. In
 	 * this case, the classifier indicates whether we browse titles by letter, or
 	 * browse (documents) by collection; and it is of the form &lt;CL(letter)&gt;.
@@ -1687,5 +1686,5 @@
 	 * the documents that start with the letter indicated by parameter classifier.
 	*/
-	public String browse(String collectionName, String classifierID)
+	public String browse(String collectionName, String[] classifierIDs)
 	{
 		Document doc = builder.newDocument();
@@ -1696,9 +1695,10 @@
 				GSXML.CLASS_NODE_ELEM+GSXML.LIST_MODIFIER);
 		
+	for(int i = 0; i < classifierIDs.length; i++) {
 		// <classifierNode nodeID="classifierNum">
 		Element requestedClassifierNode = doc.createElement(
 				GSXML.CLASS_NODE_ELEM);
 		Attr attribute = doc.createAttribute(GSXML.NODE_ID_ATT);
-		attribute.setValue(classifierID);
+		attribute.setValue(classifierIDs[i]);
 		requestedClassifierNode.setAttributeNode(attribute);
 		classifierNodeList.appendChild(requestedClassifierNode);
@@ -1711,5 +1711,5 @@
 		Element classifierNode = doc.createElement(GSXML.CLASS_NODE_ELEM);
 		attribute = doc.createAttribute(GSXML.NODE_ID_ATT);
-		attribute.setValue(classifierID);
+		attribute.setValue(classifierIDs[i]);
 		classifierNode.setAttributeNode(attribute);
 		nodeStructure.appendChild(classifierNode);
@@ -1719,5 +1719,5 @@
 		// classifier CL2 = browse by collection;
 		//remove the CL prefix and obtain the number from the id:
-		int classifierNum = Integer.parseInt(classifierID.replace("CL", ""));
+		int classifierNum = Integer.parseInt(classifierIDs[i].replace("CL", ""));
 		switch(classifierNum) {
 			case 1:
@@ -1727,7 +1727,6 @@
 				    // Retrieve the document structure for each subClassifierID: 
 				    // all the documents that begin with its letter.
-				    // remove the starting CL
 				    String letter = String.valueOf(ch);
-				    try{
+				    try {
 					String[] docPIDs = this.browseTitlesByLetter(
 						     collectionName, letter);
@@ -1740,5 +1739,5 @@
 						  GSXML.CLASS_NODE_ELEM);
 					attribute = doc.createAttribute(GSXML.NODE_ID_ATT);
-					attribute.setValue(classifierID+"."+num);
+					attribute.setValue(classifierIDs[i]+"."+num);
 					subClassifier.setAttributeNode(attribute);
 					classifierNode.appendChild(subClassifier);
@@ -1760,5 +1759,5 @@
 							GSXML.CLASS_NODE_ELEM);
 					attribute = doc.createAttribute(GSXML.NODE_ID_ATT);
-					attribute.setValue(classifierID+"."+0); //
+					attribute.setValue(classifierIDs[i]+"."+0); //
 					subClassifier.setAttributeNode(attribute);
 					classifierNode.appendChild(subClassifier);
@@ -1769,6 +1768,7 @@
 			default:
 				ex = new FedoraGS3RunException( // cause is regular exception
-					new Exception("Unknown classifier ID: " + classifierID));
-		}
+					new Exception("Unknown classifier ID: " + classifierIDs[i]));
+		}
+	}
 		Element responseMsg = createResponseMessage(doc, classifierNodeList, ex,
 				GSXML.REQUEST_TYPE_DESCRIBE, collectionName+"/ClassifierBrowse");
@@ -2209,5 +2209,5 @@
 			System.out.println("\nCLASSIFIER BROWSE");
 			System.out.println(con.browse("gs2mgdemo", //"ClassifierBrowse", 
-					"CL1"));
+						      new String[]{"CL1"}));
 			
 			System.out.println("\nCLASSIFIER BROWSE METADATA RETRIEVE");
Index: /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraToGS3Interface.java
===================================================================
--- /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraToGS3Interface.java	(revision 21834)
+++ /other-projects/gs3-webservices-java-client/trunk/src/GS3Fedora/org/greenstone/fedora/services/FedoraToGS3Interface.java	(revision 21835)
@@ -278,5 +278,5 @@
 	 * user to browse the titles of documents in the given collection by letter
 	 * and returning the results.
-	 * @param classifierID is the id of the classifier on which to browse. In
+	 * @param classifierIDs are the ids of the classifiers on which to browse. In
 	 * this case, the classifier indicates whether we browse titles by letter, or
 	 * browse (documents) by collection; and it is of the form &lt;CL(letter)&gt;.
@@ -286,5 +286,5 @@
 	 * the documents that start with the letter indicated by parameter classifier.
 	*/
-	public String browse(String collectionName, String classifierID);
+	public String browse(String collectionName, String[] classifierIDs);
 	
 	/* @returns the document identifiers returned for a search on the titles of 
