Network Working Group M. Wildgrube
Request for Comments: 3072 March 2001
Category: Informational
Structured Data Exchange Format (SDXF)
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved.
IESG Note
This document specifies a data exchange format and, partially, an API
that can be used for creating and parsing such a format. The IESG
notes that the same problem space can be addressed using formats that
the IETF normally uses including ASN.1 and XML. The document reader
is strongly encouraged to carefully read section 13 before choosing
SDXF over ASN.1 or XML. Further, when storing text in SDXF, the user
is encourage to use the datatype for UTF-8, specified in section 2.5.
Abstract
This specification describes an all-purpose interchange format for
use as a file format or for net-working. Data is organized in chunks
which can be ordered in hierarchical structures. This format is
self-describing and CPU-independent.
Table of Contents
1. Introduction ................................................. 2
2. Description of the SDXF data format .......................... 3
3. Introduction to the SDXF functions ........................... 5
3.1 General remarks .............................................. 5
3.2 Writing a SDXF buffer ........................................ 5
3.3 Reading a SDXF buffer ........................................ 6
3.4 Example ...................................................... 6
4. Platform independence ........................................ 8
5. Compression .................................................. 9
6. Encryption ...................................................11
7. Arrays........................................................11
8. Description of the SDXF functions ............................12
Wildgrube Informational [Page 1]
RFC 3072 Structured Data Exchange Format March 2001
8.1 Introduction .................................................12
8.2 Basic definitions ............................................13
8.3 Definitions for C++ ..........................................15
8.4 Common Definitions ...........................................16
8.5 Special functions ............................................17
9. 'Support' of UTF-8 ...........................................19
10. Security Considerations .....................................19
11. Some general hints ..........................................20
12. IANA Considerations .........................................20
13. Discussion ..................................................21
13.1 SDXF vs. ASN.1 ..............................................21
13.2 SDXF vs. XML ................................................22
14. Author's Address ............................................24
15. Acknowledgements ............................................24
16. References ..................................................24
17. Full Copyright Statement ....................................26
1. Introduction
The purpose of the Structured Data eXchange Format (SDXF) is to
permit the interchange of an arbitrary structured data block with
different kinds of data (numerical, text, bitstrings). Because data
is normalized to an abstract computer architecture independent
"network format", SDXF is usable as a network interchange data
format.
This data format is not limited to any application, the demand for
this format is that it is usable as a text format for word-
processing, as a picture format, a sound format, for remote procedure
calls with complex parameters, suitable for document formats, for
interchanging business data, etc.
SDXF is self-describing, every program can unpack every SDXF-data
without knowing the meaning of the individual data elements.
Together with the description of the data format a set of functions
will be introduced. With the help of these functions one can create
and access the data elements of SDXF. The idea is that a programmer
should only use these functions instead of maintaining the structure
by himself on the level of bits and bytes. (In the speech of
object-oriented programming these functions are methods of an object
which works as a handle for a given SDXF data block.)
SDXF is not limited to a specific platform, along with a correct