Index: DBSAXHandler.java
===================================================================
--- DBSAXHandler.java	(revision 28)
+++ DBSAXHandler.java	(revision 29)
@@ -22,7 +22,7 @@
 
 import oracle.xml.parser.v2.SAXParser;
 
-class DBSAXHandler extends DefaultXMLDocumentHandler
+public class DBSAXHandler extends DefaultXMLDocumentHandler
 {
 
    private boolean 	debug 	= false;
Index: src/edu/ucsb/nceas/metacat/DBSAXHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBSAXHandler.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBSAXHandler.java	(revision 29)
@@ -22,7 +22,7 @@
 
 import oracle.xml.parser.v2.SAXParser;
 
-class DBSAXHandler extends DefaultXMLDocumentHandler
+public class DBSAXHandler extends DefaultXMLDocumentHandler
 {
 
    private boolean 	debug 	= false;
Index: src/edu/ucsb/nceas/metacat/ElementNode.java
===================================================================
--- src/edu/ucsb/nceas/metacat/ElementNode.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/ElementNode.java	(revision 29)
@@ -185,5 +185,4 @@
         value.append('>');
         return value.toString();
     }
-
 }
Index: src/edu/ucsb/nceas/metacat/DBWriter.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBWriter.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBWriter.java	(revision 29)
@@ -61,7 +61,7 @@
      }
   }
   
