Vector Markup Language
Filename extension | .htm or .html |
---|---|
Internet media type |
application/vnd.openxmlformats-officedocument.vmlDrawing |
Developed by | Microsoft |
Type of format | Vector image format |
Extended from | XML |
Standard | Part of ECMA-376 and ISO/IEC 29500:2008 |
Website | ECMA-376, ISO/IEC 29500-4:2012 |
Vector Markup Language (VML) is an obsolete XML-based file format for two-dimensional vector graphics. It was specified in Part 4 of the Office Open XML standards ISO/IEC 29500 and ECMA-376. According to the specification, VML is a deprecated format included in Office Open XML for legacy reasons only.[1][2]
VML was used extensively in MS Office 2007 Word, Excel and PowerPoint documents.[1][3][4] In 2012, with the release of Internet Explorer 10, VML became obsolete and is no longer supported by Internet Explorer standard mode.[5] It is a legacy feature that is available in Internet Explorer 10 only when the browser is set to run in modes that emulate the functionality of previous versions of Internet Explorer 6, 7, 8, and 9.
History
VML was submitted to the
Development of the format ceased in 1998.
Syntax
Below is a VML instance as produced by Microsoft Excel 2010:
<xml xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel">
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202"
path="m,l,21600r21600,l21600,xe">
<v:stroke joinstyle="miter"/>
<v:path gradientshapeok="t" o:connecttype="rect"/>
</v:shapetype><v:shape id="_x0000_s1025" type="#_x0000_t202" style='position:absolute;
margin-left:203.25pt;margin-top:82.5pt;width:108pt;height:59.25pt;z-index:1;
visibility:hidden' fillcolor="#ffffe1" o:insetmode="auto">
<v:fill color2="#ffffe1"/>
<v:shadow on="t" color="black" obscured="t"/>
<v:path o:connecttype="none"/>
<v:textbox style='mso-direction-alt:auto'>
<div style='text-align:left'></div>
</v:textbox>
<x:ClientData ObjectType="Note">
<x:MoveWithCells/>
<x:SizeWithCells/>
<x:Anchor>
4, 15, 5, 10, 6, 31, 9, 9</x:Anchor>
<x:AutoFill>False</x:AutoFill>
<x:Row>6</x:Row>
<x:Column>3</x:Column>
</x:ClientData>
</v:shape>
</xml>
Note that, by specifying a root element named "xml", VML contravenes the


