]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/FeedSub/extlib/XML/Feed/schemas/rss10.rnc
Initial functional version of feed subscription plugin, currently supporting only...
[quix0rs-gnu-social.git] / plugins / FeedSub / extlib / XML / Feed / schemas / rss10.rnc
1 <?xml version='1.0' encoding='UTF-8'?>
2 <!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html -->
3 <!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html -->
4 <!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html -->
5
6 <grammar xmlns='http://relaxng.org/ns/structure/1.0'
7         xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
8         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
9         ns='http://purl.org/rss/1.0/'
10         datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'>
11
12     <start>
13         <element name='RDF' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
14             <ref name='RDFContent'/>
15         </element>
16     </start>   
17
18     <define name='RDFContent' ns='http://purl.org/rss/1.0/'>
19         <interleave>
20             <element name='channel'>
21                 <ref name='channelContent'/>
22             </element>
23             <optional>
24                 <element name='image'><ref name='imageContent'/></element>
25             </optional>
26             <oneOrMore>
27                 <element name='item'><ref name='itemContent'/></element>
28             </oneOrMore>
29         </interleave>
30     </define>
31
32      <define name='channelContent' combine="interleave">
33         <interleave>
34             <element name='title'><data type='string'/></element>
35             <element name='link'><data type='anyURI'/></element>
36             <element name='description'><data type='string'/></element>
37             <element name='image'>
38                 <attribute name='resource' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
39                     <data type='anyURI'/>
40                 </attribute>
41             </element>
42             <element name='items'>
43                     <ref name='itemsContent'/>
44             </element>
45             <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
46                 <data type='anyURI'/>
47             </attribute>
48         </interleave>
49     </define>
50     
51         <define name="itemsContent">
52             <element name="Seq" ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
53                 <oneOrMore>
54                     <element name="li" ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
55                         <choice>
56                             <attribute name='resource'>    <!-- Why doesn't RDF/RSS1.0 ns qualify this attribute? -->
57                                 <data type='anyURI'/>
58                             </attribute>
59                             <attribute name='resource' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
60                                 <data type='anyURI'/>
61                             </attribute>
62                         </choice>
63                     </element>
64                 </oneOrMore>
65             </element>
66         </define>
67         
68     <define name='imageContent'>
69         <interleave>
70             <element name='title'><data type='string'/></element>
71             <element name='link'><data type='anyURI'/></element>
72             <element name='url'><data type='anyURI'/></element>
73             <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
74                 <data type='anyURI'/>
75             </attribute>
76         </interleave>
77     </define>
78
79     <define name='itemContent'>
80         <interleave>
81             <element name='title'><data type='string'/></element>
82             <element name='link'><data type='anyURI'/></element>
83             <optional><element name='description'><data type='string'/></element></optional>
84             <ref name="anyThing"/>
85             <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
86                 <data type='anyURI'/>
87             </attribute>
88         </interleave>
89     </define>            
90             
91
92         <define name='anyThing'>
93             <zeroOrMore>
94                 <choice>
95                     <text/>
96                     <element>
97                         <anyName>
98                             <except>
99                                 <nsName/>
100                             </except>
101                         </anyName>
102                         <ref name='anyThing'/>
103                         <zeroOrMore>
104                             <attribute>
105                               <anyName/>
106                             </attribute>
107                         </zeroOrMore>
108                     </element>
109                 </choice>
110             </zeroOrMore>
111             </define>
112             
113 </grammar>