/ .. / / -> download
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

  <xsl:output method="text"/>
 
  <xsl:template match="appCheck">
    <xsl:text>Type of check: </xsl:text>
    <xsl:value-of select="@type"/>
    <xsl:text>
</xsl:text>
    <xsl:text>Strict: </xsl:text>
    <xsl:value-of select="@strict"/>
    <xsl:text>
</xsl:text>
    <xsl:text>Check nested applicability: </xsl:text>
    <xsl:value-of select="@checkNestedApplic"/>
    <xsl:text>
</xsl:text>
    <xsl:text>Check redundant applicability: </xsl:text>
    <xsl:value-of select="@checkRedundantApplic"/>
    <xsl:text>
</xsl:text>
    <xsl:text>Check duplicate applicability: </xsl:text>
    <xsl:value-of select="@checkDuplicateApplic"/>
    <xsl:text>
</xsl:text>
    <xsl:variable name="total" select="count(object)"/>
    <xsl:text>Total objects checked: </xsl:text>
    <xsl:value-of select="$total"/>
    <xsl:text>
</xsl:text>
    <xsl:if test="$total > 0">
      <xsl:variable name="general-errors" select="count(object/asserts[@valid = 'no'])"/>
      <xsl:variable name="strict-errors" select="count(object/undefined)"/>
      <xsl:variable name="nested-errors" select="count(object/nestedApplicError)"/>
      <xsl:variable name="redundant-errors" select="count(object/redundantApplicError)"/>
      <xsl:variable name="duplicate-errors" select="count(object/duplicateApplicError)"/>
      <xsl:variable name="fail" select="count(object[@valid = 'no'])"/>
      <xsl:variable name="pass" select="count(object[@valid = 'yes'])"/>
      <xsl:text>General applicability errors: </xsl:text>
      <xsl:value-of select="$general-errors"/>
      <xsl:text>
</xsl:text>
      <xsl:if test="@strict = 'yes'">
        <xsl:text>Strictness errors: </xsl:text>
        <xsl:value-of select="$strict-errors"/>
        <xsl:text>
</xsl:text>
      </xsl:if>
      <xsl:if test="@checkNestedApplic = 'yes'">
        <xsl:text>Nested applicability errors: </xsl:text>
        <xsl:value-of select="$nested-errors"/>
        <xsl:text>
</xsl:text>
      </xsl:if>
      <xsl:if test="@checkRedundantApplic = 'yes'">
        <xsl:text>Redundant applicability errors: </xsl:text>
        <xsl:value-of select="$redundant-errors"/>
        <xsl:text>
</xsl:text>
      </xsl:if>
      <xsl:if test="@checkDuplicateApplic = 'yes'">
        <xsl:text>Duplicate applicability errors: </xsl:text>
        <xsl:value-of select="$duplicate-errors"/>
        <xsl:text>
</xsl:text>
      </xsl:if>
      <xsl:text>Total applicability errors: </xsl:text>
      <xsl:value-of select="$general-errors + $strict-errors + $nested-errors + $redundant-errors + $duplicate-errors"/>
      <xsl:text>
</xsl:text>
      <xsl:text>Total objects that pass the check: </xsl:text>
      <xsl:value-of select="$pass"/>
      <xsl:text>
</xsl:text>
      <xsl:text>Total objects that fail the check: </xsl:text>
      <xsl:value-of select="$fail"/>
      <xsl:text>
</xsl:text>
      <xsl:text>Percentage passed: </xsl:text>
      <xsl:value-of select="floor($pass div $total * 100)"/>
      <xsl:text>%
</xsl:text>
      <xsl:text>Percentage failed: </xsl:text>
      <xsl:value-of select="ceiling($fail div $total * 100)"/>
      <xsl:text>%
</xsl:text>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>


/ gopher://khzae.net/0/s1000d/s1kd-tools/src/tools/s1kd-appcheck/stats.xsl
Styles: Light Dark Classic