Format de fichier

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche
fichier wav : 2,1 Mo.
ogg-file : 154 kilo-octets.

Un format de fichier est un moyen standard d' encoder les informations pour être stockées dans un fichier informatique . Il spécifie comment les bits sont utilisés pour coder les informations dans un support de stockage numérique. Les formats de fichiers peuvent être propriétaires ou libres et peuvent être non publiés ou ouverts.

Certains formats de fichiers sont conçus pour des types de données très particuliers : les fichiers PNG , par exemple, stockent des images bitmap en utilisant une compression de données sans perte . D'autres formats de fichiers, cependant, sont conçus pour le stockage de plusieurs types de données : le format Ogg peut servir de conteneur pour différents types de multimédia, y compris n'importe quelle combinaison d' audio et de vidéo , avec ou sans texte (comme des sous- titres ) et des métadonnées. . Un fichier texte peut contenir n'importe quel flux de caractères, y compris d'éventuels caractères de contrôle, et est codé dans l' un des différents schémas de codage de caractères . Certains formats de fichiers, tels que HTML , les graphiques vectoriels évolutifs et le code source des logiciels informatiques sont des fichiers texte avec des syntaxes définies qui leur permettent d'être utilisés à des fins spécifiques.

Spécifications

Les formats de fichiers ont souvent une spécification publiée décrivant la méthode de codage et permettant de tester la fonctionnalité prévue du programme. Tous les formats n'ont pas de documents de spécification librement disponibles, en partie parce que certains développeurs considèrent leurs documents de spécification comme des secrets commerciaux , et en partie parce que d'autres développeurs ne créent jamais de document de spécification formel, laissant le précédent établi par d'autres programmes déjà existants qui utilisent le format définir le format via comment ces programmes existants l'utilisent.

Si le développeur d'un format ne publie pas de spécifications gratuites, un autre développeur cherchant à utiliser ce type de fichier doit soit procéder à une ingénierie inverse du fichier pour savoir comment le lire, soit acquérir le document de spécification auprès des développeurs du format moyennant des frais et en signant un accord de non-divulgation . Cette dernière approche n'est possible que lorsqu'un document de spécification formel existe. Les deux stratégies nécessitent beaucoup de temps, d'argent ou les deux ; par conséquent, les formats de fichiers avec des spécifications accessibles au public ont tendance à être pris en charge par un plus grand nombre de programmes.

Brevets

Le droit des brevets , plutôt que le droit d' auteur , est plus souvent utilisé pour protéger un format de fichier. Bien que les brevets pour les formats de fichiers ne soient pas directement autorisés par la loi américaine, certains formats codent les données à l'aide d' algorithmes brevetés . Par exemple, l'utilisation de la compression avec le format de fichier GIF nécessite l'utilisation d'un algorithme breveté, et bien que le propriétaire du brevet n'ait pas initialement appliqué son brevet, il a ensuite commencé à percevoir des redevances . Cela a entraîné une diminution significative de l'utilisation des GIF et est en partie responsable du développement du format PNG alternatif . Cependant, le brevet GIF a expiré aux États-Unis à la mi-2003 et dans le monde à la mi-2004.

Identification du type de fichier

Différents systèmes d'exploitation ont traditionnellement adopté différentes approches pour déterminer le format d'un fichier particulier, chaque approche ayant ses propres avantages et inconvénients. La plupart des systèmes d'exploitation modernes et des applications individuelles doivent utiliser toutes les approches suivantes pour lire les formats de fichiers "étrangers", sinon fonctionner complètement avec eux.

Extension de nom de fichier

Une méthode populaire utilisée par de nombreux systèmes d'exploitation, notamment Windows , macOS , CP/M , DOS , VMS et VM/CMS consiste à déterminer le format d'un fichier en fonction de la fin de son nom, plus précisément des lettres suivant le point final. Cette partie du nom de fichier est connue sous le nom d'extension de nom de fichier . Par exemple, les documents HTML sont identifiés par des noms se terminant par .html (ou .htm ) et les images GIF par .gif . Dans le système de fichiers FAT d' origine , les noms de fichiers étaient limités à un identifiant à huit caractères et à une extension à trois caractères, connue sous le nom de nom de fichier 8.3 . Il n'y a qu'un nombre limité d'extensions à trois lettres, donc, souvent, une extension donnée peut être liée à plus d'un programme. De nombreux formats utilisent encore des extensions à trois caractères même si les systèmes d'exploitation et les programmes d'application modernes n'ont plus cette limitation. Comme il n'existe pas de liste standard d'extensions, plusieurs formats peuvent utiliser la même extension, ce qui peut dérouter à la fois le système d'exploitation et les utilisateurs.

