In de runtimeplugin voor het platform wordt de infrastructuur gelegd voor het definiëren en opsporen van inhoudtypen voor gegevensstromen. (Zie Inhoudtypen voor een overzicht van het contentframework.) Een belangrijk onderdeel van het inhoudtypesysteem is de mogelijkheid om verschillende coderingen op te geven (tekensets) voor verschillende soorten content. Met de resources-API is het verder mogelijk om standaardtekensets te gebruiken voor projecten, mappen en bestanden. Deze standaardtekensets worden gebruikt als in het bestand zelf geen bepaalde codering voor de gegevensstroom wordt gedefinieerd.
U hebt in Inhoudtypen gezien dat u standaardbestandscoderingen kunt instellen voor inhoudtypen. Nauwkeuriger beheermogelijkheden zijn in de resources-API beschikbaar.
In IContainer wordt een protocol gedefinieerd voor het instellen van de standaardtekenset voor bepaalde projecten of mappen. Hiermee hebben plugins (en uiteindelijk de gebruiker) meer vrijheid in het kiezen van de juiste tekenset voor een groep bestanden als de standaardtekensets voor het inhoudtype niet geschikt zijn.
Met IFile wordt de API gedefinieerd voor het instellen van de standaardtekenset voor een bepaald bestand. Als in het bestand geen codering is opgegeven, wordt deze tekenset gebruikt. De standaardtekenset van het bestand krijgt voorrang boven andere tekensets die in de map, het project of het inhoudtype van het bestand zijn opgegeven.
Beide mogelijkheden zijn voor de eindgebruiker beschikbaar op de eigenschappenpagina van een resource.
Met IFile wordt ook de API gedefinieerd voor het zoeken naar de tekenset van een bestand. Een booleaanse vlag geeft aan of alleen de tekenset die expliciet voor het bestand is gedefinieerd moet worden geretourneerd of dat een geïmpliceerde tekenset moet worden geretourneerd. Bijvoorbeeld:
String charset = myFile.getCharset(false);
retourneert null als er geen tekenset expliciet voor myFile is ingesteld. Anderzijds controleert
String charset = myFile.getCharset(true);
eerst welke tekenset expliciet voor het bestand is ingesteld. Als er geen tekenset wordt gevonden, wordt in de inhoud van het bestand gezocht naar de beschrijving van een tekenset. Als deze niet wordt gevonden, worden in de mappen en projecten van het bestand gezocht naar een standaardtekenset. Als deze niet wordt gevonden, wordt gezocht naar de standaardtekenset die voor het inhoudtype zelf is gedefinieerd. Ten slotte wordt de standaardtekenset van het platform geretourneerd als er geen andere aangewezen tekenset is. De gemakkelijke methode getCharset() levert hetzelfde resultaat op als getCharset(true).
Voor bestanden in het werkgebied biedt IFile een API voor een beschrijving van de bestandsinhoud:
IFile file = ...; IContentDescription description = file.getDescription();
Deze moet zelfs worden gebruikt als clients alleen geïnteresseerd zijn in het vaststellen van het inhoudtype - dit kan eenvoudig worden verkregen uit de contentbeschrijving. Het is mogelijk om het inhoudtype vast te stellen of bestanden in het werkgebied te beschrijven door de content en naam op te halen en de API te gebruiken die is beschreven in Inhoudtypen gebruiken. Dit wordt echter niet aanbevolen. Het vaststellen van inhoudtypen met IFile.getContentDescription() houdt rekening met projectsoorten en projectspecifieke instellingen. Als u direct naar de inhoudtypemanager gaat, houdt u daarmee geen rekening. Bovendien is het lezen van de bestandsinhoud op schijf erg duur. De plugin Resources onderhoudt een cache met contentgegevens van bestanden in het werkgebied. Hierdoor worden de kosten van contentbeschrijvingen tot een acceptabel niveau verlaagd.