I have to provide a list of components in my working image as part of a
government review. I have been trying to figure out how to do this out of
target designer, but cannot seem to find an easy way. At this point I may
have to do screenshots of the TD screen. Anybody know if there is an easy or
even a massively over-complicated way of generating a list? Much thanks in
advance. And Sean, I know you got tricks. I'm expecting to see evidence of
your awesomeness once again LOL!
An admittedly ugly, albeit simple, implementation of an XSL Transform that
can be manually invoked using msxsl.exe. It produces a simple text file with
a list of all of the components in a .slx file.
http://www.microsoft.com/downloads/...71-C94E-4373-B0E9-DB4816552E41&displaylang=en
Example command line invocation:
msxsl.exe -xe my.slx components.xsl >components.txt
Or, for example, using Sablotron on a GNU platform:
sabcmd components.xsl my.slx >components.txt
Where components.xsl contains:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<xsl
utput method="text" encoding="utf-8" indent="no" />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/XCARRIER">
<xsl:apply-templates select="./CONFIG" mode="config" />
</xsl:template>
<xsl:template match="*" mode="config">
<xsl:apply-templates select="./INSTANCES" mode="instances" />
</xsl:template>
<xsl:template match="*" mode="instances">
<xsl:apply-templates select="./INSTANCE" mode="instance" />
</xsl:template>
<xsl:template match="*" mode="instance">
<xsl:variable name="sixtytwo" select="'
'" />
<xsl:choose>
<xsl:when test="contains(./DISPLAYNAME, 'Security Update ')">
<xsl:variable name="name" select="
concat(substring-before(./DISPLAYNAME, 'Security Update '),
substring-after(./DISPLAYNAME, 'Security Update '))" />
<xsl:choose>
<xsl:when test="string-length($name) > 62">
<xsl:value-of
select="substring($name, 0, 62)" />
</xsl:when>
<xsl
therwise>
<xsl:value-of select="$name" />
<xsl:value-of
select="substring($sixtytwo, 0, 62 - string-length($name))" />
</xsl
therwise>
</xsl:choose>
</xsl:when>
<xsl
therwise>
<xsl:choose>
<xsl:when test="string-length(./DISPLAYNAME) > 62">
<xsl:value-of
select="substring(./DISPLAYNAME, 0, 62)" />
</xsl:when>
<xsl
therwise>
<xsl:value-of select="./DISPLAYNAME" />
<xsl:value-of
select="substring($sixtytwo,0,62-string-length(./DISPLAYNAME))" />
</xsl
therwise>
</xsl:choose>
</xsl
therwise>
</xsl:choose>
<xsl:text> [</xsl:text>
<xsl:value-of select="./VERSION" />
<xsl:text>]</xsl:text>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="*" />
</xsl:stylesheet>