Un artefact de cette approche est que le système peut facilement être amené à traiter un fichier comme un format différent simplement en le renommant - un fichier HTML peut, par exemple, être facilement traité comme du texte brut en le renommant de filename.html en filename. txt . Bien que cette stratégie ait été utile aux utilisateurs experts qui pouvaient facilement comprendre et manipuler ces informations, elle était souvent déroutante pour les utilisateurs moins techniques, qui pouvaient accidentellement rendre un fichier inutilisable (ou le "perdre") en le renommant de manière incorrecte.

Cela a conduit la plupart des versions de Windows et Mac OS à masquer l'extension lors de la liste des fichiers. Cela empêche l'utilisateur de modifier accidentellement le type de fichier et permet aux utilisateurs experts de désactiver cette fonctionnalité et d'afficher les extensions.

Cacher l'extension, cependant, peut créer l'apparence de deux ou plusieurs noms de fichiers identiques dans le même dossier. Par exemple, un logo d'entreprise peut être nécessaire à la fois au format .eps (pour la publication) et au format .png (pour les sites Web). Avec les extensions visibles, celles-ci apparaîtraient comme des noms de fichiers uniques : " CompanyLogo.eps " et " CompanyLogo.png ". D'un autre côté, masquer les extensions ferait apparaître les deux comme " CompanyLogo ", ce qui peut prêter à confusion.

Cacher des extensions peut également poser un risque pour la sécurité. [1] Par exemple, un utilisateur malveillant pourrait créer un programme exécutable avec un nom innocent tel que " Holiday photo.jpg.exe ". Le " .exe " serait caché et un utilisateur sans méfiance verrait " Holiday photo.jpg ", qui semblerait être une image JPEG , généralement incapable d'endommager la machine. Cependant, le système d'exploitation verrait toujours le " .exe" et exécutez le programme, ce qui pourrait alors causer des dommages à l'ordinateur. Il en va de même avec les fichiers avec une seule extension : comme elle n'est pas montrée à l'utilisateur, aucune information sur le fichier ne peut être déduite sans enquêter explicitement Pour tromper davantage les utilisateurs, il est possible de stocker une icône à l'intérieur du programme, auquel cas l'affectation d'icônes de certains systèmes d'exploitation pour le fichier exécutable ( .exe ) serait remplacée par une icône couramment utilisée pour représenter des images JPEG, ce qui rend le programme ressemble à une image. Les extensions peuvent également être usurpées : certains virus de macro Microsoft Word créent un fichier Word au format modèle et l'enregistrent avec un .docextension. Étant donné que Word ignore généralement les extensions et examine le format du fichier, ceux-ci s'ouvriraient en tant que modèles, s'exécuteraient et propageraient le virus. [ citation nécessaire ] Cela représente un problème pratique pour les systèmes Windows où le masquage des extensions est activé par défaut.

Métadonnées internes

Une deuxième façon d'identifier un format de fichier consiste à utiliser des informations concernant le format stocké dans le fichier lui-même, soit des informations destinées à cet effet, soit des chaînes binaires qui se trouvent toujours à des emplacements spécifiques dans des fichiers de certains formats. Étant donné que l'endroit le plus facile pour les localiser est au début, cette zone est généralement appelée en- tête de fichier lorsqu'elle est supérieure à quelques octets , ou un nombre magique si elle ne fait que quelques octets.

En-tête de fichier

Les métadonnées contenues dans un en-tête de fichier sont généralement stockées au début du fichier, mais peuvent également être présentes dans d'autres zones, y compris souvent à la fin, selon le format de fichier ou le type de données contenues. Les fichiers à base de caractères (texte) ont généralement des en-têtes à base de caractères, tandis que les formats binaires ont généralement des en-têtes binaires, bien que ce ne soit pas une règle. Les en-têtes de fichiers textuels prennent généralement plus de place, mais étant lisibles par l'homme, ils peuvent facilement être examinés à l'aide d'un logiciel simple tel qu'un éditeur de texte ou un éditeur hexadécimal.

