CDT-commonTypes-v1_0_0.xsd 22.7 KB
Newer Older
PeterNiblett's avatar
PeterNiblett committed
1 2 3 4 5 6 7 8
<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright Notification

The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices 
contained in the original materials on any copies of the materials and that you comply strictly with these terms. 
This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of 
any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. 
Peter Niblett's avatar
Peter Niblett committed
9
© 2015, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TTA, TTC). All rights reserved.
PeterNiblett's avatar
PeterNiblett committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Notice of Disclaimer & Limitation of Liability 

The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand 
and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations. 
No recommendation as to products or vendors is made or should be implied. 

NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, 
GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY 
PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. 
NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO 
ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. 
oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER.

-->
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.onem2m.org/xml/protocols"
Peter Niblett's avatar
Peter Niblett committed
26
	xmlns:m2m="http://www.onem2m.org/xml/protocols" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
PeterNiblett's avatar
PeterNiblett committed
27

Peter Niblett's avatar
Peter Niblett committed
28
	<xs:include schemaLocation="CDT-enumerationTypes-v1_0_0.xsd" />
Peter Niblett's avatar
Peter Niblett committed
29

30 31 32
	<!--********************** -->
	<!-- oneM2M Simple Types   -->
	<!--********************** -->
33

PeterNiblett's avatar
PeterNiblett committed
34
	<xs:simpleType name="ID">
Peter Niblett's avatar
Peter Niblett committed
35
		<xs:restriction base="xs:anyURI" />
PeterNiblett's avatar
PeterNiblett committed
36
	</xs:simpleType>
Peter Niblett's avatar
Peter Niblett committed
37

PeterNiblett's avatar
PeterNiblett committed
38
	<xs:simpleType name="nodeID">
Peter Niblett's avatar
Peter Niblett committed
39
		<xs:restriction base="xs:token" />
Peter Niblett's avatar
Peter Niblett committed
40
	</xs:simpleType>
PeterNiblett's avatar
PeterNiblett committed
41

42 43
	<xs:simpleType name="deviceID">
		<xs:restriction base="xs:token">
Peter Niblett's avatar
Peter Niblett committed
44 45 46 47 48
			<xs:pattern value="urn:dev:ops:[\dABCDEFabcdef]{6}-[\w_%]+-[\w_%]+" />
			<xs:pattern value="urn:dev:os:[\dABCDEFabcdef]{6}-[\w_%]+" />
			<xs:pattern value="urn:imei:\d{15}" />
			<xs:pattern value="urn:esn:[\dABCDEFabcdef]{8}" />
			<xs:pattern value="urn:meid:[\dABCDEFabcdef]{14}" />
49 50 51
		</xs:restriction>
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
52 53 54
	<xs:simpleType name="externalID">
		<xs:restriction base="xs:token" />
	</xs:simpleType>
55

PeterNiblett's avatar
PeterNiblett committed
56
	<xs:simpleType name="requestID">
Peter Niblett's avatar
Peter Niblett committed
57
		<xs:restriction base="xs:token" />
PeterNiblett's avatar
PeterNiblett committed
58
	</xs:simpleType>
PeterNiblett's avatar
PeterNiblett committed
59 60 61 62

	<xs:simpleType name="nhURI">
		<xs:restriction base="xs:anyURI" />
	</xs:simpleType>
Peter Niblett's avatar
Peter Niblett committed
63 64 65 66
	
	 <xs:simpleType name="acpType">
        <list itemType="xs:anyURI" />
    </xs:simpleType>
PeterNiblett's avatar
PeterNiblett committed
67

Peter Niblett's avatar
Peter Niblett committed
68
    <!-- TODO: "labels" is called "labelsType" in  Table 6.3.2-1 -->
PeterNiblett's avatar
PeterNiblett committed
69
	<xs:simpleType name="labels">
Peter Niblett's avatar
Peter Niblett committed
70
		<xs:list itemType="xs:token" />
PeterNiblett's avatar
PeterNiblett committed
71 72
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
73
	<!-- TODO: this data type is not used in any of the XSD files. It is listed in TS-0004 without any given use case  -->
