1 | <?xml version="1.0"?>
|
---|
2 | <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
---|
3 | xmlns:tns="http://www.blackperl.com/XML/ChangeLog"
|
---|
4 | targetNamespace="http://www.blackperl.com/XML/ChangeLog"
|
---|
5 | elementFormDefault="qualified" attributeFormDefault="unqualified"
|
---|
6 | version="0.93" id="changelog0.93">
|
---|
7 | <!--
|
---|
8 | Refer to this schema using the following namespace:
|
---|
9 | http://www.blackperl.com/XML/ChangeLog
|
---|
10 | -->
|
---|
11 | <xsd:annotation>
|
---|
12 | <xsd:documentation>
|
---|
13 | A description of an XML application which itemizes changes over the
|
---|
14 | life-span of a software project. Changes are tracked by releases, with a
|
---|
15 | granularity of individual items made up of files that were affected.
|
---|
16 | </xsd:documentation>
|
---|
17 | <xsd:appinfo xmlns:dc="http://purl.org/dc/elements/1.1/">
|
---|
18 | <dc:creator>Randy J. Ray ([email protected])</dc:creator>
|
---|
19 | <dc:date>2004-11-22</dc:date>
|
---|
20 | <dc:subject>changelog,xml,schema</dc:subject>
|
---|
21 | <dc:description>
|
---|
22 | An XML Schema declaration describing an XML expression of software
|
---|
23 | project change-logs.
|
---|
24 | </dc:description>
|
---|
25 | </xsd:appinfo>
|
---|
26 | <xsd:appinfo>
|
---|
27 | <rdf:RDF xmlns:cc="http://web.resource.org/cc/"
|
---|
28 | xmlns:dc="http://purl.org/dc/elements/1.1/"
|
---|
29 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
---|
30 | <cc:Work rdf:about="">
|
---|
31 | <dc:title>XML Schema for Changelogs</dc:title>
|
---|
32 | <dc:description>
|
---|
33 | An XML Schema declaration describing an XML expression of software
|
---|
34 | project change-logs.
|
---|
35 | </dc:description>
|
---|
36 | <dc:creator>
|
---|
37 | <cc:Agent>
|
---|
38 | <dc:title>Randy J. Ray</dc:title>
|
---|
39 | </cc:Agent>
|
---|
40 | </dc:creator>
|
---|
41 | <dc:rights>
|
---|
42 | <cc:Agent>
|
---|
43 | <dc:title>Randy J. Ray</dc:title>
|
---|
44 | </cc:Agent>
|
---|
45 | </dc:rights>
|
---|
46 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
|
---|
47 | <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
|
---|
48 | </cc:Work>
|
---|
49 | <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
|
---|
50 | <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
|
---|
51 | <cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
|
---|
52 | <cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
|
---|
53 | <cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
|
---|
54 | <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
---|
55 | <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
---|
56 | </cc:License>
|
---|
57 | </rdf:RDF>
|
---|
58 | </xsd:appinfo>
|
---|
59 | </xsd:annotation>
|
---|
60 |
|
---|
61 | <xsd:complexType id="informationType" name="informationType"
|
---|
62 | mixed="true">
|
---|
63 | <xsd:annotation>
|
---|
64 | <xsd:documentation>
|
---|
65 | An open-ended container type for including version-control information
|
---|
66 | at various levels within the changelog structure. This is the only
|
---|
67 | type which explicitly permits content from foreign namespaces.
|
---|
68 | </xsd:documentation>
|
---|
69 | </xsd:annotation>
|
---|
70 | <xsd:sequence maxOccurs="unbounded" minOccurs="0">
|
---|
71 | <xsd:any processContents="lax" />
|
---|
72 | </xsd:sequence>
|
---|
73 | <xsd:attribute name="source" type="xsd:anyURI" />
|
---|
74 | <xsd:anyAttribute namespace="##other" processContents="lax" />
|
---|
75 | </xsd:complexType>
|
---|
76 |
|
---|
77 | <xsd:complexType id="descriptionType" name="descriptionType">
|
---|
78 | <xsd:annotation>
|
---|
79 | <xsd:documentation>
|
---|
80 | A description block is used to document everything from specific change
|
---|
81 | items to the release as a whole.
|
---|
82 | </xsd:documentation>
|
---|
83 | </xsd:annotation>
|
---|
84 | <xsd:simpleContent>
|
---|
85 | <xsd:extension base="xsd:string">
|
---|
86 | <xsd:attribute default="en-US" name="lang" type="xsd:language" />
|
---|
87 | </xsd:extension>
|
---|
88 | </xsd:simpleContent>
|
---|
89 | </xsd:complexType>
|
---|
90 |
|
---|
91 | <xsd:simpleType id="versionString" name="versionString">
|
---|
92 | <xsd:annotation>
|
---|
93 | <xsd:documentation>
|
---|
94 | The versionString type is applied to attributes that describe simple
|
---|
95 | revision-number strings. It only supports CVS (RCS) styled version
|
---|
96 | numbers.
|
---|
97 | </xsd:documentation>
|
---|
98 | </xsd:annotation>
|
---|
99 | <xsd:restriction base="xsd:string">
|
---|
100 | <xsd:pattern value="\d+(\.\d+)*" />
|
---|
101 | </xsd:restriction>
|
---|
102 | </xsd:simpleType>
|
---|
103 |
|
---|
104 | <xsd:complexType id="fileType" name="fileType">
|
---|
105 | <xsd:annotation>
|
---|
106 | <xsd:documentation>
|
---|
107 | The fileType definition is used for the file element, a part of the
|
---|
108 | itemType declaration. It is defined separately so that it can be
|
---|
109 | referred to from multiple places.
|
---|
110 | </xsd:documentation>
|
---|
111 | </xsd:annotation>
|
---|
112 | <xsd:sequence maxOccurs="1" minOccurs="0">
|
---|
113 | <xsd:element name="description" type="tns:descriptionType"
|
---|
114 | minOccurs="0" maxOccurs="unbounded" />
|
---|
115 | <xsd:element maxOccurs="1" minOccurs="0" name="vc-information"
|
---|
116 | type="tns:informationType" nillable="true" />
|
---|
117 | </xsd:sequence>
|
---|
118 | <xsd:attribute name="path" type="xsd:string" use="required" />
|
---|
119 | <xsd:attribute name="revision" type="tns:versionString" use="optional"/>
|
---|
120 | <xsd:attribute name="author" type="xsd:NMTOKEN" use="optional" />
|
---|
121 | <xsd:attribute name="action" use="optional">
|
---|
122 | <xsd:simpleType>
|
---|
123 | <xsd:restriction base="xsd:NMTOKEN">
|
---|
124 | <xsd:enumeration value="ADD" />
|
---|
125 | <xsd:enumeration value="DELETE" />
|
---|
126 | <xsd:enumeration value="RESTORE" />
|
---|
127 | <xsd:enumeration value="MOVE" />
|
---|
128 | </xsd:restriction>
|
---|
129 | </xsd:simpleType>
|
---|
130 | </xsd:attribute>
|
---|
131 | <xsd:attribute name="note" type="xsd:string" use="optional" />
|
---|
132 | </xsd:complexType>
|
---|
133 |
|
---|
134 | <xsd:element id="file" name="file" nillable="true" type="tns:fileType">
|
---|
135 | <xsd:annotation>
|
---|
136 | <xsd:documentation>
|
---|
137 | A file element contains a single block representing a fileType.
|
---|
138 | </xsd:documentation>
|
---|
139 | </xsd:annotation>
|
---|
140 | <xsd:unique name="fileDescriptionLangConstraint">
|
---|
141 | <xsd:selector xpath="tns:description" />
|
---|
142 | <xsd:field xpath="@lang" />
|
---|
143 | </xsd:unique>
|
---|
144 | </xsd:element>
|
---|
145 |
|
---|
146 | <xsd:complexType id="itemType" name="itemType">
|
---|
147 | <xsd:annotation>
|
---|
148 | <xsd:documentation>
|
---|
149 | These element blocks define a single change-item within the scope of a
|
---|
150 | given release. A change-item consists of one or more files that were
|
---|
151 | affected, and a description of the change itself.
|
---|
152 | </xsd:documentation>
|
---|
153 | </xsd:annotation>
|
---|
154 | <xsd:sequence>
|
---|
155 | <xsd:element maxOccurs="1" minOccurs="0" name="vc-information"
|
---|
156 | type="tns:informationType" nillable="true" />
|
---|
157 | <xsd:choice minOccurs="1" maxOccurs="1">
|
---|
158 | <xsd:element ref="tns:file" />
|
---|
159 | <xsd:element name="fileset" nillable="false">
|
---|
160 | <xsd:complexType>
|
---|
161 | <xsd:sequence>
|
---|
162 | <xsd:element maxOccurs="1" minOccurs="0" name="vc-information"
|
---|
163 | type="tns:informationType" nillable="true" />
|
---|
164 | <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:file" />
|
---|
165 | </xsd:sequence>
|
---|
166 | </xsd:complexType>
|
---|
167 | </xsd:element>
|
---|
168 | </xsd:choice>
|
---|
169 | <xsd:element name="description" type="tns:descriptionType"
|
---|
170 | minOccurs="1" maxOccurs="unbounded" />
|
---|
171 | </xsd:sequence>
|
---|
172 | <xsd:attribute name="id" type="xsd:ID" />
|
---|
173 | </xsd:complexType>
|
---|
174 |
|
---|
175 | <xsd:element id="item" name="item" nillable="false" type="tns:itemType">
|
---|
176 | <xsd:annotation>
|
---|
177 | <xsd:documentation>
|
---|
178 | An item element contains a single block representing an itemType.
|
---|
179 | </xsd:documentation>
|
---|
180 | </xsd:annotation>
|
---|
181 | <xsd:unique name="itemDescriptionLangConstraint">
|
---|
182 | <xsd:selector xpath="tns:description" />
|
---|
183 | <xsd:field xpath="@lang" />
|
---|
184 | </xsd:unique>
|
---|
185 | </xsd:element>
|
---|
186 |
|
---|
187 | <xsd:complexType id="releaseType" name="releaseType">
|
---|
188 | <xsd:annotation>
|
---|
189 | <xsd:documentation>
|
---|
190 | The release is the primary piece of information that a changelog
|
---|
191 | collects and organizes. A release contains an optional description,
|
---|
192 | followed by one or more item blocks. The release element is also the
|
---|
193 | greatest user of attributes besides the file element. A release element
|
---|
194 | must have at least a "version" attribute, uniquely identifying the
|
---|
195 | release itself. Additionally, it may have "tag" to associate it with
|
---|
196 | a release-system tag and "date" to specify the date the release was
|
---|
197 | created.
|
---|
198 | </xsd:documentation>
|
---|
199 | </xsd:annotation>
|
---|
200 | <xsd:sequence>
|
---|
201 | <xsd:element name="description" type="tns:descriptionType"
|
---|
202 | minOccurs="0" maxOccurs="unbounded" />
|
---|
203 | <xsd:element maxOccurs="unbounded" minOccurs="0" name="information"
|
---|
204 | type="tns:informationType" nillable="true" />
|
---|
205 | <xsd:element maxOccurs="1" minOccurs="0" name="vc-information"
|
---|
206 | type="tns:informationType" nillable="true" />
|
---|
207 | <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:item" />
|
---|
208 | </xsd:sequence>
|
---|
209 | <xsd:attribute name="version" type="xsd:token" use="required" />
|
---|
210 | <xsd:attribute name="tag" type="xsd:NMTOKEN" />
|
---|
211 | <xsd:attribute name="date" type="xsd:token" use="required" /> <!-- type="xsd:dateTime" -->
|
---|
212 | </xsd:complexType>
|
---|
213 |
|
---|
214 | <xsd:element id="release" name="release" nillable="false"
|
---|
215 | type="tns:releaseType">
|
---|
216 | <xsd:annotation>
|
---|
217 | <xsd:documentation>
|
---|
218 | </xsd:documentation>
|
---|
219 | </xsd:annotation>
|
---|
220 | <xsd:unique name="releaseDescriptionLangConstraint">
|
---|
221 | <xsd:selector xpath="tns:description" />
|
---|
222 | <xsd:field xpath="@lang" />
|
---|
223 | </xsd:unique>
|
---|
224 | </xsd:element>
|
---|
225 |
|
---|
226 | <xsd:element id="changelog" name="changelog" nillable="false">
|
---|
227 | <xsd:annotation>
|
---|
228 | <xsd:documentation>
|
---|
229 | The changelog element is intended as the document root element. It
|
---|
230 | contains an overview element (identical in structure to the description
|
---|
231 | element, but named differently to prevent collision in XPath queries)
|
---|
232 | and one or more release blocks.
|
---|
233 | </xsd:documentation>
|
---|
234 | </xsd:annotation>
|
---|
235 | <xsd:complexType>
|
---|
236 | <xsd:sequence>
|
---|
237 | <xsd:element maxOccurs="unbounded" minOccurs="1" name="description"
|
---|
238 | nillable="false" type="tns:descriptionType" />
|
---|
239 | <xsd:element maxOccurs="unbounded" minOccurs="0" name="information"
|
---|
240 | type="tns:informationType" nillable="true" />
|
---|
241 | <xsd:element maxOccurs="1" minOccurs="0" name="vc-information"
|
---|
242 | type="tns:informationType" nillable="true" />
|
---|
243 | <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:release" />
|
---|
244 | </xsd:sequence>
|
---|
245 | </xsd:complexType>
|
---|
246 | <xsd:unique name="changelogDescriptionLangConstraint">
|
---|
247 | <xsd:selector xpath="tns:description" />
|
---|
248 | <xsd:field xpath="@lang" />
|
---|
249 | </xsd:unique>
|
---|
250 | </xsd:element>
|
---|
251 |
|
---|
252 | </xsd:schema>
|
---|
253 |
|
---|