* @return The WKT type for the given class or interface, or {@code null} if none.
*/
public static String toWKTType(final Class<?> base, final Class<?> type) {
if (type != base) {
final UML uml = type.getAnnotation(UML.class);
if (uml != null && uml.specification() == Specification.ISO_19111) {
String name = uml.identifier();
final int length = name.length() - 5; // Length without "CS_" and "CS".
if (length >= 1 && name.startsWith("CS_") && name.endsWith("CS")) {
final StringBuilder buffer = new StringBuilder(length).append(name, 3, 3 + length);
if (!name.regionMatches(3, "Cartesian", 0, 9)) {