Wat is het VM-bestandsformaat?
.vm-bestanden bevatten Apache Velocity-sjablonen - tekstsjablonen aan de serverzijde geschreven in de Velocity Template Language (VTL). Velocity is een op Java gebaseerde sjabloon-engine die wordt onderhouden door de Apache Software Foundation; .vm is de standaard extensie voor sjabloonbestanden.
Een Velocity-sjabloon mengt statische uitvoerinhoud (HTML, XML, SQL of platte tekst) met VTL-richtlijnen en variabelereferenties die tijdens runtime worden opgelost tegen een Java-contextobject. Belangrijke VTL-constructies zijn onder meer:
$variableof${variable}- voert een waarde uit de context uit,#set( $x = 'waarde' )- wijst een variabele toe,#if/#else/#end- voorwaardelijke uitvoerblokken,#foreach( $item in $list )- iteratie,#macro- definieert herbruikbare sjabloonfragmenten,#parse/#include- sluit andere.vm-bestanden in.
Velocity wordt gebruikt in verouderde Java-webapplicaties, codegeneratoren, e-mailsjabloonsystemen en Apache Maven-archetypen. De engine vereist Java 8 of hoger (Velocity 2.x); de laatste 1.x-release was Velocity 1.7 in 2010.
Let op: de extensie .vm wordt ook door VMware gebruikt voor geheugen- en configuratiebestanden van virtuele machines - een volledig ongerelateerd en vaker voorkomend gebruik. Wanneer een .vm-bestand wordt gevonden op een systeem waarop VMware is geïnstalleerd, behoort het vrijwel zeker tot VMware, niet tot Velocity.
Moderne alternatieven voor Velocity zijn onder meer FreeMarker (Apache), Thymeleaf en Mustache.
Beveiliging & veiligheid
RISICO: LOWPlat tekstbestand; niet zelfstandig uitvoerbaar. In een Java-applicatie kunnen Velocity-sjablonen willekeurige Java-methoden aanroepen die beschikbaar zijn in de context, dus kwaadaardige .vm-bestanden in een serverapplicatie kunnen server-side injectie veroorzaken als niet-vertrouwde invoer de engine bereikt. Geen risico voor eindgebruikers die het in een tekstverwerker openen.
Formaatdetails
in een notendop- VMware Virtual Machine Configuration - VMware Workstation en VMware Player gebruiken .vm als een van de verschillende bestandsextensies voor componenten van virtuele machines; ongerelateerd aan sjablonen.
- ScummVM Save Game - De ScummVM-emulator voor avonturenspellen gebruikt .vm voor save-state bestanden in sommige game-engines.
Programma's die VM-bestanden openen
Technische details
diepe specificaties| Ontwikkelaar | Apache Software Foundation |
| Runtime-vereiste | Java 8 of hoger (Velocity Engine 2.x); laatste 1.x-release was Velocity 1.7 in 2010 |
| Bestandstype | Platte tekst Velocity Template Language (VTL) sjabloon aan de serverzijde |
| Codering | Standaard UTF-8; configureerbaar via `input.encoding` in `velocity.properties` |
| Typische bestandsgrootte | 1 KB - 200 KB |
| Variabele syntaxis | `$variable` of `${variable}` - waarden opgelost uit een Java Velocity-contextobject tijdens runtime |
| Richtlijn-prefix | `#` - ingebouwde richtlijnen: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Sjabloon-insluiting | `#parse` sluit een ander `.vm`-bestand in en evalueert het; `#include` voegt het in als ruwe, onverwerkte tekst |
| Veelvoorkomende toepassingen | Java webapplicatie-views, codegeneratoren, e-mailsjablonen, Apache Maven-projectarchetypen |
| Extensieconflict | `.vm` wordt ook gebruikt door VMware voor geheugen- en configuratiebestanden van virtuele machines - ongerelateerd en vaker voorkomend |
| Opmerkelijke alternatieven | Apache FreeMarker (.ftl), Thymeleaf (.html sjablonen), Mustache (.mustache) |
| Uitvoerformaten | Elk tekstgebaseerd formaat: HTML, XML, SQL, platte tekst of broncode - Velocity is onafhankelijk van het uitvoerformaat |
| Uitgebracht | 1999 (Velocity originally from Apache Jakarta project) |
| Laatste versie | Apache Velocity Engine 2.4 (2023) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | velocity.apache.org |
VM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over VM-bestanden.