CDT-commonTypes-v0_8_0.xsd 22.8 KB
Newer Older
PeterNiblett's avatar
PeterNiblett committed
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
<?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. 
© 2014, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TTA, TTC). All rights reserved.

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 28

	<xs:include schemaLocation="CDT-enumerationTypes-v0_8_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>
Peter Niblett's avatar
Peter Niblett committed
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 179
	
	<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>

    <!-- TODO: listOfEventCat appears twice in Table 6.3.2-1 -->
    <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
180 181

	<xs:simpleType name="scheduleEntry">
182 183 184 185
		<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
186 187
	</xs:simpleType>

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

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

PeterNiblett's avatar
PeterNiblett committed
197

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

	<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" />
			<xs:element name="requestMessageExpirationTimestamp" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="resultExpirationTimestamp" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="operationalExecutionTime" type="m2m:timestamp" minOccurs="0" />
			<xs:element name="responseMessageType" type="m2m:responseType" minOccurs="0" />
			<xs:element name="responsePersistence" type="m2m:timestamp" minOccurs="0" />
			<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
260 261
	
	<!-- m2m:batchNotify and m2m:eventNotificationCriteria are defined in the subscription resource file --> 
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283

	<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
284
    <!-- TODO: The format for attribute shown in clause 6.3.4 cannot take complex content, so it is done differently here -->
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302
	<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
303 304
	
	<!-- m2m:aggregatedNotification and m2m:Notification are in the Notification xsd file -->
305 306 307 308 309 310 311 312 313 314

	<!-- "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
315
	<!-- TODO: TS-0004 calls the member elements "name" and "type", but name and value seems more appropriate -->
316 317 318
	<xs:complexType name="anyArgType">
		<xs:sequence>
			<xs:element name="name" type="xs:NCName" />
319
			<xs:element name="value" type="xs:anyType" />
320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337
		</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" />
338
			<xs:element name="URL" type="xs:anyURI" />
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
			<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
355 356
			<xs:element name="startTime" type="m2m:timestamp" />
			<xs:element name="completeTime" type="m2m:timestamp" />
357 358 359
			<xs:element name="anyArg" type="m2m:anyArgType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
360

361
	<xs:complexType name="softwareInstallArgsType">
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 391
		<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>
392 393
	
    <!-- TODO: - TS-0004 also shows an anyArg option, but this isn't compatible with the cmdType, so has been omitted -->
394 395
	<xs:complexType name="execReqArgsListType">
		<xs:choice>
396 397 398 399 400 401 402
			<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" />
403
<!-- 			<xs:element name="anyArg" type="m2m:anyArgsListType" minOccurs="0" maxOccurs="unbounded" /> -->
404 405 406
		</xs:choice>
	</xs:complexType>

Peter Niblett's avatar
Peter Niblett committed
407
  <!-- TODO: - TS-0004 gives the datatype of name as xs:string   -->
408 409 410
	<xs:complexType name="mgmtLinkRef">
		<xs:simpleContent>
			<xs:extension base="xs:anyURI">
Peter Niblett's avatar
Peter Niblett committed
411
				<xs:attribute name="name" type="xs:NCName" use="required" />
412 413 414 415 416 417 418 419 420 421 422 423 424
				<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
425
    <!--  m2m:accessControlRule and m2m:locationRegion are defined in the accessControlPolicy xsd file -->
426

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

Peter Niblett's avatar
Peter Niblett committed
437 438 439 440 441 442 443
 <!-- 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>
444

Wolfgang Granzow's avatar
Wolfgang Granzow committed
445
	<!-- TODO: order of elements should be aligned with the one in responsePrimitive -->
446 447 448 449 450 451 452 453 454 455 456 457 458 459
	<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
460 461 462 463 464 465 466 467 468
	<!-- 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
469 470
			<xs:element name="creationTime" type="m2m:timestamp" />
			<xs:element name="lastModifiedTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
471 472 473 474 475 476 477 478 479 480
			<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
481
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
482 483 484 485 486 487 488 489 490
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="announceableResource">
		<xs:complexContent>
			<xs:extension base="m2m:regularResource">
				<xs:sequence>
491
					<xs:element name="announceTo" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
					<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
508
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
509 510 511 512 513 514 515 516 517 518
					<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
519
					<xs:element name="expirationTime" type="m2m:timestamp" />
520
					<xs:element name="announceTo" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
521 522 523 524 525 526 527 528 529 530 531 532 533 534
					<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
535
					<xs:element name="expirationTime" type="m2m:timestamp" />
PeterNiblett's avatar
PeterNiblett committed
536 537 538 539 540 541 542 543 544 545 546
					<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" />
547 548
					<xs:element name="objectIDs" type="m2m:listOfURIs" minOccurs="0" />
					<xs:element name="objectPaths" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
549 550 551 552 553 554 555 556 557 558 559
					<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" />
560 561
					<xs:element name="objectIDs" type="m2m:listOfURIs" minOccurs="0" />
					<xs:element name="objectPaths" type="m2m:listOfURIs" minOccurs="0" />
PeterNiblett's avatar
PeterNiblett committed
562 563 564 565 566 567 568
					<xs:element name="description" type="xs:string" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

</xs:schema>