<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rss091="http://purl.org/rss/1.0/modules/rss091/" version="1.0" rdf:dummy-for-xmlns="" rss:dummy-for-xmlns="" dc:dummy-for-xmlns="" rss091:dummy-for-xmlns="">
   <xsl:output method="html"/>
   <xsl:include href="http://home.freeuk.com/leigh.dodds/rss_validator/1.0/verbid.xsl"/>
   <xsl:template match="/">
      <html>
         <style>
         .xmlverb-default          { color: #333333; background-color: #ffffff;
                                     font-family: monospace }
         .xmlverb-element-name     { color: #990000 }
         .xmlverb-element-nsprefix { color: #666600 }
         .xmlverb-attr-name        { color: #660000 }
         .xmlverb-attr-content     { color: #000099; font-weight: bold }
         .xmlverb-ns-name          { color: #666600 }
         .xmlverb-ns-uri           { color: #330099 }
         .xmlverb-text             { color: #000000; font-weight: bold }
         .xmlverb-comment          { color: #006600; font-style: italic }
         .xmlverb-pi-name          { color: #006600; font-style: italic }
         .xmlverb-pi-content       { color: #006666; font-style: italic }
      
      </style>
         <h2 title="Schematron contact-information is at the end of                   this page">
            <font color="#FF0080">Schematron</font> Report
      </h2>
         <h1 title=" +//IDN www.purl.org/rss/1.0 //DTD RSS 1.0 Validator//EN">RSS 1.0 Validator</h1>
         <h3>Validation Report</h3>
         <div class="errors">
            <ul>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">Namespace Checking</h4>
               </a>
               <xsl:apply-templates mode="M5"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">Core Structural Validation</h4>
               </a>
               <xsl:apply-templates mode="M6"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">Core Content Validation</h4>
               </a>
               <xsl:apply-templates mode="M7"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">Suggested Field Lengths</h4>
               </a>
               <xsl:apply-templates mode="M8"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">RSS091 Module Structural Validation</h4>
               </a>
               <xsl:apply-templates mode="M9"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">RSS091 Module Content Validation</h4>
               </a>
               <xsl:apply-templates mode="M10"/>
               <a href="http://purl.org/rss/1.0/" target="SRDOCO" title="Link to User Documentation:">
                  <h4 class="linked">DC Module Structural Validation</h4>
               </a>
               <xsl:apply-templates mode="M11"/>
            </ul>
         </div>
         <p>
            <h3>Original RSS Source</h3>
            <xsl:apply-templates select="/" mode="verb"/>
         </p>
         <hr color="#FF0080"/>
         <p>
            <font size="2">Schematron Report by David Carlisle. Modified by Leigh Dodds. 
      <a href="http://www.ascc.net/xml/resource/schematron/schematron.html" title="Link to the home page of the Schematron,                  a tree-pattern schema language">
                  <font color="#FF0080">The Schematron</font>
               </a> by
      <a href="mailto:ricko@allette.com.au" title="Email to Rick Jelliffe (pronounced RIK JELIF)">Rick Jelliffe</a>,
      <a href="http://www.sinica.edu.tw" title="Link to home page of Academia Sinica">Academia Sinica Computing Centre</a>.
      </font>
         </p>
      </html>
   </xsl:template>
   <xsl:template match="*" priority="4000" mode="M5">
      <xsl:choose>
         <xsl:when test="namespace-uri()='http://purl.org/rss/1.0/' or         namespace-uri()='http://purl.org/rss/1.0/modules/rss091/' or         namespace-uri()='http://www.w3.org/1999/02/22-rdf-syntax-ns#' or         namespace-uri()='http://purl.org/dc/elements/1.1/'"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Element<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>is from an unknown namespace. Please ensure that the namespace declarations are correct.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M5"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M5"/>
   <xsl:template match="rdf:RDF" priority="4000" mode="M6">
      <xsl:choose>
         <xsl:when test="rss:channel"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">You must provide a channel definition for this RSS file
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">You must provide at least one item
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:item) &lt; 16"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">You should only include at most 15 items within a single RSS file
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:image) &lt; 2"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There can only be at most one image within a channel
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:textinput) &lt; 2"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There can only be at most one textinput within a channel
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:channel" priority="3999" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rdf:RDF"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel element can only occur within an RDF element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel must have a title
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel must have a link
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:description"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel must have a description
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel must have an about attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:items"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A channel must list the items it contains within a items element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:image) &lt; 2"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There can only be at most one image within a channel
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:textinput) &lt; 2"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There can only be at most one textinput within a channel
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The value of a channel rdf:about attribute must be unique
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:item" priority="3998" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rdf:RDF"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">An item element can only occur within an RDF element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Items must have a title
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Items must have a link
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:description) &lt; 2"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There can only be at most one description per item
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Items must have an about attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The value of a item rdf:about attribute must be unique
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:items" priority="3997" mode="M6">
      <xsl:choose>
         <xsl:when test="rdf:Seq"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">An items element must define a sequence of items.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:items/rdf:Seq" priority="3996" mode="M6">
      <xsl:choose>
         <xsl:when test="count(rdf:li) &lt; 16"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Only 15 items may be defined within an items sequence
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rdf:li) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There must be at least one item with an items sequence
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:channel/rss:image" priority="3995" mode="M6">
      <xsl:choose>
         <xsl:when test="@rdf:resource"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Images defined within a channel must have an rdf:resource attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:channel/rss:textinput" priority="3994" mode="M6">
      <xsl:choose>
         <xsl:when test="@rdf:resource"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Textinputs defined within a channel must have an rdf:resource attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:image" priority="3993" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rdf:RDF"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">An image element can only occur within an RDF element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Images must have titles. The title is used for the ALT text of the image.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:url"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">An image requires a url
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">An image requires a link
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Images must have an about attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The value of a image rdf:about attribute must be unique
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:choose>
         <xsl:when test="@rdf:about = rss:url"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">If possible, the value of an items rdf:about attribute should be the same as its url
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:textinput" priority="3992" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rdf:RDF"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A textinput element can only occur within a
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A textinput must have a title. It is used to label the submit button for the field
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:name"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A textinput must have a name. It is used to identify the input element in the form
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A textinput must have a link. It is used to identify the target to which the form is sent
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:description"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A textinput element must have a description
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Images should have an about attribute
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The value of a textinput rdf:about attribute must be unique
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:choose>
         <xsl:when test="@rdf:about = rss:link"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">If possible, the value of a textinputs rdf:about attribute should be the same as its link
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:title|rss:link" priority="3991" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rss:channel or parent::rss:image or parent::rss:item or parent::rss:textinput"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element can only be contained with a channel, image, item or textinput element.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">A<xsl:text  xml:space="preserve"> </xsl:text>
               <xsl:value-of select="name(.)"/>
               <xsl:text  xml:space="preserve"> </xsl:text>element cannot contain sub-elements, remove any additional markup
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:description" priority="3990" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rss:channel or parent::rss:textinput or parent::rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element can only be contained with a channel, or textinput element.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">A<xsl:text  xml:space="preserve"> </xsl:text>
               <xsl:value-of select="name(.)"/>
               <xsl:text  xml:space="preserve"> </xsl:text>element cannot contain sub-elements, remove any additional markup
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:name" priority="3989" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rss:textinput"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A name element can only be contained within a textinput element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">A<xsl:text  xml:space="preserve"> </xsl:text>
               <xsl:value-of select="name(.)"/>
               <xsl:text  xml:space="preserve"> </xsl:text>element cannot contain sub-elements, remove any additional markup
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="rss:url" priority="3988" mode="M6">
      <xsl:choose>
         <xsl:when test="parent::rss:image"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">A url element can only be contained within an image element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">A<xsl:text  xml:space="preserve"> </xsl:text>
               <xsl:value-of select="name(.)"/>
               <xsl:text  xml:space="preserve"> </xsl:text>element cannot contain sub-elements, remove any additional markup
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M6"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M6"/>
   <xsl:template match="rss:channel/rss:link|rss:image/rss:link|rss:item/rss:link" priority="4000" mode="M7">
      <xsl:choose>
         <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'ftp://')"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Channel, image and item links can only contain http, https, and ftp urls
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M7"/>
   </xsl:template>
   <xsl:template match="rss:textinput/rss:link" priority="3999" mode="M7">
      <xsl:choose>
         <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'ftp://') or (parent::textinput and starts-with(., 'mailto://'))"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Textinput links can only contain http, https, ftp and mailto urls
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M7"/>
   </xsl:template>
   <xsl:template match="rss:url" priority="3998" mode="M7">
      <xsl:choose>
         <xsl:when test="starts-with(., 'http://') or starts-with(., 'https://') or starts-with(., 'ftp://')"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Images can only be referenced through http, https or ftp urls.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M7"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M7"/>
   <xsl:template match="rss:link" priority="4000" mode="M8">
      <xsl:choose>
         <xsl:when test="string-length(.) &gt; 1 and                       string-length(.) &lt; 500"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">The suggested length for link urls is between 1-500 characters
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M8"/>
   </xsl:template>
   <xsl:template match="rss:title" priority="3999" mode="M8">
      <xsl:if test="(parent::rss:channel or parent::rss:title or parent::rss:image) and                       (string-length(.) = 0 or                        string-length(.) &gt; 40)">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for channel titles is between 1-40 characters
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:if test="parent::rss:image and                       (string-length(.) = 0 or                        string-length(.) &gt; 100)">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for channel titles is between 1-100 characters
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M8"/>
   </xsl:template>
   <xsl:template match="rss:description" priority="3998" mode="M8">
      <xsl:if test="parent::rss:channel and                       (string-length(.) = 0 or                        string-length(.) &gt; 500)">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for channel descriptions is between 1-500 characters in length
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:if test="parent::rss:item and                       (string-length(.) = 0 or                        string-length(.) &gt; 500)">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for item descriptions is between 1-500 characters in length
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:if test="parent::rss:textinput and                       (string-length(.) = 0 or                        string-length(.) &gt; 500)">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for textinput descriptions is between 1-100 characters in length
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M8"/>
   </xsl:template>
   <xsl:template match="rss:name" priority="3997" mode="M8">
      <xsl:if test="string-length(.) = 0 or                       string-length(.) &gt; 500">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for textinput names is between 1-500 characters in length
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M8"/>
   </xsl:template>
   <xsl:template match="rss:url" priority="3996" mode="M8">
      <xsl:if test="string-length(.) = 0 or                       string-length(.) &gt; 500">
         <li>
            <a href="#{generate-id(.)}" title="Link to where this pattern was found">The suggested length for image urls is between 1-500 characters in length
         ()
      </a>
         </li>
      </xsl:if>
      <xsl:apply-templates mode="M8"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M8"/>
   <xsl:template match="rss091:language|rss091:rating|rss091:managingEditor|rss091:webmaster|                rss091:pubDate|rss091:lastBuildDate|rss091:copyright" priority="4000" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss:channel"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements must only occur within a channel element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:skipHours" priority="3999" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss091:channel"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements must only occur within a channel element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:parseType='Literal'"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements must have an rdf:parseType attribute with the value 'Literal'
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:hour) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">The<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element must contain at least one hour element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:hour) &lt; 25"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There is a limit of 24 hour elements within a<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:skipDays" priority="3998" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss091:channel"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements must only occur within a channel element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:parseType='Literal'"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements must have an rdf:parseType attribute with the value 'Literal'
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:day) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">The<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element must contain at least one day element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:day) &lt; 8"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">There is a limit of 7 day elements within a<xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:hour" priority="3997" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss091:skipHours"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur in skipHours elements
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:day" priority="3996" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss091:skipDays"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur in skipHours elements
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:width|rss091:height" priority="3995" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss:image"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur within images.
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="rss091:desc091" priority="3994" mode="M9">
      <xsl:choose>
         <xsl:when test="parent::rss:item or parent::rss:image"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur within items or images
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M9"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M9"/>
   <xsl:template match="rss091:day" priority="4000" mode="M10">
      <xsl:choose>
         <xsl:when test=". = 'Monday' or . = 'Tuesday' or . = 'Wednesday' or                           . = 'Thursday' or . = 'Friday' or                           . = 'Saturday' or . = 'Sunday'"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Days should be listed as Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M10"/>
   </xsl:template>
   <xsl:template match="rss091:hour" priority="3999" mode="M10">
      <xsl:choose>
         <xsl:when test="number(.) &gt; 0 and number(.) &lt; 24"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Hour values should be in the range 0-23
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M10"/>
   </xsl:template>
   <xsl:template match="rss091:language" priority="3998" mode="M10">
      <xsl:choose>
         <xsl:when test="string-length(.) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">You must specify a valid language code within a language element
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test=". = 'af' or . = 'sq' or . = 'eu' or . = 'be' or . = 'bg' or . = 'ca' or                           . = 'zh-cn' or . = 'zh-tw' or . = 'hr' or . = 'cs' or . = 'da' or . = 'nl' or                           . = 'nl-be' or . = 'nl-nl' or . = 'en' or . = 'en-au' or . = 'en-bz' or                           . = 'en-ca' or . = 'en-ie' or . = 'en-jm' or . = 'en-nz' or . = 'en-ph' or                           . = 'en-za' or . = 'en-tt' or . = 'en-gb' or . = 'en-us' or . = 'en-zw' or                           . = 'fo' or . = 'fi' or . = 'fr' or . = 'fr-be' or . = 'fr-ca' or . = 'fr-fr' or                           . = 'fr-lu' or . = 'fr-mc' or . = 'fr-ch' or . = 'gl' or . = 'gd' or . = 'de' or                           . = 'de-at' or . = 'de-de' or . = 'de-li' or . = 'de-lu' or . = 'de-ch' or                           . = 'el' or . = 'hu' or . = 'is' or . = 'in' or . = 'ga' or . = 'it' or                           . = 'it-it' or . = 'it-ch' or . = 'ja' or . = 'ko' or . = 'mk' or . = 'no' or                           . = 'pl' or . = 'pt' or . = 'pt-br' or . = 'pt-pt' or . = 'ro' or . = 'ro-mo' or                           . = 'ro-ro' or . = 'ru' or . = 'ru-mo' or . = 'ru-ru' or . = 'sr' or . = 'sk' or                           . = 'sl' or . = 'es' or . = 'es-ar' or . = 'es-bo' or . = 'es-cl' or . = 'es-co' or                           . = 'es-cr' or . = 'es-do' or . = 'es-ec' or . = 'es-sv' or . = 'es-gt' or . = 'es-hn' or                           . = 'es-mx' or . = 'es-ni' or . = 'es-pa' or . = 'es-py' or . = 'es-pe' or . = 'es-pr' or                           . = 'es-es' or . = 'es-uy' or . = 'es-ve' or . = 'sv' or . = 'sv-fi' or . = 'sv-se' or . = 'tr' or                           . = 'uk'"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Invalid language code
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M10"/>
   </xsl:template>
   <xsl:template match="rss091:width" priority="3997" mode="M10">
      <xsl:choose>
         <xsl:when test="string-length(.) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Width elements should not be empty
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M10"/>
   </xsl:template>
   <xsl:template match="rss091:height" priority="3996" mode="M10">
      <xsl:choose>
         <xsl:when test="string-length(.) &gt; 0"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">Height elements should not be empty
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M10"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M10"/>
   <xsl:template match="dc:title|dc:creator|dc:description|                    dc:publisher|dc:contributor|dc:type|                    dc:format|dc:identifier|dc:language|                    dc:relation|dc:coverage|dc:rights" priority="4000" mode="M11">
      <xsl:choose>
         <xsl:when test="parent::rss:channel|parent::rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur with channel or items
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M11"/>
   </xsl:template>
   <xsl:template match="dc:source" priority="3999" mode="M11">
      <xsl:choose>
         <xsl:when test="parent::rss:channel|parent::rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur with channel or items
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M11"/>
   </xsl:template>
   <xsl:template match="dc:subject" priority="3998" mode="M11">
      <xsl:choose>
         <xsl:when test="parent::rss:channel|parent::rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur with channel or items
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M11"/>
   </xsl:template>
   <xsl:template match="dc:date" priority="3997" mode="M11">
      <xsl:choose>
         <xsl:when test="parent::rss:channel|parent::rss:item"/>
         <xsl:otherwise>
            <li>
               <a href="#{generate-id(.)}" title="Link to where this pattern was expected">
                  <xsl:text  xml:space="preserve"> </xsl:text>
                  <xsl:value-of select="name(.)"/>
                  <xsl:text  xml:space="preserve"> </xsl:text>elements can only occur with channel or items
         ()
      </a>
            </li>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M11"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M11"/>
   <xsl:template match="text()" priority="-1"/>
</xsl:stylesheet>