I think you may be putting the cart before the horse on this one.
Your first order of business shouldn't be determining "How do I represent a character?" It should be determining "what is it I want to represent?" That is to say: A tool to help with d20 character creation, Shadowrun, Mongoose Traveller, GURPS character creation, WH : Dark Heresy Character Creation; "My own cool d20 based RPG video game", A character and adventure/party management suite of software for sale,...etc. Define this in implementation neutral terms.
After you've successfully determined what it is you want to make, create a detailed definition of what it is you want to make. One way of doing this is to list all the major nouns and verbs (Character, Wizard, Fighter, Create, Save, Delete, Copy....etc) and begin understanding the relationships among the various concepts you'll need to represent. Then take each major noun and decompose it into its constituent parts. (Character: can be a class can be one or more classes, has some equipment,has a Strength, has Hit Points, has Magic Points, has some Primary and Secondary Attributes.) Continue this decomposition until you're not able to use implementation neutral terms (e.g integer...etc).
Then look back at your definitions and decompositions and determine if there are any obvious contradictory statements, if so, get rid of the contradiction. If not, then organize the data by the described hierarchy. In my example, it could be appropriate to have Character, Class, Equipment and Primary Attribute as classes.
Be sure to keep all these "facts" organized and making their relationships clear, both in writing and diagramming. From there you should be able to begin considering implementation specifics such as a class hierarchy where wizard derives from character...etc.
You may also want to see how others have implemented things look at this other SO question for a link to an video game engine that implements a d20. (i.e. Baldurs Gate)