Я пытаюсь проверить формат 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 довольно долгое время, я не вижу, чтобы что-то меня выскакивало. Может ли это быть какой-то странной проблемой с кодировкой, и если да, то как мне ее обойти?