Index: services/taxonomy_service/taxonomy_service.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/taxonomy_service/Attic/taxonomy_service.inc,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 taxonomy_service.inc
--- services/taxonomy_service/taxonomy_service.inc	12 Jan 2009 07:26:39 -0000	1.1.2.4
+++ services/taxonomy_service/taxonomy_service.inc	24 Mar 2009 02:31:06 -0000
@@ -7,14 +7,29 @@
  */
 
 /**
- * get terms in vocabulary
+ * Services interface to taxonomy_get_tree().
+ *
+ * @see
+ *   taxonomy_get_tree()
  */
-function taxonomy_service_get_tree($vid) {
-  return taxonomy_get_tree($vid);
+function taxonomy_service_get_tree($vid, $parent, $max_depth) {
+  if ($max_depth == 0) {
+    $max_depth = NULL;
+  }
+  
+  return taxonomy_get_tree($vid, $parent, -1, $max_depth);
 }
 
 /**
- * select_nodes
+ * Services interface to taxonomy_select_nodes().
+ *
+ * Note that where taxonomy_select_nodes() returns the results
+ * of a db_query(), this function returns an array of node objects.
+ *
+ * @see
+ *   taxonomy_select_nodes().
+ * @return 
+ *   An array of node objects.
  */
 function taxonomy_service_select_nodes($tids = array(), $fields = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC') {
   $result = taxonomy_select_nodes($tids, $operator, $depth, $pager, $order);
@@ -24,3 +39,30 @@ function taxonomy_service_select_nodes($
 
   return $nodes;
 }
+
+
+/**
+ * Services interface to taxonomy_save_term().
+ *
+ * @see
+ *   taxonomy_save_term().
+ */
+function taxonomy_service_save_term($term) {
+  if (!is_array($term)) {
+    $term = (array) $term;
+  }
+  return taxonomy_save_term($term);
+}
+
+/**
+ * Services interface to taxonomy_save_vocabulary().
+ *
+ * @see
+ *   taxonomy_save_vocabulary().
+ */
+function taxonomy_service_save_vocabulary($vocabulary) {
+  if (!is_array($vocabulary)) {
+    $vocabulary = (array) $vocabulary;
+  }
+  return taxonomy_save_vocabulary($vocabulary);
+}
Index: services/taxonomy_service/taxonomy_service.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/services/taxonomy_service/Attic/taxonomy_service.module,v
retrieving revision 1.4.2.6
diff -u -p -r1.4.2.6 taxonomy_service.module
--- services/taxonomy_service/taxonomy_service.module	6 Sep 2008 04:13:08 -0000	1.4.2.6
+++ services/taxonomy_service/taxonomy_service.module	24 Mar 2009 02:31:07 -0000
@@ -23,6 +23,39 @@ function taxonomy_service_help($path, $a
  */
 function taxonomy_service_service() {
   return array(
+    // Save a taxonomy term.
+    array(
+        '#method'   => 'taxonomy.saveTerm',
+        '#callback' => 'taxonomy_service_save_term',
+        '#file'             => array('file' => 'inc', 'module' => 'taxonomy_service'),
+        '#args'     => array(
+          array(
+            '#name'         => 'term',
+            '#type'         => 'array',
+            '#description'  => t('A taxonomy term array, as would be returned by taxonomy_get_term().'),
+          ),
+        ),
+        '#return'   => 'int',
+        '#help'     => t('Save / create a taxonomy term. See taxonomy_save_term() in Drupal API for details.'),
+    ),
+
+    // Save a taxonomy vocabulary.
+    array(
+      '#method'   => 'taxonomy.saveVocabulary',
+      '#callback' => 'taxonomy_service_save_vocabulary',
+      '#file'             => array('file' => 'inc', 'module' => 'taxonomy_service'),
+      '#args'     => array(
+        array(
+          '#name'         => 'vocabulary',
+          '#type'         => 'array',
+          '#description'  => t('A taxonomy vocabulary array, as would be returned by taxonomy_vocabulary_load().'),
+        ),
+      ),
+      '#return'   => 'int',
+      '#help'     => t('Save / create a taxonomy vocabulary. See taxonomy_save_vocabulary() in Drupal API for details.'),
+    ),
+
+    // Interface to taxonomy_get_tree().
     array(
       '#method'   => 'taxonomy.getTree',
       '#callback' => 'taxonomy_service_get_tree',
@@ -33,10 +66,22 @@ function taxonomy_service_service() {
           '#type'         => 'int',
           '#description'  => t('A vocabulary id.'),
         ),
+        array(
+          '#name'         => 'parent',
+          '#type'         => 'int',
+          '#description'  => t('The term ID under which to generate the tree. If 0, generate the tree for the entire vocabulary.'),
+        ),
+        array(
+          '#name'         => 'max_depth',
+          '#type'         => 'int',
+          '#description'  => t('The number of levels of the tree to return. Set to 0 to return all levels.'),
+        ),
       ),
       '#return'   => 'struct',
       '#help'     => t('Create a hierarchical representation of a vocabulary.')
     ),
+
+    // Retrieve nodes based on taxonomy terms
     array(
       '#method'   => 'taxonomy.selectNodes',
       '#callback' => 'taxonomy_service_select_nodes',
