summaryrefslogtreecommitdiffstats
path: root/sfx2/classification/xNL.xsd
blob: d82c6ab7bec08fe99401ddc194e1e902d352b234 (plain)
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="urn:oasis:names:tc:ciq:xnl:3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ct="urn:oasis:names:tc:ciq:ct:3" targetNamespace="urn:oasis:names:tc:ciq:xnl:3" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:annotation>
		<xs:documentation> 
		Specification Name: OASIS CIQ TC - extensible Name Language (xNL) 
		Description: Defines the W3C schema for representing party names (Person or Organisation)
		(Using XML Schema based standard code list/enumeration mechanism - OPTION 1 AND DEFAULT)
		Produced by: OASIS Customer Information Quality Technical Committee
		URL: http://www.oasis-open.org/committees/ciq
		Version: 3.0  
		Status: Committee Specification
		Copyright: 2006-07, OASIS, http://www.oasis-open.org
		Last Modified: 18 September 2007
		Last Modified by: Ram Kumar, Chair, OASIS CIQ TC 
		
		NOTE: Do not modify this schema as it will break specifications compatibility 
		</xs:documentation>
	</xs:annotation>
	<xs:include schemaLocation="xNL-types.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:ciq:ct:3" schemaLocation="CommonTypes.xsd"/>
	<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink-2003-12-31.xsd"/>
	<xs:attributeGroup name="grNameKey">
		<xs:annotation>
			<xs:documentation>Reference to another Person Name or Organisation Name with primary and foreign key reinforcement. </xs:documentation>
		</xs:annotation>
		<xs:attribute name="NameKey" type="ct:String">
			<xs:annotation>
				<xs:documentation>A primary key to reference Party Name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="NameKeyRef" type="ct:String">
			<xs:annotation>
				<xs:documentation>A foreign key to reference attribute Key of Party Name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:complexType name="PartyNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type for a party. A party is a person or an organisation</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="NameLine" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PersonName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Container for person name details. Same person with many types (e.g. alias, pet name, nick name)  of names can be used by this container.  </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="PersonNameType"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="OrganisationName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A container for organisation name details. Same organisation with many types of names can be used by this container</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="OrganisationNameType"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="PartyNameID" type="ct:String">
			<xs:annotation>
				<xs:documentation>A unique identifier of a party</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="PartyNameIDType" type="PartyNameIDTypeList">
			<xs:annotation>
				<xs:documentation>Type of Party Name ID</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ID" type="ct:String">
			<xs:annotation>
				<xs:documentation>Globally unique identifier</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Usage" type="PartyNameUsageList">
			<xs:annotation>
				<xs:documentation>Type of use of this data. e.g. data exchange, contact, update, create</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Status" type="ct:StatusList">
			<xs:annotation>
				<xs:documentation>Status of the entity. e.g. Old, Current, Inactive, Active, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="JointNameConnector" type="JointNameConnectorList">
			<xs:annotation>
				<xs:documentation>The connector used to join more than one person name. Example: Mr Hunt AND Mrs Clark, where AND is the JointNameConnector. The flow is from the preceding to the following. If there is more than 2 names then all names are connected using this connector in the natural order.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attributeGroup ref="ct:grValidityDate"/>
		<xs:attributeGroup ref="grNameKey"/>
		<xs:attribute ref="xlink:type"/>
		<xs:attribute ref="xlink:label"/>
		<xs:attribute ref="xlink:href"/>
		<xs:attributeGroup ref="ct:grDataQuality"/>
		<xs:attributeGroup ref="ct:grLanguageCode"/>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="PersonNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="NameElement" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name or part of a name. </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="ct:String">
							<xs:attribute name="ElementType" type="PersonNameElementList">
								<xs:annotation>
									<xs:documentation>Clarifies the meaning of the element.Could be first name, middle name, etc. that is defined in the List list. Omit this attribute if the type of the name element is not known.</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="ct:grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Type" type="PersonNameTypeList">
			<xs:annotation>
				<xs:documentation>Enumerated list of type of name.  example: Alias, Nick Name, former name, known as, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="PersonID" type="ct:String">
			<xs:annotation>
				<xs:documentation>A unique identifier of a person</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="PersonIDType" type="PersonIDTypeList">
			<xs:annotation>
				<xs:documentation>Type of identifier</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ID" type="ct:String">
			<xs:annotation>
				<xs:documentation>Globally unique identifier</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Usage" type="PersonNameUsageList">
			<xs:annotation>
				<xs:documentation>Usage of a person name. How is it used and for what purpose. Allows user which name in a set of names to select for a given purpose.