VML, when embedded within
<html xmlns:v>
<style>v\:*{behavior:url(#default#VML);position:absolute}</style>
<body>
<v:oval style="left:0;top:0;width:100;height:50" fillcolor="blue" stroked="f"/>
</body>
</html>
Implementations
VML is used by most
Support for "ink annotations" in Office Open XML files was added to LibreOffice during the 3.7 development cycle.[19]
VML is not natively supported by most web browsers. Web browsers such as Mozilla Firefox, Opera, Safari or Google Chrome support
Microsoft Outlook HTML email rendering
Though VML is deprecated as a standard in Internet Explorer, it is most commonly used in relation to the development of HTML emails rendered in Microsoft Outlook 2007, 2010, and 2013. The use of background-images in email campaigns requires the use of VML to be displayed in Outlook because Outlook does not support the CSS or HTML attributes for background-images.
Full width table cell background images
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style>
v:* { behavior: url(#default#VML); display: inline-block; }
</style>
</head>
<body>
<table width="100%" height="20">
<tr>
<td bgcolor="#dddddd" style="background-image:url('http://placekitten.com/g/500/300');background-repeat:no-repeat;background-position:center;" background="http://placekitten.com/g/500/300" width="100%" height="300">
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:300px;">
<v:fill type="frame" src="http://placekitten.com/g/500/300" color="#ffffff" />
</v:rect>
<![endif]-->
</td>
</tr>
</table>
</body>
</html>
Tiled full width table cell background images
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style>
v:* { behavior: url(#default#VML); display: inline-block; }
</style>
</head>
<body>
<table width="100%" height="20">
<tr>
<td bgcolor="#dddddd" style="background-image:url('http://placekitten.com/g/500/300');background-repeat:no-repeat;background-position:center;" background="http://placekitten.com/g/500/300" width="100%" height="300">
<!--[if gte mso 9]>
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;height:300px;">
<v:fill type="tile" src="http://placekitten.com/g/500/300" color="#ffffff" />
</v:rect>
<![endif]-->
</td>
</tr>
</table>
</body>
</html>
Specified width table cell background images
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<style>
v:* { behavior: url(#default#VML); display: inline-block; }
</style>
</head>
<body>
<table width="600" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;">
<tr>
<td style="width: 300px; height: 80px; background-image: url('http://placekitten.com/g/300/80');">
<!--[if gte mso 9]>
<v:image xmlns:v="urn:schemas-microsoft-com:vml" id="theImage" style='behavior: url(#default#VML); display: inline-block; position: absolute; width: 300px; height: 80px; top: 0; left: 0; border: 0; z-index: 1;' src="http://placekitten.com/g/300/80" />
<v:shape xmlns:v="urn:schemas-microsoft-com:vml" id="theText" style='behavior: url(#default#VML); display: inline-block; position: absolute; width: 300px; height: 80px; top: -5; left: -10; border: 0; z-index: 2;'>
<div>
<![endif]-->
<table width="300" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse;">
<tr>
<td height="80" align="center" valign="top" style="color:#ffffff;font-size:20px;"><span>Text</span></td>
</tr>
</table>
<!--[if gte mso 9]>
</div>
</v:shape>
<![endif]-->
</td>
</tr>
</table>
</body>
</html>
See also
- List of vector graphics markup languages
- Office Open XML
- SVG
References
- ^ a b "Is VML in or out now, or was that a typo?". 2007-06-22. Archived from the original on 2008-06-21. Retrieved 2010-07-29.
- ^ "Ecma TC45 - New proposed dispositions extend progress in addressing all National Body comments, seek to document and resolve legacy issues – Nearly 2/3 of comments now reviewed". 2007-12-21. Retrieved 2010-07-29.
- ^ Stephane Rodriguez (2007-09-04). "Microsoft Office XML formats ? Defective by design".
- ^ Yegor Kozlov. "POI API Documentation — Class XSSFVMLDrawing". Apache Software Foundation. Retrieved 2010-07-29.
- ^ Microsoft. "VML is no longer supported".
- W3C. Retrieved 2009-05-08.
- W3C. Retrieved 2009-05-08.
- ^ W3C (2001-09-04). "Scalable Vector Graphics (SVG) 1.0 Specification". Retrieved 2010-07-29.
- ^ Dennis Forbes (July 2003). "Vector Graphics". MSDN Magazine. Retrieved 2010-07-29.
- ^ "VML — Vector Graphics on the Internet". July 2001. Retrieved 2010-07-29.
- ISBN 0-9741773-0-X.
Support for Microsoft's submission, VML, has been realized in Internet Explorer, but development stopped in the autumn of 1998.
- MSDN. Microsoft. 1 October 2012. Retrieved 28 November 2012.
- ^ Seth McEvoy (2010-03-16), VML to SVG Migration Guide, Microsoft, retrieved 2010-07-29
- ^ "Map Overlays — Drawing Polylines". Google Maps API — version 2. Retrieved 2010-05-25.
- ^ "Google Maps Javascript API V3 Reference". Google Maps JavaScript API V3. Retrieved 2010-05-25.
- ^ "Extensible Markup Language (XML) 1.0 (Fifth Edition)". World Wide Web Consortium. 2008-11-26. Retrieved 2012-11-12.
- ^ "Vector Mona Lisa". Archived from the original on 2013-01-04. Retrieved 2011-08-29.
- ^ "Microsoft Removes Legacy Baggage from Internet Explorer 10". 9 December 2011.
- ^ "Importing OOXML Ink annotations into LibreOffice". Archived from the original on 1 October 2012.
External links
- W3C submission Initial draft 13 May 1998
- MSDN page about VML
- MSDN page about DocumentFormat.OpenXml.Vml namespace