Modul plug-in běhového prostředí platformy určuje infrastrukturu pro definování a zjišťování typů obsahu datových toků. (Přehled rámce obsahu najdete v části Typy obsahu.) Důležitou součástí systému typů obsahu je schopnost specifikovat různá kódování (znakové sady) pro různé druhy obsahu. Rozhraní API jednotlivých prostředků navíc umožňuje zadat výchozí sady znaků pro různé projekty, složky a soubory. Tyto výchozí znakové sady se prohlížejí, když obsah samotného souboru nedefinuje konkrétní kódování v rámci svého datového toku.
V části Typy obsahu jsme viděli, že pro jednotlivé typy obsahu lze zavést výchozí kódování souborů. Jemnější kontrolu pak poskytuje rozhraní API pro jednotlivé prostředky.
IContainer definuje protokol pro nastavení výchozí znakové sady pro určitý projekt nebo složku. To poskytuje modulům plug-in (a v konečném důsledku uživateli) větší volnost v určování vhodné znakové sady pro určitou množinu souborů v případě, že nevyhovují výchozí znakové sady stanovené podle typu obsahu.
IFile definuje rozhraní API pro nastavení výchozí znakové sady pro konkrétní soubor. Pokud obsah souboru neudává žádné požadované kódování, použije se tato znaková sada. Výchozí znaková sada souboru má přednost před jakoukoli výchozí znakovou sadou určenou ve složce nebo projektu souboru nebo danou typem jeho obsahu.
Obě tyto funkce jsou k dispozici koncovému uživateli na stránce vlastností prostředku.
IFile také definuje rozhraní API pro dotazování na znakovou sadu souboru. Logický příznak udává, zda má být v odpovědi na tento dotaz uvedena pouze znaková sada, která je výslovně definována pro tento soubor, nebo zda má být v odpovědi uvedena implikovaná znaková sada. Například:
String charset = myFile.getCharset(false);
vrátí hodnotu null, pokud nebyla v souboru myFile žádná znaková sada výslovně nastavena. Nicméně
String charset = myFile.getCharset(true);
nejdříve zkontroluje, zda nebyla pro soubor výslovně nastavena nějaká znaková sada. Pokud žádnou nenajde, proběhne kontrola obsahu souboru, zda v něm není popis znakové sady. Pokud se opět žádná nenajde, proběhne kontrola, zda není výchozí znaková sada nastavena ve složkách a projektech, v nichž je soubor obsažen. Pokud se ani nyní žádná nenajde, hledá se výchozí znaková sada definovaná pro příslušný typ obsahu. A pokud není ani žádné jiné určení výchozí znakové sady, potom se jako odpověď na tento dotaz vrátí výchozí znaková sada dané platformy. Nadstavbová metoda getCharset() je stejná jako při použití getCharset(true).
Pro soubory v pracovním prostoru poskytuje IFile rozhraní API k získávání popisu obsahu souboru:
IFile file = ...; IContentDescription description = file.getDescription();
Toto rozhraní API by mělo být používáno dokonce i v případech, kdy klienti mají zájem pouze o stanovení typu obsahu - typ obsahu lze snadno získat z popisu obsahu. Typ obsahu lze rozpoznávat, příp. soubory v pracovním prostoru lze popisovat získáním obsahu a názvu a použitím rozhraní API popsaného v Použití typů obsahu, tento způsob však nedoporučujeme. Při stanovení typu obsahu s použitím IFile.getContentDescription() jsou zohledňovány charaktery projektu a nastavení specifická pro projekt. Použijete-li přímo správce typů obsahu, pak tuto skutečnost ignorujete. Důležitější však je, že čtení obsahu souborů z disku je velmi náročné na prostředky. Modul plug-in prostředků udržuje mezipaměť popisů obsahu pro soubory v pracovním prostoru. Dochází tak ke snížení náročnosti popisu obsahu na přijatelnou úroveň.