导致W3C验证器声明RSS的WAT时区无效

时间:2013-10-30 21:37:08

标签: xml rss timezone validation w3c

我有一个用于事件信息的XML文件。尼日利亚的阿布贾有一个入口。我见过的所有内容都说时区缩写是WAT。但是,w3 feed validator表示它无效。如果我用CST替换WAT,它会验证。似乎问题严格来说就是那个时区。

W3 Feed验证器结果:

Sorry
This feed does not validate.
line 106, column 41: pubDate must be an RFC-822 date-time: Fri, 01 Nov 2013 16:00:00 WAT [help]
<pubDate>Fri, 01 Nov 2013 16:00:00 WAT</pubDate>

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:xxx="http://www.xxx.org/">
    <channel>
        <title>Upcoming Events</title>
        <link>http://www.xxx.org</link>
        <description></description>
        <atom:link href="http://www.xxx.org/rss/Events.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>xxx</title>
            <xxx:host>Hosted by xxx</xxx:host>
            <xxx:speaker>Speaking: xxx</xxx:speaker>
            <dc:creator>xxx</dc:creator>
            <pubDate>Fri, 01 Nov 2013 16:00:00 WAT</pubDate>
            <xxx:extraDate1>Sat, 02 Nov 2013 16:00:00 WAT</xxx:extraDate1>
            <xxx:extraDate2>Sun, 03 Nov 2013 07:00:00 WAT</xxx:extraDate2>
            <xxx:endDate>Sun, 03 Nov 2013 15:00:00 WAT</xxx:endDate>
            <link>http://www.xxx.org</link>
            <xxx:venue>xxx</xxx:venue>
            <xxx:address>xxx</xxx:address>
            <xxx:location>xxx</xxx:location>
            <xxx:zip></xxx:zip>
            <xxx:phone>xxx</xxx:phone>
            <xxx:notes></xxx:notes>
        </item>
    </channel>
</rss>

为简洁起见,对XML进行了编辑。我有多个美国时区,但这是第一个外国时区。

该文件适用于RSS阅读器,我有一个可以使用它的PHP页面。问题是我正在使用一些JavaScript,并且它会抛出无效的XML错误。

<pubDate>确实有问题吗?我没有看到它,如果有的话。

1 个答案:

答案 0 :(得分:1)

规范非常明确:

http://asg.web.cmu.edu/rfc/rfc822.html#sec-5.1

 zone        =  "UT"  / "GMT"                ; Universal Time
                                             ; North American : UT
             /  "EST" / "EDT"                ;  Eastern:  - 5/ - 4
             /  "CST" / "CDT"                ;  Central:  - 6/ - 5
             /  "MST" / "MDT"                ;  Mountain: - 7/ - 6
             /  "PST" / "PDT"                ;  Pacific:  - 8/ - 7
             /  1ALPHA                       ; Military: Z = UT;
                                             ;  A:-1; (J not used)
                                             ;  M:-12; N:+1; Y:+12
             / ( ("+" / "-") 4DIGIT )        ; Local differential
                                             ;  hours+min. (HHMM)

您需要使用本地差异(在本例中为+0100