einvoice 0.1.1

E-Invoice library with language bindings
Documentation
use einvoice::{validate_invoice, InvoiceError, InvoiceStandard};

fn main() {
    let xml = r#"
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
                          xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
                          xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
                          xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
    <rsm:ExchangedDocumentContext>
        <ram:BusinessProcessSpecifiedDocumentContextParameter>
            <ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>
        </ram:BusinessProcessSpecifiedDocumentContextParameter>
        <ram:GuidelineSpecifiedDocumentContextParameter>
            <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
        </ram:GuidelineSpecifiedDocumentContextParameter>
    </rsm:ExchangedDocumentContext>
   </rsm:CrossIndustryInvoice> 
"#;
    let invalid_invoice: Result<InvoiceStandard, InvoiceError> = validate_invoice(xml);
    match invalid_invoice {
        Ok(_) => println!("Invoice is valid"),
        Err(e) => println!("Invoice is invalid: {:?}", e),
    }
}