Eric,
I think see what you're saying, but I don't think you need to make it that complex. If you use the LoadSchema method on a DataSet object, it will be exactly the same as the DataSet generated by xsd.exe (or the other gen tool) with the exception on the strongly typed methods/properties. For doing template development, you're going to want to iterate over tables and columns, so the strong typing doesn't help.
Are you working on a non DataSet system? If so, then I'm off base. If you're working on a DataSet based system, it can be made to work as derived from the DataSet, even in the designer, but it takes some work. Feel free to check out the source for the other generator. Can you call into an external DLL from your code? If so, I think you should be able to use the open source portion.
Here is what I have at the start of my templates that use the TDS.
DataSet ds;
string loc;
[Editor(typeof(CodeSmithDataSet.DataSetPicker), typeof(System.Drawing.Design.UITypeEditor))]
public string XsdLocation {
get {
return loc;
}
set {
loc = value;
ds = new DataSet();
ds.ReadXmlSchema(loc);
}
}
The picker is a simple file browse dialog right now, where the user picks the xsd file. I then use the generated DataSet as the basis for all my templates. It could be better integrated, but is this similar to what you're doing?
Erick