Was ist das YML-Dateiformat?
.yml ist eine reine Textdatei und ein Datenaustauschformat. Es ist ein standardisiertes, plattformunabhängiges Format, das Daten als menschenlesbaren Text speichert, organisiert durch eine einrückungsbasierte key: value-Struktur. .yml-Dateien können mit YAML-Bibliotheken gelesen und geschrieben werden, die für praktisch jede gängige Programmiersprache verfügbar sind. .yml und .yaml bezeichnen dasselbe Format - .yml ist die ältere Form mit drei Buchstaben, die von vielen Tools wie docker-compose.yml, .gitlab-ci.yml und GitHub Actions-Workflows beibehalten wurde. Das Format wird am häufigsten für die Datenserialisierung und Anwendungskonfiguration verwendet.
Serialisierung ist ein Begriff aus der Informatik und bezieht sich auf das Konzept des Datenaustauschs zwischen Programmen oder Anwendungen unter Verwendung wohldefinierter Objekte. Ein Objekt kann als Datencontainer verstanden werden. Zum Beispiel sind Datenbankeinträge eine Form der Datenserialisierung, da sie leicht zwischen verschiedenen Datenbanken ausgetauscht werden können. Serialisierte Daten können auch die Form strukturierter Dateien annehmen, die zwischen Anwendungen gesendet werden können. Zu den am weitesten verbreiteten Serialisierungsformaten gehören .yml, XML, JSON und TOML.
Ein markantes Merkmal von .yml ist die Verwendung von signifikanten Leerzeichen: Die Einrückung definiert die Dokumentstruktur, und es sind nur Leerzeichen zulässig - Tabulatoren sind durch die Spezifikation ausdrücklich verboten. Dokumente können optional mit --- (Dokumentstart) beginnen und mit ... enden. YAML unterstützt auch Inline-Kommentare mit #, mehrzeilige Block-Skalare mit | oder > sowie Anker (&) mit Aliasen (*) zur Wiederverwendung wiederholter Werte.
Sicherheit
RISIKO: MEDIUMEine .yml-Datei ist reiner Text und führt sich nicht von selbst aus, daher ist das Lesen sicher. Zwei reale Risiken: (1) Konfigurations-YAML (CI-Pipelines, Compose, K8s, Ansible) enthält häufig Geheimnisse - Token, Passwörter, Schlüssel - fügen Sie diese also nicht in nicht vertrauenswürdige Online-Validatoren ein und committen Sie sie nicht öffentlich. (2) Programmatische Gefahr: Das Laden von nicht vertrauenswürdigem YAML mit einem unsicheren Parser (z. B. PyYAMLs yaml.load anstelle von yaml.safe_load) kann willkürliche Objekte/Code ausführen - verwenden Sie für Dateien, denen Sie nicht vertrauen, immer den sicheren Loader. Bearbeitungsrisiko: Ein Tab oder ein falsch ausgerichtetes Leerzeichen ändert lautlos die Bedeutung, validieren Sie also nach dem Bearbeiten.
Formatdetails
kurz gefasst- Strangereal IFL camera-map (selten) - Einige wenige Legacy-Apps haben .yml für Nicht-YAML-Daten wiederverwendet, aber heute ist die Endung praktisch immer YAML-Text.
Programme zum Öffnen von YML-Dateien
Technische Details
technische Spezifikation| MIME-Typ | application/yaml (IANA-registriert); ältere Varianten umfassen text/yaml, text/x-yaml, application/x-yaml |
| Kodierung | UTF-8 (Standard und am häufigsten); UTF-16 und UTF-32 mit BOM sind laut Spezifikation zulässig, in der Praxis aber selten |
| Dateistruktur | Einrückungsbasierte Mappings (key: value), Sequenzen (- item) und Skalare; Verschachtelung wird rein durch die Einrückungsebene ausgedrückt |
| Signifikante Leerzeichen | Einrückung definiert die Struktur; nur Leerzeichen sind erlaubt - Tabulatoren sind durch die YAML-Spezifikation ausdrücklich verboten |
| Dokument-Marker | Optionales --- markiert den Dokumentstart; ... markiert das Dokumentende; eine einzelne .yml-Datei kann mehrere YAML-Dokumente enthalten, die durch --- getrennt sind |
| Kommentar-Unterstützung | Inline- und ganzzeilige Kommentare, eingeleitet durch # - fehlen in JSON und den meisten binären Serialisierungsformaten |
| Native Datentypen | String, Integer, Float, Boolean, Null, Timestamp und Binärdaten (Base64-kodiert über das !!binary-Tag) |
| Anker und Aliase | & deklariert einen wiederverwendbaren Anker; * referenziert (aliast) diesen - eliminiert Copy-Paste-Wiederholungen in komplexen Konfigurationsdateien |
| Block-Skalare | | (Literal Block Scalar) erhält Zeilenumbrüche wie sie sind; > (Folded Block Scalar) faltet Zeilenumbrüche zu Leerzeichen zusammen |
| JSON-Superset | Seit YAML 1.2 (2009) ist jede gültige JSON-Datei auch gültiges YAML, sodass YAML-Parser JSON nativ lesen können |
| Magic Bytes / Signatur | Keine - kein binärer Header oder Magic Number; identifiziert durch die einrückungsbasierte key: value-Struktur und die Endung .yml oder .yaml |
| Dateigröße (typisch) | Bytes bis zu einigen zehn KB für Konfigurations- und CI/CD-Pipeline-Dateien; übersteigt selten einige hundert KB |
| Gleichwertigkeit der Endungen | .yml und .yaml sind im Format identisch; .yml ist die aus der DOS-Ära stammende Drei-Buchstaben-Form, die von docker-compose.yml, .gitlab-ci.yml und GitHub Actions übernommen wurde |
| Spezifikations-Versionsdirektive | Optionales %YAML 1.2 Pragma am Dateianfang deklariert die Spezifikationsversion; die meisten Dateien lassen dies weg und verlassen sich auf Parser-Standards |
| Veröffentlicht | 2001 (YAML 1.0); YAML 1.1 (2005); current YAML 1.2 (2009, revised 1.2.2 in 2021) |
| Neueste Version | YAML 1.2.2 (2021) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | yaml.org |
YML-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu YML-Dateien.