XRechnung

Background

TODO: What’s the background and setting?

Key Requirements

  • Syntax Binding to many different syntaxes
  • Upstream/Downstream development

SeMoX as a key enabler for XRechnung

The key characteristics of the development of the XRechnung standard are that XRechnung is a top-down standard and has one semantic data model which has to be bound to two vastly different XML syntaxes.

Here, top-down standard means practically that there is the European Norm CEN 16931 for B2G (Business-to-Government) electronic invoicing published by CEN which includes several specifications in PDF format of which the CEN 16931-1 document is normative. This norm is on top because all European member states are required to adhere to the norm by law. However, because there are too many nationally specific requirements on electronic invoices, the norm allows “down"stream standards to deviate from the norm by certain normative rules. Hence, XRechnung is the German downstream standard with some additional requirements on electronic invoices in the German market compliant to the CEN Norm. At the heart of the CEN Norm is a single and explicit semantic model of a core invoice. This core model is then bound to the XML invoice representation as defined by the Universal Business Language (UBL) and also Cross Industrie Invoice (CII) by UN/CEFACT. Therefore, the major achievement of CEN EN-16931 is to semantically integrate UBL and CII in a way that both syntaxes can practically be used for invoicing while ensuring semantic interoperability.

In the following the Term designated “BG-30” is used to show how this semantic integration is declared in the XRechnung SeMoX model:

<m:group ref="BG-30">
    <m:term ref="BT-151" />
    <m:term ref="BT-152" minOccurs="0" />
</m:group>

then the Syntax Binding with UBL for the above Terms is as follows:

<m:term ref="BG-30" 
        path="/Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory"/>
<m:term ref="BT-151" 
        path="/Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID"/>
<m:term ref="BT-152" 
        path="/Invoice/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent"/>

and the Syntax Binding with CII for the above Terms is as follows:

<m:term ref="BG-30" 
        path="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/
        ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/
        ram:ApplicableTradeTax">
    <m:term ref="BT-151"
            path="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/
            ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/
            ram:ApplicableTradeTax/ram:CategoryCode"/>
    <m:term ref="BT-151"
            path="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/
            ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/
            ram:ApplicableTradeTax/ram:TypeCode"/>
    <m:term ref="BT-152" 
            path="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/
            ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/
            ram:ApplicableTradeTax/ram:RateApplicablePercent"/>

The Syntax Binding of CII includes to different XPath for “BT-151” which is ambiguous and might be of disadvantage in certain situations. But, here it shows that SeMoX allows to declaratively make explicit the ambiguity of certain bindings. Moreover, it is conceivably simple to use SeMoX for semantic integration of different data format standards such as UBL and CII.