@Override public char getChar() { if (isPlainLiteral()) { if (getString().length()==1) { return (getString().charAt(0)); } else { throw new BadCharLiteralException( getString() ); } } else { Object value = getValue(); if (value instanceof Character) { return ((Character) value).charValue(); } else { throw new DatatypeFormatException(value.toString() + " is not a Character"); } } }