If the purpose of the actor and director lists in your XML is to identify the actor/director then I would focus on the form of identification rather than what sort of class hierarchy to use to represent the referenced identities.
Take for example, a mailing list - with a mailing list you would not concentrate on the types of buildings, but would concentrate on coming up with a form to identify the location.
The same probably applies here, particularly as it sounds to me like you are not (and probably should not) declaring properties for your actor/director 'persons' directly within your movie elements.
Instead it sounds like what you really want in the movie element is an identification which can be used to cross reference to a person.
The form of identification used is up to you, but a string which is used to contain the full name of the person might well be sufficient. Of course there's innumerable other options you could choose... e.g. you could use a 'Name' structure which is split into Forename, surname, middle initial components, or you could use a unique integer ID (assuming you then used this ID to lookup a Person object which has name properties etc.).
Here is an example of the xml structure, assuming that you were to store both persons and movies within a single document:
<yourDocument>
<movies>
<movie id="Bladerunner">
<actorRoles>
<actorRole id="Rutger Hauer" character="Roy Batty"/>
<actorRole id="Harrison Ford" charactor="Rick Deckard"/>
</actorRoles>
<directorRoles>
<directorRole id="Ridley Scott" category="Principle"/>
<directorRole id="Jordan Cronenweth" category="Cinematography"/>
</directorRoles>
</movie>
<movie id="The Room">
<actorRoles>
<actorRole id="Rutger Hauer" character="Harry"/>
</actorRoles>
<directorRoles>
<directorRole id="Rutger Hauer" category="codirector"/>
<directorRole id="Erik Lieshout" category="codirector"/>
</directorRoles>
</movie>
</movies>
<persons>
<person id="Ridley Scott">
<nationality>English</nationality>
<birth>11/30/1937</birth>
</person>
<person id="Harrison Ford">
<nationality>American</nationality>
<birth>7/13/1942</birth>
</person>
<person id="Rutger Hauer">
<nationality>Dutch</nationality>
<birth>1/23/1944</birth>
</person>
<person id="Jordan Cronenweth">
<nationality>American</nationality>
<birth>2/20/1935</birth>
</person
</persons>
</yourDocument>
See what I mean?
What you really have is actor and director roles that use id's to cross reference to person objects - you could just as easily add a name property to the person objects and use unique integer IDs to cross reference to your Person objects where you can then retrieve their name and any other property. (using a unique non-changing integer ID would also allow support for updating a person's name without causing problems to your cross references)
Since there probably aren't any properties common to actor and director roles, I probably would avoid having a base class for 'roles'.