-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpersonScheme.xsd
92 lines (91 loc) · 3.77 KB
/
personScheme.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
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="persons">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="person" type="Person" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Person">
<xsd:sequence>
<xsd:element name="basicInformation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="Name"/>
</xsd:sequence>
<xsd:attribute name="birthday" type="xsd:date" use="required"/>
<xsd:attribute name="sex" type="Sex" use="required"/>
<xsd:attribute name="heigth" type="xsd:float"/>
<xsd:attribute name="weigth" type="xsd:float"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="contactInformation" type="ContactInfo"/>
<xsd:element name="jobs" type="Jobs"/>
</xsd:sequence>
<xsd:attribute name="ID" type="PassportID" use="required"/>
</xsd:complexType>
<xsd:complexType name="ContactInfo">
<xsd:sequence>
<xsd:element name="mobilePhone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{1,15}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="homePhone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{1,15}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="address" type="Address"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Address">
<xsd:attribute name="country" type="string" use="required"/>
<xsd:attribute name="city" type="string" use="required"/>
<xsd:attribute name="street" type="string" use="required"/>
<xsd:attribute name="house" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="Jobs">
<xsd:sequence>
<xsd:element name="job" type="Job" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Name">
<xsd:attribute name="lastName" type="string" use="required"/>
<xsd:attribute name="firstName" type="string" use="required"/>
<xsd:attribute name="middleName" type="string" use="required"/>
</xsd:complexType>
<xsd:complexType name="Job">
<xsd:attribute name="company" type="string"/>
<xsd:attribute name="position" type="string"/>
<xsd:attribute name="experience" type="Experience"/>
</xsd:complexType>
<xsd:simpleType name="Experience">
<xsd:restriction base="xsd:integer">
<xsd:pattern value="[0-9]+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PassportID">
<xsd:restriction base="xsd:ID">
<xsd:length value="15"/>
<xsd:pattern value="[A-Z0-9]{15}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Sex">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Female"/>
<xsd:enumeration value="Male"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="string">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-zA-Z0-9]{2,}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>