Ticket #382: job.xsd

File job.xsd, 4.2 KB (added by kasper, 22 months ago)

Proposed schema for AnalyzerBeans jobs

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eobjects.org/analyzerbeans/job/1.0"
3        xmlns:ab="http://eobjects.org/analyzerbeans/job/1.0"
4        elementFormDefault="qualified">
5
6        <element name="job">
7                <complexType>
8                        <sequence>
9                                <element name="job-metadata" type="ab:jobMetadataType"
10                                        minOccurs="0" maxOccurs="1" />
11                                <element name="source" type="ab:sourceType" minOccurs="0"
12                                        maxOccurs="1" />
13                                <element name="transformation" type="ab:transformationType"
14                                        minOccurs="0" maxOccurs="1" />
15                                <element name="analysis" type="ab:analysisType" minOccurs="1"
16                                        maxOccurs="1" />
17                        </sequence>
18                </complexType>
19        </element>
20
21        <complexType name="jobMetadataType">
22                <sequence>
23                        <element name="job-name" type="normalizedString" minOccurs="0"
24                                maxOccurs="1" />
25                        <element name="job-description" type="normalizedString"
26                                minOccurs="0" maxOccurs="1" />
27                        <element name="job-version" type="normalizedString"
28                                minOccurs="0" maxOccurs="1" />
29                        <element name="author" type="normalizedString" minOccurs="0"
30                                maxOccurs="1" />
31                        <element name="created-date" type="date" minOccurs="0"
32                                maxOccurs="1" />
33                        <element name="updated-date" type="date" minOccurs="0"
34                                maxOccurs="1" />
35                </sequence>
36        </complexType>
37
38        <complexType name="sourceType">
39                <sequence>
40                        <element name="data-context" type="ab:dataContextType"
41                                minOccurs="1" maxOccurs="1" />
42                        <element name="columns" type="ab:columnsType" minOccurs="0"
43                                maxOccurs="unbounded" />
44                </sequence>
45        </complexType>
46
47        <complexType name="transformationType">
48                <sequence>
49                        <element name="transformer" type="ab:transformerType"
50                                minOccurs="0" maxOccurs="unbounded" />
51                </sequence>
52        </complexType>
53
54        <complexType name="analysisType">
55                <sequence>
56                        <element name="analyzer" type="ab:analyzerType" minOccurs="1"
57                                maxOccurs="unbounded" />
58                </sequence>
59        </complexType>
60
61        <complexType name="dataContextType">
62                <attribute name="ref" type="token" use="required" />
63        </complexType>
64
65        <complexType name="columnsType">
66                <sequence>
67                        <element name="column" type="ab:columnType" minOccurs="1"
68                                maxOccurs="unbounded" />
69                </sequence>
70        </complexType>
71
72        <complexType name="columnType">
73                <attribute name="id" type="ID" use="required" />
74                <attribute name="path" type="normalizedString" use="required" />
75        </complexType>
76
77        <complexType name="transformerType">
78                <sequence>
79                        <element name="descriptor" type="ab:transformerDescriptorType"
80                                minOccurs="1" maxOccurs="1" />
81                        <element name="input" type="ab:inputType" minOccurs="1"
82                                maxOccurs="unbounded" />
83                        <element name="output" type="ab:outputType" minOccurs="1"
84                                maxOccurs="unbounded" />
85                </sequence>
86        </complexType>
87
88        <complexType name="transformerDescriptorType">
89                <attribute name="ref" type="token" use="required" />
90        </complexType>
91
92        <complexType name="inputType">
93                <attribute name="ref" type="IDREF" />
94        </complexType>
95
96        <complexType name="outputType">
97                <attribute name="id" type="ID" use="required" />
98        </complexType>
99
100        <complexType name="analyzerType">
101                <sequence>
102                        <element name="descriptor" type="ab:analyzerDescriptorType"
103                                minOccurs="1" maxOccurs="1" />
104                        <element name="input" type="ab:inputType" minOccurs="1"
105                                maxOccurs="unbounded" />
106                </sequence>
107        </complexType>
108
109        <complexType name="analyzerDescriptorType">
110                <attribute name="ref" type="token" use="required" />
111        </complexType>
112
113        <complexType name="providedPropertiesType">
114                <sequence>
115                        <element name="property">
116                                <complexType>
117                                        <attribute name="name" type="token" use="required" />
118                                        <attribute name="value" type="token" use="required" />
119                                        <attribute name="type" type="ab:providedPropertyTypeEnum"
120                                                use="optional" />
121                                </complexType>
122                        </element>
123                </sequence>
124        </complexType>
125
126        <complexType name="configuredPropertiesType">
127                <sequence>
128                        <element name="property">
129                                <complexType>
130                                        <attribute name="name" type="token" use="required" />
131                                        <attribute name="value" type="token" use="required" />
132                                </complexType>
133                        </element>
134                </sequence>
135        </complexType>
136
137        <simpleType name="providedPropertyTypeEnum">
138                <restriction base="token">
139                        <enumeration value="list" />
140                        <enumeration value="map" />
141                </restriction>
142        </simpleType>
143
144</schema>