EDIFACT is a formal, readable language-for-machine description of electronic business documents. It uses a syntax close to delimiter separated files. This syntax was invented in the 1980s to keep files as small as possible. Because of the Internet boom around 2000, XML started to become the most widely supported file syntax. But for example, an invoice is still an invoice, containing information about buyer, seller, product, due amount. EDIFACT works perfectly from the content viewpoint, but many software systems struggle to handle its syntax. So combining EDIFACT vocabulary and grammar with XML syntax makes XML/EDIFACT.
The rules for XML/EDIFACT are defined by ISO TS 20625.
XML/EDIFACT is used in B2B scenarios as listed below:
1) Newer EAI or B2B systems often cannot handle EDI (Electronic Data Interchange) syntax directly. Simple syntax converters do a 1:1 conversion before. Their input is an EDIFACT transaction file, their output an XML/EDIFACT instance file.
2) XML/EDIFACT keeps XML B2B transactions relatively small. XML element names derived from EDIFACT tags are much shorter and more formal than those derived from natural language since they are simply expressions of the EDIFACT syntax. Such formal tags although not semantically understandable, taken from the "EDIFACT modelling language", are readable by B2B experts worldwide if they are conversant in the EDIFACT syntax.
3) A company does not want to invest into new vocabularies from scratch. XML/EDIFACT reuses business content defined in UN/EDIFACT. Since 1987, the UN/EDIFACT library was enriched by global business needs for all sectors of industry, transport and public services. For XML, there are a number of vocabularies, each tailored for their specific user community.
4) Large companies can order goods from small companies via XML/EDIFACT. The small companies use XSL stylesheets to browse the message content in human readable forms - once again provided they understand the EDIFACT syntax.
Example 1: EDIFACT source code
A name and address (NAD) segment, containing customer ID and customer address, expressed in EDIFACT syntax:
NAD+BY+CST9955::91++Candy Inc+Sirup street 15+Sugar Town++55555'
Example 2: XML/EDIFACT source code
The same information content in an XML/EDIFACT instance file:
<S_NAD> <D_3035>BY</D_3035> <C_C082><D_3039>CST9955</D_3039><D_3055>91</D_3055></C_C082> <C_C080><D_3036>Candy Inc</D_3036></C_C080> <C_C059><D_3042>Sirup street 15</D_3042></C_C059> <D_3164>Sugar Town</D_3164> <D_3251>55555</D_3251> </S_NAD>
Example 3: XML/EDIFACT in a browser
The same XML/EDIFACT instance presented with help of an XSL stylesheet: