Currently the deserialiser is strict when deserialising literals.
For example, xsd:nonNegativeInteger will not deserialise into an int, leaving the property with default value.
Instead, if the string value can be happily interpreted as the destination type, it should get converted.