^ The "classic" format is plain text, and an XML format is also supported.
^ Theoretically possible due to abstraction, but no implementation is included.
^ The primary format is binary, but text and JSON formats are available.[8][9]
^ Means that generic tools/libraries know how to encode, decode, and dereference a reference to another piece of data in the same document. A tool may require the IDL file, but no more. Excludes custom, non-standardized referencing techniques.
^ ASN.1 has X.681 (Information Object System), X.682 (Constraints), and X.683 (Parameterization) that allow for the precise specification of open types where the types of values can be identified by integers, by OIDs, etc. OIDs are a standard format for globally unique identifiers, as well as a standard notation ("absolute reference") for referencing a component of a value. For example, PKIX uses such notation in RFC 5912. With such notation (constraints on parameterized types using information object sets), generic ASN.1 tools/libraries can automatically encode/decode/resolve references within a document.
^ The primary format is binary, a json encoder is available.[10]
^ The primary format is binary, but a text format is available.
^ Omitted XML elements are commonly decoded by XML data binding tools as NULLs. Shown here is another possible encoding; XML schema does not define an encoding for this datatype.
^ The RFC CSV specification only deals with delimiters, newlines, and quote characters; it does not directly deal with serializing programming data structures.
^ The netstrings specification only deals with nested byte strings; anything else is outside the scope of the specification.
^ PHP will unserialize any floating-point number correctly, but will serialize them to their full decimal expansion. For example, 3.14 will be serialized to 3.140000000000000124344978758017532527446746826171875.
^XML data bindings and SOAP serialization tools provide type-safe XML serialization of programming data structures into XML. Shown are XML values that can be placed in XML elements and attributes.
^ This syntax is not compatible with the Internet-Draft, but is used by some dialects of Lisp.
BER: variable-length big-endian binary representation (up to 221024 bits);
PER Unaligned: a fixed number of bits if the integer type has a finite range; a variable number of bits otherwise;
PER Aligned: a fixed number of bits if the integer type has a finite range and the size of the range is less than 65536; a variable number of octets otherwise;
OER: 1, 2, or 4 octets (either signed or unsigned) if the integer type has a finite range that fits in that number of octets; a variable number of octets otherwise
REAL:
base-10 real values are represented as character strings in ISO 6093 format;
binary real values are represented in a binary format that includes the mantissa, the base (2, 8, or 16), and the exponent;
the special values NaN, -INF, +INF, and negative zero are also supported
Boolean sign, plus arbitrary length 7-bit octets, parsed until most-significant bit is 0, in little-endian. The schema can set the zero-point to any arbitrary number.