Index: trunk/ippToPsps/perl/pspsSchema2xml.pl
===================================================================
--- trunk/ippToPsps/perl/pspsSchema2xml.pl	(revision 31074)
+++ trunk/ippToPsps/perl/pspsSchema2xml.pl	(revision 31101)
@@ -54,5 +54,5 @@
 print OUT "#define ".uc($enumsHeader)."_H\n\n";
 
-
+# tables file
 my $tablesOutput = new IO::File(">tables.xml");
 my $tablesWriter = new XML::Writer(OUTPUT => $tablesOutput, DATA_MODE => 1, DATA_INDENT=>2);
@@ -60,8 +60,16 @@
 $tablesWriter->startTag('tableDescriptions', "type" => "$type");
 
+# map file
 my $mapOutput = new IO::File(">map.xml");
 my $mapWriter = new XML::Writer(OUTPUT => $mapOutput, DATA_MODE => 1, DATA_INDENT=>2);
 $mapWriter->xmlDecl('UTF-8');
 $mapWriter->startTag('tabledata', "type" => "$type");
+
+# VOTable file
+my $votOutput = new IO::File(">votable.xml");
+my $votWriter = new XML::Writer(OUTPUT => $votOutput, DATA_MODE => 1, DATA_INDENT=>2);
+$votWriter->xmlDecl('UTF-8');
+$votWriter->startTag('VOTABLE', "version" => "1.1");
+$votWriter->startTag('RESOURCE');
 
 if ($type eq "init") {createInit();}
@@ -78,4 +86,9 @@
 $mapWriter->endTag();
 $mapWriter->end();
+
+# finish up XML
+$votWriter->endTag(); # end RESOURCE tag
+$votWriter->endTag(); # end of TABLE tag
+$votWriter->end();
 
 print OUT "\n#endif";
@@ -214,4 +227,14 @@
             "name" => $tableNameOut,
             "ippfitsextension" => "");
+    $votWriter->startTag('TABLE', 
+            "name" => "$tableNameOut");
+    $votWriter->dataElement('DESCRIPTION', "VOTable description of PSPS table $tableNameOut");
+    $votWriter->startTag('PARAM',
+            "arraysize" => "1",
+            "datatype" => "char",
+            "ucd" => "meta.bib.author",
+            "name" => "Author",
+            "value" => "PSPS");
+    $votWriter->endTag();
 
     open (SCHEMA, $path);
@@ -258,5 +281,11 @@
     $tablesWriter->endTag();
     $mapWriter->endTag();
-    print OUT "} ".$tableNameOut.";\n";
+
+    $votWriter->startTag('DATA');
+    $votWriter->startTag('TABLEDATA');
+    $votWriter->endTag(); # end TABLEDDATA tag
+        $votWriter->endTag(); # end DATA tag
+        $votWriter->endTag(); # end TABLE tag
+        print OUT "} ".$tableNameOut.";\n";
 
     close SCHEMA;
@@ -350,4 +379,19 @@
     $tablesWriter->endTag();
 
+    # get VOTable type
+    my $votType = "undef";
+    if ($type eq "TBYTE") {$votType = "unsignedByte";}
+    elsif ($type eq "TSHORT") {$votType = "short";}
+    elsif ($type eq "TLONG") {$votType = "int";}
+    elsif ($type eq "TLONGLONG") {$votType = "long";}
+    elsif ($type eq "TFLOAT") {$votType = "float";}
+    elsif ($type eq "TDOUBLE") {$votType = "double";}
+    elsif ($type eq "TSTRING") {$votType = "char";}
+
+    $votWriter->startTag('FIELD',
+            "name" => $name,
+            "datatype" => $votType);
+    $votWriter->endTag();
+
     $mapWriter->comment(" **MISSING** <map pspsName=\"$name\" ippType=\"$type\" ippName=\"\" comment=\"$comment\"/>");
 
