-
Notifications
You must be signed in to change notification settings - Fork 1
/
architectural-decision.xsd
96 lines (84 loc) · 3.38 KB
/
architectural-decision.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
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema
xml:lang="en"
version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="https://architectural-decision.cspray.io/schema/architectural-decision.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
targetNamespace="https://architectural-decision.cspray.io/schema/architectural-decision.xsd">
<xs:element name="architecturalDecisions" type="architecturalDecisionsType">
<xs:annotation>
<xs:documentation>
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="architecturalDecisionsType">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="architecturalDecision" type="architecturalDecisionType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="architecturalDecisionType">
<xs:all>
<xs:element name="date" type="xs:date" minOccurs="1" maxOccurs="1" />
<xs:element name="status" type="xs:token" minOccurs="1" maxOccurs="1" />
<xs:element name="contents" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="codeAnnotations" type="codeAnnotationsType" minOccurs="0" maxOccurs="1" />
<xs:element name="meta" type="metaType" minOccurs="1" maxOccurs="1" />
</xs:all>
<xs:attribute name="id" type="xs:ID" use="required" />
<xs:attribute name="attribute" type="xs:token" use="required" />
</xs:complexType>
<xs:complexType name="codeAnnotationsType">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="codeAnnotation" type="codeTargetType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="codeTargetType">
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="class" type="xs:token" />
<xs:element name="classMethod" type="classMethodType" />
<xs:element name="classProperty" type="classPropertyType" />
<xs:element name="classConstant" type="classConstantType" />
<xs:element name="classMethodParameter" type="classMethodParameterType" />
<xs:element name="function" type="xs:token" />
<xs:element name="functionParameter" type="functionParameterType" />
</xs:choice>
</xs:complexType>
<xs:complexType name="classMethodType">
<xs:all>
<xs:element name="class" type="xs:token" />
<xs:element name="method" type="xs:token" />
</xs:all>
</xs:complexType>
<xs:complexType name="classPropertyType">
<xs:all>
<xs:element name="class" type="xs:token" />
<xs:element name="property" type="xs:token" />
</xs:all>
</xs:complexType>
<xs:complexType name="classConstantType">
<xs:all>
<xs:element name="class" type="xs:token" />
<xs:element name="constant" type="xs:token" />
</xs:all>
</xs:complexType>
<xs:complexType name="classMethodParameterType">
<xs:all>
<xs:element name="class" type="xs:token" />
<xs:element name="method" type="xs:token" />
<xs:element name="parameter" type="xs:token" />
</xs:all>
</xs:complexType>
<xs:complexType name="functionParameterType">
<xs:all>
<xs:element name="function" type="xs:token" />
<xs:element name="parameter" type="xs:token" />
</xs:all>
</xs:complexType>
<xs:complexType name="metaType">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>