Index: src/upgrade-db-to-1.6.sql
===================================================================
--- src/upgrade-db-to-1.6.sql	(revision 2768)
+++ src/upgrade-db-to-1.6.sql	(revision 2769)
@@ -22,8 +22,36 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
  
+/*
+ * Changes to the tables for handling identifiers.  Old table no longer needed,
+ * new identifier table to be used to support LSIDs.
+ */
+DROP TABLE accession_number;
+DROP SEQUENCE accession_number_id_seq;
 
 /*
+ * Table used to store all document identifiers in metacat.  Each identifier
+ * consists of 4 subparts, an authority, namespace, object, and revision as
+ * defined in the LSID specification.
+ */
+CREATE SEQUENCE identifier_id_seq;
+CREATE TABLE identifier (
+   id        NUMBER(20) PRIMARY KEY, -- primary key
+   authority VARCHAR2(255),  -- the authority issuing the identifier
+   namespace VARCHAR2(255),  -- the namespace qualifying the identifier
+   object    VARCHAR2(255),  -- the local part of the identifier for a particular object
+   revision  VARCHAR2(255)   -- the revision part of the identifier
+);
+CREATE TRIGGER identifier_before_insert
+BEFORE INSERT ON identifier FOR EACH ROW
+BEGIN
+  SELECT identifier_id_seq.nextval
+    INTO :new.id
+    FROM dual;
+END;
+/
+
+/*
  * Index of Paths - table to store nodes with paths specified by userst in metacat.properties
  */
 CREATE TABLE xml_path_index (
Index: src/drop-postgres.sql
===================================================================
--- src/drop-postgres.sql	(revision 2768)
+++ src/drop-postgres.sql	(revision 2769)
@@ -39,7 +39,7 @@
 DROP SEQUENCE xml_relation_id_seq;
 DROP SEQUENCE xml_replication_id_seq;
 DROP SEQUENCE xml_documents_id_seq;
-DROP SEQUENCE accession_number_id_seq;
+DROP SEQUENCE identifier_id_seq;
 DROP SEQUENCE access_log_id_seq;
 DROP SEQUENCE xml_queryresult_id_seq;
 DROP SEQUENCE xml_returnfield_id_seq;
@@ -55,7 +55,7 @@
 DROP TABLE xml_nodes_revisions;
 DROP TABLE xml_replication;
 DROP TABLE xml_catalog;
-DROP TABLE accession_number;
+DROP TABLE identifier;
 DROP TABLE access_log;
 DROP TABLE harvest_site_schedule;
 DROP TABLE harvest_detail_log;
Index: src/xmltables.sql
===================================================================
--- src/xmltables.sql	(revision 2768)
+++ src/xmltables.sql	(revision 2769)
@@ -32,7 +32,7 @@
 DROP SEQUENCE xml_catalog_id_seq;
 DROP SEQUENCE xml_relation_id_seq;
 DROP SEQUENCE xml_replication_id_seq;
-DROP SEQUENCE accession_number_id_seq;
+DROP SEQUENCE identifier_id_seq;
 DROP SEQUENCE access_log_id_seq;
 DROP SEQUENCE xml_returnfield_id_seq;
 DROP SEQUENCE xml_queryresult_id_seq;
@@ -44,7 +44,7 @@
 DROP TRIGGER xml_catalog_before_insert;
 DROP TRIGGER xml_relation_before_insert;
 DROP TRIGGER xml_replication_before_insert;
-DROP TRIGGER accession_number_before_insert;
+DROP TRIGGER identifier_before_insert;
 DROP TRIGGER access_log_before_insert;
 DROP TRIGGER xml_returnfield_before_insert;
 DROP TRIGGER xml_queryresult_before_insert;
@@ -60,7 +60,7 @@
 DROP TABLE xml_nodes_revisions;
 DROP TABLE xml_replication;
 DROP TABLE xml_catalog;
-DROP TABLE accession_number;
+DROP TABLE identifier;
 DROP TABLE access_log;
 DROP TABLE harvest_site_schedule;
 DROP TABLE harvest_detail_log;
@@ -383,19 +383,23 @@
 /
 
 /*
- * Table used as Unique ID generator for the uniqueid part of Accession#
+ * Table used to store all document identifiers in metacat.  Each identifier
+ * consists of 4 subparts, an authority, namespace, object, and revision as
+ * defined in the LSID specification.
  */
-CREATE SEQUENCE accession_number_id_seq;
-CREATE TABLE accession_number (
-	uniqueid	NUMBER(20) PRIMARY KEY,
-	site_code	VARCHAR2(100),
-	date_created	DATE
+CREATE SEQUENCE identifier_id_seq;
+CREATE TABLE identifier (
+   id        NUMBER(20) PRIMARY KEY, -- primary key
+   authority VARCHAR2(255),  -- the authority issuing the identifier
+   namespace VARCHAR2(255),  -- the namespace qualifying the identifier
+   object    VARCHAR2(255),  -- the local part of the identifier for a particular object
+   revision  VARCHAR2(255)   -- the revision part of the identifier
 );
-CREATE TRIGGER accession_number_before_insert
-BEFORE INSERT ON accession_number FOR EACH ROW
+CREATE TRIGGER identifier_before_insert
+BEFORE INSERT ON identifier FOR EACH ROW
 BEGIN
-  SELECT accession_number_id_seq.nextval
-    INTO :new.uniqueid
+  SELECT identifier_id_seq.nextval
+    INTO :new.id
     FROM dual;
 END;
 /
Index: src/xmltables-postgres.sql
===================================================================
--- src/xmltables-postgres.sql	(revision 2768)
+++ src/xmltables-postgres.sql	(revision 2769)
@@ -258,13 +258,17 @@
 );
 
 /*
- * Table used as Unique ID generator for the uniqueid part of Accession#
+ * Table used to store all document identifiers in metacat.  Each identifier
+ * consists of 4 subparts, an authority, namespace, object, and revision as
+ * defined in the LSID specification.
  */
-CREATE SEQUENCE accession_number_id_seq;
-CREATE TABLE accession_number (
-   uniqueid INT8 default nextval('accession_number_id_seq') PRIMARY KEY,
-   site_code VARCHAR(100),
-   date_created DATE
+CREATE SEQUENCE identifier_id_seq;
+CREATE TABLE identifier (
+   id INT8 default nextval('identifier_id_seq') PRIMARY KEY, -- primary id
+   authority VARCHAR(255),  -- the authority issuing the identifier
+   namespace VARCHAR(255),  -- the namespace qualifying the identifier
+   object    VARCHAR(255),  -- the local part of the identifier for a particular object
+   revision  VARCHAR(255)   -- the revision part of the identifier
 );
 
 /*
Index: src/upgrade-db-to-1.6-postgres.sql
===================================================================
--- src/upgrade-db-to-1.6-postgres.sql	(revision 2768)
+++ src/upgrade-db-to-1.6-postgres.sql	(revision 2769)
@@ -24,6 +24,27 @@
  
 
 /*
+ * Changes to the tables for handling identifiers.  Old table no longer needed,
+ * new identifier table to be used to support LSIDs.
+ */
+DROP TABLE accession_number;
+DROP SEQUENCE accession_number_id_seq;
+
+/*
+ * Table used to store all document identifiers in metacat.  Each identifier
+ * consists of 4 subparts, an authority, namespace, object, and revision as
+ * defined in the LSID specification.
+ */
+CREATE SEQUENCE identifier_id_seq;
+CREATE TABLE identifier (
+   id INT8 default nextval('identifier_id_seq') PRIMARY KEY, -- primary id
+   authority VARCHAR(255),  -- the authority issuing the identifier
+   namespace VARCHAR(255),  -- the namespace qualifying the identifier
+   object    VARCHAR(255),  -- the local part of the identifier for a particular object
+   revision  VARCHAR(255)   -- the revision part of the identifier
+);
+
+/*
  * Table for indexing the paths specified the administrator in metacat.properties
  */
                                                                                                                                                              
