# Vector Markup Language

Die Vector Markup Language (VML) ist eine veraltete Auszeichnungssprache zur Beschreibung zweidimensionaler Vektorgrafiken in XML.

## Geschichte

VML wurde 1998 von Autodesk, HP, Macromedia, Microsoft und der Visio Corporation zur Standardisierung an das World Wide Web Consortium (W3C) übergeben. Als Webstandard wurde VML abgelehnt, da Adobe, Sun und andere einen weiteren Standard unter dem Namen Precision Graphics Markup Language (PGML) beantragten. Diese beiden Vorschläge wurden unter dem Namen Scalable Vector Graphics (SVG) vereinigt und als Standard vom W3C verabschiedet. Die Entwicklung von VML wurde daraufhin im Herbst 1998 eingestellt. Im Laufe der Zeit ist VML zugunsten von anderen Formaten, wie beispielsweise SVG, weitestgehend in den Hintergrund geraten.

## Vergleich der Elemente von VML und SVG

SVG ist nicht mit VML kompatibel. Allerdings besitzen VML und SVG ähnliche Bausteine.
| Element | VML | SVG |
| Kreis | <oval> | <circle> |
| Ellipse | <oval> | <ellipse> |
| Rechteck | <rect> | <rect> |
| Abgerundetes Rechteck | <roundrect> | <rect> |
| Polygonzug | <polyline> | <polyline> |
| Polygon | <polyline> | <polygon> |
| Linie | <line> | <line> |
| Bézierkurve | <curve> | <path> (C-Befehl) |
| Kreisbogen | <arc> | <path> (A-Befehl) |
| Bilddatei | <image> | <image> |
| Pfad | <path> | <path> |
| Gruppierung | <group> | <g> |

### Beispiel

* Das folgende VML-Beispiel stellt ein Oval mit blauer Füllung dar:
* <html xmlns:v="urn:schemas-microsoft-com:vml">
* <head>
* <meta http-equiv="X-UA-Compatible" content="IE=5"/>
* <style>v\:*{behavior:url(#default#VML);position:absolute}</style>
* </head>
* <body>
* <v:oval style="left:0;top:0;width:100;height:50" fillcolor="blue" stroked="f"/>
* </body>
* </html>
* Das gleiche Beispiel als SVG sieht wie folgt aus:
* <?xml version="1.0"?>
* <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
* "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
* <svg xmlns="http://www.w3.org/2000/svg" width="100" height="50">
* <ellipse cx="50" cy="25" rx="50" ry="25" fill="blue"/>
* </svg>

## Kompatibilität
### Browserunterstützung

Obwohl das Format als Standard durch das W3C abgelehnt und größtenteils durch Entwickler ignoriert wurde, implementierte Microsoft VML im Internet Explorer 5. Bis einschließlich Version 9 wird VML implizit im sogenannten Quirks-Modus unterstützt. In den beiden letzten Versionen 10 und 11 wird der Quirks-Modus nicht mehr implizit ausgewählt, sondern muss explizit festgelegt werden. Im Quirks-Modus werden neue Funktionen aus HTML5 und CSS3 nicht oder fehlerhaft dargestellt. Ein herausragendes Beispiel dafür ist der CSS Box-Modell-Fehler. Der Quirks-Modus kann über das HTTP-Header-Feld X-UA-Compatible festgelegt werden, indem dessen Wert auf IE=5 gesetzt wird. Alternativ kann diese Festlegung auch über ein HTML Meta-Element getroffen werden (siehe Zeile 3 im Beispiel).
Zudem unterstützt der Internet Explorer Conditional Comments für VML. Diese ermöglichen eine unterschiedliche Darstellung von Inhalten in Anhängigkeit des genutzten Browsers bzw. der verfügbaren Technologien. Man spricht von einer sogenannten Browserweiche.
| Start | Inhalt | Ende |
| <!--[if vml]> | Inhalt, der nur angezeigt wird, wenn VML unterstützt wird (i. d. R. VML-Code) | <![endif]--> |
| <!--[if !vml]>--> --> | Alternativer Inhalt für alle anderen Browser (z. B. eine Rastergrafik oder SVG) | <!-- <![endif]--> |
Ein konkreter Anwendungsfall sind geometrische Zeichnungen, die im Internet Explorer und Programmen aus der Microsoft Office Familie als qualitativ hochwertige Vektorgrafik dargestellt werden und in allen anderen Browsern als Rastergrafik mit Treppeneffekten und ggf. Kompressionsartefakten.
In Bezug auf den Internet Explorer selbst, können je nach Version unterschiedliche Vektorgrafikformate genutzt werden. SVG wird für den Internet Explorer erst ab Version 9 unterstützt. Für ältere Browser kann allerdings eine äquivalente Vektorgrafik im VML-Format angeboten werden.
Obwohl die Entwicklung des Internet Explorers Mitte Juni 2022 eingestellt wird, besteht dennoch ab Microsoft Edge 77 die Möglichkeit, von dort aus einzelne Webseiten im IE-Modus darzustellen. Dort wird auch VML nach wie vor unterstützt, sofern die Kompatibilität (wie zuvor beschrieben) entsprechend festgelegt wurde. Der IE-Modus soll in Edge bis mindestens 2029 zur Verfügung stehen.
Die Hürde zur Nutzung des IE-Modus ist vergleichsweise hoch, da entsprechende Seiten per Hand in eine Liste unter der Adresse edge://settings/defaultBrowser eingetragen werden müssen und nur 30 Tage gültig sind. Danach muss man diese bei Bedarf erneut eintragen.
Microsoft empfiehlt bereits seit 2012 einen Wechsel von VML zu SVG.

### Microsoft Office

VML wird unter anderem auch in Microsoft Office für Vektorgrafiken genutzt. Beim Speichern von Office-Dokumenten als „Webseite“ (*.htm) oder „Webseite in einer Datei“ (*.mht) wird das Format genutzt, um Vektor-Zeichnungen derart in die entstehenden HTML-Dateien einzubetten, dass sie verlustlos mit dem gleichen Office-Programm wieder geöffnet werden können. Dies gilt sogar noch für die aktuelle Office-Version 2408.

### Google Maps und Amazon

Google Maps nutze früher VML zum Zeichnen von Vektorgrafiken, wenn der Internet Explorer 5.5 oder höher genutzt wurde. Inzwischen ist dort die Mindestanforderung der Internet Explorer 10 und die Nutzung von VML wurde daher eingestellt. Auch Amazon setzte früher stellenweise VML ein.