En plus d'identifier le format de fichier, les en-têtes de fichier peuvent contenir des métadonnées sur le fichier et son contenu. Par exemple, la plupart des fichiers image stockent des informations sur le format, la taille, la résolution et l' espace colorimétrique de l'image , et éventuellement des informations sur la création telles que qui a créé l'image, quand et où elle a été créée, quel modèle d'appareil photo et quels paramètres photographiques ont été utilisés ( Exif ), et bientôt. Ces métadonnées peuvent être utilisées par un logiciel lisant ou interprétant le fichier pendant le processus de chargement et après.

Les en-têtes de fichiers peuvent être utilisés par un système d'exploitation pour collecter rapidement des informations sur un fichier sans tout charger en mémoire, mais cela utilise plus de ressources d'un ordinateur que de lire directement à partir des informations du répertoire . Par exemple, lorsqu'un gestionnaire de fichiers graphiques doit afficher le contenu d'un dossier, il doit lire les en-têtes de nombreux fichiers avant de pouvoir afficher les icônes appropriées, mais celles-ci seront situées à différents endroits sur le support de stockage, ce qui prendra plus de temps à accéder . Un dossier contenant de nombreux fichiers avec des métadonnées complexes telles que des informations sur les vignettes peut nécessiter un temps considérable avant de pouvoir être affiché.

Si un en-tête est codé en dur de manière binaire, de sorte que l'en-tête lui-même nécessite une interprétation complexe pour être reconnu, en particulier pour la protection du contenu des métadonnées, il existe un risque que le format de fichier puisse être mal interprété. Il se peut même qu'il ait été mal écrit à la source. Cela peut entraîner des métadonnées corrompues qui, dans des cas extrêmement graves, peuvent même rendre le fichier illisible. [ précisions nécessaires ]

Un exemple plus complexe d'en-têtes de fichier est celui utilisé pour les formats de fichier wrapper (ou conteneur).

Numéro magique