e.g. used for legal purposes</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Status" type="ct:StatusList">
			<xs:annotation>
				<xs:documentation>Status of the entity. e.g. Old, Current, Inactive, Active, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attributeGroup ref="ct:grValidityDate"/>
		<xs:attributeGroup ref="grNameKey"/>
		<xs:attribute ref="xlink:type"/>
		<xs:attribute ref="xlink:label"/>
		<xs:attribute ref="xlink:href"/>
		<xs:attributeGroup ref="ct:grDataQuality"/>
		<xs:attributeGroup ref="ct:grLanguageCode"/>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="OrganisationNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="NameElement" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name of the organisation. E.g. ACME Inc.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="ct:String">
							<xs:attribute name="ElementType" type="OrganisationNameElementList">
								<xs:annotation>
									<xs:documentation>Clarifies the meaning of the element. Example: name, type . Omit this attribute if the type of the name element is not known.</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="ct:grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="SubDivisionName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name of a subdivision of an organisation (e.g. department) </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="ct:String">
							<xs:attribute name="Type" type="SubDivisionTypeList">
								<xs:annotation>
									<xs:documentation>Type of sub division. e.g. department, warehouse, branch</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="ct:grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Type" type="OrganisationNameTypeList">
			<xs:annotation>
				<xs:documentation>Enumerated list of common types of aliases or name types.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="OrganisationID" type="ct:String">
			<xs:annotation>
				<xs:documentation>A unique identifier of an organisation</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="OrganisationIDType" type="OrganisationIDTypeList">
			<xs:annotation>
				<xs:documentation>Type of identifier</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ID" type="ct:String">
			<xs:annotation>
				<xs:documentation>Globally unique identifier</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Usage" type="OrganisationNameUsageList">
			<xs:annotation>
				<xs:documentation>Usage of organisation name. How is it used and for what purpose. Allows user which name in a set of names to select for a given purpose.
e.g. used for legal purposes</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Status" type="ct:StatusList">
			<xs:annotation>
				<xs:documentation>Status of the entity. e.g. Old, Current, Inactive, Active, etc</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attributeGroup ref="ct:grValidityDate"/>
		<xs:attributeGroup ref="grNameKey"/>
		<xs:attribute ref="xlink:type"/>
		<xs:attribute ref="xlink:label"/>
		<xs:attribute ref="xlink:href"/>
		<xs:attributeGroup ref="ct:grDataQuality"/>
		<xs:attributeGroup ref="ct:grLanguageCode"/>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:element name="NameLine">
		<xs:annotation>
			<xs:documentation>Define name as a free format text. Use this when the type of the entity (person or organisation) is unknown, or is not broken down into individual elements (e.g. unstructured, unparsed) or is beyond the provided types. The name represented may be formatted in the right order or may not be as it is not parsed/broken into atomic fields</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ct:String">
					<xs:attribute name="Type" type="NameLineTypeList">
						<xs:annotation>
							<xs:documentation>Type define what this free format name line could mean. For example, the Type could be "Unknown" </xs:documentation>
						</xs:annotation>
					</xs:attribute>
					<xs:attributeGroup ref="ct:grAbbreviation"/>
					<xs:attributeGroup ref="ct:grDataQuality"/>
					<xs:anyAttribute namespace="##other" processContents="lax"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="PartyName" type="PartyNameType">
		<xs:annotation>
			<xs:documentation>Container for defining a name of a Person, an Organisation or combination of the above as a joint name.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PersonName" type="PersonNameType">
		<xs:annotation>
			<xs:documentation>Person Name</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="OrganisationName" type="OrganisationNameType">
		<xs:annotation>
			<xs:documentation>Organisation Name</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>