using System.Xml.Serialization;
static string xmlString = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<Invoice xmlns = ""urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"" xmlns:cac=""urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"" xmlns:cbc=""urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"" xmlns:ccts=""urn:un:unece:uncefact:documentation:2"" xmlns:qdt=""urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"" xmlns:udt=""urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"">
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>abcd</cbc:CustomizationID>
<cbc:ProfileID>urn:www.abc.eu:profile:bii05:ver2.0</cbc:ProfileID>
<cbc:IssueDate>2013-06-30</cbc:IssueDate>
<cbc:InvoiceTypeCode listID=""UL122001"">38021</cbc:InvoiceTypeCode>
<cbc:Note>Ordered in our booth at the convention.</cbc:Note>
<cbc:TaxPointDate>2013-06-30</cbc:TaxPointDate>
<cbc:DocumentCurrencyCode listID=""ISO4217"">NOK</cbc:DocumentCurrencyCode>
<cbc:AccountingCost>Project cost code 123</cbc:AccountingCost>
<cbc:StartDate>2013-06-01</cbc:StartDate>
<cbc:EndDate>2013-06-30</cbc:EndDate>
public static void Main()
XmlSerializer serializer = new XmlSerializer(typeof(Invoice));
using (StringReader sr = new StringReader(xmlString))
invoice = serializer.Deserialize(sr) as Invoice;
Console.WriteLine("ProfileID: " + invoice.ProfileID);
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2", IsNullable = false)]
public partial class Invoice
private decimal uBLVersionIDField;
private string customizationIDField;
private string profileIDField;
private System.DateTime issueDateField;
private InvoiceTypeCode invoiceTypeCodeField;
private string noteField;
private System.DateTime taxPointDateField;
private DocumentCurrencyCode documentCurrencyCodeField;
private string accountingCostField;
private InvoicePeriod invoicePeriodField;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
public decimal UBLVersionID
return this.uBLVersionIDField;
this.uBLVersionIDField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
public string CustomizationID
return this.customizationIDField;
this.customizationIDField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
return this.profileIDField;
this.profileIDField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", DataType = "date")]
public System.DateTime IssueDate
return this.issueDateField;
this.issueDateField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
public InvoiceTypeCode InvoiceTypeCode
return this.invoiceTypeCodeField;
this.invoiceTypeCodeField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", DataType = "date")]
public System.DateTime TaxPointDate
return this.taxPointDateField;
this.taxPointDateField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
public DocumentCurrencyCode DocumentCurrencyCode
return this.documentCurrencyCodeField;
this.documentCurrencyCodeField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
public string AccountingCost
return this.accountingCostField;
this.accountingCostField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]
public InvoicePeriod InvoicePeriod
return this.invoicePeriodField;
this.invoicePeriodField = value;
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", IsNullable = false)]
public partial class InvoiceTypeCode
private string listIDField;
private ushort valueField;
[System.Xml.Serialization.XmlAttributeAttribute()]
this.listIDField = value;
[System.Xml.Serialization.XmlTextAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", IsNullable = false)]
public partial class DocumentCurrencyCode
private string listIDField;
private string valueField;
[System.Xml.Serialization.XmlAttributeAttribute()]
this.listIDField = value;
[System.Xml.Serialization.XmlTextAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", IsNullable = false)]
public partial class InvoicePeriod
private System.DateTime startDateField;
private System.DateTime endDateField;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", DataType = "date")]
public System.DateTime StartDate
return this.startDateField;
this.startDateField = value;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", DataType = "date")]
public System.DateTime EndDate
return this.endDateField;
this.endDateField = value;