Une façon d'incorporer des métadonnées de type de fichier, souvent associées à Unix et ses dérivés, consiste simplement à stocker un "numéro magique" à l'intérieur du fichier lui-même. À l'origine, ce terme était utilisé pour un ensemble spécifique d'identifiants à 2 octets au début des fichiers, mais comme toute séquence binaire peut être considérée comme un nombre, toute caractéristique d'un format de fichier qui le distingue de manière unique peut être utilisée pour l'identification. Les images GIF , par exemple, commencent toujours par la représentation ASCII de GIF87a ou GIF89a , selon la norme à laquelle elles adhèrent. De nombreux types de fichiers, en particulier les fichiers en texte brut, sont plus difficiles à repérer par cette méthode. Les fichiers HTML, par exemple, peuvent commencer par la chaîne <html>(qui n'est pas sensible à la casse), ou une définition de type de document appropriée qui commence par <!DOCTYPE HTML> , ou, pour XHTML , l' identifiant XML , qui commence par <?xml . Les fichiers peuvent également commencer par des commentaires HTML, du texte aléatoire ou plusieurs lignes vides, tout en restant utilisables en HTML.

L'approche du nombre magique offre de meilleures garanties que le format sera identifié correctement et peut souvent déterminer des informations plus précises sur le fichier. Étant donné que les tests de "nombres magiques" raisonnablement fiables peuvent être assez complexes et que chaque fichier doit effectivement être testé par rapport à toutes les possibilités de la base de données magique, cette approche est relativement inefficace, en particulier pour afficher de grandes listes de fichiers (en revanche, le nom du fichier et les métadonnées- les méthodes basées n'ont besoin de vérifier qu'une seule donnée et de la comparer à un index trié). De plus, les données doivent être lues à partir du fichier lui-même, ce qui augmente la latence par rapport aux métadonnées stockées dans le répertoire. Lorsque les types de fichiers ne se prêtent pas à cette reconnaissance, le système doit se rabattre sur les métadonnées. C'est pourtantle meilleur moyen pour un programme de vérifier si le fichier qu'on lui a demandé de traiter est du bon format : alors que le nom ou les métadonnées du fichier peuvent être modifiés indépendamment de son contenu, échouer à un test de nombre magique bien conçu est un signe assez sûr que le fichier est corrompu ou du mauvais type. D'un autre côté, un nombre magique valide ne garantit pas que le fichier n'est pas corrompu ou est d'un type correct.

Les lignes dites shebang dans les fichiers de script sont un cas particulier de nombres magiques. Ici, le nombre magique est un texte lisible par l'homme qui identifie un interpréteur de commandes spécifique et les options à transmettre à l'interpréteur de commandes.

Un autre système d'exploitation utilisant des nombres magiques est AmigaOS , où les nombres magiques étaient appelés « cookies magiques » et ont été adoptés comme système standard pour reconnaître les exécutables au format de fichier exécutable Hunk et également pour permettre à des programmes, outils et utilitaires uniques de traiter automatiquement leurs fichiers de données enregistrés. , ou tout autre type de fichier lors de l'enregistrement et du chargement des données. Ce système a ensuite été amélioré avec le système de reconnaissance de type de données standard Amiga . Une autre méthode était la méthode FourCC , originaire d' OSType sur Macintosh, plus tard adaptée par Interchange File Format (IFF) et ses dérivés.

Métadonnées externes

Une dernière façon de stocker le format d'un fichier consiste à stocker explicitement des informations sur le format dans le système de fichiers, plutôt que dans le fichier lui-même.

Cette approche maintient les métadonnées séparées à la fois des données principales et du nom, mais est également moins portable que les extensions de nom de fichier ou les "nombres magiques", car le format doit être converti de système de fichiers en système de fichiers. Bien que cela soit également vrai dans une certaine mesure avec les extensions de nom de fichier - par exemple, pour la compatibilité avec la limite de trois caractères de MS-DOS - la plupart des formes de stockage ont une définition à peu près équivalente des données et du nom d'un fichier, mais peuvent avoir une représentation variable ou inexistante. d'autres métadonnées.

Notez que les fichiers zip ou les fichiers d'archive résolvent le problème de gestion des métadonnées. Un programme utilitaire collecte plusieurs fichiers ainsi que des métadonnées sur chaque fichier et les dossiers/répertoires dont ils proviennent tous dans un nouveau fichier (par exemple un fichier zip avec l'extension .zip ). Le nouveau fichier est également compressé et éventuellement crypté, mais il est désormais transmissible sous forme de fichier unique entre les systèmes d'exploitation par les systèmes FTP ou en pièce jointe à un courrier électronique. A destination, il doit être décompressé par un utilitaire compatible pour être utile, mais les problèmes de transmission sont résolus de cette manière.

Codes de type Mac OS

Le système de fichiers hiérarchique de Mac OS stocke les codes pour le créateur et le type dans le cadre de l'entrée de répertoire pour chaque fichier. Ces codes sont appelés OSTypes. Ces codes pouvaient être n'importe quelle séquence de 4 octets, mais étaient souvent sélectionnés de manière à ce que la représentation ASCII forme une séquence de caractères significatifs, comme une abréviation du nom de l'application ou les initiales du développeur. Par exemple, un fichier "pile" HyperCard a un créateur de WILD (du nom précédent d'Hypercard, "WildCard") et un type de STAK . L' éditeur de texte BBEdit a un code créateur deR*chse référant à son programmeur d'origine, Rich Siegel . Le code de type spécifie le format du fichier, tandis que le code créateur spécifie le programme par défaut avec lequel l'ouvrir lors d'un double-clic par l'utilisateur. Par exemple, l'utilisateur peut avoir plusieurs fichiers texte avec tous le code de type TEXT , mais qui s'ouvrent chacun dans un programme différent, en raison d'avoir des codes créateurs différents. Cette fonctionnalité a été conçue pour que, par exemple, des fichiers de texte brut lisibles par l'homme puissent être ouverts dans un éditeur de texte à usage général, tandis que les fichiers de programmation ou de code HTML s'ouvrent dans un éditeur spécialisé ou IDE . Cependant, cette fonctionnalité était souvent la source de confusion pour l'utilisateur, car le programme qui se lancerait lorsque les fichiers étaient double-cliqués était souvent imprévisible. Système d'exploitation RISCutilise un système similaire, composé d'un nombre de 12 bits qui peut être recherché dans une table de descriptions, par exemple le nombre hexadécimalFF5 est "aliasé" en PoScript , représentant un fichier PostScript .

