summaryrefslogtreecommitdiff
path: root/plugins/OStatus/extlib/XML/Feed/schemas/rss10.rnc
blob: 7250947887c91af328316e6e7b83c2d98d6142dd (plain)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version='1.0' encoding='UTF-8'?>
<!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html -->
<!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html -->
<!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html -->

<grammar xmlns='http://relaxng.org/ns/structure/1.0'
        xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
        xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        ns='http://purl.org/rss/1.0/'
        datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'>

    <start>
        <element name='RDF' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
            <ref name='RDFContent'/>
        </element>
    </start>   

    <define name='RDFContent' ns='http://purl.org/rss/1.0/'>
        <interleave>
            <element name='channel'>
                <ref name='channelContent'/>
            </element>
            <optional>
                <element name='image'><ref name='imageContent'/></element>
            </optional>
            <oneOrMore>
                <element name='item'><ref name='itemContent'/></element>
            </oneOrMore>
        </interleave>
    </define>

     <define name='channelContent' combine="interleave">
        <interleave>
            <element name='title'><data type='string'/></element>
            <element name='link'><data type='anyURI'/></element>
            <element name='description'><data type='string'/></element>
            <element name='image'>
                <attribute name='resource' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                    <data type='anyURI'/>
                </attribute>
            </element>
            <element name='items'>
                    <ref name='itemsContent'/>
            </element>
            <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                <data type='anyURI'/>
            </attribute>
        </interleave>
    </define>
    
        <define name="itemsContent">
            <element name="Seq" ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                <oneOrMore>
                    <element name="li" ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                        <choice>
                            <attribute name='resource'>    <!-- Why doesn't RDF/RSS1.0 ns qualify this attribute? -->
                                <data type='anyURI'/>
                            </attribute>
                            <attribute name='resource' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                                <data type='anyURI'/>
                            </attribute>
                        </choice>
                    </element>
                </oneOrMore>
            </element>
        </define>
        
    <define name='imageContent'>
        <interleave>
            <element name='title'><data type='string'/></element>
            <element name='link'><data type='anyURI'/></element>
            <element name='url'><data type='anyURI'/></element>
            <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                <data type='anyURI'/>
            </attribute>
        </interleave>
    </define>

    <define name='itemContent'>
        <interleave>
            <element name='title'><data type='string'/></element>
            <element name='link'><data type='anyURI'/></element>
            <optional><element name='description'><data type='string'/></element></optional>
            <ref name="anyThing"/>
            <attribute name='about' ns='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
                <data type='anyURI'/>
            </attribute>
        </interleave>
    </define>            
            

        <define name='anyThing'>
            <zeroOrMore>
                <choice>
                    <text/>
                    <element>
                        <anyName>
                            <except>
                                <nsName/>
                            </except>
                        </anyName>
                        <ref name='anyThing'/>
                        <zeroOrMore>
                            <attribute>
                              <anyName/>
                            </attribute>
                        </zeroOrMore>
                    </element>
                </choice>
            </zeroOrMore>
            </define>
            
</grammar>