[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
OCP message rendering
I got tired from counting characters and trying to preserve correct
spacing when typing OCP examples. Since OCP message format is strict
and well documented for machine use, I think it is wrong for us,
humans, to suffer from machine-level optimizations when typesetting OCP
examples irrelevant to those optimizations.
Therefore, if there are no violent objections, the following
informative section will appear in the next OCP draft release:
3.2 Message Rendering
OCP message samples in this specification and its application
bindings are not typeset to depict syntactical details of OCP
message format. Specifically, strict spacing requirements are not
followed and string length is not shown in quoted strings. Thus, no
rendering of an OCP message can be used to infer message format.
The message format definition above is the only normative source
for all implementations. In the following example, the first line
contains more syntactical details, while the second line shows
typical rendering of the same message in this specification.
OCP debugging and traffic visualization tools are encouraged to use
the same simplifications when rendering OCP messages for human use.
Rationale: OCP message syntax is optimized for the common case,
which is machine use. It is awkward for humans to type valid OCP
strings (because humans do not like to count characters). Spacing
requirements make it awkward to type large OCP messages, and use of
CRLF sequence makes it impossible to render valid OCP messages in
printable subset of ASCII code. This specification text is also
optimized for the common case, which is human use. Message
examples are meant to illustrate important logical concepts for the
implementor. The above BNF and message formatting rules are deemed
sufficient to implement correct message parsers and generators.
Those readers that do not like our rendering simplifications are
encouraged to treat OCP messages as "binary structures" for which
there is no good text mapping.