chunks enable the programmer to pack hierarchical constructions such as the INVOICE above into an SDXF structure as follow: Every named term (INVOICE, INVOICE_NO, DATE, ADDRESS_SENDER, etc.) is given a unique number out in the range 1 to 65535 (2 byte unsigned binary integer without sign). The top/outermost chunk is constructed with the ID INVOICE (that means with the associated numerical chunk_ID) as a structured chunk on level 1. This INVOICE chunk is filled with other chunks on level 2 and beyond: INVOICE_NO, DATE, ADDRESS_SENDER, ADDRESS_RECIPIENT, INVOICE_SUM, SINGLE_ITEMS, CONDITIONS. Some level 2 chunks are structured in turn as for the two addresses and SINGLE_ITEMS. For a precise description see page 2 of the RFC or alternatively here. SDXF allows programmer to work on SDXF structures with a compact function set. There are only few of them: The following pseudocode creates invoices: init (sdx, buffersize=1000); // initialize the SDXF parameter structure sdx create (sdx, ID=INVOICE, datatype=STRUCTURED); // start of the main structure create (sdx, ID=INVOICE_NO, datatype=NUMERIC, value=123456); // create an elementary Chunk create (sdx, ID=DATE, datatype=CHAR, value="2005-06-17"); // once more create (sdx, ID=ADDRESS_SENDER, datatype=STRUCTURED); // Substructure create (sdx, ID=NAME, datatype=CHAR, value="Peter Somebody"); // element. Chunk inside this substructure ... create (sdx, ID= COUNTRY, datatype=CHAR, value="France"); // the last one inside this substructure leave; // closing the substructure ADDRESS_SENDER ... leave; // closing the substructure INVOICE Pseudocode to extract the INVOICE structure could look like: init (sdx, container=pointer to an SDXF-structure); // initialize the SDXF parameter structure sdx enter (sdx); // join into the INVOICE structure. // while (sdx.rc == SDX_RC_ok) { switch (sdx. Chunk_ID) { case INVOICE_NO: extract (sdx); invno = sdx.value; // the extract function put integer values into the parameter field 'value' break; // case DATE: extract (sdx); strcpy (invdate, sdx.data); // sdx.data is a pointer to the extracted character string break; // case ADDRESS_SENDER: enter (sdx); // we use 'enter' because ADDRESS is a structured Chunk do while (sdx.rc == SDX_RC_ok) // inner loop ... break; ... } } SDXF is not designed for readability or to be modified by text editors. A related editable structure is SDEF - Structured Data Editable Format. See also External Data Representation Protocol Buffers Abstract Syntax Notation One Apache Thrift Etch (protocol) Internet Communications Engine Comparison of data serialization formats References External links Introduction chapter of a more detailed description Internet Standards Internet protocols Computer file formats Data serialization formats