paulb@266 | 1 | <?xml version="1.0" encoding="utf-8"?> |
paulb@266 | 2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
paulb@266 | 3 | version="1.0"> |
paulb@266 | 4 | |
paulb@266 | 5 | <!-- Find out some additional information. --> |
paulb@266 | 6 | |
paulb@266 | 7 | <xsl:variable name="cpu-socket" select="configuration/details/base-system/base-system-enum[@value = ../@value]/@cpu-socket"/> |
paulb@266 | 8 | <xsl:variable name="interface" select="configuration/details/base-system/base-system-enum[@value = ../@value]/@interface"/> |
paulb@266 | 9 | <xsl:variable name="storage" select="configuration/storage/storage-unit/@value"/> |
paulb@266 | 10 | |
paulb@266 | 11 | |
paulb@266 | 12 | |
paulb@266 | 13 | <!-- Descend into the document, including only relevant elements. --> |
paulb@266 | 14 | |
paulb@266 | 15 | <xsl:template match="cpu-enum"> |
paulb@266 | 16 | <xsl:if test="@cpu-socket = $cpu-socket or not(@cpu-socket)"> |
paulb@266 | 17 | <cpu-enum> |
paulb@266 | 18 | <xsl:apply-templates select="@*"/> |
paulb@266 | 19 | <xsl:apply-templates select="*"/> |
paulb@266 | 20 | </cpu-enum> |
paulb@266 | 21 | </xsl:if> |
paulb@266 | 22 | </xsl:template> |
paulb@266 | 23 | |
paulb@266 | 24 | <xsl:template match="hard-disk-enum"> |
paulb@266 | 25 | <xsl:if test="@interface = $interface or not(@interface)"> |
paulb@266 | 26 | <hard-disk-enum> |
paulb@266 | 27 | <xsl:apply-templates select="@*"/> |
paulb@266 | 28 | <xsl:apply-templates select="*"/> |
paulb@266 | 29 | </hard-disk-enum> |
paulb@266 | 30 | </xsl:if> |
paulb@266 | 31 | </xsl:template> |
paulb@266 | 32 | |
paulb@266 | 33 | <xsl:template match="accessory-enum"> |
paulb@266 | 34 | <xsl:if test="$storage[string() = current()/@storage] or not(@storage)"> |
paulb@266 | 35 | <accessory-enum> |
paulb@266 | 36 | <xsl:apply-templates select="@*"/> |
paulb@266 | 37 | <xsl:apply-templates select="*"/> |
paulb@266 | 38 | </accessory-enum> |
paulb@266 | 39 | </xsl:if> |
paulb@266 | 40 | </xsl:template> |
paulb@266 | 41 | |
paulb@266 | 42 | |
paulb@266 | 43 | |
paulb@266 | 44 | <!-- Replicate unknown elements. --> |
paulb@266 | 45 | |
paulb@266 | 46 | <xsl:template match="@*|node()"> |
paulb@266 | 47 | <xsl:copy> |
paulb@266 | 48 | <xsl:apply-templates select="@*|node()"/> |
paulb@266 | 49 | </xsl:copy> |
paulb@266 | 50 | </xsl:template> |
paulb@266 | 51 | |
paulb@266 | 52 | </xsl:stylesheet> |