<?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="text"/>
   <xsl:template match="/">RSS 1.0 Validator
<xsl:apply-templates mode="M5"/>
      <xsl:apply-templates mode="M6"/>
      <xsl:apply-templates mode="M7"/>
      <xsl:apply-templates mode="M8"/>
      <xsl:apply-templates mode="M9"/>
      <xsl:apply-templates mode="M10"/>
      <xsl:apply-templates mode="M11"/>
   </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>In pattern Namespace Checking:
   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.
</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>In pattern Core Structural Validation:
   You must provide a channel definition for this RSS file
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:item"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   You must provide at least one item
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:item) &lt; 16"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   You should only include at most 15 items within a single RSS file
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:image) &lt; 2"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There can only be at most one image within a channel
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:textinput) &lt; 2"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There can only be at most one textinput within a channel
</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>In pattern Core Structural Validation:
   A channel element can only occur within an RDF element
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A channel must have a title
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A channel must have a link
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:description"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A channel must have a description
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A channel must have an about attribute
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:items"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A channel must list the items it contains within a items element
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:image) &lt; 2"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There can only be at most one image within a channel
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:textinput) &lt; 2"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There can only be at most one textinput within a channel
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">In pattern Core Structural Validation:
   The value of a channel rdf:about attribute must be unique
</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>In pattern Core Structural Validation:
   An item element can only occur within an RDF element
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Items must have a title
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Items must have a link
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss:description) &lt; 2"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There can only be at most one description per item
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Items must have an about attribute
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">In pattern Core Structural Validation:
   The value of a item rdf:about attribute must be unique
</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>In pattern Core Structural Validation:
   An items element must define a sequence of items.
</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>In pattern Core Structural Validation:
   Only 15 items may be defined within an items sequence
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rdf:li) &gt; 0"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   There must be at least one item with an items sequence
</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>In pattern Core Structural Validation:
   Images defined within a channel must have an rdf:resource attribute
</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>In pattern Core Structural Validation:
   Textinputs defined within a channel must have an rdf:resource attribute
</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>In pattern Core Structural Validation:
   An image element can only occur within an RDF element
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Images must have titles. The title is used for the ALT text of the image.
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:url"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   An image requires a url
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   An image requires a link
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Images must have an about attribute
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">In pattern Core Structural Validation:
   The value of a image rdf:about attribute must be unique
</xsl:if>
      <xsl:choose>
         <xsl:when test="@rdf:about = rss:url"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   If possible, the value of an items rdf:about attribute should be the same as its url
</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>In pattern Core Structural Validation:
   A textinput element can only occur within a
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:title"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A textinput must have a title. It is used to label the submit button for the field
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:name"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A textinput must have a name. It is used to identify the input element in the form
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:link"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A textinput must have a link. It is used to identify the target to which the form is sent
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="rss:description"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   A textinput element must have a description
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:about"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   Images should have an about attribute
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="//@rdf:about[. = current()/@rdf:about and generate-id(.)!=generate-id(current()/@rdf:about)]">In pattern Core Structural Validation:
   The value of a textinput rdf:about attribute must be unique
</xsl:if>
      <xsl:choose>
         <xsl:when test="@rdf:about = rss:link"/>
         <xsl:otherwise>In pattern Core Structural Validation:
   If possible, the value of a textinputs rdf:about attribute should be the same as its link
</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>In pattern Core Structural Validation:
   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.
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">In pattern Core Structural Validation:
   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
</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>In pattern Core Structural Validation:
   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.
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">In pattern Core Structural Validation:
   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
</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>In pattern Core Structural Validation:
   A name element can only be contained within a textinput element
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">In pattern Core Structural Validation:
   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
</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>In pattern Core Structural Validation:
   A url element can only be contained within an image element
</xsl:otherwise>
      </xsl:choose>
      <xsl:if test="child::*">In pattern Core Structural Validation:
   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
</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>In pattern Core Content Validation:
   Channel, image and item links can only contain http, https, and ftp urls
</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>In pattern Core Content Validation:
   Textinput links can only contain http, https, ftp and mailto urls
</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>In pattern Core Content Validation:
   Images can only be referenced through http, https or ftp urls.
</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>In pattern Suggested Field Lengths:
   The suggested length for link urls is between 1-500 characters
</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)">In pattern Suggested Field Lengths:
   The suggested length for channel titles is between 1-40 characters
</xsl:if>
      <xsl:if test="parent::rss:image and                       (string-length(.) = 0 or                        string-length(.) &gt; 100)">In pattern Suggested Field Lengths:
   The suggested length for channel titles is between 1-100 characters
</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)">In pattern Suggested Field Lengths:
   The suggested length for channel descriptions is between 1-500 characters in length
</xsl:if>
      <xsl:if test="parent::rss:item and                       (string-length(.) = 0 or                        string-length(.) &gt; 500)">In pattern Suggested Field Lengths:
   The suggested length for item descriptions is between 1-500 characters in length
</xsl:if>
      <xsl:if test="parent::rss:textinput and                       (string-length(.) = 0 or                        string-length(.) &gt; 500)">In pattern Suggested Field Lengths:
   The suggested length for textinput descriptions is between 1-100 characters in length
</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">In pattern Suggested Field Lengths:
   The suggested length for textinput names is between 1-500 characters in length
</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">In pattern Suggested Field Lengths:
   The suggested length for image urls is between 1-500 characters in length
</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>In pattern RSS091 Module Structural Validation:
   <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
</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>In pattern RSS091 Module Structural Validation:
   <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
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:parseType='Literal'"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   <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'
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:hour) &gt; 0"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   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
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:hour) &lt; 25"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   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
</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>In pattern RSS091 Module Structural Validation:
   <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
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="@rdf:parseType='Literal'"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   <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'
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:day) &gt; 0"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   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
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="count(rss091:day) &lt; 8"/>
         <xsl:otherwise>In pattern RSS091 Module Structural Validation:
   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
</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>In pattern RSS091 Module Structural Validation:
   <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
</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>In pattern RSS091 Module Structural Validation:
   <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
</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>In pattern RSS091 Module Structural Validation:
   <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.
</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>In pattern RSS091 Module Structural Validation:
   <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
</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>In pattern RSS091 Module Content Validation:
   Days should be listed as Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday
</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>In pattern RSS091 Module Content Validation:
   Hour values should be in the range 0-23
</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>In pattern RSS091 Module Content Validation:
   You must specify a valid language code within a language element
</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>In pattern RSS091 Module Content Validation:
   Invalid language code
</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>In pattern RSS091 Module Content Validation:
   Width elements should not be empty
</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>In pattern RSS091 Module Content Validation:
   Height elements should not be empty
</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>In pattern DC Module Structural Validation:
   <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
</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>In pattern DC Module Structural Validation:
   <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
</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>In pattern DC Module Structural Validation:
   <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
</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>In pattern DC Module Structural Validation:
   <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
</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>