public class Order
{
public TdTimestamp Date;
public TdIntervalSecond ExpirationPeriod;
public TdTimestamp ExpirationDate;
public Int32 ProductId;
public Int32 Quantity;
public Int32? BackOrderQuantity;
[XmlElementAttribute(IsNullable = true)]
public TdDecimal BackOrderPrice;
}
internal class OrderWriter
{
public static void Write()
{
// Setup the order
Order x = new Order();
x.Date = new TdTimestamp(DateTime.Today);
// 2 hours and 4 minutes 30 seconds
x.ExpirationPeriod = new TdIntervalSecond(7470, 0);
x.ExpirationDate = x.Date + x.ExpirationPeriod;
x.ProductId = 100;
x.Quantity = 2000;
x.BackOrderQuantity = null;
x.BackOrderPrice = TdDecimal.Null;
// Write out today's orders to the file.
//
// Open the file.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(@"C:\Temp\TodayOrders.XML", settings);
writer.WriteStartElement("TodayOrders");
// Write out the schema.
XmlSchemas schemas = new XmlSchemas();
XmlSchemaExporter schExporter = new XmlSchemaExporter(schemas);
schExporter.ExportTypeMapping(new XmlReflectionImporter().ImportTypeMapping(typeof(Order)));
schemas[0].Write(writer);
// Write out the orders.
XmlSerializer xml = new XmlSerializer(typeof(Order));
xml.Serialize(writer, x);
// Close the document.
writer.WriteEndDocument();
writer.Close();
}
}
/* Output is:
<TodayOrders>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Order" nillable="true" type="Order" />
<xs:complexType name="Order">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="ExpirationPeriod" type="xs:duration" />
<xs:element minOccurs="1" maxOccurs="1" name="ExpirationDate" type="xs:dateTime" />
<xs:element minOccurs="1" maxOccurs="1" name="ProductId" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="Quantity" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="BackOrderQuantity" nillable="true" type="xs:int" />
<xs:element minOccurs="1" maxOccurs="1" name="BackOrderPrice" nillable="true" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:schema>
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Date>2008-02-01T00:00:00-08:00</Date>
<ExpirationPeriod>PT7470S</ExpirationPeriod>
<ExpirationDate>2008-02-06T04:30:00-08:00</ExpirationDate>
<ProductId>100</ProductId>
<Quantity>2000</Quantity>
<BackOrderQuantity xsi:nil="true" />
<BackOrderPrice xsi:nil="true" />
</Order>
</TodayOrders>
*/