source: ndgCommon/trunk/ndg/common/xmldb/schema/atom1.0.xsd @ 5219

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/ndgCommon/trunk/ndg/common/xmldb/schema/atom1.0.xsd@5219
Revision 5219, 10.2 KB checked in by cbyrom, 11 years ago (diff)

Various updates to test suite and a small fix to allow granulite to
process atom summaries properly as a string.

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<xs:schema targetNamespace="http://www.w3.org/2005/Atom" elementFormDefault="qualified"
3        attributeFormDefault="unqualified"
4        xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xs="http://www.w3.org/2001/XMLSchema">
5        <xs:annotation>
6                <xs:documentation>
7                                This version of the Atom schema is based on version 1.0 of the format specifications,
8                                found here http://www.atomenabled.org/developers/syndication/atom-format-spec.php.
9                        </xs:documentation>
10        </xs:annotation>
11        <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
12        <xs:annotation>
13                <xs:documentation>
14                        An Atom document may have two root elements, feed and entry, as defined in section 2.
15                </xs:documentation>
16        </xs:annotation>
17        <xs:element name="feed" type="atom:feedType"/>
18        <xs:element name="entry" type="atom:entryType"/>
19        <xs:complexType name="textType" mixed="true">
20                <xs:annotation>
21                        <xs:documentation>
22                                The Atom text construct is defined in section 3.1 of the format spec.
23                        </xs:documentation>
24
25                </xs:annotation>
26                <xs:sequence>
27                        <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0"/>
28                </xs:sequence>
29                <xs:attribute name="type" >
30                        <xs:simpleType>
31                                <xs:restriction base="xs:token">
32                                        <xs:enumeration value="text"/>
33                                        <xs:enumeration value="html"/>
34                                        <xs:enumeration value="xhtml"/>
35                                </xs:restriction>
36                        </xs:simpleType>
37                </xs:attribute>
38                <xs:attributeGroup ref="atom:commonAttributes"/>
39        </xs:complexType>
40        <xs:complexType name="personType">
41                <xs:annotation>
42                        <xs:documentation>
43
44                                The Atom person construct is defined in section 3.2 of the format spec.
45                        </xs:documentation>
46                </xs:annotation>
47                <xs:sequence minOccurs="1" maxOccurs="unbounded">
48                        <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
49                        <xs:element name="uri" type="atom:uriType" minOccurs="0" maxOccurs="1" />
50                        <xs:element name="email" type="atom:emailType" minOccurs="0" maxOccurs="1" />
51                        <xs:any minOccurs="0" namespace="##other"/>
52                </xs:sequence>
53
54                <xs:attributeGroup ref="atom:commonAttributes"/>
55        </xs:complexType>
56        <xs:simpleType name="emailType">
57                <xs:annotation>
58                        <xs:documentation>
59                                Schema definition for an email address.
60                        </xs:documentation>
61                </xs:annotation>
62                <xs:restriction base="xs:normalizedString">
63
64                        <xs:pattern value="\w+@(\w+\.)+\w+" />
65                </xs:restriction>
66        </xs:simpleType>
67        <xs:complexType name="feedType">
68                <xs:annotation>
69                        <xs:documentation>
70                                The Atom feed construct is defined in section 4.1.1 of the format spec.
71                        </xs:documentation>
72                </xs:annotation>
73
74                <xs:choice minOccurs="3" maxOccurs="unbounded">
75                        <xs:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded" />
76                        <xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded" />
77                        <xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded" />
78                        <xs:element name="generator" type="atom:generatorType" minOccurs="0" maxOccurs="1" />
79                        <xs:element name="icon" type="atom:iconType" minOccurs="0" maxOccurs="1" />
80                        <xs:element name="id" type="atom:idType" minOccurs="1" maxOccurs="1" />
81                        <xs:element name="link" type="atom:linkType" minOccurs="0" maxOccurs="unbounded" />
82                        <xs:element name="logo" type="atom:logoType" minOccurs="0" maxOccurs="1" />
83
84                        <xs:element name="rights" type="atom:textType" minOccurs="0" maxOccurs="1" />
85                        <xs:element name="subtitle" type="atom:textType" minOccurs="0" maxOccurs="1" />
86                        <xs:element name="title" type="atom:textType" minOccurs="1" maxOccurs="1" />
87                        <xs:element name="updated" type="atom:dateTimeType" minOccurs="1" maxOccurs="1" />
88                        <xs:element name="entry" type="atom:entryType" minOccurs="0" maxOccurs="unbounded" />
89                        <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
90                </xs:choice>
91                <xs:attributeGroup ref="atom:commonAttributes"/>
92        </xs:complexType>
93
94        <xs:complexType name="entryType">
95                <xs:annotation>
96                        <xs:documentation>
97                                The Atom entry construct is defined in section 4.1.2 of the format spec.
98                        </xs:documentation>
99                </xs:annotation>
100                <xs:sequence>
101                        <xs:element name="id" type="atom:idType" minOccurs="1" maxOccurs="1" />
102                        <xs:element name="title" type="atom:textType" minOccurs="1" maxOccurs="1" />
103                        <xs:element name="link" type="atom:linkType" minOccurs="0" maxOccurs="unbounded" />
104                        <xs:element name="author" type="atom:personType" minOccurs="1" maxOccurs="unbounded" />
105                        <xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded" />
106                        <xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded" />
107                        <xs:element name="summary" type="atom:textType" minOccurs="1" maxOccurs="1" />
108                        <xs:element name="content" type="atom:contentType" minOccurs="1" maxOccurs="1" />
109                        <xs:element name="updated" type="atom:dateTimeType" minOccurs="1" maxOccurs="1" />
110                        <xs:element name="published" type="atom:dateTimeType" minOccurs="0" maxOccurs="1" />
111                        <xs:element name="rights" type="atom:textType" minOccurs="0" maxOccurs="1" />
112                        <xs:element name="source" type="atom:textType" minOccurs="0" maxOccurs="1" />
113                </xs:sequence>
114                <xs:attributeGroup ref="atom:commonAttributes"/>
115        </xs:complexType>
116               
117        <xs:complexType name="contentType" mixed="true">
118                <xs:annotation>
119                        <xs:documentation>
120                                The Atom content construct is defined in section 4.1.3 of the format spec.
121                        </xs:documentation>
122
123                </xs:annotation>
124                <xs:sequence>
125                        <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
126                </xs:sequence>
127                <xs:attribute name="type" type="xs:string"/>
128                <xs:attribute name="src" type="xs:anyURI"/>
129                <xs:attributeGroup ref="atom:commonAttributes"/>
130        </xs:complexType>
131        <xs:complexType name="categoryType">
132
133                <xs:annotation>
134                        <xs:documentation>
135                                The Atom cagegory construct is defined in section 4.2.2 of the format spec.
136                        </xs:documentation>
137                </xs:annotation>
138                <xs:attribute name="term" type="xs:string" use="required"/>
139                <xs:attribute name="scheme" type="xs:anyURI" use="optional"/>
140                <xs:attribute name="label" type="xs:string" use="optional"/>
141                <xs:attributeGroup ref="atom:commonAttributes" />
142
143        </xs:complexType>
144        <xs:complexType name="generatorType">
145                <xs:annotation>
146                        <xs:documentation>
147                                The Atom generator element is defined in section 4.2.4 of the format spec.
148                        </xs:documentation>
149                </xs:annotation>
150                <xs:simpleContent>
151                        <xs:extension base="xs:string">
152                                <xs:attribute name="uri" use="optional" type="xs:anyURI" />
153                                <xs:attribute name="version" use="optional" type="xs:string" />
154                                <xs:attributeGroup ref="atom:commonAttributes"/>
155                        </xs:extension>
156                </xs:simpleContent>
157        </xs:complexType>
158        <xs:complexType name="iconType">
159                <xs:annotation>
160                        <xs:documentation>
161
162                                The Atom icon construct is defined in section 4.2.5 of the format spec.
163                        </xs:documentation>
164                </xs:annotation>
165                <xs:simpleContent>
166                        <xs:extension base="xs:anyURI">
167                                <xs:attributeGroup ref="atom:commonAttributes"/>
168                        </xs:extension>
169                </xs:simpleContent>
170        </xs:complexType>
171
172        <xs:complexType name="idType">
173                <xs:annotation>
174                        <xs:documentation>
175                                The Atom id construct is defined in section 4.2.6 of the format spec.
176                        </xs:documentation>
177                </xs:annotation>
178                <xs:simpleContent>
179                        <xs:extension base="xs:anyURI">
180                                <xs:attributeGroup ref="atom:commonAttributes"/>
181
182                        </xs:extension>
183                </xs:simpleContent>
184        </xs:complexType>
185        <xs:complexType name="linkType" mixed="true">
186                <xs:annotation>
187                        <xs:documentation>
188                                The Atom link construct is defined in section 3.4 of the format spec.
189                        </xs:documentation>
190                </xs:annotation>
191
192                <xs:attribute name="href" use="required" type="xs:anyURI" />
193                <xs:attribute name="rel" type="xs:string" use="optional"/>
194                <xs:attribute name="type" use="optional" type="xs:string" />
195                <xs:attribute name="hreflang" use="optional" type="xs:NMTOKEN" />
196                <xs:attribute name="title" use="optional" type="xs:string" />
197                <xs:attribute name="length" use="optional" type="xs:positiveInteger" />
198                <xs:attributeGroup ref="atom:commonAttributes"/>
199        </xs:complexType>
200        <xs:complexType name="logoType">
201
202                <xs:annotation>
203                        <xs:documentation>
204                                The Atom logo construct is defined in section 4.2.8 of the format spec.
205                        </xs:documentation>
206                </xs:annotation>
207                <xs:simpleContent>
208                        <xs:extension base="xs:anyURI">
209                                <xs:attributeGroup ref="atom:commonAttributes"/>
210                        </xs:extension>
211
212                </xs:simpleContent>
213        </xs:complexType>
214        <xs:complexType name="sourceType">
215                <xs:annotation>
216                        <xs:documentation>
217                                The Atom source construct is defined in section 4.2.11 of the format spec.
218                        </xs:documentation>
219                </xs:annotation>
220                <xs:choice maxOccurs="unbounded">
221
222                        <xs:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
223                        <xs:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded"/>
224                        <xs:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
225                        <xs:element name="generator" type="atom:generatorType" minOccurs="0" maxOccurs="1"/>
226                        <xs:element name="icon" type="atom:iconType" minOccurs="0" maxOccurs="1"/>
227                        <xs:element name="id" type="atom:idType" minOccurs="0" maxOccurs="1"/>
228                        <xs:element name="link" type="atom:linkType" minOccurs="0" maxOccurs="unbounded"/>
229                        <xs:element name="logo" type="atom:logoType" minOccurs="0" maxOccurs="1"/>
230                        <xs:element name="rights" type="atom:textType" minOccurs="0" maxOccurs="1"/>
231
232                        <xs:element name="subtitle" type="atom:textType" minOccurs="0" maxOccurs="1"/>
233                        <xs:element name="title" type="atom:textType" minOccurs="0" maxOccurs="1"/>
234                        <xs:element name="updated" type="atom:dateTimeType" minOccurs="0" maxOccurs="1"/>
235                        <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
236                </xs:choice>
237                <xs:attributeGroup ref="atom:commonAttributes"/>
238        </xs:complexType>
239        <xs:complexType name="uriType">
240                <xs:simpleContent>
241                        <xs:extension base="xs:anyURI">
242                                <xs:attributeGroup ref="atom:commonAttributes"/>
243                        </xs:extension>
244                </xs:simpleContent>
245        </xs:complexType>
246        <xs:complexType name="dateTimeType">
247                <xs:simpleContent>
248                        <xs:extension base="xs:dateTime">
249                                <xs:attributeGroup ref="atom:commonAttributes"/>
250                        </xs:extension>
251                </xs:simpleContent>
252        </xs:complexType>
253        <xs:attributeGroup name="commonAttributes">
254                <xs:attribute ref="xml:base" />
255                <xs:attribute ref="xml:lang" />
256                <xs:anyAttribute namespace="##other"/>
257        </xs:attributeGroup>
258</xs:schema>
Note: See TracBrowser for help on using the repository browser.