Currently all parsing and validation is done in each country's parser class. This has caused logic to be spread around the codebase. I believe the code would be much more maintainable (and logical) if logic was contained within each type of national identification number class.
Ex. SwedenNINParser uses static methods in SwedenNIN to validate a checksum.