On Thursday, 22 August 2013 at 19:53:53 UTC, Jacob Carlborg wrote:
On 2013-08-22 21:30, ilya-stromberg wrote:

What about more difficult cases?

No it can't. It will throw an exception because it cannot find a "long" element:

Could not find an element "long" with the attribute "key" with the value "b"

It's a serious issue. May be it's more important than range support. For example, I have to change class (bug fixing, new features, etc.), but it comparable with previos version (example: it's always possible to convert "int" to "long"). I that case I can't use std.serialization and have to write own solution (for examle, save data in csv file).

The easist way to fix it - store Interface Definition of the serialized data (should be generated automaticly). For example, we can use XML Schema for Xml Archive. With Interface Definition we can find changes and try to convert data to new format.

Note that glycerine also put your attention to this point:
http://forum.dlang.org/post/kftlfwcyughhghewq...@forum.dlang.org

1. Interface Definition Language (IDL): required or not? If not, how do know the details of what to serialize. If not, how do you handle/support data versioning? If not, how do you interoperate without another language? If yes, which types are supported and what is the syntax and grammar of the IDL?

Ideas?

Reply via email to