<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--Web 2.0 Content Powered by MyST Blogsite® (http://blogsite.com)-->
<!--A service of MyST Technology Partners, Inc. (http://myst-technology.com)-->
<?xml-stylesheet href="http://myst-technology.com/public/styles/etc/object.xsl" type="text/xsl"?>

<?myst-baseUrl http://myst-technology.com/public/?>

<MySmartChannels Public="true" UserID="125119" dT="28" t0="1227216894087">
     <GetChannelItem_Result>
      <Item>
       <Resource>
        <ObjectID>11878</ObjectID>
        <ObjectClass>Resource</ObjectClass>
        <OwnerID ObjectClass="Domain" Title="[Weblog] Think Outside the Feed">11678</OwnerID>
        <CreatedByID ObjectClass="User" Title="aseidl">21</CreatedByID>
        <ModifiedByID ObjectClass="User" Title="aseidl">21</ModifiedByID>
        <CreateTime Title="2003-08-26 22:57:48 EDT">1061953068222</CreateTime>
        <ModifyTime Title="2007-11-28 10:13:47 EST">1196262827435</ModifyTime>
        <SecurityModel>Controlled</SecurityModel>
        <Name>RSS 2.0 Best Practice Tip: Entity-encoded HTML in Descriptions</Name>
        <Summary>Technical Recommendations for Avoiding Interoperability Issues Related to the Use of Non-ASCII Characters within &lt;description&gt; Elements</Summary>
        <Description>&lt;p&gt;RSS 2.0 is an incredibly useful and widely adopted standard. Unfortunately, the &lt;a href="http://blogs.law.harvard.edu/tech/rss" target="_blank"&gt;RSS 2.0 Specification&lt;/a&gt; is significantly underspecified in a number of areas. One such area is the form and meaning of the &lt;font face="Courier New"&gt;&amp;lt;description&amp;gt; &lt;/font&gt;element.&lt;/p&gt;&lt;p&gt;The &lt;font face="Courier New"&gt;&amp;lt;description&amp;gt;&lt;/font&gt; element may appear in two different contexts within an RSS document: as a channel property or an item property.&amp;nbsp; In the context of a channel property, the specification says only that the description element contains:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;Phrase or sentence describing the channel.&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;In the context of an item property, the specification says:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;A channel may contain any number of &amp;lt;item&amp;gt;s. An item may represent a &amp;quot;story&amp;quot;&amp;mdash;much like a story in a newspaper or magazine; if so its description is a synopsis of the story, and the link points to the full story. An item may also be complete in itself, if so, the description contains the text (entity-encoded HTML is allowed), and the link and title may be omitted. All elements of an item are optional, however at least one of title or description must be present.&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The specification is unclear or ambiguous in several ways.&amp;nbsp; Specific ambiguities are addressed below, along with recommended practices designed to avoid&amp;mdash;or at least minimize&amp;mdash;interoperability problems.&lt;/p&gt;&lt;h3&gt;Issue: Does a description element contain HTML markup?&lt;/h3&gt;&lt;p&gt;It is difficult to answer this question automatically (in XSL, for example).&amp;nbsp; Consider this channel description:&lt;/p&gt;&lt;pre&gt;  &amp;lt;description&amp;gt;Best Practices for Use of &amp;amp;lt;BR&amp;amp;;lt;&lt;br /&gt;  Tags in RSS 2.0 Descriptions&amp;lt;/description&amp;gt;&lt;/pre&gt;&lt;p&gt;One could reasonably interpret this, according to the specification, as being a &amp;quot;phrase or sentence describing the channel&amp;quot; about the use of &lt;font face="Courier New"&gt;&amp;lt;BR&amp;gt;&lt;/font&gt; tags.&amp;nbsp; In this interpretation, the content does not contain HTML markup.&amp;nbsp; One could just as reasonably interpret this as being a description of a channel about the use of tags, in general, where the description contains a line break in the middle of the text.&amp;nbsp; In this interpretation, the content does contain HTML markup.&lt;/p&gt;&lt;p&gt;Ideally, the specification will one day eliminate this ambiguity, perhaps with the addition of a description attribute such as &lt;font face="Courier New"&gt;content=html|text&lt;/font&gt;.&amp;nbsp; Until this issue is addressed formally, interoperability problems will continue to surface.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Recommendation: &lt;/b&gt;&amp;nbsp;Feed authors (or generators) should adhere to the following guidelines:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Descriptions&amp;nbsp; that contain HTML markup SHOULD contain at least one HTML tag. &lt;/li&gt;&lt;li&gt;Descriptions that do not contain HTML markup SHOULD NOT contain a less than character value. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;These guidelines allow&amp;nbsp; a simple test for the presence of markup (that can be easily performed in XSL): does the (parsed) description content contain a '&amp;lt;' character value?&amp;nbsp; If so, the description contains markup.&amp;nbsp; If not, it is plain text.&lt;/p&gt;&lt;h3&gt;Issue: Can a channel description contain entity-encoded HTML?&lt;/h3&gt;&lt;p&gt;The specification does not specifically indicate that it can, but many actual RSS feeds do carry HTML in the channel description.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Recommendation: &lt;/b&gt;Assume the content model for &lt;font face="Courier New"&gt;&amp;lt;description&amp;gt; &lt;/font&gt;is the same in all contexts.&amp;nbsp; In other words, assume that channel descriptions, like item descriptions, might contain entity-encoded HTML markup.&lt;/p&gt;&lt;h3&gt;Issue: How should non-ASCII characters be encoded?&lt;/h3&gt;&lt;p&gt;The specification is silent on this question.&amp;nbsp; The representation of a non-ASCII character in both HTML and RSS (i.e., XML) is a function of the character set in effect for the document.&amp;nbsp; For example, the character code 147 decimal is a curly left double quote in the Windows character set.&amp;nbsp; This character is encoded as a single byte value when using ISO-8859-1.&amp;nbsp; It is encoded as a two by sequence when using UTF-8.&lt;/p&gt;&lt;p&gt;Problems arise when you combine these to facts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;RSS documents are not limited to a particular character set; and &lt;/li&gt;&lt;li&gt;RSS descriptions contain entity-encoded HTML. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Specifically, this makes it very difficult to&amp;nbsp;use XSL reliably to&amp;nbsp;generate HTML output from an RSS description.&amp;nbsp; The reason is that since the description comment already contains HTML markup &lt;i&gt;as a string value and not as XHTML elements&lt;/i&gt;, the XSLT processor must be prevented from performing HTML escaping on the description content to prevent displaying the HTML markup as description text.&amp;nbsp; Unfortunately, this also prevents the XSLT processor from correctly translating non-ASCII characters in cases where the RSS document and the HTML output document use different character sets (e.g., an&amp;nbsp; ISO-8859-1 RSS document being used to generate a UTF-8 HTML document).&lt;/p&gt;&lt;p&gt;&lt;b&gt;Recommendation: &lt;/b&gt;Descriptions that contain HTML markup SHOULD NOT contain non-ASCII byte values.&amp;nbsp; An RSS author (or generator) can always avoid the use of non-ASCII characters by using character entities instead.&amp;nbsp; For example, in the case of the non-ASCII character 147 decimal mentioned earlier, an RSS descriptions should use the character entity &lt;font face="Courier New"&gt;&amp;amp;#147;&lt;/font&gt; instead of the literal byte value.&amp;nbsp; Character entities are always expressible using ASCII characters, thereby avoiding the encoding issues.&lt;/p&gt;&lt;p&gt;Note for RSS Authors:&amp;nbsp; Remember that an HTML entity such as &lt;font face="Courier New"&gt;&amp;amp;#147;&lt;/font&gt; or &lt;font face="Courier New"&gt;&amp;amp;mdash; &lt;/font&gt;must be properly escaped according to XML syntax when creating the RSS document.&amp;nbsp; Specifically, the ampersand character in each entity must be escaped:&amp;nbsp; &lt;font face="Courier New"&gt;&amp;amp;amp;#147;&lt;/font&gt; and &lt;font face="Courier New"&gt;&amp;amp;amp;mdash;&lt;/font&gt;,&amp;nbsp;respectively.&lt;/p&gt;</Description>
        <ResourceTypeID ObjectClass="ResourceType" Title="Item:Content">10</ResourceTypeID>
        <ContentType>application/xml</ContentType>
        <ContentDocument>
         <ItemProperties>
               <CommonProperties>
                <Hidden>false</Hidden>

                <Keywords>
                 <Keyword>best practice</Keyword>

                 <Keyword>encoding</Keyword>

                 <Keyword>html</Keyword>

                 <Keyword>recommendation</Keyword>

                 <Keyword>RSS</Keyword>

                 <Keyword>RSS specification</Keyword>

                 <Keyword>standard</Keyword>

       </Keywords>

      </CommonProperties>

               <RemoteInfo>
                <UserAgent>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)</UserAgent>

                <RemoteHost>127.0.0.1</RemoteHost>

                <RemoteAddr>127.0.0.1</RemoteAddr>

                <RemoteUser>aseidl</RemoteUser>

                <ForwardedFor>68.40.167.222</ForwardedFor>

      </RemoteInfo>

     </ItemProperties>
        </ContentDocument>
       </Resource>
       <Shares/>
       <Subjects/>
       <UserPermissions>
        <CanDelete>false</CanDelete>
        <CanDiscover>true</CanDiscover>
        <CanEdit>false</CanEdit>
        <CanEditPermissions>false</CanEditPermissions>
        <CanRead>true</CanRead>
       </UserPermissions>
       <CommentInfo>
        <CommentChannelRef AllowAnonymous="true" Inherited="true">
         <ChannelID ObjectClass="Channel" Title="[Public] Public Comments">190014</ChannelID>
         <UserPermissions>
          <CanCreateChannelItem>false</CanCreateChannelItem>
          <CanDelete>false</CanDelete>
          <CanDiscover>true</CanDiscover>
          <CanEdit>false</CanEdit>
          <CanEditPermissions>false</CanEditPermissions>
          <CanPublish>false</CanPublish>
          <CanRead>true</CanRead>
         </UserPermissions>
        </CommentChannelRef>
        <Comments>
         <Comment>
          <Item>
           <Resource>
            <ObjectID>194286</ObjectID>
            <ObjectClass>Resource</ObjectClass>
            <OwnerID ObjectClass="Domain" Title="[Public] Public Comments">190014</OwnerID>
            <CreatedByID ObjectClass="User" Title="$Anonymous">173239</CreatedByID>
            <ModifiedByID ObjectClass="User" Title="$Anonymous">173239</ModifiedByID>
            <CreateTime Title="2008-01-09 01:25:49 EST">1199859949588</CreateTime>
            <ModifyTime Title="2008-01-09 01:25:49 EST">1199859949588</ModifyTime>
            <SecurityModel>Controlled</SecurityModel>
            <Name>How to display feeds on a site from another site (all within intranet requiring password)?</Name>
            <Summary>How to display feeds on a site from another site (all within intranet requiring authentication - login &amp; password)?</Summary>
            <Description>Can someone please help me get this code?</Description>
            <ResourceTypeID ObjectClass="ResourceType" Title="Item:Content">10</ResourceTypeID>
            <ContentType>application/xml</ContentType>
            <ContentDocument>
             <ItemProperties>
                   <CommonProperties>
                    <Hidden>true</Hidden>

      </CommonProperties>

                   <ns3:Details xmlns="urn:MyST-Technology.Structured.Details" xmlns:ns3="urn:MyST-Technology.Structured.Details">
                    <ns3:Collection name="Gemini" type="urn:MyST-Technology.Structured.Collection.Contact">
                     <ns3:Attribute name="EMail" type="email" value="sagargeminimumbai@yahoo.com"/>

                     <ns3:Attribute name="Web" type="url" value="http://niche-technologies.blogspot.com"/>

       </ns3:Collection>

      </ns3:Details>

                   <RemoteInfo>
                    <UserAgent>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)</UserAgent>

                    <RemoteHost>127.0.0.1</RemoteHost>

                    <RemoteAddr>127.0.0.1</RemoteAddr>

                    <ForwardedFor>59.160.13.20</ForwardedFor>

      </RemoteInfo>

     </ItemProperties>
            </ContentDocument>
           </Resource>
           <UserPermissions>
            <CanDelete>false</CanDelete>
            <CanDiscover>true</CanDiscover>
            <CanEdit>false</CanEdit>
            <CanEditPermissions>false</CanEditPermissions>
            <CanRead>true</CanRead>
           </UserPermissions>
           <CommentInfo>
            <CommentChannelRef>
             <ChannelID/>
            </CommentChannelRef>
            <Comments/>
           </CommentInfo>
          </Item>
         </Comment>
        </Comments>
       </CommentInfo>
       <Views>
        <SourceID ObjectClass="Channel" Title="[Weblog] Think Outside the Feed">11678</SourceID>

               <View>
                <Name>blog</Name>

                <Model>blogsite/MySTHome/web</Model>

                <Style/>

                <Scheme/>

       </View>

               <View>
                <Name>edit-item</Name>

                <Model>blogsite/MySTHome/web</Model>

                <Style/>

                <Scheme/>

       </View>

               <View>
                <Name>left</Name>

                <Model>blogsite/MySTHome/left-content</Model>

                <Style/>

                <Scheme/>

       </View>

               <View>
                <Name>right</Name>

                <Model>blogsite/MySTHome/right-content</Model>

                <Style/>

                <Scheme/>

       </View>

               <View>
                <Name>wide</Name>

                <Model>blogsite/MySTHome/wide-content</Model>

                <Style/>

                <Scheme/>

       </View>

      </Views>
        <Views>
         <SourceID ObjectClass="Channel" Shared="true" Title="[Public] What's New">192423</SourceID>

                <View>
                 <Name>blog</Name>

                 <Model>blogsite/MySTHome/whatsnew</Model>

                 <Style/>

                 <Scheme/>

       </View>

                <View>
                 <Name>edit-item</Name>

                 <Model>blogsite/MySTHome/web</Model>

                 <Style/>

                 <Scheme/>

       </View>

                <View>
                 <Name>left</Name>

                 <Model>blogsite/MySTHome/left-content</Model>

                 <Style/>

                 <Scheme/>

       </View>

                <View>
                 <Name>right</Name>

                 <Model>blogsite/MySTHome/right-content</Model>

                 <Style/>

                 <Scheme/>

       </View>

                <View>
                 <Name>wide</Name>

                 <Model>blogsite/MySTHome/wide-content</Model>

                 <Style/>

                 <Scheme/>

       </View>

      </Views>
        </Item>
       </GetChannelItem_Result>
      </MySmartChannels>
