-
Notifications
You must be signed in to change notification settings - Fork 0
/
macrogenesis.xsd
144 lines (144 loc) · 5.36 KB
/
macrogenesis.xsd
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.faustedition.net/ns" xmlns:ns1="http://www.faustedition.net/ns">
<xs:simpleType name="faustURI">
<xs:restriction base="xs:anyURI">
<xs:pattern value="faust://.+"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="macrogenesis">
<xs:annotation>
<xs:documentation>The root element. Can contain any amount of genetic information</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ns1:relation"/>
<xs:element ref="ns1:date"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="relation">
<xs:annotation>
<xs:documentation>Establishes a relation on two or more items</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ns1:source"/>
<xs:element ref="ns1:comment"/>
</xs:choice>
<xs:element ref="ns1:item"/>
<xs:element maxOccurs="unbounded" ref="ns1:item"/>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="temp-pre">
<xs:annotation>
<xs:documentation>Temporal precedence</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="temp-syn">
<xs:annotation>
<xs:documentation>Synchronicity</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="ns1:ignoreable"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="ignoreable">
<xs:attribute name="ignore">
<xs:annotation>
<xs:documentation>if present and 'yes', this relation should not be considered
when calculating datings</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="date">
<xs:annotation>
<xs:documentation>Assigns a date or date range to an item</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ns1:source"/>
<xs:element ref="ns1:comment"/>
</xs:choice>
<xs:element maxOccurs="unbounded" ref="ns1:item"/>
</xs:sequence>
<xs:attribute name="when" type="xs:date">
<xs:annotation>
<xs:documentation>Specifies the exact date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="notBefore" type="xs:date">
<xs:annotation>
<xs:documentation>The earliest possible date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="notAfter" type="xs:date">
<xs:annotation>
<xs:documentation>The latest possible date</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="from" type="xs:date">
<xs:annotation>
<xs:documentation>The starting point of the period</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="to" type="xs:date">
<xs:annotation>
<xs:documentation>The ending point of the period</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="normalized">
<xs:annotation>
<xs:documentation>the period is the normalized form that represents a fuzzy interval like 'Spring 1798'</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="ns1:ignoreable"/>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:annotation>
<xs:documentation>An item that can be dated or related to another item. Items can be
manuscripts, but also events or anything else with genetic
significance.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="uri" use="required" type="ns1:faustURI"/>
</xs:complexType>
</xs:element>
<xs:element name="comment" type="xs:normalizedString">
<xs:annotation>
<xs:documentation>Any information that cannot be expressed in the formalisation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="source">
<xs:annotation>
<xs:documentation>The source of the information. The URI identifying the source must be
given. More bibliogrpahical detail (volume, page, ...) can be given inside the
element.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute name="uri" use="required" type="ns1:faustURI">
<xs:annotation>
<xs:documentation>The URI identifying the source</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>