Identifiants de type uniformes (UTI) Mac OS X

Un identificateur de type uniforme (UTI) est une méthode utilisée dans macOS pour identifier de manière unique les classes d'entités "typées", telles que les formats de fichiers. Il a été développé par Apple en remplacement d'OSType (codes de type et de créateur).

L'UTI est une chaîne Core Foundation , qui utilise une chaîne DNS inversée . Certains types courants et standard utilisent un domaine appelé public (par exemple public.png pour une image Portable Network Graphics ), tandis que d'autres domaines peuvent être utilisés pour des types tiers (par exemple com.adobe.pdf pour Portable Document Format ). Les UTI peuvent être définis au sein d'une structure hiérarchique, connue sous le nom de hiérarchie de conformité. Ainsi, public.png se conforme à un supertype de public.image , qui lui-même se conforme à un supertype de public.data . Un UTI peut exister dans plusieurs hiérarchies, ce qui offre une grande flexibilité.

En plus des formats de fichiers, les UTI peuvent également être utilisés pour d'autres entités pouvant exister dans macOS, notamment :

  • Données de la table de montage
  • Dossiers (répertoires)
  • Types traduisibles (tels que gérés par le gestionnaire de traduction)
  • Liasses
  • Cadres
  • Données en continu
  • Alias ​​et liens symboliques

Attributs étendus OS/2

Les systèmes de fichiers HPFS , FAT12 et FAT16 (mais pas FAT32) permettent le stockage d'"attributs étendus" avec des fichiers. Ceux-ci comprennent un ensemble arbitraire de triplets avec un nom, un type codé pour la valeur et une valeur, où les noms sont uniques et les valeurs peuvent mesurer jusqu'à 64 Ko. Il existe des significations normalisées pour certains types et noms (sous OS/2 ). L'une d'entre elles est que l'attribut étendu ".TYPE" est utilisé pour déterminer le type de fichier. Sa valeur comprend une liste d'un ou plusieurs types de fichiers associés au fichier, chacun étant une chaîne, telle que "Texte brut" ou "Document HTML". Ainsi un fichier peut avoir plusieurs types.

Le système de fichiers NTFS permet également le stockage d'attributs étendus OS/2, comme l'un des forks de fichiers , mais cette fonctionnalité est simplement présente pour prendre en charge le sous-système OS/2 (non présent dans XP), donc le sous-système Win32 traite ces informations comme un bloc de données et ne l'utilise pas. Au lieu de cela, il s'appuie sur d'autres forks de fichiers pour stocker les méta-informations dans des formats spécifiques à Win32. Les attributs étendus OS/2 peuvent toujours être lus et écrits par les programmes Win32, mais les données doivent être entièrement analysées par les applications.

Attributs étendus POSIX

Sur les systèmes Unix et de type Unix , les systèmes de fichiers ext2 , ext3 , ReiserFS version 3, XFS , JFS , FFS et HFS+ permettent le stockage d'attributs étendus avec des fichiers. Celles-ci incluent une liste arbitraire de chaînes "nom=valeur", où les noms sont uniques et une valeur est accessible via son nom associé.

Identifiants uniques PRONOM (PUID)

L' identifiant unique persistant PRONOM (PUID) est un schéma extensible d'identifiants persistants, uniques et non ambigus pour les formats de fichiers, qui a été développé par les Archives nationales du Royaume-Uni dans le cadre de son service de registre technique PRONOM . Les PUID peuvent être exprimés sous forme d' identificateurs de ressources uniformes à l'aide de l' espace de noms info:pronom/ . Bien qu'il ne soit pas encore largement utilisé en dehors du gouvernement britannique et de certains programmes de préservation numérique , le schéma PUID offre une plus grande granularité que la plupart des schémas alternatifs.

Types MIME

