Bonjour à tous...
J'ai eu pour mission de réaliser un XSD d'une feed rss utilisant les tags itunes.
Ne connaissant pas du tout le XSD je me suis lancé en cherchant sur le net les principales infos...
J'ai donc une feed RSS qui ressemble par exemple à ça :
J'ai donc crée le XSD suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?xml version="1.0" encoding="UTF-8"?> <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> <channel> <itunes:explicit>no</itunes:explicit> <title>The title</title> <link>http://monlink</link> <description>descr</description> <lastBuildDate>Thu, 24 Jan 2008 14:45:29 CET</lastBuildDate> <category>Cat1</category> <generator>Pub</generator> <docs>doc.pdf</docs> <item> <guid>s18</guid> <title>toto-ex1</title> <description></description> <category>Music</category> <enclosure url="http://toto.wav" length="" type="audio/x-m4a"></enclosure> <pubDate>Tue, 22 Jan 2008 17:00:35 CET</pubDate> <itunes:author>toto</itunes:author> <itunes:subtitle>ex1</itunes:subtitle> <itunes:keywords>007</itunes:keywords> </item> <item> <guid>s15</guid> <title>tata - ex2</title> <description></description> <category>Music</category> <enclosure url="http://tata.wav" length="" type="audio/x-m4a"></enclosure> <pubDate>Tue, 22 Jan 2008 16:59:55 CET</pubDate> <itunes:author>tata</itunes:author> <itunes:subtitle>ex2</itunes:subtitle> <itunes:keywords></itunes:keywords> </item> </channel>
Et quand je tente une validation d'un xml avec ce XSD via la commande linux ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?xml version="1.0" encoding="UTF-8"?> <xs:schema id="rssxsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="rss" type="rsstype"/> <xs:complexType name="rsstype"> <xs:sequence> <xs:element name="channel" type="channeltype" minOccurs="1" maxOccurs="1"/> </xs:sequence> <xs:attribute name="version" type="xs:string"/> </xs:complexType> <xs:complexType name="channeltype"> <xs:sequence> <xs:element name="explicit" type="xs:string"/> <xs:element name="title" type="xs:string"/> <xs:element name="link" type="xs:string"/> <xs:element name="description" type="xs:string"/> <xs:element name="lastBuildDate" type="xs:string"/> <xs:element name="category" type="xs:string"/> <xs:element name="generator" type="xs:string"/> <xs:element name="docs" type="xs:string"/> <xs:element name="item" type="itemtype" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="itemtype"> <xs:sequence> <xs:element name="guid" type="xs:string"/> <xs:element name="title" type="xs:string"/> <xs:element name="description" type="xs:string"/> <xs:element name="category" type="xs:string"/> <xs:element name="link" type="xs:string" minOccurs="0"/> <xs:element name="enclosure" type="enclosuretype" minOccurs="0"/> <xs:element name="pubDate" type="xs:string"/> <xs:element name="author" type="xs:string"/> <xs:element name="subtitle" type="xs:string"/> <xs:element name="keywords" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="enclosuretype"> <xs:attribute name="url" type="xs:string"/> <xs:attribute name="length" type="xs:string"/> <xs:attribute name="type" type="xs:string"/> </xs:complexType> </xs:schema>
J'obtiens une erreur du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 xmllint --noout "rss.xml" --schema "rss.xsd"
Donc ce que je comprends, c'est que le "validateur" ne reconnait pas les tags d'itunes...mais je ne sais pas du tout comment indiqué dans le XSD que certains tags sont spécifiques itunes!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 rss.xml:4: element explicit: Schemas validity error : Element '{http://www.itunes.com/dtds/podcast-1.0.dtd}explicit': This element is not expected. Expected is ( explicit ). rss.xml fails to validate
j'ai essayé un itunes:explicit dans le XSD...mais ça ne marche pas mieux!
Bref, je suis un peu perdu!!
Avez vous une petite idée de la manière dont je pourrais débloquer cette situation??
Merci d'avance.
Partager