]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - docs/export-0.5.xsd
MediaWiki 1.17.0-scripts
[autoinstalls/mediawiki.git] / docs / export-0.5.xsd
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!--
3         This is an XML Schema description of the format
4         output by MediaWiki's Special:Export system.
5         
6         Version 0.2 adds optional basic file upload info support,
7         which is used by our OAI export/import submodule.
8         
9         Version 0.3 adds some site configuration information such
10         as a list of defined namespaces.
11         
12         Version 0.4 adds per-revision delete flags, log exports,
13         discussion threading data, a per-page redirect flag, and
14         per-namespace capitalization.
15
16         The canonical URL to the schema document is:
17         http://www.mediawiki.org/xml/export-0.5.xsd
18         
19         Use the namespace:
20         http://www.mediawiki.org/xml/export-0.5/
21 -->
22 <schema xmlns="http://www.w3.org/2001/XMLSchema"
23         xmlns:mw="http://www.mediawiki.org/xml/export-0.5/"
24         targetNamespace="http://www.mediawiki.org/xml/export-0.5/"
25         elementFormDefault="qualified">
26
27         <annotation>
28                 <documentation xml:lang="en">
29                         MediaWiki's page export format
30                 </documentation>
31         </annotation>
32         
33         <!-- Need this to reference xml:lang -->
34         <import namespace="http://www.w3.org/XML/1998/namespace"
35                 schemaLocation="http://www.w3.org/2001/xml.xsd"/>
36         
37         <!-- Our root element -->
38         <element name="mediawiki" type="mw:MediaWikiType"/>
39         
40         <complexType name="MediaWikiType">
41                 <sequence>
42                         <element name="siteinfo" type="mw:SiteInfoType"
43                                 minOccurs="0" maxOccurs="1"/>
44                         <element name="page" type="mw:PageType"
45                                 minOccurs="0" maxOccurs="unbounded"/>
46                 </sequence>
47                 <attribute name="version" type="string" use="required"/>
48                 <attribute ref="xml:lang" use="required"/>
49         </complexType>
50         
51         <complexType name="SiteInfoType">
52                 <sequence>
53                         <element name="sitename" type="string" minOccurs="0" />
54                         <element name="base" type="anyURI" minOccurs="0" />
55                         <element name="generator" type="string" minOccurs="0" />
56                         <element name="case" type="mw:CaseType" minOccurs="0" />
57                         <element name="namespaces" type="mw:NamespacesType" minOccurs="0" />
58                 </sequence>
59         </complexType>
60         
61         <simpleType name="CaseType">
62                 <restriction base="NMTOKEN">
63                         <!-- Cannot have two titles differing only by case of first letter. -->
64                         <!-- Default behavior through 1.5, $wgCapitalLinks = true -->
65                         <enumeration value="first-letter" />
66                         
67                         <!-- Complete title is case-sensitive -->
68                         <!-- Behavior when $wgCapitalLinks = false -->
69                         <enumeration value="case-sensitive" />
70                         
71                         <!-- Cannot have two titles differing only by case. -->
72                         <!-- Not yet implemented as of MediaWiki 1.5 -->
73                         <enumeration value="case-insensitive" />
74                 </restriction>
75         </simpleType>
76         
77         <simpleType name="DeletedFlagType">
78                 <restriction base="NMTOKEN">
79                         <enumeration value="deleted"/>
80                 </restriction>
81         </simpleType>
82
83         <complexType name="NamespacesType">
84                 <sequence>
85                         <element name="namespace" type="mw:NamespaceType"
86                                 minOccurs="0" maxOccurs="unbounded" />
87                 </sequence>
88         </complexType>
89         
90         <complexType name="NamespaceType">
91                 <simpleContent>
92                         <extension base="string">
93                                 <attribute name="key" type="integer" />
94                                 <attribute name="case" type="mw:CaseType" />
95                         </extension>
96                 </simpleContent>
97         </complexType>
98         
99         <complexType name="PageType">
100                 <sequence>
101                         <!-- Title in text form. (Using spaces, not underscores; with namespace ) -->
102                         <element name="title" type="string"/>
103                         
104                         <!-- optional page ID number -->
105                         <element name="id" type="positiveInteger" minOccurs="0"/>
106                         
107                         <!-- flag if the current revision is a redirect -->
108                         <element name="redirect" minOccurs="0"/>        
109
110                         <!-- comma-separated list of string tokens, if present -->
111                         <element name="restrictions" type="string" minOccurs="0"/>
112                         
113                         <!-- Zero or more sets of revision or upload data -->
114                         <choice minOccurs="0" maxOccurs="unbounded">
115                                 <element name="revision" type="mw:RevisionType" />
116                                 <element name="upload" type="mw:UploadType" />
117                                 <element name="logitem" type="mw:LogItemType" />
118                         </choice>
119                         
120                         <!-- Zero or One sets of discussion threading data -->
121                         <element name="discussionthreadinginfo" minOccurs="0" maxOccurs="1" type="mw:DiscussionThreadingInfo" />
122                 </sequence>
123         </complexType>
124         
125         <complexType name="RevisionType">
126                 <sequence>
127                         <element name="id" type="positiveInteger" minOccurs="0"/>
128                         <element name="timestamp" type="dateTime"/>
129                         <element name="contributor" type="mw:ContributorType"/>
130                         <element name="minor" minOccurs="0" />
131                         <element name="comment" type="mw:CommentType" minOccurs="0"/>
132                         <element name="text" type="mw:TextType" />
133                 </sequence>
134         </complexType>
135
136         <complexType name="LogItemType">
137                 <sequence>
138                         <element name="id" type="positiveInteger" minOccurs="0"/>
139                         <element name="timestamp" type="dateTime"/>
140                         <element name="contributor" type="mw:ContributorType"/>
141                         <element name="comment" type="mw:CommentType" minOccurs="0"/>
142                         <element name="type" type="string" />
143                         <element name="action" type="string" />
144                         <element name="text" type="mw:TextType" />
145                 </sequence>
146         </complexType>
147         
148         <complexType name="CommentType">
149                 <simpleContent>
150                         <extension base="string">
151                                 <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
152                                 <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
153                         </extension>
154                 </simpleContent>
155         </complexType>
156
157
158         <complexType name="TextType">
159                 <simpleContent>
160                         <extension base="string">
161                                 <attribute ref="xml:space" use="optional" default="preserve" />
162                                 <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
163                                 <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>    
164                                 <attribute name="bytes" use="optional" type="nonNegativeInteger"/>
165                         </extension>
166                 </simpleContent>
167         </complexType>
168         
169         <complexType name="ContributorType">
170                 <sequence>
171                         <element name="username" type="string" minOccurs="0"/>
172                         <element name="id" type="positiveInteger" minOccurs="0" />
173                         
174                         <element name="ip" type="string" minOccurs="0"/>
175                 </sequence>
176                 <!-- This allows deleted=deleted on non-empty elements, but XSD is not omnipotent -->
177                 <attribute name="deleted" use="optional" type="mw:DeletedFlagType"/>
178         </complexType>
179         
180         <complexType name="UploadType">
181                 <sequence>
182                         <!-- Revision-style data... -->
183                         <element name="timestamp" type="dateTime"/>
184                         <element name="contributor" type="mw:ContributorType"/>
185                         <element name="comment" type="string" minOccurs="0"/>
186                         
187                         <!-- Filename. (Using underscores, not spaces. No 'Image:' namespace marker.) -->
188                         <element name="filename" type="string"/>
189                         
190                         <!-- URI at which this resource can be obtained -->
191                         <element name="src" type="anyURI"/>
192                         
193                         <element name="size" type="positiveInteger" />
194                         
195                         <!-- TODO: add other metadata fields -->
196                 </sequence>
197         </complexType>
198         
199         <!-- Discussion threading data for LiquidThreads -->
200         <complexType name="DiscussionThreadingInfo">
201                 <sequence>
202                         <element name="ThreadSubject" type="string" />
203                         <element name="ThreadParent" type="positiveInteger" />
204                         <element name="ThreadAncestor" type="positiveInteger" />
205                         <element name="ThreadPage" type="string" />
206                         <element name="ThreadID" type="positiveInteger" />
207                         <element name="ThreadAuthor" type="string" />
208                         <element name="ThreadEditStatus" type="string" />
209                         <element name="ThreadType" type="string" />
210                 </sequence>
211         </complexType>
212         
213 </schema>