/
hrmanifest.xsd
164 lines (149 loc) · 5.74 KB
/
hrmanifest.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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://github.com/KualiCo/ce-tech-docs/tree/master/v3_0"
xmlns="https://github.com/KualiCo/ce-tech-docs/tree/master/v3_0"
version="3.0"
elementFormDefault="qualified">
<xs:element name="hrmanifest">
<xs:complexType>
<xs:sequence>
<xs:element name="record"
type="RecordType"
maxOccurs="unbounded"/>
</xs:sequence>
<!-- Declare which version of the schema your data is compatible with -->
<xs:attribute name="schemaVersion"
type="xs:decimal"
use="required"/>
<!-- If present this email address will receive a summary of the import success or failure -->
<xs:attribute name="statusEmailRecipient"
type="xs:string"/>
<!-- If present this email address will receive a summary of the import success or failure -->
<xs:attribute name="reportDate"
type="xs:dateTime"/>
<!-- The number of records that were exported from the HR system of record -->
<xs:attribute name="recordCount"
type="xs:int"
use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="RecordType">
<xs:all>
<!-- Address information -->
<xs:element name="addressTypeCode"
type="addressTypeCode"
minOccurs="0"/>
<xs:element name="addressLine1"
type="xs:string"
minOccurs="0"/>
<xs:element name="addressLine2"
type="xs:string"
minOccurs="0"/>
<xs:element name="addressLine3"
type="xs:string"
minOccurs="0"/>
<xs:element name="city"
type="xs:string"
minOccurs="0"/>
<xs:element name="stateOrProvince"
type="xs:string"
minOccurs="0"/>
<xs:element name="postalCode"
type="xs:string"
minOccurs="0"/>
<xs:element name="country"
type="xs:string"
minOccurs="0"/>
<!-- Affiliation information -->
<xs:element name="affiliationType"
type="xs:string"/>
<xs:element name="campus"
type="xs:string"/>
<!-- Employment information -->
<xs:element name="employeeStatus"
type="employeeStatus"/>
<xs:element name="employeeType"
type="employeeType"/>
<xs:element name="baseSalaryAmount"
type="xs:float"/>
<xs:element name="primaryDepartment"
type="xs:string"/>
<xs:element name="employeeId"
type="xs:string"/>
<!-- Email information -->
<xs:element name="emailAddress"
type="emailAddress"
minOccurs="0"/>
<!-- Name information -->
<xs:element name="firstName"
type="xs:string"/>
<xs:element name="middleName"
type="xs:string"
minOccurs="0"/>
<xs:element name="lastName"
type="xs:string"/>
<!-- Phone information -->
<xs:element name="phoneNumber"
type="phoneNumber"
minOccurs="0"/>
</xs:all>
<!-- The unique identifier for this person in the HR system of record.
If left blank
an ID will be generated. -->
<xs:attribute name="entityId"
type="xs:string"
use="optional"/>
<!-- The unique ID for this principal in the authentication system -->
<xs:attribute name="principalId"
type="xs:string"
use="required"/>
<!-- The user name by which this principal is to be identified. i.e. username -->
<xs:attribute name="principalName"
type="principalName"
use="required"/>
<!-- Whether this user is active -->
<xs:attribute name="active"
type="xs:boolean"
default="true"/>
</xs:complexType>
<xs:simpleType name="employeeStatus">
<!-- A = Active; D = Deceased; L = On Non-Pay Leave; N = Status Not Yet Processed;
P =
Processing; R = Retired; S = Sabbatical Leave; T = Terminated; -->
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:pattern value="A|D|L|N|P|R|S|T"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="employeeType">
<!-- Type of employment: N = Non-Professional; O = Other; P = Professional; -->
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:pattern value="N|O|P"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="addressTypeCode">
<!-- HM = Home; OTH = Other; WRK = Work -->
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
<xs:pattern value="HM|OTH|WRK"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="phoneNumber">
<!-- e.g.: 555-555-1212 format required by application validation rules -->
<xs:restriction base="xs:string">
<xs:pattern value="\d{3}-\d{3}-\d{4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="emailAddress">
<xs:restriction base="xs:string">
<xs:pattern
value="([a-zA-Z0-9_'\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,5}|[0-9]{1,3})(\]?)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="principalName">
<xs:restriction base="xs:string">
<xs:pattern value="[aA-zZ0-9@._\-]+"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>