From the jblink point of view, any class will do that is compatible with a corresponding group in the schema. It is compatible as long as it has setters and getters consistent with the fields of the group. If it also has other methods and implements interfaces like Externalizable doesn't matter as long as it also has a default constructor. If you use the blinkc class generator, then you'll have to modify it if you also want it to emit code for Externalizable. However, whether you get blinkc to do it or if you write those methods by hand, the code in the implementation of writeExternal and readExternal could be independent of any blink specific features. They'd just deal with the members of the class like you'd do with any other Java object.
/D