Служба проверки w3c не работает или я схожу с ума? - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь проверить формат RSS-канала, который я создаю. Сгенерированный XML выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
    <atom:link href="https://foo.bar.net/rss.php" rel="self" type="application/rss+xml" />
    <title>foo.bar Latest News</title>
    <link>https://foo.bar.net/</link>
    <description>Latest news and information of interest at foo.bar</description>
    <pubDate>Thu, 08 Dec 2011 00:08:09 -0500</pubDate>
    <item>
        <title>some title</title>
        <link>https://foo.bar.net/</link>
        <description>some description.</description>
        <pubDate>Wed, 07 Dec 2011 23:04:42 -0500</pubDate>
        <guid>https://foo.bar.net/rss.php?itemId=1</guid>
    </item>
</channel>
</rss>

Если я возьму текст с этой страницы и скопирую его отсюда, в валидатор w3c по адресу http://validator.w3.org/feed/check.cgi,, это подтвердится. Если я возьму тот же текст, скопированный из браузера источника, я получаю ошибку:

Sorry

This feed does not validate.
line 2, column 0: XML parsing error: <unknown>:2:0: XML or text declaration not at start of entity [help]

<?xml version="1.0" encoding="UTF-8"?>

Если я снова нажму кнопку «Подтвердить» (без вырезки или вставки, только то, что уже было в текстовом окне), я получу:

Congratulations!

This is a valid RSS feed.

Скажи что? Мой читатель RSS также не распознает этот канал как действительный, и, похоже, это абсолютно отличает его. Что, черт возьми, здесь происходит?

... и да, я нажал на ссылку "помощь". В нем говорится, что мой канал не правильно сформирован в соответствии со спецификацией XML. Проработав в XML довольно долгое время, я не вижу, чтобы что-то меня выскакивало. Может ли это быть какой-то странной проблемой с кодировкой, и если да, то как мне ее обойти?

1 Ответ

1 голос
/ 08 декабря 2011

Мне кажется, что, когда вы вставили фрагмент XML в валидатор, вы оставили некоторое пространство перед объявлением XML - он жалуется, что объявление XML находится в строке 2.

(Возможно,более хороший дизайн был бы для службы валидации, чтобы убрать все начальные пробелы перед началом анализа ...)

...