Les types MIME sont largement utilisés dans de nombreuses applications liées à Internet , et de plus en plus ailleurs, bien que leur utilisation pour les informations de type sur disque soit rare. Ceux-ci consistent en un système standardisé d'identifiants (géré par l' IANA ) composé d'un type et d'un sous-type , séparés par une barre oblique — par exemple, text/html ou image/gif . Celles-ci étaient à l'origine destinées à identifier le type de fichier joint à un e-mail , indépendamment des systèmes d'exploitation source et cible. Les types MIME identifient les fichiers sur BeOS , AmigaOS 4.0 et MorphOS, ainsi que stocker des signatures d'application uniques pour le lancement de l'application. Dans AmigaOS et MorphOS, le système de type Mime fonctionne en parallèle avec le système de type de données spécifique à Amiga.

Il y a cependant des problèmes avec les types MIME ; plusieurs organisations et personnes ont créé leurs propres types MIME sans les enregistrer correctement auprès de l'IANA, ce qui rend l'utilisation de cette norme difficile dans certains cas.

Identificateurs de format de fichier (FFID)

Les identifiants de format de fichier sont un autre moyen peu utilisé pour identifier les formats de fichier en fonction de leur origine et de leur catégorie de fichier. Il a été créé pour la suite logicielle Description Explorer. Il est composé de plusieurs chiffres du formulaire NNNNNNNNN-XX-YYYYYYY. La première partie indique l'origine/le responsable de l'organisation (ce nombre représente une valeur dans une base de données entreprise/organisme de normalisation), les 2 chiffres suivants catégorisent le type de fichier en hexadécimal . La dernière partie est composée de l'extension de nom de fichier habituelle du fichier ou du numéro standard international du fichier, complété à gauche par des zéros. Par exemple, la spécification de fichier PNG a le FFID de 000000001-31-001594831indique un fichier image, 0015948est le numéro standard et 000000001indique leOrganisation internationale de normalisation (ISO).

Identification du format basée sur le contenu du fichier

Un autre moyen, mais moins répandu, d'identifier le format de fichier consiste à examiner le contenu du fichier à la recherche de modèles distincts parmi les types de fichiers. Le contenu d'un fichier est une séquence d'octets et un octet a 256 permutations uniques (0-255). Ainsi, le comptage de l'occurrence de modèles d'octets qui est souvent appelé distribution de fréquence d'octets donne des modèles distinguables pour identifier les types de fichiers. Il existe de nombreux schémas d'identification de type de fichier basés sur le contenu qui utilisent la distribution de fréquence d'octets pour créer les modèles représentatifs du type de fichier et utilisent toutes les techniques statistiques et d'exploration de données pour identifier les types de fichiers [2]

Structure du fichier

Il existe plusieurs types de façons de structurer les données dans un fichier. Les plus courantes sont décrites ci-dessous.

Formats non structurés (vidages de mémoire brute)

Les formats de fichiers antérieurs utilisaient des formats de données brutes qui consistaient à vider directement les images mémoire d'une ou plusieurs structures dans le fichier.

Cela présente plusieurs inconvénients. A moins que les images mémoires n'aient également des espaces réservés pour de futures extensions, étendre et améliorer ce type de fichier structuré est très difficile. Il crée également des fichiers qui peuvent être spécifiques à une plate-forme ou à un langage de programmation (par exemple, une structure contenant une chaîne Pascal n'est pas reconnue comme telle en C ). En revanche, développer des outils de lecture et d'écriture de ce type de fichiers est très simple.

Les limitations des formats non structurés ont conduit au développement d'autres types de formats de fichiers qui pourraient être facilement étendus et être rétrocompatibles en même temps.

Formats basés sur des morceaux

Dans ce type de structure de fichier, chaque élément de données est intégré dans un conteneur qui identifie d'une manière ou d'une autre les données. La portée du conteneur peut être identifiée par des marqueurs de début et de fin d'un certain type, par un champ de longueur explicite quelque part, ou par des exigences fixes de la définition du format de fichier.

Tout au long des années 1970, de nombreux programmes ont utilisé des formats de ce type général. Par exemple, les traitements de texte tels que troff , Script et Scribe , et les fichiers d'exportation de base de données tels que CSV . Electronic Arts et Commodore - Amiga a également utilisé ce type de format de fichier en 1985, avec leur format de fichier IFF (Interchange File Format).

