<?xml version='1.1' ?> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:import href="include/StorageFunctions.xsl"/> <xsl:output method="xml" omit-xml-declaration="yes" /> <xsl:template match="/"> <xsl:element name="StorageObjects"> <xsl:apply-templates select="FileStart"/> <xsl:apply-templates select="FileLocalName"/> <xsl:apply-templates select="FileWrite"/> <xsl:apply-templates select="FileStop"/> <xsl:apply-templates select="FileLock"/> <xsl:apply-templates select="FileTrim"/> <xsl:apply-templates select="FileMap"/> </xsl:element> </xsl:template> <xsl:template match="FileStart"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileStart</xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">Filename</xsl:attribute> <xsl:variable name="realpath" select="@realPath"/> <xsl:choose> <xsl:when test="string($realpath)"> <xsl:value-of select="$realpath"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@remoteName"/> </xsl:otherwise> </xsl:choose> </xsl:element> <xsl:element name="StringValue"> <xsl:attribute name="name">OriginalName</xsl:attribute> <xsl:value-of select="@remoteName"/> </xsl:element> <xsl:element name="IntValue"> <xsl:attribute name="name">Size</xsl:attribute> <xsl:value-of select="@filesize"/> </xsl:element> <xsl:apply-templates select="FileTimes"/> </xsl:element> </xsl:template> <xsl:template match="FileLocalName"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileLocalName</xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">LocalName</xsl:attribute> <xsl:value-of select="."/> </xsl:element> <xsl:element name="StringValue"> <xsl:attribute name="name">Subdir</xsl:attribute> <xsl:value-of select="@subdir"/> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="FileWrite"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileWrite</xsl:attribute> <xsl:element name="IntValue"> <xsl:attribute name="name">bytes</xsl:attribute> <xsl:value-of select="@bytes"/> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="FileStop"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileStop</xsl:attribute> <xsl:element name="IntValue"> <xsl:attribute name="name">written</xsl:attribute> <xsl:value-of select="@bytesWritten"/> </xsl:element> <xsl:element name="BoolValue"> <xsl:attribute name="name">Successful</xsl:attribute> <xsl:choose> <xsl:when test="starts-with(@status, 'SUCCESS')"> <xsl:text>true</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>false</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="FileLock"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileLock</xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">Filename</xsl:attribute> <xsl:value-of select="@filename"/> </xsl:element> <xsl:element name="StringValue"> <xsl:attribute name="name">Duration</xsl:attribute> <xsl:value-of select="LockDuration"/> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="FileTrim"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileTrim</xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">Filename</xsl:attribute> <xsl:value-of select="@filename"/> </xsl:element> <xsl:element name="IntValue"> <xsl:attribute name="name">oldFileSize</xsl:attribute> <xsl:value-of select="@oldFileSize"/> </xsl:element> <xsl:element name="IntValue"> <xsl:attribute name="name">newFileSize</xsl:attribute> <xsl:value-of select="@newFileSize"/> </xsl:element> </xsl:element> </xsl:template> <xsl:template match="FileMap"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileMap</xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">Filename</xsl:attribute> <xsl:value-of select="@filename"/> </xsl:element> <xsl:element name="IntValue"> <xsl:attribute name="name">pid</xsl:attribute> <xsl:value-of select="@pid"/> </xsl:element> <xsl:element name="BoolValue"> <xsl:attribute name="name">isMapped</xsl:attribute> <xsl:choose> <xsl:when test="@pid > 0"> <xsl:text>true</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>false</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:element> </xsl:template> <!-- This template takes advantage of the below functionality --> <xsl:template match="FileTimes"> <xsl:element name="ObjectValue"> <xsl:attribute name="name">FileTimes</xsl:attribute> <xsl:call-template name="FileTimeFunction"> <xsl:with-param name="time" select="Modified"/> <xsl:with-param name="var" select="'Modified'"/> </xsl:call-template> <xsl:call-template name="FileTimeFunction"> <xsl:with-param name="time" select="Accessed"/> <xsl:with-param name="var" select="'Accessed'"/> </xsl:call-template> <xsl:call-template name="FileTimeFunction"> <xsl:with-param name="time" select="Created"/> <xsl:with-param name="var" select="'Created'"/> </xsl:call-template> </xsl:element> </xsl:template> <xsl:template name="FileTimeFunction"> <xsl:param name="time"/> <xsl:param name="var" /> <xsl:element name="ObjectValue"> <xsl:attribute name="name"> <xsl:value-of select="$var"/> </xsl:attribute> <xsl:element name="StringValue"> <xsl:attribute name="name">time</xsl:attribute> <xsl:value-of select="$time"/> </xsl:element> <xsl:element name="StringValue"> <xsl:attribute name="name">locale</xsl:attribute> <xsl:value-of select="$time/@locale"/> </xsl:element> </xsl:element> </xsl:template> </xsl:transform>