Avoiding collision on class constants

This is a change to create alternative constant names instead of fail completely. One example of this case is the wsdl from StrongMail. They have a list of charsets with this:

```xml
<xs:simpleType name="CharSet">
  <xs:restriction base="xs:string">
    <xs:enumeration value="1046"/>
    <!-- ... -->
    <xs:enumeration value="NF_Z_62-010_1973"/>
    <xs:enumeration value="NF_Z_62-010_(1973)"/>
    <!-- ... -->
  </xs:restriction>
</xs:simpleType>
```

The `Validator` converts the values to `NF_Z_62010_1973` in both cases. With this PR the second constant will be created with the name `NF_Z_62010_1973_2`.