Un conteneur est parfois appelé "morceau" , bien que "morceau" puisse également impliquer que chaque morceau est petit et/ou que les morceaux ne contiennent pas d'autres morceaux ; de nombreux formats n'imposent pas ces exigences.

Les informations qui identifient un « morceau » particulier peuvent être appelées de différentes manières, souvent des termes tels que « nom de champ », « identifiant », « étiquette » ou « étiquette ». Les identifiants sont souvent lisibles par l'homme, et classent des parties des données : par exemple, en tant que "nom", "adresse", "rectangle", "nom de police", etc. Ce ne sont pas la même chose que des identifiants au sens d'une clé de base de données ou d'un numéro de série (bien qu'un identifiant puisse très bien identifier ses données associées en tant que telle clé).

Avec ce type de structure de fichiers, les outils qui ne connaissent pas certains identificateurs de morceaux ignorent simplement ceux qu'ils ne comprennent pas. Selon la signification réelle des données ignorées, cela peut être utile ou non ( CSS définit explicitement un tel comportement).

Ce concept a été utilisé maintes et maintes fois par RIFF (équivalent Microsoft-IBM de IFF), PNG, stockage JPEG, DER ( Distinguished Encoding Rules ) flux et fichiers codés (qui ont été décrits à l'origine dans CCITT X.409:1984 et donc antérieurs à IFF ) et le format d'échange de données structurées (SDXF) .

En effet, tout format de données doit d'une manière ou d'une autre identifier l'importance de ses composants, et les marqueurs de frontières intégrés sont un moyen évident de le faire :

  • Les en - têtes MIME le font avec une étiquette séparée par des deux-points au début de chaque ligne logique. Les en-têtes MIME ne peuvent pas contenir d'autres en-têtes MIME, bien que le contenu des données de certains en-têtes comporte des sous-parties pouvant être extraites par d'autres conventions.
  • Les fichiers CSV et similaires le font souvent en utilisant des enregistrements d'en-tête avec des noms de champ et des virgules pour marquer les limites de champ. Comme MIME, CSV ne prévoit pas de structures à plus d'un niveau.
  • XML et ses parents peuvent être considérés comme une sorte de format basé sur des morceaux, puisque les éléments de données sont identifiés par un balisage qui s'apparente à des identificateurs de morceaux. Cependant, il présente des avantages formels tels que les schémas et la validation , ainsi que la possibilité de représenter des structures plus complexes telles que des arbres , des DAG et des graphiques . Si XML est considéré comme un format de "bloc", alors SGML et son prédécesseur IBM GML sont parmi les premiers exemples de tels formats.
  • JSON est similaire à XML sans schémas, références croisées ou définition de la signification des noms de champs répétés, et est souvent pratique pour les programmeurs.
  • YAML est similaire à JSON, mais utilise l'indentation pour séparer les morceaux de données et vise à être plus lisible par l'homme que JSON ou XML.
  • Les tampons de protocole sont à leur tour similaires à JSON, remplaçant notamment les marqueurs de limite dans les données par des numéros de champ, qui sont mappés vers/depuis les noms par un mécanisme externe.

Formats basés sur des répertoires

Il s'agit d'un autre format extensible, qui ressemble beaucoup à un système de fichiers (les documents OLE sont de vrais systèmes de fichiers), où le fichier est composé d'"entrées de répertoire" qui contiennent l'emplacement des données dans le fichier lui-même ainsi que ses signatures (et dans certains cas son type). De bons exemples de ces types de structures de fichiers sont les images disque , les documents OLE TIFF , les bibliothèques . ODT et DOCX, étant basés sur PKZIP, sont fragmentés et contiennent également un répertoire.

Voir aussi

Références

  1. ^ PC World (23 décembre 2003). "Conseils Windows : Pour des raisons de sécurité, il est important de connaître vos extensions de fichiers" . Archivé de l' original le 23 avril 2008 . Récupéré le 20 juin 2008 .
  2. ^ "Identification du format de fichier" . Archivé de l'original le 2009-08-14 . Récupéré le 2009-07-21 .

Liens externes