Como você adiciona atom: link com rel="self" a um documento rss?

Estou a tentar criar um sinal RSS simples e morto. Valido o meu rss usando Este formulário de serviço w3.org. aqui está o que meu feed parece:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>example.com RSS</title>
        <link>https://www.example.com/</link>
        <description>A cool website</description>
        <item>
            <title>Cool Article</title>
            <link>https://www.example.com/cool-article</link>
            <guid>https://www.example.com/cool-article</guid>
            <pubDate>Sun, 10 Dec 2017 05:00:00 GMT</pubDate>
            <description>My cool article description</description>
        </item>
    </channel>
</rss>

Mas eu entendo este erro do validador de alimentação:

Este alimento para animais é válido, mas a interoperabilidade com a maior gama de leitores de alimentos para animais poderia ser melhorada através da aplicação das seguintes recomendações.

Linha 14, coluna 4: átomo em falta: ligação com rel= "auto" [ajuda]

Então eu clicei em [Ajuda] e ouve isto:

Se ainda não o fez, declare o espaço de nomes do átomo no topo da sua alimentação, assim:

depois insere um átomo:ligação à sua fonte na secção do canal. Abaixo está um exemplo para começar. Certifique-se de substituir o valor do atributo href pelo URL do seu feed.

<átomo: ligação href="http://dallas.example.com/rss.xml" rel= "self" type= "application/rss+xml" / >

Primeiro, estava a tentar ... validate rss, not Atom but they seem to be trying to steering me in the direction of Atom. Está bem, vou tentar na mesma.

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>example.com RSS</title>
        <link>https://www.example.com/</link>
        <description>A cool website</description>
        <atom:link href="http://www.example.com/rss.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>Cool Article</title>
            <link>https://www.example.com/cool-article</link>
            <guid>https://www.example.com/cool-article</guid>
            <pubDate>Sun, 10 Dec 2017 05:00:00 GMT</pubDate>
            <description>My cool article description</description>
        </item>
    </channel>
</rss>

valide isso e dá-lhe este erro:

a auto-referência não corresponde à localização do documento[ajuda]

Então eu clicei em [Ajuda] e consegui isto:

Verifique o documento referenciado pelo atributo href. Se não for o alimento pretendido, corrija-o.

Isto pode não ser um problema. Na actual tempo, o feedvalidator não sonde para avaliar a equivalência dos documentos.

E é aí que estou preso. Eles não dizem como fazê-lo fazer isso. Consigo fazê-lo lendo a especificação do átomo e reimplementando a minha alimentação como átomo? Porque não vou fazer isso.

 1
rss
Author: user875234, 2018-01-07

3 answers

Tal como a mensagem diz que a alimentação é válida. Então você pode continuar sem fazer qualquer alteração na alimentação. Nenhuma das minhas imagens tem essa ligação e funcionam perfeitamente bem. A mensagem é muito antiga e não precisa.

 1
Author: Dave Winer, 2018-01-07 15:15:58

O validador está muitas vezes errado ou confuso. Eu estava gerando um documento Atom recentemente e tentou verificar com essa ferramenta, ele começou a me aconselhar sobre a falta de tags do RSS... Livre-se da marca atom:link que foi sugerida pela ferramenta, é para documento Atom e não RSS. Eu apenas verificaria com a especificação RSS em vez de usar a ferramenta.

Self reference doesn't match document location [help]
Deve estar a verificar a especificação do átomo outra vez. Mesmo que fosse um documento Atom válido, conteúdo xml na ferramenta, você vai receber essa mensagem. Verifica se a ligação "auto" no átomo é a mesma do local de onde o documento do átomo está a ser servido.
 1
Author: Robert C. Holland, 2018-01-11 01:09:39

Não tens de transformar a tua alimentação do RSS para o átomo para suportar atom:link.

Para corrigir o problema, no elemento atom:link, Mude o valor do atributo href para o URL da sua fonte RSS. Por isso, se a sua alimentação RSS for em http://dallas.example.com/rss.xml , o elemento atom:link deve ser este:

<atom:link href="http://dallas.example.com/rss.xml" rel="self" 
type="application/rss+xml" />

Incluir um elemento atom:link na sua alimentação RSS torna-o mais portátil e mais fácil de guardar. Para mais informações, visite o perfil de melhores práticas do RSS .

 -1
Author: rcade, 2018-01-07 15:59:07