-  private DBSAXWriter( String filename, String user, 
+  public DBSAXWriter( String filename, String user, 
                   String password, String dbstring) 
                   throws IOException, 
                          SQLException, 
Index: src/edu/ucsb/nceas/metacat/BasicNode.java
===================================================================
--- src/edu/ucsb/nceas/metacat/BasicNode.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/BasicNode.java	(revision 29)
@@ -16,11 +16,11 @@
 
 public class BasicElement {
 
-    protected long		element_id;
-    protected String		tagname;
-    protected StringBuffer	content;
-    protected long		parent_id;
-    protected Hashtable		attributes;
+    private long		element_id;
+    private String		tagname;
+    private StringBuffer	content;
+    private long		parent_id;
+    private Hashtable		attributes;
 
     public BasicElement () {
       content = new StringBuffer();
Index: src/edu/ucsb/nceas/metacat/DBSAXNode.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBSAXNode.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBSAXNode.java	(revision 29)
@@ -33,7 +33,7 @@
         try {
           conn.setAutoCommit(false);
           PreparedStatement pstmt;
-          if (parent_id != 0) {
+          if (getParentID() != 0) {
             pstmt = conn.prepareStatement(
                 "INSERT INTO xml_nodes (nodeid, nodetype, " +
                 "nodename, parentnodeid) VALUES (null, ?, ?, ?)");
@@ -46,13 +46,13 @@
           // Bind the values to the query
           pstmt.setString(1, "ELEMENT");
           pstmt.setString(2, getTagName());
-          if (parent_id != 0) {
-            pstmt.setLong(3, parent_id);
+          if (getParentID() != 0) {
+            pstmt.setLong(3, getParentID());
           }
           // Do the insertion
           pstmt.execute();
           pstmt.close();
-          this.element_id = getAssignedElementID();
+          setElementID(getAssignedElementID());
           conn.commit();
           conn.setAutoCommit(true);
         } catch (SQLException e) {
@@ -97,7 +97,7 @@
     public void setAttribute(String attName, String attValue) {
       if (attName != null) {
         // Enter the attribute in the hash table
-        attributes.put(attName, attValue);
+        super.setAttribute(attName, attValue);
  
         // And enter the attribute in the database
         try {
@@ -130,8 +130,8 @@
                 "UPDATE xml_nodes SET nodedata = ? WHERE nodeid = ?");
 
           // Bind the values to the query
-          pstmt.setString(1, getContent());// The first ? is for NODEDATA
-          pstmt.setLong(2, element_id); // The second ? is for NODEID
+          pstmt.setString(1, getContent());
+          pstmt.setLong(2, getElementID());
 
           // Do the update
           pstmt.execute();
Index: src/edu/ucsb/nceas/metacat/DBReader.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBReader.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBReader.java	(revision 29)
@@ -55,7 +55,7 @@
      }
   }
   
-  private DBReader( String user, String password, String dbstring) 
+  public DBReader( String user, String password, String dbstring) 
                   throws IOException, 
                          SQLException, 
                          ClassNotFoundException
Index: src/edu/ucsb/nceas/metacat/BasicElement.java
===================================================================
--- src/edu/ucsb/nceas/metacat/BasicElement.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/BasicElement.java	(revision 29)
@@ -16,11 +16,11 @@
 
 public class BasicElement {
 
-    protected long		element_id;
-    protected String		tagname;
-    protected StringBuffer	content;
-    protected long		parent_id;
-    protected Hashtable		attributes;
+    private long		element_id;
+    private String		tagname;
+    private StringBuffer	content;
+    private long		parent_id;
+    private Hashtable		attributes;
 
     public BasicElement () {
       content = new StringBuffer();
Index: src/edu/ucsb/nceas/metacat/DBSAXElement.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBSAXElement.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBSAXElement.java	(revision 29)
@@ -33,7 +33,7 @@
         try {
           conn.setAutoCommit(false);
           PreparedStatement pstmt;
-          if (parent_id != 0) {
+          if (getParentID() != 0) {
             pstmt = conn.prepareStatement(
                 "INSERT INTO xml_nodes (nodeid, nodetype, " +
                 "nodename, parentnodeid) VALUES (null, ?, ?, ?)");
@@ -46,13 +46,13 @@
           // Bind the values to the query
           pstmt.setString(1, "ELEMENT");
           pstmt.setString(2, getTagName());
-          if (parent_id != 0) {
-            pstmt.setLong(3, parent_id);
+          if (getParentID() != 0) {
+            pstmt.setLong(3, getParentID());
           }
           // Do the insertion
           pstmt.execute();
           pstmt.close();
-          this.element_id = getAssignedElementID();
+          setElementID(getAssignedElementID());
           conn.commit();
           conn.setAutoCommit(true);
         } catch (SQLException e) {
@@ -97,7 +97,7 @@
     public void setAttribute(String attName, String attValue) {
       if (attName != null) {
         // Enter the attribute in the hash table
-        attributes.put(attName, attValue);
+        super.setAttribute(attName, attValue);
  
         // And enter the attribute in the database
         try {
@@ -130,8 +130,8 @@
                 "UPDATE xml_nodes SET nodedata = ? WHERE nodeid = ?");
 
           // Bind the values to the query
-          pstmt.setString(1, getContent());// The first ? is for NODEDATA
-          pstmt.setLong(2, element_id); // The second ? is for NODEID
+          pstmt.setString(1, getContent());
+          pstmt.setLong(2, getElementID());
 
           // Do the update
           pstmt.execute();
Index: src/edu/ucsb/nceas/metacat/ReaderElement.java
===================================================================
--- src/edu/ucsb/nceas/metacat/ReaderElement.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/ReaderElement.java	(revision 29)
@@ -185,5 +185,4 @@
         value.append('>');
         return value.toString();
     }
-
 }
Index: src/edu/ucsb/nceas/metacat/DBSAXWriter.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DBSAXWriter.java	(revision 28)
+++ src/edu/ucsb/nceas/metacat/DBSAXWriter.java	(revision 29)
@@ -61,7 +61,7 @@
      }
   }
   
-  private DBSAXWriter( String filename, String user, 
+  public DBSAXWriter( String filename, String user, 
                   String password, String dbstring) 
                   throws IOException, 
                          SQLException, 
Index: DBReader.java
===================================================================
--- DBReader.java	(revision 28)
+++ DBReader.java	(revision 29)
@@ -55,7 +55,7 @@
      }
   }
   
-  private DBReader( String user, String password, String dbstring) 
+  public DBReader( String user, String password, String dbstring) 
                   throws IOException, 
                          SQLException, 
                          ClassNotFoundException
Index: BasicElement.java
===================================================================
--- BasicElement.java	(revision 28)
+++ BasicElement.java	(revision 29)
@@ -16,11 +16,11 @@
 
 public class BasicElement {
 
-    protected long		element_id;
-    protected String		tagname;
-    protected StringBuffer	content;
-    protected long		parent_id;
-    protected Hashtable		attributes;
+    private long		element_id;
+    private String		tagname;
+    private StringBuffer	content;
+    private long		parent_id;
+    private Hashtable		attributes;
 
     public BasicElement () {
       content = new StringBuffer();
Index: DBSAXElement.java
===================================================================
--- DBSAXElement.java	(revision 28)
+++ DBSAXElement.java	(revision 29)
@@ -33,7 +33,7 @@
         try {
           conn.setAutoCommit(false);
           PreparedStatement pstmt;
-          if (parent_id != 0) {
+          if (getParentID() != 0) {
             pstmt = conn.prepareStatement(
                 "INSERT INTO xml_nodes (nodeid, nodetype, " +
                 "nodename, parentnodeid) VALUES (null, ?, ?, ?)");
@@ -46,13 +46,13 @@
           // Bind the values to the query
           pstmt.setString(1, "ELEMENT");
           pstmt.setString(2, getTagName());
-          if (parent_id != 0) {
-            pstmt.setLong(3, parent_id);
+          if (getParentID() != 0) {
+            pstmt.setLong(3, getParentID());
           }
           // Do the insertion
           pstmt.execute();
           pstmt.close();
-          this.element_id = getAssignedElementID();
+          setElementID(getAssignedElementID());
           conn.commit();
           conn.setAutoCommit(true);
         } catch (SQLException e) {
@@ -97,7 +97,7 @@
     public void setAttribute(String attName, String attValue) {
       if (attName != null) {
         // Enter the attribute in the hash table
-        attributes.put(attName, attValue);
+        super.setAttribute(attName, attValue);
  
         // And enter the attribute in the database
         try {
@@ -130,8 +130,8 @@
                 "UPDATE xml_nodes SET nodedata = ? WHERE nodeid = ?");
 
           // Bind the values to the query
-          pstmt.setString(1, getContent());// The first ? is for NODEDATA
-          pstmt.setLong(2, element_id); // The second ? is for NODEID
+          pstmt.setString(1, getContent());
+          pstmt.setLong(2, getElementID());
 
           // Do the update
           pstmt.execute();
Index: ReaderElement.java
===================================================================
--- ReaderElement.java	(revision 28)
+++ ReaderElement.java	(revision 29)
@@ -185,5 +185,4 @@
         value.append('>');
         return value.toString();
     }
-
 }
Index: Makefile
===================================================================
--- Makefile	(revision 28)
+++ Makefile	(revision 29)
@@ -5,7 +5,7 @@
 
 USER=jones
 
-PW=your-pw-goes-here
+PW=you-pw-goes-here
 
 default: all
 
Index: DBSAXWriter.java
===================================================================
--- DBSAXWriter.java	(revision 28)
+++ DBSAXWriter.java	(revision 29)
@@ -61,7 +61,7 @@
      }
   }
   
-  private DBSAXWriter( String filename, String user, 
+  public DBSAXWriter( String filename, String user, 
                   String password, String dbstring) 
                   throws IOException, 
                          SQLException, 
