schemas are just xml text files. I'm sure there's a way via Template Studio to generate the XSD for TypedLists, but I just wrote mine manualy.
Add a dataset file to the App_Code Directory, then right click and add a table, then right click the table and add a column. Use the property window to define the column: Allow Nulls, Data Type, ReadOnly.
I found all you really need is to set is the ColumnName and DataType. Since there readonly you could set this property as well, but it's not required. In this instance the XSD is only used for reporting at design time, It's not used (at least directly by you) at runtime.
here is a sample XSD I use. It's used only to define reports at design time. There are not relationships between tables as each table is a seperate report.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="StandardReports" targetNamespace="http://tempuri.org/StandardReports.xsd" xmlns:mstns="http://tempuri.org/StandardReports.xsd" xmlns="http://tempuri.org/StandardReports.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections>
<Connection AppSettingsObjectName="Web.config" AppSettingsPropertyName="MacolaApps" IsAppSettingsProperty="True" Modifier="Assembly" Name="MacolaApps (Web.config)" ParameterPrefix="@" PropertyReference="AppConfig.System.Configuration.ConfigurationManager.0.ConnectionStrings.AccountReport.ConnectionString" Provider="System.Data.SqlClient">
</Connection>
</Connections>
<Tables>
</Tables>
<Sources>
</Sources>
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="StandardReports" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="AC010">
<xs:complexType>
<xs:sequence>
<xs:element name="BrokerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Broker" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="CustomerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Customer" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="OrderNumber" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="OrderDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="SalesDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="GrossSales" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="NetSales" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="CommissionAmount" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="Balance" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AC011">
<xs:complexType>
<xs:sequence>
<xs:element name="BatchNumber" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="BrokerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Broker" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="CustomerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Customer" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="OrderNumber" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="PoNumber" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="OrderDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="SalesDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="ItemNumber" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="Item" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="GrossSales" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="NetSales" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="CommissionAmount" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="CommissionRate" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AC022">
<xs:complexType>
<xs:sequence>
<xs:element name="BrokerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Broker" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="CustomerId" msdata:ReadOnly="true" type="xs:int" minOccurs="0" />
<xs:element name="Customer" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="ItemNumber" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="Item" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="CommissionRate" msdata:ReadOnly="true" type="xs:decimal" minOccurs="0" />
<xs:element name="ActiveDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="DeactiveDate" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="CreatedBy" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="CreatedOn" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
<xs:element name="UpdatedBy" msdata:ReadOnly="true" type="xs:string" minOccurs="0" />
<xs:element name="UpdatedOn" msdata:ReadOnly="true" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>