Peter Niblett's avatar
Peter Niblett committed
74 75 76 77 78
	<xs:simpleType name="networkaccessID">
		<xs:restriction base="xs:token">
		</xs:restriction>
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
79
	<!-- "listOfM2MID" is a space separated list of CSE-IDs and/or AE-IDs (i.e. elements of data type m2m:ID") -->
Peter Niblett's avatar
Peter Niblett committed
80 81 82
	<xs:simpleType name="listOfM2MID">
		<xs:list itemType="m2m:ID" />
	</xs:simpleType>
83

Wolfgang Granzow's avatar
Wolfgang Granzow committed
84
	<!-- auxiliary data type required to define "listOflongMin-1" below -->
Peter Niblett's avatar
Peter Niblett committed
85 86 87 88 89 90
	<xs:simpleType name="longMin-1">
		<xs:restriction base="xs:long">
			<xs:minInclusive value="-1" />
		</xs:restriction>
	</xs:simpleType>

Wolfgang Granzow's avatar
Wolfgang Granzow committed
91
	<!-- auxiliary data type required to define "listOfMinMax" below -->
Peter Niblett's avatar
Peter Niblett committed
92 93 94 95
	<xs:simpleType name="listOflongMin-1">
		<xs:list itemType="m2m:longMin-1" />
	</xs:simpleType>

Wolfgang Granzow's avatar
Wolfgang Granzow committed
96 97
	<!-- "listOfMinMax" represents a list of min and max numbers used in attributes of the [cmdhLimits] resource based on  
		type xs:long in the range -1, 0, 1, 2 ... . Unit is milliseconds. Value setting of -1 expresses infinity -->
Peter Niblett's avatar
Peter Niblett committed
98 99
	<xs:simpleType name="listOfMinMax">
		<xs:restriction base="m2m:listOflongMin-1">
Peter Niblett's avatar
Peter Niblett committed
100
			<xs:length value="2" />
Peter Niblett's avatar
Peter Niblett committed
101 102 103
		</xs:restriction>
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
104
	<!-- auxiliary data type required to define "backOffParameters" below -->
Peter Niblett's avatar
Peter Niblett committed
105 106 107 108
	<xs:simpleType name="listOfNonNegInt">
		<xs:list itemType="xs:nonNegativeInteger" />
	</xs:simpleType>

Wolfgang Granzow's avatar
Wolfgang Granzow committed
109 110
	<!-- "backOffParameters" is an ordered list of 3 nonNegativeInteger numbers: backoffTime, backoffTimeIncrement, maximumBackoffTime 
		(in that order!), all units in milliseconds -->
Peter Niblett's avatar
Peter Niblett committed
111
		
Peter Niblett's avatar
Peter Niblett committed
112 113
	<xs:simpleType name="backOffParameters">
		<xs:restriction base="m2m:listOfNonNegInt">
Peter Niblett's avatar
Peter Niblett committed
114
			<xs:length value="3" />
Peter Niblett's avatar
Peter Niblett committed
115 116
		</xs:restriction>
	</xs:simpleType>
Peter Niblett's avatar
Peter Niblett committed
117
	 
Peter Niblett's avatar
Peter Niblett committed
118
	<!-- m2m:ipv4 and m2m:ipv6 and m2m:countryCode are defined in the CDT-accessControlPolicy file -->
Peter Niblett's avatar
Peter Niblett committed
119
	
PeterNiblett's avatar
PeterNiblett committed
120 121 122 123
	<xs:simpleType name="pOAList">
		<xs:list itemType="xs:string" />
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
124
    <!--Format is YYYYMMDDThhmmss with no punctuation -->
Peter Niblett's avatar
Peter Niblett committed
125
	<xs:simpleType name="timestamp">
Peter Niblett's avatar
Peter Niblett committed
126 127 128
		<xs:restriction base="xs:string">
			<xs:pattern value="\d{4}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|30|31)T([01]\d|2[0-3])[0-5]\d[0-5]\d"></xs:pattern>
		</xs:restriction>
Peter Niblett's avatar
Peter Niblett committed
129 130 131
	</xs:simpleType>

	<xs:simpleType name="typeOfContent">
Peter Niblett's avatar
Peter Niblett committed
132 133 134 135 136
        <xs:restriction base="xs:string">
            <xs:pattern value="[\w/!#$^_.+&amp;\-]+" />
        </xs:restriction>
    </xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
137
	<xs:simpleType name="contentInfo">
Peter Niblett's avatar
Peter Niblett committed
138 139 140
		<xs:restriction base="xs:string">
			<xs:pattern value="[\w/!#$^_.+&amp;\-]+(:[0-2])?" />
		</xs:restriction>
Peter Niblett's avatar
Peter Niblett committed
141
	</xs:simpleType>
Peter Niblett's avatar
Peter Niblett committed
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
	
	<xs:simpleType name="eventCat">
        <union>
            <simpleType>
                <restriction base='m2m:stdEventCats' />
            </simpleType>
            <!-- User-defined range -->
            <simpleType>
                <restriction base='xs:integer'>
                    <xs:minInclusive value="100" />
                    <xs:maxInclusive value="999" />
                </restriction>
            </simpleType>
        </union>
    </xs:simpleType>

    <xs:simpleType name="eventCatWithDef">
        <union>
            <simpleType>
                <restriction base='m2m:eventCat' />
            </simpleType>
            <!-- User-defined range -->
            <simpleType>
                <restriction base='xs:integer'>
                    <xs:enumeration value="0" />
                </restriction>
            </simpleType>
        </union>
    </xs:simpleType>

    <xs:simpleType name="listOfEventCat">
        <list itemType="m2m:eventCat" />
    </xs:simpleType>

    <xs:simpleType name="listOfEventCatWithDef">
        <list itemType="m2m:eventCatWithDef" />
    </xs:simpleType>
Peter Niblett's avatar
Peter Niblett committed
179 180

	<xs:simpleType name="scheduleEntry">
181 182 183 184
		<xs:restriction base="xs:string">
			<xs:pattern
				value="(([*]|[1-5]?\d([,-][1-5]?\d)*)\s+){2}([*]|((1?\d|2[0-3])([,-](1?\d|2[0-3]))*))\s+([*]|(([1-9]|1\d|2\d|3[01])([,-]([1-9]|1\d|2\d|3[01]))*))\s+([*]|(([1-9]|1[0-2])([,-]([1-9]|1[0-2]))*))\s+[*]|([0-6]([,-][0-6])*)" />
		</xs:restriction>
Peter Niblett's avatar
Peter Niblett committed
185 186
	</xs:simpleType>

Peter Niblett's avatar
Peter Niblett committed
187
    <!-- TODO: triggerRecipientID is not in  Table 6.3.2-1 -->
188
	<xs:simpleType name="triggerRecipientID">
PeterNiblett's avatar
PeterNiblett committed
189 190 191
		<xs:restriction base="xs:unsignedInt" />
	</xs:simpleType>

192 193 194
	<xs:simpleType name="listOfURIs">
		<list itemType="xs:anyURI" />
	</xs:simpleType>
PeterNiblett's avatar
PeterNiblett committed
195

PeterNiblett's avatar
PeterNiblett committed
196

197
	<!--********************** -->
198
	<!-- oneM2M Complex Types -->
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

	<xs:complexType name="deliveryMetaData">
		<xs:sequence>
			<xs:sequence>
				<xs:element name="tracingOption" type="xs:boolean" />
				<xs:element name="tracingInfo" type="m2m:listOfM2MID" />
				<!-- should tracing Info be list of anyURI? -->
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="aggregatedRequest">
		<xs:sequence>
			<xs:element name="request" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="operation" type="m2m:operation" />
						<xs:element name="to" type="xs:anyURI" />
						<xs:element name="from" type="m2m:ID" />
						<xs:element name="requestIdentifier" type="m2m:requestID" />
						<xs:element name="content" type="m2m:primitiveContent" minOccurs="0" />
						<xs:element name="metaInformation" type="m2m:metaInformation" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="metaInformation">
		<xs:sequence>
			<xs:element name="resourceType" type="m2m:resourceType" minOccurs="0" />
			<xs:element name="name" type="xs:string" minOccurs="0" />
			<xs:element name="originatingTimestamp" type="m2m:timestamp" minOccurs="0" />
233
			<xs:element name="requestExpirationTimestamp" type="m2m:timestamp" minOccurs="0" />
234 235
			<xs:element name="resultExpirationTimestamp" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="operationalExecutionTime" type="m2m:timestamp" minOccurs="0" />
236
			<xs:element name="responseType" type="m2m:responseType" minOccurs="0" />
237
			<xs:element name="resultPersistence" type="m2m:timestamp" minOccurs="0" />
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
			<xs:element name="resultContent" type="m2m:resultContent" minOccurs="0" />
			<xs:element name="eventCategory" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="eventCatType" type="m2m:eventCat" />
						<xs:element name="eventCatNo" type="xs:nonNegativeInteger" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="deliveryAggregation" type="xs:boolean" minOccurs="0" />
			<xs:element name="groupRequestIdentifier" type="xs:string" minOccurs="0" />
			<xs:element name="filterCriteria" type="m2m:filterCriteria" minOccurs="0" />
			<xs:element name="discoveryResultType" type="m2m:discResType" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="primitiveContent">
		<xs:sequence>
			<xs:any namespace="http://www.onem2m.org/xml/protocols" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
Peter Niblett's avatar
Peter Niblett committed
259 260
	
	<!-- m2m:batchNotify and m2m:eventNotificationCriteria are defined in the subscription resource file --> 
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282

	<xs:complexType name="filterCriteria">
		<xs:sequence>
			<xs:element name="createdBefore" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="createdAfter" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="modifiedSince" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="unmodifiedSince" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="stateTagSmaller" type="xs:positiveInteger" minOccurs="0" />
			<xs:element name="stateTagBigger" type="xs:nonNegativeInteger" minOccurs="0" />
			<xs:element name="expireBefore" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="expireAfter" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="labels" type="m2m:labels" minOccurs="0" />
			<xs:element name="resourceType" type="m2m:resourceType" minOccurs="0" />
			<xs:element name="sizeAbove" type="xs:nonNegativeInteger" minOccurs="0" />
			<xs:element name="sizeBelow" type="xs:positiveInteger" minOccurs="0" />
			<xs:element name="contentType" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="attribute" type="m2m:attribute" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="filterUsage" type="m2m:filterUsage" minOccurs="0" />
			<xs:element name="limit" type="xs:nonNegativeInteger" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>

Peter Niblett's avatar
Peter Niblett committed
283
    <!-- TODO: The format for attribute shown in clause 6.3.4 cannot take complex content, so it is done differently here -->
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
	<xs:complexType name="attribute">
		<xs:sequence>
			<xs:element name="name" type="xs:NCName" />
			<xs:element name="value" type="xs:anyType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="attributeList">
		<xs:sequence>
			<xs:element name="attribute" type="m2m:attribute" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="scheduleEntries">
		<xs:sequence>
			<xs:element name="scheduleEntry" type="m2m:scheduleEntry" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
Peter Niblett's avatar
Peter Niblett committed
302 303
	
	<!-- m2m:aggregatedNotification and m2m:Notification are in the Notification xsd file -->
304 305 306 307 308 309 310 311 312 313

	<!-- "actionStatus" is used across mgmtObj resources -->
	<xs:complexType name="actionStatus">
		<xs:sequence>
			<xs:element name="action" type="xs:anyURI" minOccurs="0" />
			<xs:element name="status" type="m2m:status" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>


Wolfgang Granzow's avatar
Wolfgang Granzow committed
314
	<!-- TODO: TS-0004 calls the member elements "name" and "type", but name and value seems more appropriate -->
315 316 317
	<xs:complexType name="anyArgType">
		<xs:sequence>
			<xs:element name="name" type="xs:NCName" />
318
			<xs:element name="value" type="xs:anyType" />
319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="resetArgsType">
		<xs:sequence>
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="rebootArgsType">
		<xs:sequence>
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="uploadArgsType">
		<xs:sequence>
			<xs:element name="fileType" type="xs:string" />
337
			<xs:element name="URL" type="xs:anyURI" />
338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353
			<xs:element name="username" type="xs:string" />
			<xs:element name="password" type="xs:string" />
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="downloadArgsType">
		<xs:sequence>
			<xs:element name="fileType" type="xs:string" />
			<xs:element name="URL" type="xs:anyURI" />
			<xs:element name="username" type="xs:string" />
			<xs:element name="password" type="xs:string" />
			<xs:element name="filesize" type="xs:string" />
			<xs:element name="targetFile" type="xs:string" />
			<xs:element name="delaySeconds" type="xs:int" />
			<xs:element name="successURL" type="xs:anyURI" />
Peter Niblett's avatar
Peter Niblett committed
354 355
			<xs:element name="startTime" type="m2m:timestamp" />
			<xs:element name="completeTime" type="m2m:timestamp" />
356 357 358
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
359

360
	<xs:complexType name="softwareInstallArgsType">
361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
		<xs:sequence>
			<xs:element name="URL" type="xs:anyURI" />
			<xs:element name="UUID" type="xs:string" />
			<xs:element name="username" type="xs:string" />
			<xs:element name="password" type="xs:string" />
			<xs:element name="executionEnvRef" type="xs:string" />
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="softwareUpdateArgsType">
		<xs:sequence>
			<xs:element name="UUID" type="xs:string" />
			<xs:element name="version" type="xs:string" />
			<xs:element name="URL" type="xs:anyURI" />
			<xs:element name="username" type="xs:string" />
			<xs:element name="password" type="xs:string" />
			<xs:element name="executionEnvRef" type="xs:string" />
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="softwareUninstallArgsType">
		<xs:sequence>
			<xs:element name="UUID" type="xs:string" />
			<xs:element name="version" type="xs:string" />
			<xs:element name="executionEnvRef" type="xs:string" />
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
391 392
	
    <!-- TODO: - TS-0004 also shows an anyArg option, but this isn't compatible with the cmdType, so has been omitted -->
393 394
	<xs:complexType name="execReqArgsListType">
		<xs:choice>
395 396 397 398 399 400 401
			<xs:element name="reset" type="m2m:resetArgsType" maxOccurs="unbounded" />
			<xs:element name="reboot" type="m2m:rebootArgsType" maxOccurs="unbounded" />
			<xs:element name="upload" type="m2m:uploadArgsType" maxOccurs="unbounded" />
			<xs:element name="download" type="m2m:downloadArgsType" maxOccurs="unbounded" />
			<xs:element name="softwareInstall" type="m2m:softwareInstallArgsType" maxOccurs="unbounded" />
			<xs:element name="softwareUpdate" type="m2m:softwareUpdateArgsType" maxOccurs="unbounded" />
			<xs:element name="softwareUninstall" type="m2m:softwareUninstallArgsType" maxOccurs="unbounded" />
402
<!-- 			<xs:element name="anyArg" type="m2m:anyArgsListType" minOccurs="0" maxOccurs="unbounded" /> -->
403 404 405
		</xs:choice>
	</xs:complexType>

Peter Niblett's avatar
Peter Niblett committed
406
  <!-- TODO: - TS-0004 gives the datatype of name as xs:string   -->
407 408 409
	<xs:complexType name="mgmtLinkRef">
		<xs:simpleContent>
			<xs:extension base="xs:anyURI">
Peter Niblett's avatar
Peter Niblett committed
410
				<xs:attribute name="name" type="xs:NCName" use="required" />
411 412 413 414 415 416 417 418 419 420 421 422 423
				<xs:attribute name="type" type="m2m:mgmtDefinition" use="required" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="resourceWrapper">
		<xs:complexContent>
			<xs:extension base="m2m:resource">
				<xs:attribute name="URI" type="xs:anyURI" use="required" />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

Peter Niblett's avatar
Peter Niblett committed
424
    <!--  m2m:accessControlRule and m2m:locationRegion are defined in the accessControlPolicy xsd file -->
425

Peter Niblett's avatar
Peter Niblett committed
426
  <!-- TODO: - TS-0004 gives the datatype of name as xs:string   -->
427 428 429
	<xs:complexType name="childResourceRef">
		<xs:simpleContent>
			<xs:extension base="xs:anyURI">
Peter Niblett's avatar
Peter Niblett committed
430
				<xs:attribute name="resourceName" type="xs:NCName" use="required" />
431 432 433 434 435
				<xs:attribute name="type" type="m2m:resourceType" use="required" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

Peter Niblett's avatar
Peter Niblett committed
436 437 438 439 440 441 442
 <!-- TODO: - This is in TS-0004 but is not used by any other schema  -->
    <xs:complexType name="responseTypeInfo">
        <xs:sequence>
            <xs:element name="responseType" type="m2m:responseType" />
            <xs:element name="notificationURI" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
443

Wolfgang Granzow's avatar
Wolfgang Granzow committed
444
	<!-- TODO: order of elements should be aligned with the one in responsePrimitive -->
445 446 447 448 449 450 451 452 453 454 455 456 457 458
	<xs:complexType name="operationResult">
		<xs:sequence>
			<xs:element name="content" type="m2m:primitiveContent" minOccurs="0" />
			<xs:element name="eventCategory" type="m2m:eventCat" minOccurs="0" />
			<xs:element name="from" type="m2m:ID" minOccurs="0" />
			<xs:element name="originatingTimestamp" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="requestIdentifier" type="m2m:requestID" />
			<xs:element name="resultExpirationTimestamp" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="to" type="xs:anyURI" minOccurs="0" />
			<xs:element name="responseStatusCode" type="m2m:responseStatusCode" />
		</xs:sequence>
	</xs:complexType>


PeterNiblett's avatar
PeterNiblett committed
459 460 461 462 463 464 465 466 467
	<!-- Resource type definitions. These types include the "common attributes" that are used by oneM2M Resources Each oneM2M 
		Resource has a resource type that is defined in a separate schema, but each resource type extends one of the types that is 
		defined below -->

	<xs:complexType name="resource">
		<xs:sequence>
			<xs:element name="resourceType" type="m2m:resourceType" />
			<xs:element name="resourceID" type="m2m:ID" />
			<xs:element name="parentID" type="m2m:nhURI" />
Peter Niblett's avatar
Peter Niblett committed
468 469
			<xs:element name="creationTime" type="m2m:timestamp" />
			<xs:element name="lastModifiedTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
470 471 472 473 474 475 476 477 478 479
			<xs:element name="labels" type="m2m:labels" minOccurs="0" />
		</xs:sequence>
		<xs:attribute name="name" type="xs:token" use="required" />
	</xs:complexType>

	<xs:complexType name="regularResource">
		<xs:complexContent>
			<xs:extension base="m2m:resource">
				<xs:sequence>
					<xs:element name="accessControlPolicyIDs" type="m2m:acpType" minOccurs="0" />
Peter Niblett's avatar
Peter Niblett committed
480
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
481 482 483 484 485 486 487 488 489
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announceableResource">
		<xs:complexContent>
			<xs:extension base="m2m:regularResource">
				<xs:sequence>
490
					<xs:element name="announceTo" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506
					<xs:element name="announcedAttribute" minOccurs="0">
						<xs:simpleType>
							<xs:list itemType="xs:token" />
						</xs:simpleType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announcedResource">
		<xs:complexContent>
			<!-- AccessControlPolicyIDs is mandatory for announced resources but not for the original ones -->
			<xs:extension base="m2m:resource">
				<xs:sequence>
					<xs:element name="accessControlPolicyIDs" type="m2m:acpType" />
Peter Niblett's avatar
Peter Niblett committed
507
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
508 509 510 511 512 513 514 515 516 517
					<xs:element name="link" type="xs:anyURI" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announceableSubordinateResource">
		<xs:complexContent>
			<xs:extension base="m2m:resource">
				<xs:sequence>
Peter Niblett's avatar
Peter Niblett committed
518
					<xs:element name="expirationTime" type="m2m:timestamp" />
519
					<xs:element name="announceTo" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
520 521 522 523 524 525 526 527 528 529 530 531 532 533
					<xs:element name="announcedAttribute" minOccurs="0">
						<xs:simpleType>
							<xs:list itemType="xs:token" />
						</xs:simpleType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announcedSubordinateResource">
		<xs:complexContent>
			<xs:extension base="m2m:resource">
				<xs:sequence>
Peter Niblett's avatar
Peter Niblett committed
534
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
535 536 537 538 539 540 541 542 543 544 545
					<xs:element name="link" type="xs:anyURI" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="mgmtResource">
		<xs:complexContent>
			<xs:extension base="m2m:announceableResource">
				<xs:sequence>
					<xs:element name="mgmtDefinition" type="m2m:mgmtDefinition" />
546 547
					<xs:element name="objectIDs" type="m2m:listOfURIs" minOccurs="0" />
					<xs:element name="objectPaths" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
548 549 550 551 552 553 554 555 556 557 558
					<xs:element name="description" type="xs:string" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announcedMgmtResource">
		<xs:complexContent>
			<xs:extension base="m2m:announcedResource">
				<xs:sequence>
					<xs:element name="mgmtDefinition" type="m2m:mgmtDefinition" />
559 560
					<xs:element name="objectIDs" type="m2m:listOfURIs" minOccurs="0" />
					<xs:element name="objectPaths" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
561 562 563 564 565 566 567
					<xs:element name="description" type="xs:string" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

</xs:schema>