Message Framing, Part 3

Message Framing, Part 3

  • Comments 3

Past entries that you should have read by now:

The next record at the start of every legal exchange in the framing format is a message encoding record. The message encoding specifies how the message envelope should be translated and processed. There are actually two different ways of expressing the message encoder, each with its own record type.

The message encodings that come with the platform- text, binary, and MTOM- are called the known encodings. A known encoding record starts with the byte 3 followed by a byte for the known encoding. The known encodings are basically an enumeration of encodings that the system knows about by default.

  • 0- SOAP 1.1 with UTF8
  • 1- SOAP 1.1 with UTF16
  • 2- SOAP 1.1 with little-endian Unicode
  • 3- SOAP 1.2 with UTF8
  • 4- SOAP 1.2 with UTF16
  • 5- SOAP 1.2 with little-endian Unicode
  • 6- SOAP 1.2 with MTOM
  • 7- SOAP 1.2 with the .Net binary encoding
  • 8- SOAP 1.2 with the .Net binary encoding (and some extra dictionary options)

The first six options correspond to the text message encoder together with either SOAP 1.1 or SOAP 1.2. The next option corresponds to the MTOM message encoder. The last two options correspond to the binary message encoder. The dictionary options determine whether the binary encoding is stateful or stateless. Stateful encoders are used with sessions to progressively encode multiple messages.

It's not a problem if the encoding you want to use isn't one of these predefined formats. You can define your own encodings, assuming that both sides of the connection are able to process the format you've come up with. An extensible encoding record starts with the byte 4 followed by the size of the encoding string and followed by the encoding string itself. The encoding string is a MIME content type that you use to distinguish the encoder configuration. The size is encoded in the same way as before.

Page 1 of 1 (3 items)