Skip to content

Commit f3cd7da

Browse files
committed
Add v1.1 drafts directory & files
1 parent 7cfec50 commit f3cd7da

File tree

2 files changed

+516
-0
lines changed

2 files changed

+516
-0
lines changed

drafts/v1.1/MetronInfo.xsd

Lines changed: 347 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,347 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3+
<xs:element name="MetronInfo" type="metroninfoType" />
4+
5+
<!-- Complex Types -->
6+
<xs:complexType name="metroninfoType">
7+
<xs:all>
8+
<xs:element name="IDS" type="idsType" minOccurs="0" />
9+
<xs:element name="Publisher" type="publisherType" minOccurs="0" />
10+
<xs:element name="Series" type="seriesType" />
11+
<xs:element name="MangaVolume" type="xs:string" minOccurs="0" /> <!-- This is used for Manga -->
12+
<xs:element name="CollectionTitle" type="xs:string" minOccurs="0" />
13+
<xs:element name="Number" type="xs:string" minOccurs="0" />
14+
<xs:element name="Stories" type="storyType" minOccurs="0" /> <!-- Story titles in issue -->
15+
<xs:element name="Summary" type="xs:string" minOccurs="0" />
16+
<xs:element name="Prices" type="pricesType" minOccurs="0" />
17+
<xs:element name="CoverDate" type="xs:date" minOccurs="0" />
18+
<xs:element name="StoreDate" type="xs:date" minOccurs="0" />
19+
<xs:element name="PageCount" type="xs:nonNegativeInteger" minOccurs="0" default="0" />
20+
<xs:element name="Notes" type="xs:string" minOccurs="0" />
21+
<xs:element name="Genres" type="genresType" minOccurs="0" />
22+
<xs:element name="Tags" type="tagsType" minOccurs="0" />
23+
<xs:element name="Arcs" type="arcsType" minOccurs="0" />
24+
<xs:element name="Characters" type="charactersType" minOccurs="0" />
25+
<xs:element name="Teams" type="teamsType" minOccurs="0" />
26+
<xs:element name="Universes" type="universesType" minOccurs="0" />
27+
<xs:element name="Locations" type="locationsType" minOccurs="0" />
28+
<xs:element name="Reprints" type="reprintsType" minOccurs="0" />
29+
<xs:element name="GTIN" type="gtinType" minOccurs="0" />
30+
<xs:element name="AgeRating" type="ageRatingType" minOccurs="0" default="Unknown" />
31+
<xs:element name="URLs" type="urlsType" minOccurs="0" />
32+
<xs:element name="Credits" type="creditsType" minOccurs="0" />
33+
<xs:element name="LastModified" type="xs:dateTime" minOccurs="0" />
34+
</xs:all>
35+
</xs:complexType>
36+
37+
<xs:complexType name="urlsType">
38+
<xs:sequence>
39+
<xs:element name="URL" type="urlType" minOccurs="0" maxOccurs="unbounded" />
40+
</xs:sequence>
41+
<xs:assert test="count(URL[@primary = true()]) &lt;= 1" />
42+
</xs:complexType>
43+
44+
<xs:complexType name="urlType">
45+
<xs:simpleContent>
46+
<xs:extension base="xs:string">
47+
<xs:attribute name="primary" type="xs:boolean" />
48+
</xs:extension>
49+
</xs:simpleContent>
50+
</xs:complexType>
51+
52+
<xs:complexType name="idsType">
53+
<xs:sequence>
54+
<xs:element name="ID" type="idType" minOccurs="0" maxOccurs="unbounded" />
55+
</xs:sequence>
56+
<xs:assert test="count(ID[@primary = true()]) &lt;= 1" />
57+
</xs:complexType>
58+
59+
<xs:complexType name="idType">
60+
<xs:simpleContent>
61+
<xs:extension base="xs:string">
62+
<xs:attribute name="source" type="informationSource" use="required" />
63+
<xs:attribute name="primary" type="xs:boolean" />
64+
</xs:extension>
65+
</xs:simpleContent>
66+
</xs:complexType>
67+
68+
<xs:complexType name="storyType">
69+
<xs:sequence>
70+
<xs:element name="Story" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
71+
</xs:sequence>
72+
</xs:complexType>
73+
74+
<!-- Base type to add 'id' attribute to the various resources -->
75+
<xs:complexType name="resourceType">
76+
<xs:simpleContent>
77+
<xs:extension base="xs:string">
78+
<xs:attribute name="id" type="xs:string" />
79+
</xs:extension>
80+
</xs:simpleContent>
81+
</xs:complexType>
82+
83+
<xs:complexType name="publisherType">
84+
<xs:all>
85+
<xs:element name="Name" type="xs:string" />
86+
<xs:element name="Imprint" type="resourceType" minOccurs="0" />
87+
</xs:all>
88+
<xs:attribute name="id" type="xs:string" />
89+
</xs:complexType>
90+
91+
<xs:complexType name="seriesType">
92+
<xs:all>
93+
<xs:element name="Name" type="xs:string" />
94+
<xs:element name="SortName" type="xs:string" minOccurs="0" />
95+
<xs:element name="Volume" type="xs:nonNegativeInteger" minOccurs="0" />
96+
<xs:element name="Format" type="formatType" minOccurs="0" />
97+
<xs:element name="StartYear" type="xs:gYear" minOccurs="0" />
98+
<xs:element name="IssueCount" type="xs:positiveInteger" minOccurs="0" />
99+
<xs:element name="VolumeCount" type="xs:positiveInteger" minOccurs="0" />
100+
<xs:element name="AlternativeNames" type="alternativeNameType" minOccurs="0" />
101+
</xs:all>
102+
<xs:attribute name="lang" type="languageCode" default="en" />
103+
<xs:attribute name="id" type="xs:string" />
104+
</xs:complexType>
105+
106+
<xs:complexType name="alternativeNameType">
107+
<xs:sequence>
108+
<xs:element name="AlternativeName" type="nameType" minOccurs="0" maxOccurs="unbounded" />
109+
</xs:sequence>
110+
</xs:complexType>
111+
112+
<!-- Alternative Series Name Base type -->
113+
<xs:complexType name="nameType">
114+
<xs:simpleContent>
115+
<xs:extension base="xs:string">
116+
<xs:attribute name="id" type="xs:string" />
117+
<xs:attribute name="lang" type="languageCode" default="en" />
118+
</xs:extension>
119+
</xs:simpleContent>
120+
</xs:complexType>
121+
122+
<xs:complexType name="charactersType">
123+
<xs:sequence>
124+
<xs:element name="Character" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
125+
</xs:sequence>
126+
</xs:complexType>
127+
128+
<xs:complexType name="teamsType">
129+
<xs:sequence>
130+
<xs:element name="Team" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
131+
</xs:sequence>
132+
</xs:complexType>
133+
134+
<xs:complexType name="locationsType">
135+
<xs:sequence>
136+
<xs:element name="Location" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
137+
</xs:sequence>
138+
</xs:complexType>
139+
140+
<xs:complexType name="tagsType">
141+
<xs:sequence>
142+
<xs:element name="Tag" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
143+
</xs:sequence>
144+
</xs:complexType>
145+
146+
<xs:complexType name="reprintsType">
147+
<xs:sequence>
148+
<xs:element name="Reprint" type="resourceType" minOccurs="0" maxOccurs="unbounded" />
149+
</xs:sequence>
150+
</xs:complexType>
151+
152+
<xs:complexType name="universesType">
153+
<xs:sequence>
154+
<xs:element name="Universe" type="universeType" minOccurs="0" maxOccurs="unbounded" />
155+
</xs:sequence>
156+
</xs:complexType>
157+
158+
<xs:complexType name="universeType">
159+
<xs:all>
160+
<xs:element name="Name" type="xs:string" />
161+
<xs:element name="Designation" type="xs:string" minOccurs="0" />
162+
</xs:all>
163+
<xs:attribute name="id" type="xs:string" />
164+
</xs:complexType>
165+
166+
<xs:complexType name="arcsType">
167+
<xs:sequence>
168+
<xs:element name="Arc" type="arcType" minOccurs="0" maxOccurs="unbounded" />
169+
</xs:sequence>
170+
</xs:complexType>
171+
172+
<xs:complexType name="arcType">
173+
<xs:all>
174+
<xs:element name="Name" type="xs:string" />
175+
<xs:element name="Number" type="xs:positiveInteger" minOccurs="0" />
176+
</xs:all>
177+
<xs:attribute name="id" type="xs:string" />
178+
</xs:complexType>
179+
180+
<xs:complexType name="creditsType">
181+
<xs:sequence>
182+
<xs:element name="Credit" type="creditType" minOccurs="0" maxOccurs="unbounded" />
183+
</xs:sequence>
184+
</xs:complexType>
185+
186+
<xs:complexType name="roleType">
187+
<xs:simpleContent>
188+
<xs:extension base="roleValues">
189+
<xs:attribute name="id" type="xs:string" />
190+
</xs:extension>
191+
</xs:simpleContent>
192+
</xs:complexType>
193+
194+
<xs:complexType name="rolesType">
195+
<xs:sequence>
196+
<xs:element name="Role" type="roleType" minOccurs="0" maxOccurs="unbounded" />
197+
</xs:sequence>
198+
</xs:complexType>
199+
200+
<xs:complexType name="creditType">
201+
<xs:all>
202+
<xs:element name="Creator" type="resourceType" />
203+
<xs:element name="Roles" type="rolesType" minOccurs="0" />
204+
</xs:all>
205+
</xs:complexType>
206+
207+
<xs:complexType name="genreType">
208+
<xs:simpleContent>
209+
<xs:extension base="xs:string">
210+
<xs:attribute name="id" type="xs:string" />
211+
</xs:extension>
212+
</xs:simpleContent>
213+
</xs:complexType>
214+
215+
<xs:complexType name="genresType">
216+
<xs:sequence>
217+
<xs:element name="Genre" type="genreType" minOccurs="0" maxOccurs="unbounded" />
218+
</xs:sequence>
219+
</xs:complexType>
220+
221+
<xs:complexType name="pricesType">
222+
<xs:sequence>
223+
<xs:element name="Price" type="priceType" minOccurs="0" maxOccurs="unbounded" />
224+
</xs:sequence>
225+
</xs:complexType>
226+
227+
<xs:complexType name="priceType">
228+
<xs:simpleContent>
229+
<xs:extension base="xs:decimal">
230+
<xs:attribute name="country" type="countryCode" use="required" />
231+
</xs:extension>
232+
</xs:simpleContent>
233+
</xs:complexType>
234+
235+
<xs:complexType name="gtinType">
236+
<xs:all>
237+
<xs:element name="ISBN" minOccurs="0" />
238+
<xs:element name="UPC" minOccurs="0" />
239+
</xs:all>
240+
</xs:complexType>
241+
242+
<!-- Simple Types -->
243+
<xs:simpleType name="formatType">
244+
<xs:restriction base="xs:string">
245+
<xs:enumeration value="Annual" />
246+
<xs:enumeration value="Digital Chapter" />
247+
<xs:enumeration value="Graphic Novel" />
248+
<xs:enumeration value="Hardcover" />
249+
<xs:enumeration value="Limited Series" /> <!-- Used for mini/maxi series -->
250+
<xs:enumeration value="Omnibus" />
251+
<xs:enumeration value="One-Shot" />
252+
<xs:enumeration value="Single Issue" /> <!-- Used for Ongoing/Cancelled series -->
253+
<xs:enumeration value="Trade Paperback" />
254+
</xs:restriction>
255+
</xs:simpleType>
256+
257+
<xs:simpleType name="informationSource">
258+
<xs:restriction base="xs:string">
259+
<xs:enumeration value="AniList" />
260+
<xs:enumeration value="Comic Vine" />
261+
<xs:enumeration value="Grand Comics Database" />
262+
<xs:enumeration value="Kitsu" /> <!-- ID's contain letters, hyphens, and numbers -->
263+
<xs:enumeration value="MangaDex" /> <!-- ID's contain letters, hyphens, and numbers -->
264+
<xs:enumeration value="MangaUpdates" />
265+
<xs:enumeration value="Marvel" />
266+
<xs:enumeration value="Metron" />
267+
<xs:enumeration value="MyAnimeList" />
268+
<xs:enumeration value="League of Comic Geeks" />
269+
</xs:restriction>
270+
</xs:simpleType>
271+
272+
<xs:simpleType name="roleValues">
273+
<xs:restriction base="xs:string">
274+
<xs:enumeration value="Writer" />
275+
<xs:enumeration value="Script" />
276+
<xs:enumeration value="Story" />
277+
<xs:enumeration value="Plot" />
278+
<xs:enumeration value="Interviewer" />
279+
<xs:enumeration value="Artist" />
280+
<xs:enumeration value="Penciller" />
281+
<xs:enumeration value="Breakdowns" />
282+
<xs:enumeration value="Illustrator" />
283+
<xs:enumeration value="Layouts" />
284+
<xs:enumeration value="Inker" />
285+
<xs:enumeration value="Embellisher" />
286+
<xs:enumeration value="Finishes" />
287+
<xs:enumeration value="Ink Assists" />
288+
<xs:enumeration value="Colorist" />
289+
<xs:enumeration value="Color Separations" />
290+
<xs:enumeration value="Color Assists" />
291+
<xs:enumeration value="Color Flats" />
292+
<xs:enumeration value="Digital Art Technician" />
293+
<xs:enumeration value="Gray Tone" />
294+
<xs:enumeration value="Letterer" />
295+
<xs:enumeration value="Cover" />
296+
<xs:enumeration value="Editor" />
297+
<xs:enumeration value="Consulting Editor" />
298+
<xs:enumeration value="Assistant Editor" />
299+
<xs:enumeration value="Associate Editor" />
300+
<xs:enumeration value="Group Editor" />
301+
<xs:enumeration value="Senior Editor" />
302+
<xs:enumeration value="Managing Editor" />
303+
<xs:enumeration value="Collection Editor" />
304+
<xs:enumeration value="Production" />
305+
<xs:enumeration value="Designer" />
306+
<xs:enumeration value="Logo Design" />
307+
<xs:enumeration value="Translator" />
308+
<xs:enumeration value="Supervising Editor" />
309+
<xs:enumeration value="Executive Editor" />
310+
<xs:enumeration value="Editor In Chief" />
311+
<xs:enumeration value="President" />
312+
<xs:enumeration value="Publisher" />
313+
<xs:enumeration value="Chief Creative Officer" />
314+
<xs:enumeration value="Executive Producer" />
315+
<xs:enumeration value="Other" />
316+
</xs:restriction>
317+
</xs:simpleType>
318+
319+
<!--
320+
There's no governing body for age ratings, so let's use something fairly simple to cover most cases.
321+
It won't be perfect, but adding different values for all the different ways publishers use them seems
322+
unnecessarily difficult. The age ranges are just suggestions.
323+
-->
324+
<xs:simpleType name="ageRatingType">
325+
<xs:restriction base="xs:string">
326+
<xs:enumeration value="Unknown" />
327+
<xs:enumeration value="Everyone" /> <!-- Appropriate for readers of all ages. -->
328+
<xs:enumeration value="Teen" /> <!-- Appropriate for readers age 12 and older. -->
329+
<xs:enumeration value="Teen Plus" /> <!-- Appropriate for readers age 15 and older. -->
330+
<xs:enumeration value="Mature" /> <!-- Appropriate for readers age 17 and older. -->
331+
<xs:enumeration value="Explicit" /> <!-- Contains Gore, Sexually Explicit material that would be more extreme than R rating -->
332+
<xs:enumeration value="Adult" /> <!-- Likely pornographic in nature -->
333+
</xs:restriction>
334+
</xs:simpleType>
335+
336+
<xs:simpleType name="countryCode">
337+
<xs:restriction base="xs:string">
338+
<xs:pattern value="[A-Z][A-Z]" />
339+
</xs:restriction>
340+
</xs:simpleType>
341+
342+
<xs:simpleType name="languageCode">
343+
<xs:restriction base="xs:string">
344+
<xs:pattern value="[a-z][a-z]" />
345+
</xs:restriction>
346+
</xs:simpleType>
347+
</xs:schema>

0 commit comments

Comments
 (0)