Index: trunk/ippToPsps/scripts/pspsSchema2xml.pl
===================================================================
--- trunk/ippToPsps/scripts/pspsSchema2xml.pl	(revision 27363)
+++ trunk/ippToPsps/scripts/pspsSchema2xml.pl	(revision 27364)
@@ -42,8 +42,8 @@
 $writer->startTag('tableDescriptions', "type" => "$type");
 
-if ($type eq "IN") {createInit($schemaPath);}
-elsif ($type eq "DT") {createDetections($schemaPath);}
-elsif ($type eq "OB") {createDiffs($schemaPath);}
-elsif ($type eq "ST") {createStacks($schemaPath);}
+if ($type eq "IN") {createInit();}
+elsif ($type eq "DT") {createDetections();}
+elsif ($type eq "OB") {createDiffs();}
+elsif ($type eq "ST") {createStacks();}
 
 # finish up XML
@@ -54,51 +54,78 @@
 ######################################################################################3
 
+# finds the schema file containing this table description
+sub findSchemaFile {
+    my ($tableName) = @_;
+
+    opendir(DIR, $schemaPath) or print "Cannot open '$schemaPath'\n" and return "";
+    my @files= readdir(DIR);
+    closedir(DIR);
+
+    foreach my $f (@files) {
+
+        if ($f =~ m/.*\.sql$/) {
+            #print "....$f\n";
+
+            open FILE, "<$schemaPath/$f" or next;
+
+            while (<FILE>) {
+                if ($_ =~ m/.*CREATE TABLE.*$tableName/) {
+
+                    close (FILE);
+                    return "$schemaPath/$f";
+                }
+            }
+
+            close (FILE);
+
+        }
+    }
+
+    print "Could not find table '$tableName'\n";
+    return "";
+}
 
 # creates detections tables
 sub createInit {
-    my ($schemaPath) = @_;
-
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.Filter");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.FitModel");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.PhotozRecipe");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.Survey");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.CameraConfig");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.PhotoCal");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.SkyCell");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.ProjectionCell");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.Region");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackType");
+
+    parseTable("Filter");
+    parseTable("FitModel");
+    parseTable("PhotozRecipe");
+    parseTable("Survey");
+    parseTable("CameraConfig");
+    parseTable("PhotoCal");
+    parseTable("SkyCell");
+    parseTable("ProjectionCell");
+    parseTable("Region");
+    parseTable("StackType");
 }
 
 # creates init batch tables
 sub createDetections {
-    my ($schemaPath) = @_;
-
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.FrameMeta");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.ImageMeta");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.Detection");
-    parseTable("$schemaPath/PanSTARRS.Tables.LoadMerge.sql", "dbo.SkinnyObject");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.ObjectCalColor");
+
+    parseTable("FrameMeta");
+    parseTable("ImageMeta");
+    parseTable("Detection");
+    parseTable("SkinnyObject");
+    parseTable("ObjectCalColor");
 }
 
 # creates diff batch tables
 sub createDiffs {
-    my ($schemaPath) = @_;
-
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackMeta");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackToImage");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackLowSigDelta");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackHighSigDelta");
+
+    parseTable("StackMeta");
+    parseTable("StackToImage");
+    parseTable("StackLowSigDelta");
+    parseTable("StackHighSigDelta");
 }
 
 # creates stack batch tables
 sub createStacks {
-    my ($schemaPath) = @_;
-
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackMeta");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackDetection");
-    parseTable("$schemaPath/PanSTARRS.Tables.LoadMerge.sql", "dbo.SkinnyObject");
-    parseTable("$schemaPath/PanSTARRS.Tables.Slice.sql", "dbo.StackOrphan");
-    parseTable("$schemaPath/PanSTARRS.Tables.Common.sql", "dbo.ObjectCalColor");
+
+    parseTable("StackMeta");
+    parseTable("StackDetection");
+    parseTable("SkinnyObject");
+    parseTable("StackOrphan");
+    parseTable("ObjectCalColor");
 }
 
@@ -106,14 +133,18 @@
 # parses out a table
 sub parseTable {
-    my ($schemaPath, $tableName, $newName) = @_;
+    my ($tableName, $newName) = @_;
+
+    my $path =  findSchemaFile($tableName);
+
+    if ($path eq "") {return;}
 
     # sort out table name, either same as in schema or as defined
     my $tableNameOut; 
     if ($newName) { $tableNameOut = $newName;}
-    elsif($tableName =~ m/dbo\.(.*)/) {$tableNameOut = $1}
+    else {$tableNameOut = $tableName}
 
     $writer->startTag('table', "name" => $tableNameOut);
-    
-    open (SCHEMA, $schemaPath);
+
+    open (SCHEMA, $path);
 
     my $reading = 0;
@@ -124,5 +155,5 @@
         chomp;
 
-        if ($_ =~ m/.*CREATE TABLE\s+([a-zA-Z0-9.]+)\s*\(/i) {
+        if ($_ =~ m/.*CREATE TABLE\s+dbo\.([a-zA-Z0-9.]+)\s*\(/i) {
 
             $table = $1;
@@ -130,6 +161,4 @@
             if ($table eq $tableName) {
 
-                my $tableNameOut; 
-                if ($tableName =~ m/dbo\.(.*)/) {$tableNameOut = $1}
                 $reading = 1;
                 $found = 1;
