15 October 2021

DevExpress XML Serialization Format

I've been stuck picking through serialized DevExpress layouts by hand lately. One aspect of it that had me confused for a while was this notation that appears within serialized structs:

<property name="XtraSerializerScreenConfiguration" iskey="true" value="1">
   <property name="Item1">@1,X=0@1,Y=0@4,Width=1920@4,Height=1080</property>
</property>

What's with the @?

Similar notation is used for FloatSize, FloatLocation, OriginalSize, XtraBounds.

It turns out the format is simply this:

  • each @ starts a new field in the struct
  • the per-field format is:  @{0},{1}={2}
  • where {1} and {2} are naturally the field name and value respectively.
  • and the cryptic {0} is the number of characters required for the value {2}.
There you go.