Sei sulla pagina 1di 236

Content Management Interoperability

Services (CMIS) Version 1.0


Committee Draft 06
11 January 2010
Specification URIs:
This Version:
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd06/cmis-spec-v1.0.doc (Authoritative)
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd06/cmis-spec-v1.0.html
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd06/cmis-spec-v1.0.pdf
Previous Version:
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.doc (Authoritative)
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.html
http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.pdf
Latest Version:
http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.doc (Authoritative)
http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.html
http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.pdf
Technical Committee:
OASIS Content Management Interoperability Services (CMIS) TC
Chair(s):
David Choy, EMC
Editor(s):
Al Brown, IBM
Ethan Gur-Esh, Microsoft
Ryan McVeigh, Oracle
Florian Mller, OpenText
Related work:
N/A
Declared XML Namespace(s):
http://docs.oasis-open.org/ns/cmis/core/200908/
http://docs.oasis-open.org/ns/cmis/restatom/200908/
http://docs.oasis-open.org/ns/cmis/messaging/200908/
http://docs.oasis-open.org/ns/cmis/ws/200908/
http://docs.oasis-open.org/ns/cmis/link/200908/

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 1 of 236

Abstract:
The Content Management Interoperability Services (CMIS) standard defines a domain model and
Web Services and Restful AtomPub bindings that can be used by applications to work with one or
more Content Management repositories/systems.
The CMIS interface is designed to be layered on top of existing Content Management systems
and their existing programmatic interfaces. It is not intended to prescribe how specific features
should be implemented within those CM systems, not to exhaustively expose all of the CM
systems capabilities through the CMIS interfaces. Rather, it is intended to define a
generic/universal set of capabilities provided by a CM system and a set of services for working
with those capabilities.
Status:
This document was last revised or approved by the CMIS TC on the above date. The level of
approval is also listed above. Check the Latest Version or Latest Approved Version location
noted above for possible later revisions of this document.
Technical Committee members should send comments on this specification to the Technical
Committees email list. Others should send comments to the Technical Committee by using the
Send A Comment button on the Technical Committees web page at http://www.oasisopen.org/committees/cmis/.
For information on whether any patents have been disclosed that may be essential to
implementing this specification, and any offers of patent licensing terms, please refer to the
Intellectual Property Rights section of the Technical Committee web page (http://www.oasisopen.org/committees/cmis/ipr.php).
The non-normative errata page for this specification is located at http://www.oasisopen.org/committees/cmis/.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 2 of 236

Notices
Copyright OASIS 2009, 2010. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual
Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that
comment on or otherwise explain it or assist in its implementation may be prepared, copied, published,
and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice
and this section are included on all such copies and derivative works. However, this document itself may
not be modified in any way, including by removing the copyright notice or references to OASIS, except as
needed for the purpose of developing any document or deliverable produced by an OASIS Technical
Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must
be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors
or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS
DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would
necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard,
to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to
such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that
produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of
any patent claims that would necessarily be infringed by implementations of this specification by a patent
holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR
Mode of the OASIS Technical Committee that produced this specification. OASIS may include such
claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that
might be claimed to pertain to the implementation or use of the technology described in this document or
the extent to which any license under such rights might or might not be available; neither does it
represent that it has made any effort to identify any such rights. Information on OASIS' procedures with
respect to rights in any document or deliverable produced by an OASIS Technical Committee can be
found on the OASIS website. Copies of claims of rights made available for publication and any
assurances of licenses to be made available, or the result of an attempt made to obtain a general license
or permission for the use of such proprietary rights by implementers or users of this OASIS Committee
Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no
representation that any information or list of intellectual property rights will at any time be complete, or
that any claims in such list are, in fact, Essential Claims.
The names "OASIS", CMIS are trademarks of OASIS, the owner and developer of this specification, and
should be used only to refer to the organization and its official outputs. OASIS welcomes reference to,
and implementation and use of, specifications, while reserving the right to enforce its marks against
misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 3 of 236

Table of Contents
1

Introduction ......................................................................................................................................... 10
1.1 Terminology ...................................................................................................................................... 10
1.2 Normative References ...................................................................................................................... 10
1.3 Non-Normative References .............................................................................................................. 10
2
Domain Model .................................................................................................................................... 11
2.1 Data Model ....................................................................................................................................... 11
2.1.1 Repository ................................................................................................................................. 11
2.1.1.1 Optional Capabilities .......................................................................................................................... 11

Error! Hyperlink reference not valid.


2.1.1.2 Implementation Information ............................................................................................................... 14

2.1.2 Object ........................................................................................................................................ 14


2.1.2.1 Property .............................................................................................................................................15

2.1.3 Object-Type ............................................................................................................................... 16


2.1.3.1 Object-Type Hierarchy and Inheritance ............................................................................................. 16
2.1.3.2 Object-Type Attributes ....................................................................................................................... 17
2.1.3.3 Object-Type Property Definitions ....................................................................................................... 19

2.1.4 Document Object ....................................................................................................................... 23


2.1.4.1 Content Stream .................................................................................................................................. 23
2.1.4.2 Renditions ..........................................................................................................................................24
2.1.4.3 Document Object-Type Definition ...................................................................................................... 25

2.1.5 Folder Object ............................................................................................................................. 33


2.1.5.1 File-able Objects ................................................................................................................................33
2.1.5.2 Folder Hierarchy ................................................................................................................................ 34
2.1.5.3 Paths .................................................................................................................................................. 35
2.1.5.4 Folder Object-Type Definition ............................................................................................................ 36

2.1.6 Relationship Object ................................................................................................................... 40


2.1.6.1 Relationship Object-Type Definition ................................................................................................... 41

2.1.7 Policy Object.............................................................................................................................. 45


2.1.7.1 Policy Object-Type Definition ............................................................................................................. 46

2.1.8 Access Control .......................................................................................................................... 50


2.1.8.1 ACL, ACE, Principal, and Permission ................................................................................................ 50
2.1.8.2 CMIS Permissions ............................................................................................................................. 50
2.1.8.3 ACL Capabilities ................................................................................................................................ 50

2.1.9 Versioning.................................................................................................................................. 59
2.1.9.1 Version Series....................................................................................................................................59
2.1.9.2 Latest Version ....................................................................................................................................59
2.1.9.3 Major Versions ...................................................................................................................................59
2.1.9.4 Services that modify Version Series .................................................................................................. 60
2.1.9.5 Versioning Properties on Document Objects ..................................................................................... 61
2.1.9.6 Document Creation and Initial Versioning State................................................................................. 62
2.1.9.7 Version Specific/Independent membership in Folders ....................................................................... 62
2.1.9.8 Version Specific/Independent membership in Relationships .............................................................62
2.1.9.9 Versioning visibility in Query Services ............................................................................................... 63

2.1.10 Query ....................................................................................................................................... 63


2.1.10.1 Relational View Projection of the CMIS Data Model ........................................................................ 64
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 4 of 236

2.1.10.2 Query Language Definition .............................................................................................................. 65


2.1.10.3 Escaping ..........................................................................................................................................74

2.1.11 Change Log ............................................................................................................................. 74


2.1.11.1 Completeness of the Change Log....................................................................................................75
2.1.11.2 Change Log Token .......................................................................................................................... 75
2.1.11.3 Change Event .................................................................................................................................. 75

2.2 Services ............................................................................................................................................ 75


2.2.1 Common Service Elements ....................................................................................................... 76
2.2.1.1 Paging ................................................................................................................................................76
2.2.1.2 Retrieving additional information on objects in CMIS service calls ....................................................76
2.2.1.3 Change Tokens.................................................................................................................................. 78
2.2.1.4 Exceptions .........................................................................................................................................79
2.2.1.5 ACLs ..................................................................................................................................................82

2.2.2 Repository Services .................................................................................................................. 82


2.2.2.1 getRepositories ..................................................................................................................................82
2.2.2.2 getRepositoryInfo ............................................................................................................................... 83
2.2.2.3 getTypeChildren................................................................................................................................. 84
2.2.2.4 getTypeDescendants ......................................................................................................................... 85
2.2.2.5 getTypeDefinition ............................................................................................................................... 86

2.2.3 Navigation Services ................................................................................................................... 86


2.2.3.1 getChildren ........................................................................................................................................86
2.2.3.2 getDescendants ................................................................................................................................. 87
2.2.3.3 getFolderTree ....................................................................................................................................88
2.2.3.4 getFolderParent ................................................................................................................................. 89
2.2.3.5 getObjectParents ............................................................................................................................... 90
2.2.3.6 getCheckedOutDocs .......................................................................................................................... 91

2.2.4 Object Services ......................................................................................................................... 92


2.2.4.1 createDocument................................................................................................................................. 92
2.2.4.2 createDocumentFromSource ............................................................................................................. 93
2.2.4.3 createFolder .......................................................................................................................................94
2.2.4.4 createRelationship ............................................................................................................................. 95
2.2.4.5 createPolicy .......................................................................................................................................96
2.2.4.6 getAllowableActions ........................................................................................................................... 97
2.2.4.7 getObject ...........................................................................................................................................97
2.2.4.8 getProperties......................................................................................................................................98
2.2.4.9 getObjectByPath ................................................................................................................................ 99
2.2.4.10 getContentStream ............................................................................................................................ 99
2.2.4.11 getRenditions ................................................................................................................................. 100
2.2.4.12 updateProperties............................................................................................................................100
2.2.4.13 moveObject .................................................................................................................................... 101
2.2.4.14 deleteObject ................................................................................................................................... 102
2.2.4.15 deleteTree ...................................................................................................................................... 102
2.2.4.16 setContentStream .......................................................................................................................... 103
2.2.4.17 deleteContentStream ..................................................................................................................... 104

2.2.5 Multi-filing Services ................................................................................................................. 104


2.2.5.1 addObjectToFolder .......................................................................................................................... 104
2.2.5.2 removeObjectFromFolder ................................................................................................................ 105

2.2.6 Discovery Services .................................................................................................................. 105


2.2.6.1 query ................................................................................................................................................ 105
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 5 of 236

2.2.6.2 getContentChanges ......................................................................................................................... 106

2.2.7 Versioning Services ................................................................................................................. 107


2.2.7.1 checkOut .......................................................................................................................................... 108
2.2.7.2 cancelCheckOut...............................................................................................................................108
2.2.7.3 checkIn ............................................................................................................................................ 108
2.2.7.4 getObjectOfLatestVersion ................................................................................................................ 109
2.2.7.5 getPropertiesOfLatestVersion .......................................................................................................... 110
2.2.7.6 getAllVersions .................................................................................................................................. 111

2.2.8 Relationship Services .............................................................................................................. 111


2.2.8.1 getObjectRelationships .................................................................................................................... 111

2.2.9 Policy Services ........................................................................................................................ 113


2.2.9.1 applyPolicy ....................................................................................................................................... 113
2.2.9.2 removePolicy ................................................................................................................................... 113
2.2.9.3 getAppliedPolicies............................................................................................................................113

2.2.10 ACL Services ......................................................................................................................... 114


2.2.10.1 getACL ........................................................................................................................................... 114
2.2.10.2 applyACL ....................................................................................................................................... 114

Restful AtomPub Binding ................................................................................................................. 116


3.1 Overview ......................................................................................................................................... 116
3.1.1 Namespaces............................................................................................................................ 116
3.1.2 Authentication .......................................................................................................................... 116
3.1.3 Response Formats .................................................................................................................. 116
3.1.4 Optional Arguments ................................................................................................................. 117
3.1.5 Errors and Exceptions ............................................................................................................. 117
3.1.6 Renditions................................................................................................................................ 117
3.1.7 Content Streams ..................................................................................................................... 117
3.1.8 Paging of Feeds ...................................................................................................................... 117
3.1.9 Services not Exposed.............................................................................................................. 117
3.2 HTTP............................................................................................................................................... 118
3.2.1 Entity Tag ................................................................................................................................ 118
3.2.2 HTTP Range............................................................................................................................ 118
3.2.3 HTTP OPTIONS Method ......................................................................................................... 118
3.2.4 HTTP Status Codes ................................................................................................................ 118
3.2.4.1 CommonGeneral CMIS Exceptions .................................................................................................119
3.2.4.2 OtherSpecific Exceptions .................................................................................................................119
3.2.4.3 Notable HTTP Status Codes ............................................................................................................ 119

3.3 Media Types ................................................................................................................................... 119


3.3.1 CMIS Atom .............................................................................................................................. 120
3.3.2 CMIS Query ............................................................................................................................. 121
3.3.3 CMIS Allowable Actions .......................................................................................................... 121
3.3.4 CMIS Tree ............................................................................................................................... 122
3.3.5 CMIS ACL................................................................................................................................ 127
3.4 Atom Extensions for CMIS.............................................................................................................. 127
3.4.1 Atom Element Extensions ....................................................................................................... 127
3.4.1.1 AtomPub Workspace ....................................................................................................................... 127
3.4.1.2 Atom Feed ....................................................................................................................................... 127
3.4.1.3 Atom Entry ....................................................................................................................................... 128
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 6 of 236

3.4.2 Attributes ................................................................................................................................. 128


3.4.2.1 cmisra:id .......................................................................................................................................... 128
3.4.2.2 cmisra:renditionKind ........................................................................................................................ 129

3.4.3 CMIS Link Relations ................................................................................................................ 129


3.4.3.1 Existing Link Relations ..................................................................................................................... 130
3.4.3.2 Hierarchy Navigation Internet Draft Link Relations .......................................................................... 131
3.4.3.3 Versioning Internet Draft Link Relations ........................................................................................... 131
3.4.3.4 CMIS Specific Link Relations ........................................................................................................... 132

3.5 Atom Resources ............................................................................................................................. 133


3.5.1 Feeds....................................................................................................................................... 133
3.5.2 Entries ..................................................................................................................................... 134
3.5.2.1 Hierarchical Atom Entries ................................................................................................................ 135

3.6 AtomPub Service Document (Repository) ...................................................................................... 137


3.6.1 URI Templates ........................................................................................................................ 138
3.6.1.1 Object By Id ..................................................................................................................................... 140
3.6.1.2 Object By Path ................................................................................................................................. 140
3.6.1.3 Query ............................................................................................................................................... 141
3.6.1.4 Type By Id ........................................................................................................................................ 142

3.6.2 HTTP Methods ........................................................................................................................ 143


3.6.2.1 GET ................................................................................................................................................. 143

3.7 Service Collections ......................................................................................................................... 143


3.7.1 Root Folder Collection ............................................................................................................. 143
3.7.2 Query Collection ...................................................................................................................... 143
3.7.2.1 POST ............................................................................................................................................... 144

3.7.3 Checked Out Collection........................................................................................................... 146


3.7.3.1 GET ................................................................................................................................................. 146
3.7.3.2 POST ............................................................................................................................................... 147

3.7.4 Unfiled Collection .................................................................................................................... 151


3.7.4.1 GETPOST ........................................................................................................................................ 151

3.7.4.2 POST5 Types Children Collection ....................................................................................... 155


3.7.5 Types Children Collection.1 GET ........................................................................................................ 156

3.7.5.1 GET8 Collections ...................................................................................................................... 156


3.8 Collections.1 Relationships Collection ....................................................................................... 156
3.8.1 Relationships Collection.1 GET .......................................................................................................... 157
3.8.1.1 GET2 POST ..................................................................................................................................... 157

3.8.1.2 POSTFolder Children Collection .......................................................................................... 160


3.8.2 Folder Children Collection.1 GET ....................................................................................................... 161
3.8.2.1 GET2 POST ..................................................................................................................................... 162

3.8.2.2 POST3 Policies Collection ................................................................................................... 171


3.8.3 Policies Collection.1 GET ................................................................................................................... 171
3.8.3.1 GET2 POST ..................................................................................................................................... 172
3.8.3.2 POST3 DELETE ..............................................................................................................................172

3.9 Feeds .............................................................................................................................................. 174


3.9.1 Object Parents Feed ............................................................................................................... 174
3.9.1.1 GET ................................................................................................................................................. 177

3.9.2 Changes .................................................................................................................................. 177


3.9.2.1 GET ................................................................................................................................................. 183
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 7 of 236

3.9.3 Folder Descendants ................................................................................................................ 183


3.9.3.1 GET ................................................................................................................................................. 189
3.9.3.2 DELETE ........................................................................................................................................... 189

3.9.4 Folder Tree .............................................................................................................................. 190


3.9.4.1 GET ................................................................................................................................................. 193
3.9.4.2 DELETE ........................................................................................................................................... 193

3.9.5 AllVersions Feed ..................................................................................................................... 193


3.9.5.1 GET ................................................................................................................................................. 195
3.9.5.2 DELETE ........................................................................................................................................... 195

3.9.6 Type Descendants Feed ......................................................................................................... 196


3.9.6.1 GET ................................................................................................................................................. 204

3.10 Resources ..................................................................................................................................... 204


3.10.1 Type Entry ............................................................................................................................. 204
3.10.1.1 GET ............................................................................................................................................... 205

3.10.2 Document Entry ..................................................................................................................... 206


3.10.2.1 GET ............................................................................................................................................... 207
3.10.2.2 PUT ................................................................................................................................................ 209
3.10.2.3 DELETE ......................................................................................................................................... 209

3.10.3 Document Private Working Copy (PWC) Entry ..................................................................... 209


3.10.3.1 GET ............................................................................................................................................... 210
3.10.3.2 PUT ................................................................................................................................................ 212
3.10.3.3 DELETE ......................................................................................................................................... 213

Success HTTP code: 204 ........................................................................................ 3.10.4 Folder Entry


.......................................................................................................................................................... 213
3.10.4 Folder Entry.1 GET ........................................................................................................................... 214
3.10.4.1 GET2 PUT ..................................................................................................................................... 215
3.10.4.2 PUT3 DELETE ............................................................................................................................... 216

3.10.4.3 DELETE5 Relationship Entry ............................................................................................. 216


3.10.5 Relationship Entry.1 GET ................................................................................................................. 216
3.10.5.1 GET2 PUT ..................................................................................................................................... 218
3.10.5.2 PUT3 DELETE ............................................................................................................................... 218

3.10.5.3 DELETE6 Policy Entry ....................................................................................................... 218


3.10.6 Policy Entry.1 GET............................................................................................................................ 219
3.10.6.1 GET2 PUT ..................................................................................................................................... 220
3.10.6.2 PUT3 DELETE ............................................................................................................................... 220

3.10.6.3 DELETE7 Content Stream ................................................................................................. 221


3.10.7 Content Stream.1 GET ..................................................................................................................... 221
3.10.7.1 GET2 PUT ..................................................................................................................................... 221
3.10.7.2 PUT3 DELETE ............................................................................................................................... 221

3.10.7.3 DELETE8 ACL Resource ................................................................................................... 221


3.10.8 ACL Resource.1 GET ....................................................................................................................... 222

3.10.8.1 GET ................................................................................................................................................. 4

Web Services Binding ...................................................................................................................... 223


4...............................................................................................................................Web Services Binding
............................................................................................................................................... 4.1 Overview
.............................................................................................................................................................. 223
4.1 Overview.1 WS-I......................................................................................................................... 223
4.1.1 WS-I2 Authentication ............................................................................................................... 223
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 8 of 236

4.1.2 Authentication3 Content Transfer............................................................................................ 223


4.1.3 Content Transfer4 Reporting Errors ........................................................................................ 223
4.1.4 Reporting Errors ........................................................................4.2 Web Services Binding Mapping
.............................................................................................................................................................. 223
4.2 Web3 Additions to the Services Binding Mappingsection .............................................................. 223
4.3 Additions to the Services section .......................... 4.3.1 updateProperties and checkIn Semantics
.......................................................................................................................................................... 223
4.3.1 updateProperties and checkIn Semantics.................................................. 4.3.2 Content Ranges
.......................................................................................................................................................... 223
4.3.2 Content Ranges3 Extensions .................................................................................................. 224
4.3.3 Extensions4 Web Services Specific Structures ...................................................................... 224
4.3.4 Web Services Specific Structures.1 cmisFaultType and cmisFault..................................................... 224
4.3.4.1 cmisFaultType and cmisFault2 cmisRepositoryEntryType ............................................................... 224
4.3.4.2 cmisRepositoryEntryType3 cmisTypeContainer .............................................................................. 224
4.3.4.3 cmisTypeContainer4 cmisTypeDefinitionListType ........................................................................... 224
4.3.4.4 cmisTypeDefinitionListType ................. 4.3.4.5 cmisObjectInFolderType, cmisObjectParentsType and
cmisObjectInFolderContainerType .............................................................................................................. 224
4.3.4.5 cmisObjectInFolderType, cmisObjectParentsType and cmisObjectInFolderContainerType ....... 4.3.4.6
cmisObjectListType and cmisObjectInFolderListType ................................................................................. 224
4.3.4.6 cmisObjectListType and cmisObjectInFolderListType ....................... 4.3.4.7 cmisContentStreamType
..................................................................................................................................................................... 225
4.3.4.7 cmisContentStreamType8 cmisACLType ........................................................................................ 225
4.3.4.8 cmisACLType9 cmisExtensionType................................................................................................. 225

4.3.4.9 cmisExtensionType ........................................................................................................................... 5

IANA Considerations ........................................................................................................................ 226


5................................................................................................................................IANA Considerations
....................................................................................................................5.1 Content-Type Registration
.............................................................................................................................................................. 226
5.1 Content-Type Registration.1 CMIS Query ................................................................................. 226
5.1.12 CMIS QueryAllowableActions ............................................................................................... 226
5.1.23 CMIS AllowableActionsTree .................................................................................................. 227
5.1.34 CMIS TreeAtom ..................................................................................................................... 228
5.1.45 CMIS AtomACL ..................................................................................................................... 229
5.1.5 CMIS ACL ..................................................................................................................... 6 Conformance
.................................................................................................................................................................. 231
6 Conformance .............................................................................................................................................A.

Acknowledgements .......................................................................................................................... 233


A. Acknowledgements .............................................................................................................................B.

Non-Normative Text ......................................................................................................................... 235


B. Non-Normative Text ........................................................................................................................... C.

Revision History................................................................................................................................ 236


Error! Hyperlink reference not valid.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 9 of 236

1 Introduction

2
3
4

The Content Management Interoperability Services (CMIS) standard defines a domain model and set of
bindings such as Web Services and ReSTful AtomPub that can be used by applications to work with one
or more Content Management repositories/systems.

5
6
7
8
9

The CMIS interface is designed to be layered on top of existing Content Management systems and their
existing programmatic interfaces. It is not intended to prescribe how specific features should be
implemented within those CM systems, nor to exhaustively expose all of the CM systems capabilities
through the CMIS interfaces. Rather, it is intended to define a generic/universal set of capabilities
provided by a CM system and a set of services for working with those capabilities.

10

1.1 Terminology

11
12
13

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD
NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described
in RFC2119.

14

1.2 Normative References

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

[RFC4287]
[RFC5023]
[RFC2616]

[RFC2119]
[RFC4918]
[RFC3986]
[CMISDM]

M. Nottingham, R. Sayre, Atom Syndication Format,


http://www.ietf.org/rfc/rfc4287.txt, December 2005
J. Gregorio, B. de hOra, Atom Publishing Protocol,
http://www.ietf.org/rfc/rfc5023.txt, October 2007
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. BernersLee, Hypertext Transfer Protocol --HTTP/1.1, http://www.ietf.org/rfc/rfc2616.txt,
June 1999
S. Bradner, Key words for use in RFCs to Indicate Requirement Levels,
http://www.ietf.org/rfc/rfc2119.txt, March 1997
L. Dusseault, HTTP Extensions for Web Distributed Authoring and Versioning
(WebDAV), June 2007
T. Berners-Lee, R. Fielding, L. Masinter, Unified Resource Identifier, January
2005
OASIS, Committee Draft 0.63, Content Management Interoperability Services
(CMIS) Domain Model, March 2009

1.3 Non-Normative References

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 10 of 236

31

2 Domain Model

32

2.1 Data Model

33
34
35
36
37
38
39

CMIS provides an interface for an application to access a Repository. To do so, CMIS specifies a core
data model that defines the persistent information entities that are managed by the repository, and
specifies a set of basic services that an application can use to access and manipulate these entities. In
accordance with the CMIS objectives, this data model does not cover all the concepts that a full-function
ECM repository typically supports. Specifically, transient entities (such as programming interface objects),
administrative entities (such as user profiles), and extended concepts (such as compound or virtual
document, work flow and business process, event and subscription) are not included.

40
41
42
43
44
45
46
47
48
49

However, when an application connects to a CMIS service endpoint, the same endpoint MAY provide
access to more than one CMIS repository. (How an application obtains a CMIS service endpoint is
outside the scope of CMIS. How the application connects to the endpoint is a part of the protocol that the
application uses.) An application MUST use the CMIS Get Repositories service (getRepositories) to
obtain a list of repositories that are available at that endpoint. The Repository Identity MUST uniquely
identify an available repository at this service endpoint. Both the repository name and the repository
identity are opaque to CMIS. Aside from the Get Repositories service, all other CMIS services are
single-repository-scoped, and require a Repository Identity as an input parameter. In other words, except
for the Get Repositories service, multi-repository and inter-repository operations are not supported by
CMIS.

50

2.1.1 Repository

51
52

The repository itself is described by the CMIS Get Repository Information service. The service output is
fully described in section 2.2.2.2 getRepositoryInfo.

53

2.1.1.1 Optional Capabilities

54
55
56
57
58
59
60

Commercial ECM repositories vary in their designs. Moreover, some repositories are designed for a
specific application domain and may not provide certain capabilities that are not needed for their targeted
domain. Thus, a repository implementation may not necessarily be able to support all CMIS capabilities.
A few CMIS capabilities are therefore optional for a repository to be compliant. A repositorys support for
each of these optional capabilities is discoverable using the getRepositoryInfo service. The following is
the list of these optional capabilities. All capabilities are Boolean (i.e. the Repository either supports the
capability entirely or not at all) unless otherwise noted.

61
62
63

Navigation Capabilities:
capabilityGetDescendants

64
65

Ability for an application to enumerate the descendants of a folder via the getDescendants
service.

66

See section: 2.2.3.2 getDescendants

67
68

capabilityGetFolderTree

69

Ability for an application to retrieve the folder tree via the getFolderTree service.

70

See section: 2.2.3.1 getFolderTree

71
72
73

Object Capabilities:
capabilityContentStreamUpdatability (enumCapabilityContentStreamUpdates)
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 11 of 236

74
75

Indicates the support a repository has for updating a documents content stream. Valid values
are:

76

none: The content stream may never be updated.

77

anytime: The content stream may be updated any time.

78
79

pwconly: The content stream may be updated only when checked out. The abbreviation
PWC is described in section 2.1.9 Versioning.

80

See Section: 2.1.4.1 Content Stream

81
82
83
84

capabilityChanges (enumCapabilityChanges)
Indicates what level of changes (if any) the repository exposes via the change log service. Valid
values are:

85

none: The repository does not support the change log feature.

86
87

objectidsonly: The change log can return only the ObjectIDs for changed objects in
the repository and an indication of the type of change, not details of the actual change.

88
89

properties: The change log can return properties and the ObjectID for the changed
objects

90
91

all: The change log can return the ObjectIDs for changed objects in the repository and
more information about the actual change

92

See Section: 2.1.11 Change Log

93
94
95

capabilityRenditions (enumCapabilityRendition)
Indicates whether or not the repository exposes renditions of document or folder objects.

96

none: The repository does not expose renditions at all.

97

read: Renditions are provided by the repository and readable by the client.

98
99
100

Filing Capabilities:
capabilityMultifiling

101

Ability for an application to file a document or other file-able object in more than one folder

102

See Section: 2.1.5 Folder Object

103
104

capabilityUnfiling

105

Ability for an application to leave a document or other file-able object not filed in any folder

106

See Section: 2.1.5 Folder Object

107
108

capabilityVersionSpecificFiling

109

Ability for an application to file individual versions (i.e., not all versions) of a document in a folder

110

See Section: 2.1.9 Versioning

111
112
113

Versioning Capabilities:
capabilityPWCUpdatable

114

Ability for an application to update the Private Working Copy of a checked-out document

115

See Section: 2.1.9 Versioning


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 12 of 236

116
117

capabilityPWCSearchable

118
119

Ability of the Repository to include the "Private Working Copy" of checked-out documents in
query search scope; otherwise PWC's are not searchable

120

See Section: 2.1.9 Versioning

121
122

capabilityAllVersionsSearchable

123
124
125

Ability of the Repository to include non-latestall versions of document in query search scope;
otherwise only.If False, typically either the latest or the latest major version of each document
iswill be searchable.

126

See Section: 2.1.9 Versioning

127
128
129
130

Query Capabilities:
capabilityQuery (enumCapabilityQuery)
Indicates the types of queries that the Repository has the ability to fulfill. Query support levels are:

131

none: No queries of any kind can be fulfilled.

132
133

metadataonly: Only queries that filter based on object properties can be fulfilled.
Specifically, the CONTAINS() predicate function is not supported.

134
135
136

fulltextonly: Only queries that filter based on the full-text content of documents can be
fulfilled. Specifically, only the CONTAINS() predicate function can be included in the
WHERE clause.

137
138
139

bothseparate: The repository can fulfill queries that filter EITHER on the full-text content
of documents OR on their properties, but NOT if both types of filters are included in the
same query.

140
141

bothcombined: The repository can fulfill queries that filter on both the full-text content of
documents and their properties in the same query.

142

See Section: 2.1.10 Query

143
144
145

capabilityJoin (enumCapabilityJoin)
Indicates the types of JOIN keywords that the Repository can fulfill in queries. Support levels are:

146

none: The repository cannot fulfill any queries that include any JOIN clauses.

147
148

inneronly: The repository can fulfill queries that include an INNER JOIN clause, but
cannot fulfill queries that include other types of JOIN clauses.

149
150

innerandouter: The repository can fulfill queries that include any type of JOIN clause
defined by the CMIS query grammar.

151

See Section: 2.1.10 Query

152
153
154
155

ACL Capabilities:
capabilityACL (enumCapabilityACL)
Indicates the level of support for ACLs by the repository

156

none: The repository does not support ACL services

157

discover: The repository supports discovery of ACLs (getACL and other services)

158
159

manage: The repository supports discovery of ACLs AND applying ACLs (getACL and
applyACL services)

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 13 of 236

See Section: 2.8 Access Control

160
161

2.1.1.2 Implementation Information

162
163
164
165
166

The Get Repository Information service MUST also return implementation information including vendor
name, product name, product version, version of CMIS that it supports, the root folder ID (see section
2.1.5.2 Folder Hierarchy), and MAY include other implementation-specific information. The version of
CMIS that the repository supports MUST be expressed as a Decimal that matches the specification
version.

167

2.1.2 Object

168
169

The entities managed by CMIS are modeled as typed Objects. There are four base types of objects:
Document Objects, Folder Objects, Relationship Objects, and Policy Objects.

170
171

A document object represents a standalone information asset. Document objects are the
elementary entities managed by a CMIS repository.

172
173
174

A folder object represents a logical container for a collection of file-able objects, which include
folder objects and document objects. Folder objects are used to organize file-able objects.
Whether or not an object is file-able is specified in its object-type definition.

175
176
177

A relationship object represents an instance of directional relationship between two objects. The
support for relationship objects is optional, and may be discovered via the Get Type Children
service.

178
179
180
181

A policy object represents an administrative policy, which may be applied to one or more
controllablePolicy objects. Whether or not an object is controllable is specified in its object-type
definition. The support for policy objects is optional, and may be discovered via the Get Type
Children service.

182
183
184
185

Additional object-types MAY be defined in a repository as subtypes of these base types. CMIS services
are provided for the discovery of object-types that are defined in a repository. However, object-type
management services, such as the creation, modification, and deletion of an object-type, are outside the
scope of CMIS.

186
187
188
189
190

Every CMIS object has an opaque and immutable Object Identity (ID), which is assigned by the
repository when the object is created. An ID uniquely identifies an object within a repository regardless of
the type of the object. Repositories SHOULD assign IDs that are permanent that is, they remain
unchanged during the lifespan of the identified objects, and they are never reused or reassigned after the
objects are deleted from the repository.

191
192
193

Every CMIS object has a set of named, but not explicitly ordered, Properties. (However, a Repository
SHOULD always return object properties in a consistent order.) Within an object, each property is
uniquely identified by its property definition id.

194
195
196
197
198

In addition, a document object MAY have a Content-Stream, which may be used to hold a raw digital
asset such as an image or a word-processing document. A repository MUST specify, in each object-type
definition, whether document objects of that type MAY, MUST, or MUST NOT have a content-stream. A
document MAY also have one or more Renditions associated with it. A rendition can be a thumbnail or
an alternate representation of the content stream.

199
200
201
202

Document or folder objects MAY have one Access Control List (ACL), which controls access to the
document or folder. A policy object may also control access to the document or folder. An ACL
represents a list of Access Control Entries (ACEs). An ACE in turn represents one or more permissions
being granted to a principal (a user, group, role, or something similar).
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 14 of 236

203

The notion of localization of the objects in the data model is entirely repository specific.

204

2.1.2.1 Property

205
206
207
208

A property MAY hold zero, one, or more typed data value(s). Each property MAY be single-valued or
multi-valued. A single-valued property contains a single data value, whereas a multi-valued property
contains an ordered list of data values of the same type. The ordering of values in a multi-valued property
MAY be preserved by the repository.

209
210
211

If a value is not provided for a property, the property is in a value not set state. There is no null value
for a property. Through protocol binding, a property is either not set, or is set to a particular value or a list
of values.

212
213
214

A multi-valued property is either set or not set in its entirety. An individual value of a multi-valued property
MUST NOT be in an individual value not set state and hold a position in the list of values. An empty list
of values MUST NOT be allowed.

215
216
217
218

Every property is typed. The Property-type defines the data type of the data value(s) held by the property.
CMIS specifies the following Property-types. They include the following data types defined by XML
Schema Part 2: Datatypes Second Edition (W3C Recommendation, 28 October 2004,
http://www.w3.org/TR/xmlschema-2/):

219
220
221
222
223
224
225

string
(xsd:string)
boolean (xsd:boolean)
decimal (see section 2.1.3.3.4 Attributes specific to Decimal Object-Type Property Definitions)
integer (xsd:integer)
datetime (xsd:dateTime and see section 2.1.3.3.4 Attributes specific to Decimal Object-Type
Property Definitions)
uri
(xsd:anyURI)

226
227
228
229
230
231

In addition, the following Property-Types are also specified by CMIS:

id
html
Individual protocol bindings MAY override or re-specify these property types.

232
233
234
235

All properties MUST supply a String queryName attribute which is used for query and filter operations on
object-types. This is an opaque String with limitations. This string SHOULD NOT contain any characters
that negatively interact with the BNF grammar.

236
237

The string MUST NOT contain:

238

whitespace ,

239

comma ,

240

double quotes

241

single quotes

242

backslash \

243

the period . character or,

244

the open ( or close ) parenthesis characters.

245
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 15 of 236

246

2.1.2.1.1 ID Property

247
248
249
250
251
252

An ID property holds a system-generated, read-only identifier, such as an Object ID, an Object-Type ID,
etc. (The ID Property-Type is NOT defined by xsd:id.) The lexical representation of an ID is an opaque
string. As such, an ID cannot be assumed to be interpretable syntactically or assumed to be to be collateable with other IDs, and can only be used in its entirety as a single atomic value. When used in a query
predicate, an ID can only participate in an equal or a not equal comparison with a string literal or with
another ID.

253
254
255
256
257
258
259
260
261

While all CMIS identities share the same Property-Type, they do not necessarily share the same address
space. Unless explicitly specified, ID properties NEED NOT maintain a referential integrity constraint.
Therefore, storing the ID of one object in another object NEED NOT constrain the behavior of either
object. A repository MAY, however, support referential constraint underneath CMIS if the effect on CMIS
services remains consistent with an allowable behavior of the CMIS model. For example, a repository
MAY return an exception when a CMIS service call violates an underlying referential constraint
maintained by the repository. In that case, an error message SHOULD be returned to the application to
describe the cause of exception and suggest a remedial action. The content of such messages is outside
the scope of CMIS.

262

2.1.2.1.2 HTML Property

263
264
265

An HTML property holds a document or fragment of Hypertext Markup Language (HTML) content. HTML
properties are not guaranteed to be validated in any way. The validation behavior is entirely repository
specific.

266

2.1.3 Object-Type

267
268
269

An Object-Type defines a fixed and non-hierarchical set of properties (schema) that all objects of that
type have. This schema is used by a repository to validate objects and enforce constraints, and is also
used by a user to compose object-type-based (structured) queries.

270
271

All CMIS objects are strongly typed. If a property not specified in an objects object-type definition is
supplied by an application, an exception SHOULD be thrown.

272
273

Each object-type is uniquely identified within a repository by a system-assigned and immutable ObjectType Identifier, which is of type ID.

274
275

A CMIS repository MUST expose exactly one collection of Object-Types via the Repository services
(getTypeChildren, getTypeDescendants, getTypeDefinition).

276
277
278
279
280

While a repository MAY define additional object-types beyond the CMIS Base Object-Types, these
Object-Types MUST NOT extend or alter the behavior or semantics of a CMIS service (for example, by
adding new services). A repository MAY attach additional constraints to an object-type underneath CMIS,
provided that the effect visible through the CMIS interface is consistent with the allowable behavior of
CMIS.

281

2.1.3.1 Object-Type Hierarchy and Inheritance

282

Hierarchy and Inheritance for Object-Types are supported by CMIS in the following manner:

283

A CMIS repository MUST have these base types:

284

cmis:document object-type

285

cmis:folder object-type

286

A CMIS repository MAY have these base types:

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 16 of 236

287

cmis:relationship object-type

288

cmis:policy object-type

289
290

Additional base types MUST NOT exist. Additional object-types MAY be defined as sub-types or
descendant types of these four base types.

291

A Base Type does not have a parent type.

292
293

A non-base type has one and only one parent type. An object-types Parent Type is a part of the
object-type definition.

294
295

An object-type definition includes a set of object-type attributes (e.g. Fileable, Queryable, etc.)
and a property schema that will apply to Objects of that type.

296

There is no inheritance of object-type attributes from a parent object-type to its sub-types.

297

The properties of a CMIS base type MUST be inherited by its descendant types.

298
299
300

A Child Type whose immediate parent is NOT its base type SHOULD inherit all the property
definitions that are specified for its parent type. In addition, it MAY have its own property
definitions.

301
302
303
304
305
306
307
308

309
310
311

If a property is NOT inherited by a subtype, the exhibited behavior for query MUST be as if
the value of this property is not set for all objects of this sub-type.

The scope of a query on a given object-type is automatically expanded to include all the
Descendant Types of the given object-type with the attribute includedInSuperTypeQuery
equals TRUE. This was added for synthetic types as well as to support different type hierarchies
that are not necessarily the same as CMIS. Only the properties of the given object-type,
including inherited ones, MUST be used in the query. Properties defined for its descendant types
MAY NOT be used in the query, and CAN NOT be returned by the query.
o

If a property of its parent type is not inherited by this type, the property MUST still appear as
a column in the corresponding virtual table in the relational view, but this column MUST
contain a NULL value for all objects of this type. (See section 2.1.10 Query.)

312

2.1.3.2 Object-Type Attributes

313

2.1.3.2.1 Attributes common to ALL Object-Type Definitions

314

All Object-Type Definitions MUST contain the following attributes:

315
316
317
318

ID

id

This opaque attribute uniquely identifies this object-type in the repository.


localName

String (optional)

319
320

This attribute represents the underlying repositorys name for the object-type. This field is
opaque and has no uniqueness constraint imposed by this specification.

321
322

Two properties with the same localName and localNamespace MUST have the same semantic
equality.

323
324
325
326

localNamespace

String (optional)

This attribute allows repositories to represent the internal namespace of the underlying
repositorys name for the object-type.

327
328

queryName
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

String
11 January 2010
Page 17 of 236

329
330

Used for query and filter operations on object-types. This is an opaque String with limitations.
This string SHOULD NOT contain any characters that negatively interact with the BNF grammar.

331
332

The string MUST NOT contain:

333

whitespace ,

334

comma ,

335

double quotes

336

single quotes

337

backslash \

338

the period . character or,

339

the open ( or close ) parenthesis characters.

340
341
342

displayName

String (optional)

Used for presentation by application.

343
344
345
346

baseId

Enum

A value that indicates whether the base type for this Object-Type is the Document, Folder,
Relationship, or Policy base type.

347
348

parentId

ID

349

The ID of the Object-Types immediate parent type.

350
351

It MUST be not set for a base type.

352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371

description

String (optional)

Description of this object-type, such as the nature of content, or its intended use. Used for
presentation by application.
creatable

Boolean

Indicates whether new objects of this type MAY be created. If the value of this attribute is FALSE,
the repository MAY contain objects of this type already, but MUST NOT allow new objects of this
type to be created.
fileable

Boolean

Indicates whether or not objects of this type are file-able.


queryable

Boolean

Indicates whether or not this object-type can appear in the FROM clause of a query statement. A
non-queryable object-type is not visible through the relational view that is used for query, and
CAN NOT appear in the FROM clause of a query statement.
controllablePolicy

Boolean

Indicates whether or not objects of this type are controllable via policies. Policy objects can only
be applied to controllablePolicy objects.

372
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 18 of 236

373

controllableACL

374
375
376
377

This attribute indicates whether or not objects of this type are controllable by ACLs. Only objects
that are controllableACL can have an ACL.
fulltextIndexed

378
379
380
381

Boolean

Boolean

Indicates whether objects of this type are indexed for full-text search for querying via the
CONTAINS() query predicate.
includedInSupertypeQuery

Boolean

382

Indicates whether this type and its subtypes appear in a query of this types ancestor types.

383
384

For example: if Invoice is a sub-type of cmis:document, if this is TRUE on Invoice then for a query
on cmis:document, instances of Invoice will be returned if they match.

385

If this attribute is FALSE, no instances of Invoice will be returned even if they match the query.

386

2.1.3.3 Object-Type Property Definitions

387
388
389
390

Besides these object-type attributes, an object-type definition SHOULD contain inherited property
definitions and zero or more additional property definitions. All the properties of an object, including
inherited properties, MUST be retrievable through the get services, and MAY appear in the SELECT
clause of a query.

391

2.1.3.3.1 Property Types

392

Property types are defined in section 2.1.2.1 Property.

393

2.1.3.3.2 Attributes common to ALL Object-Type Property Definitions

394

All Object-Type Property Definitions MUST contain the following attributes:

395
396
397

ID

id

This opaque attribute uniquely identifies the property in the repository. If two Object-Types each
contain property definitions with the same ID, those property definitions are the same.

398
399
400
401

localName

String (optional)

This attribute represents the underlying repositorys name for the property. This field is opaque
and has no uniqueness constraint imposed by this specification.

402
403
404
405

localNamespace String (optional)


This attribute allows repositories to represent the internal namespace of the underlying
repositorys name for the property.

406
407
408
409

queryName

String

Used for query operations on properties. This is an opaque String with limitations. Please see
queryName in Object-Type Attributes for the limitations on what characters are not allowed.

410
411
412

displayName

String (optional)

Used for presentation by application.

413
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 19 of 236

414
415

description

String (optional)

This is an optional attribute containing a description of the property

416
417
418
419

propertyType

Enum

This attribute indicates the type of this property. It MUST be one of the allowed property types.
(See section 2.1.2.1 Property.)

420
421

cardinality

Enum

422

Indicates whether the property can have zero or one or zero or more values.

423

Values:

424
425

single: Property can have zero or one values (if property is not required), or exactly one
value (if property is required)

426
427

multi: Property can have zero or more values (if property is not required), or one or more
values (if property is required).

428
429
430

Repositories SHOULD preserve the ordering of values in a multi-valued property. That is, the
order in which the values of a multi-valued property are returned in get operations SHOULD be
the same as the order in which they were supplied during previous create/update operation.

431
432

updatability

Enum

433

Indicates under what circumstances the value of this property MAY be updated.

434

Values:

435
436

437
438
439
440

readonly: The value of this property MUST NOT ever be set directly by an application. It
is a system property that is either maintained or computed by the repository.
o

The value of a readOnly property MAY be indirectly modified by other repository


interactions (for example, calling updateProperties on an object will change the
objects last modified date, even though that property cannot be directly set via an
updateProperties() service call.)

441

readwrite: The property value can be modified using the updateProperties service.

442
443

whencheckedout: The property value MUST only be update-able using a private


working copy Document.

444
445
446
447

I.e. the update is either made on a private working copy object or made using a
check in service.

oncreate: The property value MUST only be update-able during the Create operation on
that Object.

448
449
450
451

inherited

Boolean

Indicates whether the property definition is inherited from the parent-type when TRUE or it is
explicitly defined for this object-type when FALSE.

452
453

required

Boolean

454
455
456

If TRUE, then the value of this property MUST never be set to the not set state when an object
of this type is created/updated. If not provided during a create or update operation, the repository
MUST provide a value for this property.

457
458
459

If a value is not provided, then the default value defined for the property MUST be set. If no
default value is provided and no default value is defined, the repository MUST throw an
exception.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 20 of 236

460
461

A property definition SHOULD never state that a property has a required value of TRUE and an
updatability value of readonly.

462
463

Boolean

queryable

464
465

Indicates whether or not the property MAY appear in the WHERE clause of a CMIS query
statement.

466
467
468

This attribute MUST have a value of FALSE if the Object-types attribute for Queryable is set to
FALSE.

469

Boolean

orderable

470
471

Indicates whether the property can appear in the ORDER BY clause of a CMIS query statement
or an ORDERBY parameter.

472
473

This property MUST be FALSE for any property whose cardinality is multi.

474

<PropertyChoiceType list> (multi-valued)

choices

475

Indicates an explicit ordered set of single values allowed for this property.

476
477

If the cardinatity of the property definition is single and the openChoice attribute is FALSE,
then the property value MUST be at most one of the values listed in this attribute.

478
479

If the cardinatity of the property definition is single and the openChoice attribute is TRUE, then
the property value MAY be one of the values listed in this attribute.

480
481

If the cardinatity of the property definition is multi and the openChoice attribute is FALSE, then
the property value MUST be zero, one or more than one of the values listed in this attribute.

482
483
484

If the cardinatity of the property definition is multi and the openChoice attribute is TRUE, then
the property value MAY be zero, one, or more than one of the values listed in this attribute.If this
attribute is not set, then any valid value for this property based on its type may be used.

485
486

Each choice includes a displayName and a value. The displayName is used for presentation
purpose. The value will be stored in the property when selected.

487
488

Choices MAY be hierarchically presented. For example: a value of choices for a geographic
location would be represented as follows:

489

Europe:

490

England

491

France

492

Germany

493

North America

494

Canada

495

USA

496

Mexico

497

openChoice

Boolean

498

This attribute is only applicable to properties that provide a value for the Choices attribute.

499
500
501
502

If FALSE, then the data value for the property MUST only be one of the values specified in the
Choices attribute. If TRUE, then values other than those included in the Choices attribute may
be set for the property.

503

defaultValue

<PropertyType>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 21 of 236

504
505

The value that the repository MUST set for the property if a value is not provided by an
application when the object is created.

506
507
508
509

If no default value is specified and an application creates an object of this type without setting a
value for the property, the repository MUST attempt to store a value not set state for the
property value. If this occurs for a property that is defined to be required, then the creation
attempt MUST throw an exception.

510
511

The attributes on the default value element are the same as the attributes on the property
definition.

512

2.1.3.3.3 Attributes specific to Integer Object-Type Property Definitions

513
514
515
516

The following Object attributes MUST only apply to Property-Type definitions whose propertyType is
Integer, in addition to the common attributes specified above. A repository MAY provide additional
guidance on what values can be accepted. If the following attributes are not present the repository
behavior is undefined and it MAY throw an exception if a runtime constraint is encountered.

517

minValue

Integer

518

The minimum value allowed for this property.

519
520

If an application tries to set the value of this property to a value lower than minValue, the
repository MUST throw a constraint exception.

521
522

maxValue

Integer

523

The maximum value allowed for this property.

524
525

If an application tries to set the value of this property to a value higher than maxValue, the
repository MUST throw a constraint exception.

526
527

2.1.3.3.4 Attributes specific to DateTime Object-Type Property Definitions

528
529
530
531

The following Object attributes MUST only apply to Property-Type definitions whose propertyType is
Decimal, in addition to the common attributes specified above. A repository MAY provide additional
guidance on what values can be accepted. If the following attributes are not present the repository
behavior is undefined and it MAY throw an exception if a runtime constraint is encountered.

532
533

resolution

String Enumeration

This is the precision in bits supported for values of this property. Valid values for this attribute are:

534

Year: Year resolution is persisted

535

Date: Date resolution is persisted

536

Time: Time resolution is persisted

537
538

2.1.3.3.5 Attributes specific to Decimal Object-Type Property Definitions

539
540
541
542

The following Object attributes MUST only apply to Property-Type definitions whose propertyType is
Decimal, in addition to the common attributes specified above. A repository MAY provide additional
guidance on what values can be accepted. If the following attributes are not present the repository
behavior is undefined and it MAY throw an exception if a runtime constraint is encountered.

543
544

precision

Integer Enumeration

This is the precision in bits supported for values of this property. Valid values for this attribute are:

545

32: 32-bit precision (single as specified in IEEE-754-1985).

546

64: 64-bit precision (double as specified in IEEE-754-1985.)

547
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 22 of 236

548

minValue

Decimal

549

The minimum value allowed for this property.

550
551

If an application tries to set the value of this property to a value lower than minValue, the
repository MUST throw a constraint exception.

552
553

maxValue

Decimal

554

The maximum value allowed for this property.

555
556

If an application tries to set the value of this property to a value higher than maxValue, the
repository MUST throw a constraint exception.

557

2.1.3.3.6 Attributes specific to String Object-Type Property Definitions

558
559
560
561

The following Object attributes MUST only apply to Property-Type definitions whose propertyType is
String, in addition to the common attributes specified above. A repository MAY provide additional
guidance on what values can be accepted. If the following attributes are not present the repository
behavior is undefined and it MAY throw an exception if a runtime constraint is encountered.

562

maxLength

Integer

563

The maximum length (in characters) allowed for a value of this property.

564
565

If an application attempts to set the value of this property to a string larger than the specified
maximum length, the repository MUST throw a constraint exception.

566

2.1.4 Document Object

567

Document objects are the elementary information entities managed by the repository.

568

Depending on its Object-type definition, a Document Object may be:

569

Version-able: Can be acted upon via the Versioning Services (for example: checkOut, checkIn).

570

File-able: Can be filed in zero, one, or more than one folder via the Multi-filing services.

571

Query-able: Can be located via the Discovery Services (query).

572

Controllable-Policy: Can have Policies applied to it (see section 2.1.7 Policy Object.)

573

Controllable-ACL: Can have an ACL applied to it (see section 2.8 Access Control)

574
575

Additionally, whether a Document object MUST, MAY or MUST NOT have a content-stream is specified
in its object-type definition. A Document Object MAY be associated with zero or more renditions.

576
577

Note: When a document is versioned, each version of the document is a separate document object. Thus,
for document objects, an object ID actually identifies a specific version of a document.

578

2.1.4.1 Content Stream

579
580
581
582

A content-stream is a binary stream. Its maximum length is repository-specific. Each content-stream has
a MIME Media Type, as defined by RFC2045 and RFC2046. A content-streams attributes are
represented as properties of the content-streams containing document object. There is no MIME-typespecific attribute or name directly associated with the content-stream outside of the document object.

583
584

CMIS provides basic CRUD services for content-stream, using the ID of a content-streams containing
document object for identification. A content stream also has a streamId which is used for access to the
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 23 of 236

585
586
587
588
589
590
591
592

stream. The Set Content-Stream service (setContentStream) either creates a new content-stream for a
document object or replaces an existing content-stream. The Get Content-Stream service
(getContentStream) retrieves a content-stream. The Delete Content-Stream service
(deleteContentStream) deletes a content-stream from a document object. In addition, the
CreateDocument and Check-in services MAY also take a content-stream as an optional input. A
content stream MUST be specified if required by the type definition. These are the only services that
operate on content-stream. The Get Properties and Query services, for example, do not return a
content-stream.

593
594
595

Set Content-Stream and Delete Content-Stream services are considered modifications to a contentstreams containing document object, and SHOULD therefore change the objects LastModificationDate
property upon successful completion.

596
597

The ability to set or delete a content stream is controlled by the


capabilityContentStreamUpdatability capability.

598

2.1.4.2 Renditions

599
600
601
602
603

Some ECM repositories provide a facility to retrieve alternative representations of a document. These
alternative representations are known as renditions. This could apply to a preview case which would
enable the client to preview the content of a document without needing to download the full content.
Previews are generally reduced fidelity representations such as thumbnails. Renditions can take on any
general form, such as a PDF version of a word document.

604
605
606
607
608
609
610

A CMIS repository MAY expose zero or more renditions for a document or folder in addition to a
documents content stream. CMIS provides no capability to create or update renditions accessed through
the rendition services. Renditions are specific to the version of the document or folder and may differ
between document versions. Each rendition consists of a set of rendition attributes and a rendition
stream. Rendition attributes are not object properties, and are not queryable. They can be retrieved using
the getRenditions service. A rendition stream can be retrieved using the getContentStream service with
the renditions streamId parameter.

611

2.1.4.2.1 Rendition Attributes

612

A rendition has the following attributes:

613
614
615
616
617

streamId

ID

Identifies the rendition stream.


mimeType

String

The MIME type of the rendition stream.

618
619
620

length

Integer (optional)

The length of the rendition stream in bytes.

621
622
623

title

String (optional)

Human readable information about the rendition.

624
625
626

kind

String

A categorization String associated with the rendition.

627
628

height
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

Integer (optional)
11 January 2010
Page 24 of 236

629
630

Typically used for image renditions (expressed as pixels). SHOULD be present if kind =
cmis:thumbnail.

631
632

Integer (optional)

width

633
634

Typically used for image renditions (expressed as pixels). SHOULD be present if kind =
cmis:thumbnail.

635
636

renditionDocumentId

637
638
639

ID (optional)

If specified, then the rendition can also be accessed as a document object in the CMIS services.
If not set, then the rendition can only be accessed via the rendition services. Referential integrity
of this ID is repository-specific.

640

2.1.4.2.2 Rendition Kind

641
642
643

A Rendition may be categorized via its kind. The repository is responsible for assigning kinds to
Renditions, including custom kinds. A repository kind does not necessarily identify a single Rendition for
a given Object.

644

CMIS defines the following kind:

645
646
647

cmis:thumbnail:A rendition whose purpose is to a provide an image preview of the document


without requiring the client to download the full document content stream. Thumbnails are
generally reduced fidelity representations.

648

2.1.4.3 Document Object-Type Definition

649
650
651

This section describes the definition of the Document Object-Types attribute values and property
definitions which must be present on Document instance objects. All attributes and property definitions
are listed by their ID.

652

2.1.4.3.1 Attributes specific to Document Object-Types

653
654

The following Object attributes MUST only apply to Object-Type definitions whose baseId is the
cmis:document Object-Type, in addition to the common attributes specified above:

655

versionable

Boolean

Indicates whether or not objects of this type are version-able. (See section 2.1.9 Versioning.)

656
657
658

contentStreamAllowed

659
660

Enum

A value that indicates whether a content-stream MAY, MUST, or MUST NOT be included in
objects of this type. Values:

661

notallowed: A content-stream MUST NOT be included

662

allowed: A content-stream MAY be included

663
664

required: A content-stream MUST be included (i.e. MUST be included when the object is
created, and MUST NOT be deleted.)

665

2.1.4.3.2 Attribute Values

666

The Document Object-Type MUST have the following attribute values.

667

Notes:

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 25 of 236

668
669

A value of <repository-specific> indicates that the value of the property MAY be set to any valid
value for the attribute type.

670
671

Unless explicitly stated otherwise, all values specified in the list MUST be followed for the ObjectType definition.

672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706

id
Value: cmis:document
localName
Value: <repository-specific>
localNamespace
Value: <repository-specific>
queryName
Value: cmis:document
displayName
Value: <repository-specific>
baseId
Value: cmis:document
parentId
Value: Not set
description
Value: <repository-specific>
creatable
Value: <repository-specific>
fileable
Value: TRUE
queryable
Value: SHOULD be TRUE
controllablePolicy

707
708
709

Value: <repository-specific>
includedInSupertypeQuery

710

Value: <repository-specific>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 26 of 236

711
712
713
714
715
716
717
718
719
720
721

versionable
Value: <repository-specific>
contentStreamAllowed
Value: <repository-specific>
controllableACL
Value: <repository-specific>
fulltextIndexed

722

Value: <repository-specific>

723

2.1.4.3.3 Property Definitions

724
725
726
727

The Document base Object-Type MUST have the following property definitions, and MAY include
additional property definitions. Any attributes not specified for the property definition are repository
specific. For all property definitions on base types, the query name MUST be the same as the property
ID. The repository MUST have the following property definitions on the Document Type:

728
729

cmis:name

Name of the object

730

Inherited:

False

731

Property Type:

String

732

Cardinality:

Single

733
734

cmis:objectId

Id of the object

735

Required:

False

736

Inherited:

False

737

Property Type:

ID

738

Cardinality:

Single

739

Updatability:

Read Only

740

Choices:

Not Applicable

741

Open Choice:

Not Applicable

742

MUST be set on the object

743
744

cmis:baseTypeId

Id of the base object-type for the object

745

Required:

False

746

Inherited:

False

747

Property Type:

ID

748

Cardinality:

Single

749

Updatability:

Read Only

750

Choices:

Not Applicable

751

Open Choice:

Not Applicable

752

MUST be set on the object

753
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 27 of 236

754
755

cmis:objectTypeId
Required:

Id of the objects type


True

756

Inherited:

False

757

Property Type:

ID

758

Cardinality:

Single

759

Updatability:

oncreate

760

Choices:

Not Applicable

761

Open Choice:

Not Applicable

762

MUST be set on the object

763
764

cmis:createdBy

765

Required:

User who created the object.


False

766

Inherited:

False

767

Property Type:

String

768

Cardinality:

Single

769

Updatability:

Read Only

770

Choices:

Not Applicable

771

Open Choice:

Not Applicable

772

Queryable:

True

773

Orderable:

True

774

MUST be set on the object

775
776

cmis:creationDate

DateTime when the object was created.

777

Required:

False

778

Inherited:

False

779

Property Type:

DateTime

780

Cardinality:

Single

781

Updatability:

Read Only

782

Choices:

Not Applicable

783

Open Choice:

Not Applicable

784

Queryable:

True

785

Orderable:

True

786

MUST be set on the object

787
788

cmis:lastModifiedBy

User who last modified the object.

789

Required:

False

790

Inherited:

False

791

Property Type:

String

792

Cardinality:

Single

793

Updatability:

Read Only

794

Choices:

Not Applicable

795

Open Choice:

Not Applicable

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 28 of 236

796

Queryable:

True

797

Orderable:

True

798

MUST be set on the object

799
800

cmis:lastModificationDate

DateTime when the object was last modified.

801

Required:

False

802

Inherited:

False

803

Property Type:

DateTime

804

Cardinality:

Single

805

Updatability:

Read Only

806

Choices:

Not Applicable

807

Open Choice:

Not Applicable

808

Queryable:

True

809

Orderable:

True

810

MUST be set on the object

811
812
813

cmis:changeToken

Opaque token used for optimistic locking & concurrency


checking. (see section 2.2.1.3 Change Tokens)

814

Required:

False

815

Inherited:

False

816

Property Type:

String

817

Cardinality:

Single

818

Updatability:

Read Only

819

Choices:

Not Applicable

820

Open Choice:

Not Applicable

821

MUST be set on the object

822
823
824

cmis:isImmutable

TRUE if the repository MUST throw an error at any attempt to


update or delete the object.

825

Required:

False

826

Inherited:

False

827

Property Type:

Boolean

828

Cardinality:

Single

829

Updatability:

Read Only

830

Choices:

Not Applicable

831

Open Choice:

Not Applicable

832

MUST be set on the object

833
834

cmis:isLatestVersion

See section 2.1.9 Versioning.

835

Required:

False

836

Inherited:

False

837

Property Type:

Boolean

838

Cardinality:

Single

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 29 of 236

839

Updatability:

Read Only

840

Choices:

Not Applicable

841

Open Choice:

Not Applicable

842
843

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

844
845

cmis:isMajorVersion

See section 2.1.9 Versioning.

846

Required:

False

847

Inherited:

False

848

Property Type:

Boolean

849

Cardinality:

Single

850

Updatability:

Read Only

851

Choices:

Not Applicable

852

Open Choice:

Not Applicable

853
854

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

855
856

cmis:isLatestMajorVersion

See section 2.1.9 Versioning.

857

Required:

False

858

Inherited:

False

859

Property Type:

Boolean

860

Cardinality:

Single

861

Updatability:

Read Only

862

Choices:

Not Applicable

863

Open Choice:

Not Applicable

864
865

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

866
867

cmis:versionLabel

See section 2.1.9 Versioning.

868

Required:

False

869

Inherited:

False

870

Property Type:

String

871

Updatability:

Read Only

872

Choices:

Not Applicable

873

Open Choice:

Not Applicable

874
875

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

876
877

cmis:versionSeriesId

See section 2.1.9 Versioning.

878

Required:

False

879

Inherited:

False

880

Property Type:

ID

881

Cardinality:

Single

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 30 of 236

882

Updatability:

Read Only

883

Choices:

Not Applicable

884

Open Choice:

Not Applicable

885
886

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

887
888

cmis:isVersionSeriesCheckedOut

See section 2.1.9 Versioning.

889

Required:

False

890

Inherited:

False

891

Property Type:

Boolean

892

Cardinality:

Single

893

Updatability:

Read Only

894

Choices:

Not Applicable

895

Open Choice:

Not Applicable

896
897

MUST be set on the object. Version Property Values are repository-specific when a document is
defined as non-versionable.

898
899

cmis:versionSeriesCheckedOutBy

See section 2.1.9 Versioning.

900

Required:

False

901

Inherited:

False

902

Property Type:

String

903

Cardinality:

Single

904

Updatability:

Read Only

905

Choices:

Not Applicable

906

Open Choice:

Not Applicable

907

Version Property Values are repository-specific when a document is defined as non-versionable.

908
909

cmis:versionSeriesCheckedOutId

See section 2.1.9 Versioning.

910

Required:

False

911

Inherited:

False

912

Property Type:

ID

913

Cardinality:

Single

914

Updatability:

Read Only

915

Choices:

Not Applicable

916

Open Choice:

Not Applicable

917

Version Property Values are repository-specific when a document is defined as non-versionable.

918
919

cmis:checkinComment

See section 2.1.9 Versioning.

920

Required:

False

921

Inherited:

False

922

Property Type:

String

923

Cardinality:

Single

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 31 of 236

924

Updatability:

Read Only

925

Choices:

Not Applicable

926

Open Choice:

Not Applicable

927

Version Property Values are repository-specific when a document is defined as non-versionable.

928
929

cmis:contentStreamLength

Length of the content stream (in bytes).

930

Required:

False

931

Inherited:

False

932

Property Type:

Integer

933

Cardinality:

Single

934

Updatability:

Read Only

935

Choices:

Not Applicable

936

Open Choice:

Not Applicable

937

MUST be set if the document has a content stream

938
939

cmis:contentStreamMimeType

MIME type of the Content Stream

940

Required:

False

941

Inherited:

False

942

Property Type:

String

943

Cardinality:

Single

944

Updatability:

Read Only

945

Choices:

Not Applicable

946

Open Choice:

Not Applicable

947

MUST be set if the document has a content stream

948
949

cmis:contentStreamFileName

File name of the Content Stream

950

Required:

False

951

Inherited:

False

952

Property Type:

String

953

Cardinality:

Single

954

MUST be set if the document has a content stream

955
956

cmis:contentStreamId

Id of the stream

957

Required:

958

Inherited:

False

959

Property Type:

ID

960

Cardinality:

Single

961

Updatability:

Read Only

962

Choices:

Not Applicable

963

Open Choice:

Not Applicable

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

False

11 January 2010
Page 32 of 236

964

2.1.5 Folder Object

965
966
967
968
969
970
971
972

A folder object serves as the anchor for a collection of file-able objects. The folder object has an implicit
hierarchical relationship with each object in its collection, with the anchor folder object being the Parent
object and each object in the collection being a Child object. This implicit relationship has specific
containment semantics which MUST be maintained by the repository with implicit referential integrity.
(That is, there will never be a dangling parent-relationship or a dangling child-relationship. Furthermore,
object A is a parent of object B if and only if object B is a child of object A.) This system-maintained
implicit relationship is distinct from an explicit relationship which is instantiated by an applicationmaintained Relationship Object. (See section 2.1.6 Relationship Object.)

973
974

A folder object does not have a content-stream and is not version-able. A folder object MAY be
associated with zero or more renditions (see section 2.1.4.2 Renditions).

975

2.1.5.1 File-able Objects

976
977

A file-able object is one that MAY be filed into a folder. That is, it MAY be a child object of a folder
object. The following list defines whether the base CMIS Object-types are file-able:

978
979

cmis:folder
MUST be file-able

980
981
982

cmis:document
MUST be file-able

983
984
985

cmis:relationship
MUST NOT be file-able

986
987
988

cmis:policy
MAY be file-able

989

2.1.5.1.1 Document Version Series and Filing

990
991
992
993
994

Since document objects are versionable, a document objects membership in a folder MAY be versionspecific or version-independent. That is, the folder membership MAY be restricted to that particular
version of the document or MAY apply to all versions of the document. Whether or not a repository
supports version-specific filing is discoverable via the Get Repository Information service
(getRepositoryInfo).

995
996
997

When the child objects of a folder are retrieved, a specific version of a document MAY be returned. If the
repository supports version-specific filing, the specific version filed in that folder is returned. If the
repository does not support version-specific filing, the latest version of the document is returned.

998
999
1000

Likewise, this version sensitivity in child-binding also affects the behavior of parent retrieval for a
document object, as well as the scope of the IN_FOLDER() and IN_TREE() function calls in a query. For
non-versionable fileable objects, their membership in a folder does not have version sensitivity.

1001

2.1.5.1.2 Filing Restrictions by Object-Type

1002
1003
1004

A folder collections membership MAY be restricted by object-type. Each folder object has a multi-valued
AllowedChildObjectTypeIDs property, which specifies that only objects of these types are allowed to be
its children. If this property is not set, then objects of any file-able type MAY be filed in the Folder. It is
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 33 of 236

1005
1006

repository-specific if subtypes of the types listed in the AllowedChildObjectTypeIDs property MAY be filed
in the folder.

1007
1008

Because of these filing constraints, when a new folder object is created, an existing folder object MUST
be specified as its parent.

1009

When a non-file-able object is created, a parent folder MUST NOT be specified.

1010
1011
1012

When a file-able object is deleted, it is removed from any folder collection in which the object is a
member. In other words, when an object is deleted, all implicit parent-child relationships with the deleted
object as a child cease to exist.

1013

2.1.5.2 Folder Hierarchy

1014

CMIS imposes the following constraints on folder objects:

1015
1016

Every folder object, except for one which is called the Root Folder, MUST have one and only
one parent folder. The Root Folder does not have a parent.

1017
1018

A cycle in folder containment relationships is not allowed. That is, a folder object cannot have
itself as one of its descendant objects.

1019

A child object that is a folder object can itself be the parent object of other file-able objects.

1020
1021

With these constraints, the folder objects in a CMIS repository necessarily form a strict hierarchy, with the
Root Folder being the root of the hierarchy.

1022
1023
1024

The child objects of a given folder object, their child objects, and grandchild objects, etc., are called
Descendant objects of the given folder objectA folder object together with all its descendant objects are
collectively called a Tree rooted at that folder object.

1025
1026
1027
1028
1029

A non-folder object does not have any descendant object. Thus, a Folder Graph that consists of all
fileable objects as nodes, and all the implicit folder containment relationships as directed edges from
parent to child, is a directed acyclic graph, possibly with some disconnected (orphan) nodes. It follows
that the tree rooted at any given folder object is also a directed acyclic graph, although a non-folder object
in the tree MAY have ancestors that are not ancestors of the rooted folder.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 34 of 236

A Folder Graph
Root Folder

A folder object
A non-folder fileable object
An unfiled object
A multi-filed object
An implicit folder
containment relationship
from parent to child

1030
1031
1032

Folder objects are handled using the basic CRUD services for objects, and the folder graph is traversed
using the Navigation Services.

1033
1034

The Root Folder is a special folder such that it cannot be created, deleted, or moved using CMIS
services. Otherwise, it behaves like any other folder object.

1035

2.1.5.3 Paths

1036
1037

A folder hierarchy MAY be represented in a canonical notation such as path. For CMIS, a path is
represented by:

1038

/ for the root folder

1039

All paths start with the root folder.

1040

A set of the folder and object path segments separated by / in order of closest to the root.

1041
1042

Folder and object path segments are specified by pathSegment tokens which can be retrieved by
all services that take an includePathSegments parameter.

1043

A pathSegment token MUST not include a / character.

1044
1045
1046
1047

It is repository specific how a repository chooses the value for pathSegment.


Repositories might choose to use cmis:name or content stream filename for
pathSegment token.

The pathSegment token for each item MUST uniquely identify the item in the folder.

1048
1049

E.g., if folder A is under the root, and folder B is under A, then the path would be /A/B.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 35 of 236

1050
1051
1052

A path for an object may be calculated by taking the items parent folder cmis:path property and
appending the / character and the objects pathSegment. This constructed path may be given as input
to the getObjectByPath service for object by path retrieval.

1053
1054

The getObjectParents service returns relativePathSegment tokens. These tokens are the
pathSegment of the input object relative to the parent folders.

1055

2.1.5.4 Folder Object-Type Definition

1056
1057
1058

This section describes the definition of the Folder Object-Types attribute values and property definitions
which must be present on Folder instance objects. All attributes and property definitions are listed by
their ID.

1059

2.1.5.4.1 Attribute Values

1060

The Folder Object-Type MUST have the following attribute values.

1061

Notes:

1062
1063

A value of <repository-specific> indicates that the value of the property MAY be set to any valid
value for the attribute type.

1064
1065

Unless explicitly stated otherwise, all values specified in the table MUST be followed for the
Object-Type definition.

1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092

id
Value: cmis:folder
localName
Value: <repository-specific>
localNamespace
Value: <repository-specific>
queryName
Value: cmis:folder
displayName
Value: <repository-specific>
baseId
Value: cmis:folder
parentId
Value: Not set
description
Value: <repository-specific>
creatable
Value: <repository-specific>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 36 of 236

1093
1094
1095
1096
1097
1098
1099
1100

fileable
Value: TRUE
queryable
Value: SHOULD be TRUE
controllablePolicy

1101

Value: <repository-specific>

1102
1103

includedInSupertypeQuery

1104
1105
1106
1107
1108
1109
1110

Value: <repository-specific>
controllableACL
Value: <repository-specific>
fulltextIndexed
Value: <repository-specific>

1111
1112

2.1.5.4.2 Property Definitions

1113
1114
1115
1116

The Folder base Object-Type MUST have the following property definitions, and MAY include additional
property definitions. Any attributes not specified for the Property Definition are repository specific. For all
property definitions on base types, the query name MUST be the same as the property ID. The
repository MUST have the following property definitions on the Folder Type:

1117

cmis:name

Name of the object

1118

Inherited:

False

1119

Property Type:

String

1120

Cardinality:

Single

1121

Required:

True

1122
1123

cmis:objectId

Id of the object

1124

Required:

False

1125

Inherited:

False

1126

Property Type:

ID

1127

Cardinality:

Single

1128

Updatability:

Read Only

1129

Choices:

Not Applicable

1130

Open Choice:

Not Applicable

1131

MUST be set on the object

1132
1133

cmis:baseTypeId

Id of the base object-type for the object

1134

Required:

False

1135

Inherited:

False

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 37 of 236

1136

Property Type:

ID

1137

Cardinality:

Single

1138

Updatability:

Read Only

1139

Choices:

Not Applicable

1140

Open Choice:

Not Applicable

1141

MUST be set on the object

1142
1143

cmis:objectTypeId

Id of the objects type

1144

Required:

False

1145

Inherited:

False

1146

Property Type:

ID

1147

Cardinality:

Single

1148

Updatability:

oncreate

1149

Choices:

Not Applicable

1150

Open Choice:

Not Applicable

1151

MUST be set on the object

1152
1153

cmis:createdBy

User who created the object.

1154

Required:

False

1155

Inherited:

False

1156

Property Type:

String

1157

Cardinality:

Single

1158

Updatability:

Read Only

1159

Choices:

Not Applicable

1160

Open Choice:

Not Applicable

1161

Queryable:

True

1162

Orderable:

True

1163

MUST be set on the object

1164
1165

cmis:creationDate

DateTime when the object was created.

1166

Required:

False

1167

Inherited:

False

1168

Property Type:

DateTime

1169

Cardinality:

Single

1170

Updatability:

Read Only

1171

Choices:

Not Applicable

1172

Open Choice:

Not Applicable

1173

Queryable:

True

1174

Orderable:

True

1175

MUST be set on the object

1176
1177

cmis:lastModifiedBy
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

User who last modified the object.


11 January 2010
Page 38 of 236

1178

Required:

False

1179

Inherited:

False

1180

Property Type:

String

1181

Cardinality:

Single

1182

Updatability:

Read Only

1183

Choices:

Not Applicable

1184

Open Choice:

Not Applicable

1185

Queryable:

True

1186

Orderable:

True

1187

MUST be set on the object

1188
1189

cmis:lastModificationDate

DateTime when the object was last modified.

1190

Required:

False

1191

Inherited:

False

1192

Property Type:

DateTime

1193

Cardinality:

Single

1194

Updatability:

Read Only

1195

Choices:

Not Applicable

1196

Open Choice:

Not Applicable

1197

Queryable:

True

1198

Orderable:

True

1199

MUST be set on the object

1200
1201
1202

cmis:changeToken

Token used for optimistic locking & concurrency checking.


(see section 2.2.1.3 Change Tokens)

1203

Required:

False

1204

Inherited:

False

1205

Property Type:

String

1206

Cardinality:

Single

1207

Updatability:

Read Only

1208

Choices:

Not Applicable

1209

Open Choice:

Not Applicable

1210

MUST be set on the object

1211
1212

cmis:parentId

ID of the parent folder of the folder.

1213

Required:

False

1214

Inherited:

False

1215

Property Type:

ID

1216

Cardinality:

Single

1217

Updatability:

Read Only

1218

Choices:

Not Applicable

1219

Open Choice:

Not Applicable

1220

MUST be set on the object


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 39 of 236

1221
1222
1223

cmis:path

The fully qualified path to this folder. See section 2.1.5.3


Paths.

1224

Required:

False

1225

Inherited:

False

1226

Property Type:

String

1227

Cardinality:

Single

1228

Updatability:

Read Only

1229

Choices:

Not Applicable

1230

Open Choice:

Not Applicable

1231

MUST be set on the object

1232
1233
1234

cmis:allowedChildObjectTypeIds

Ids of the set of Object-types that can be created, moved or


filed into this folder.

1235

Required:

False

1236

Inherited:

False

1237

Property Type:

ID

1238

Cardinality:

Multi

1239

Updatability:

Read Only

1240

Choices:

Not Applicable

1241

Open Choice:

Not Applicable

1242

2.1.6 Relationship Object

1243
1244
1245

A relationship object is semantically a dependent object. A relationship object MUST NOT have a
content-stream, and MUST NOT be versionable, MUST NOTMAY be queryable, and MUST NOT be
fileable, although it MAY be controllable.

1246
1247

If a repository does not support relationship objects, the relationship base object-type SHOULD NOT be
returned by a Get Types service call.

1248
1249
1250
1251

A Relationship Object instantiates an explicit, binary, directional, non-invasive, and typed relationship
between a Source Object and a Target Object. The source object and the target object MUST both be
independent objects, such as a document object, a folder object, or a policy object. Whether a policy
object is allowed to be the source or target object of a relationship object is repository-specific.

1252
1253

The relationship instantiated by a relationship object is explicit since it is explicitly represented by an


object and is explicitly managed by application.

1254
1255
1256
1257

This relationship is non-invasive in the sense that creating or removing this relationship SHOULD NOT
modify either the source or the target object. That is, it SHOULD NOT require an update capability (or
permission) on either object; SHOULD NOT affect the versioning state of either object; and SHOULD
NOT change their Last Modification Date.

1258
1259
1260

Explicit relationships can be used to create an arbitrary relationship graph among independent objects.
Such a relationship graph is only structural in nature. No inheritance or transitive properties are attached
to a relationship graph.

1261
1262

The notion of a source object and a target object of a relationship is used solely to indicate the direction of
the relationship. No semantics or implementation bias is implied by this terminology.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 40 of 236

1263
1264
1265
1266
1267

The binding of a relationship object to a source document object or to a target document object MAY be
either version-specific or version-independent. This version sensitivity is repository-specific, and is largely
transparent to CMIS. An independent object MAY participate in any number of explicit relationships, as
the source object for some and as the target object for others. Multiple relationships MAY exist between
the same pair of source and target objects.

1268
1269
1270
1271
1272

Referential integrity, either between the source object and the target object, or between the relationship
object and the source or target object, is repository-specific. Therefore, creating an explicit relationship
between two objects MAY impose a constraint on any of the three objects, and removing a relationship or
deleting either the source or the target object MAY be restricted by such a constraint. If the source or the
target object of a relationship is deleted, the repository MAY automatically delete the relationship object.

1273
1274

Like all CMIS objects, relationship objects are typed. Typing relationship allows them to be grouped,
identified, and traversed by type id, and for properties to be defined for individual relationship types.

1275
1276
1277
1278

Additionally, a relationship object-type MAY specify that only Objects of a specific Object-Type can
participate as the source object or target object for relationship objects of that type. If no such constraints
are specified, then an independent object of any type MAY be the source or the target of a relationship
object of that type.

1279
1280

When a relationship object is created, the source object ID and the target object ID MUST reference valid
non-relationship CMIS objects.

1281
1282

When a relationship object is retrieved, its source object or target object MAY no longer exist, since
referential integrity MAY not be maintained by a repository.

1283
1284
1285
1286

In addition to object CRUD services, a Get Relationships service (getObjectRelationships) may be used
to return a set of relationship objects in which a given independent object is identified as the source or the
target object, according to the binding semantics maintained by the repository (i.e., either a versionspecific or a version-independent binding as described above).

1287

2.1.6.1 Relationship Object-Type Definition

1288
1289
1290

This section describes the definition of the Relationship Object-Types attribute values and property
definitions which must be present on Relationship instance objects. All attributes and property definitions
are listed by their ID.

1291

2.1.6.1.1 Attributes specific to Relationship Object-Types

1292
1293

The following Object attributes MUST only apply to Object-Type definitions whose baseId is the
cmis:relationship Object-Type, in addition to the common attributes specified above:

1294

allowedSourceTypes

ID (multi-valued)

1295
1296

A list of object-type IDs, indicating that the source object of a relationship object of this type
MUST only be one of the types listed.

1297

If this attribute is not set, then the source object MAY be of any type.

1298
1299

allowedTargetTypes

ID (multi-valued)

1300
1301

A list of object-type IDs, indicating that the target object of a relationship object of this type MUST
only be one of the types listed.

1302

If this attribute is not set, then the target object MAY be of any type.

1303

2.1.6.1.2 Attribute Values

1304

The Relationship Object-Type MUST have the following attribute values.

1305

Notes:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 41 of 236

1306
1307

A value of <repository-specific> indicates that the value of the property MAY be set to any valid
value for the attribute type.

1308
1309

Unless explicitly stated otherwise, all values specified in the table MUST be followed for the
Object-Type definition.

1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341

id
Value: cmis:relationship
localName
Value: <repository-specific>
localNamespace
Value: <repository-specific>
queryName
Value: cmis:relationship
displayName
Value: <repository-specific>
baseId
Value: cmis:relationship
parentId
Value: Not set
description
Value: <repository-specific>
creatable
Value: <repository-specific>
fileable
Value: FALSE
queryable

1342
1343

Value: <repository-specific>

1344

includedInSupertypeQuery

1345
1346

Value: <repository-specific>

1347
1348

controllablePolicy
Value: <repository-specific>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 42 of 236

1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360

allowedSourceTypes
Value: <repository-specific>
allowedTargetTypes
Value: <repository-specific>
controllableACL
Value: <repository-specific>
fulltextIndexed
Value: <repository-specific>

1361
1362

2.1.6.1.3 Property Definitions

1363
1364
1365
1366

The Relationship base Object-Type MUST have the following property definitions, and MAY include
additional property definitions. Any attributes not specified by the Property Definitions are repository
specific. For all property definitions on base types, the query name MUST be the same as the property
ID. The repository MUST have the following property definitions on the Relationship Type:

1367
1368

cmis:name

Name of the object

1369

Inherited:

False

1370

Property Type:

String

1371

Cardinality:

Single

1372
1373

cmis:objectId

Id of the object

1374

Required:

False

1375

Inherited:

False

1376

Property Type:

ID

1377

Cardinality:

Single

1378

Updatability:

Read Only

1379

Choices:

Not Applicable

1380

Open Choice:

Not Applicable

1381

MUST be set on the object

1382
1383

cmis:baseTypeId

Id of the base object-type for the object

1384

Required:

False

1385

Inherited:

False

1386

Property Type:

ID

1387

Cardinality:

Single

1388

Updatability:

Read Only

1389

Choices:

Not Applicable

1390

Open Choice:

Not Applicable

1391

MUST be set on the object


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 43 of 236

1392
1393

cmis:objectTypeId

Id of the objects type

1394

Required:

False

1395

Inherited:

False

1396

Property Type:

ID

1397

Cardinality:

Single

1398

Updatability:

oncreate

1399

Choices:

Not Applicable

1400

Open Choice:

Not Applicable

1401

MUST be set on the object

1402
1403

cmis:createdBy

User who created the object.

1404

Required:

False

1405

Inherited:

False

1406

Property Type:

String

1407

Cardinality:

Single

1408

Updatability:

Read Only

1409

Choices:

Not Applicable

1410

Open Choice:

Not Applicable

1411

MUST be set on the object

1412
1413

cmis:creationDate

DateTime when the object was created.

1414

Required:

False

1415

Inherited:

False

1416

Property Type:

DateTime

1417

Cardinality:

Single

1418

Updatability:

Read Only

1419

Choices:

Not Applicable

1420

Open Choice:

Not Applicable

1421

MUST be set on the object

1422
1423

cmis:lastModifiedBy

User who last modified the object.

1424

Required:

False

1425

Inherited:

False

1426

Property Type:

String

1427

Cardinality:

Single

1428

Updatability:

Read Only

1429

Choices:

Not Applicable

1430

Open Choice:

Not Applicable

1431

MUST be set on the object

1432
1433

cmis:lastModificationDate
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

DateTime when the object was last modified.


11 January 2010
Page 44 of 236

1434

Required:

False

1435

Inherited:

False

1436

Property Type:

DateTime

1437

Cardinality:

Single

1438

Updatability:

Read Only

1439

Choices:

Not Applicable

1440

Open Choice:

Not Applicable

1441

MUST be set on the object

1442
1443
1444

cmis:changeToken

Opaque token used for optimistic locking & concurrency


checking. (see section 2.2.1.3 Change Tokens)

1445

Required:

False

1446

Inherited:

False

1447

Property Type:

String

1448

Cardinality:

Single

1449

Updatability:

Read Only

1450

Choices:

Not Applicable

1451

Open Choice:

Not Applicable

1452
1453

cmis:sourceId

ID of the source object of the relationship.

1454

Required:

True

1455

Inherited:

False

1456

Property Type:

ID

1457

Cardinality:

Single

1458

Choices:

Not Applicable

1459

Open Choice:

Not Applicable

1460
1461

cmis:targetId

ID of the target object of the relationship.

1462

Required:

True

1463

Inherited:

False

1464

Property Type:

ID

1465

Cardinality:

Single

1466

Choices:

Not Applicable

1467

Open Choice:

Not Applicable

1468

2.1.7 Policy Object

1469
1470
1471
1472
1473
1474
1475

A policy object represents an administrative policy that can be enforced by a repository, such as a
retention management policy. CMIS 1.0 does not specify what kinds of administrative policies that are
specifically supported, nor attempts to model administrative policy of any particular kind. Only a base
object-type is specified for policy objects. Each policy object holds the text of an administrative policy as a
repository-specific string, which is opaque to CMIS and which may be used to support policies of various
kinds. A repository may create subtypes of this base type to support different kinds of administrative
policies more specifically. If a repository does not support policy objects, the policy base object-type

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 45 of 236

1476
1477

SHOULD NOT be returned by a Get Types service call. This is an extension point for repositories that
want to expose other capabilities via CMIS that are not supported directly in CMIS 1.0.

1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490

Aside from allowing an application to create and maintain policy objects, CMIS allows an application to
apply a policy to an object, and to remove an applied policy from an object. An object to which a policy
may be applied is called a controllable object. A policy MAY be applied to multiple controllable objects.
Conversely, a repository MAY allow multiple policies applied to a controllable object. (A repository may,
for example, impose constraints such as only one policy of each kind can be applied to an object.)
Whether or not an object is controllable is specified by the objects type definition. Applying a policy to an
object is to place the object under the control of that policy (while the object may also be under the control
of other policies at the same time), and removing an applied policy from one of its controlled objects is to
remove the corresponding control from that object. This control may change the state of the object, may
impose certain constraints on service calls operating on this object, or may cause certain management
actions to take place. The effect of this control, when this effect takes place, and how this control interacts
with other controls, are repository-specific. Only directly/explicitly applied policies are covered by CMIS
1.0. Indirectly applying policy to an object, e.g. through inheritance, is outside the scope of CMIS 1.0.

1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501

A policy object does not have a content-stream and is not versionable. It may be fileable, queryable or
controllable. Policy objects are handled using the basic CRUD services for objects. If a policy is updated,
the change may alter the corresponding control on objects that the policy is currently applied to. If a
controlled object is deleted, all the policies applied to that object, if there are any, are removed from that
object. A policy object that is currently applied to one or more controllable objects CAN NOT be deleted.
That is, there is an implicit referential constraint from a controlled object to its controlling policy object(s).
Besides the basic CRUD services, the Apply Policy (applyPolicy) and the Remove Policy
(removePolicy) services may be used to apply a policy object to a controllable object and respectively to
remove an applied policy from one of its controlled objects. In addition, the Get Applied Policies
(getAppliedPolicies) service may be used to obtain the policy objects that are currently applied to a
controllable object.

1502

2.1.7.1 Policy Object-Type Definition

1503
1504
1505

This section describes the definition of the Policy Object-Types attribute values and property definitions
which must be present on Policy instance objects. All attributes and property definitions are listed by their
ID.

1506

2.1.7.1.1 Attribute Values

1507

The Policy Object-Type MUST have the following attribute values.

1508

Notes:

1509
1510

A value of <repository-specific> indicates that the value of the property MAY be set to any valid
value for the attribute type.

1511
1512

Unless explicitly stated otherwise, all values specified in the table MUST be followed for the
Object-Type definition.

1513
1514
1515
1516
1517
1518
1519
1520
1521

id
Value: cmis:policy
localName
Value: <repository-specific>
localNamespace
Value: <repository-specific>

1522
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 46 of 236

1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544

queryName
Value: cmis:policy
displayName
Value: <repository-specific>
baseId
Value: cmis:policy
parentId
Value: Not set
description
Value: <repository-specific>
creatable
Value: <repository-specific>
fileable
Value: <repository-specific>
queryable

1545
1546

Value: <repository-specific>

1547

includedInSupertypeQuery

1548
1549

Value: <repository-specific>

1550
1551
1552
1553
1554
1555
1556
1557

controllablePolicy
Value: <repository-specific>
controllableACL
Value: <repository-specific>
fulltextIndexed
Value: <repository-specific>

1558
1559

2.1.7.1.2 Property Definitions

1560
1561
1562
1563

The Policy base Object-Type MUST have the following property definitions, and MAY include additional
property definitions. Any attributes not specified by the Property Definitions are repository specific. For
all property definitions on base types, the query name MUST be the same as the property ID. The
repository MUST have the following property definitions on the Policy Type:

1564
1565

cmis:name
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

Name of the object


11 January 2010
Page 47 of 236

1566

Inherited:

False

1567

Property Type:

String

1568

Cardinality:

Single

1569
1570

cmis:objectId

Id of the object

1571

Required:

False

1572

Inherited:

False

1573

Property Type:

ID

1574

Cardinality:

Single

1575

Updatability:

Read Only

1576

Choices:

Not Applicable

1577

Open Choice:

Not Applicable

1578
1579

cmis:baseTypeId

Id of the base object-type for the object

1580

Required:

False

1581

Inherited:

False

1582

Property Type:

ID

1583

Cardinality:

Single

1584

Updatability:

Read Only

1585

Choices:

Not Applicable

1586

Open Choice:

Not Applicable

1587
1588

cmis:objectTypeId

Id of the objects type

1589

Required:

False

1590

Inherited:

False

1591

Property Type:

ID

1592

Cardinality:

Single

1593

Updatability:

oncreate

1594

Choices:

Not Applicable

1595

Open Choice:

Not Applicable

1596
1597

cmis:createdBy

User who created the object.

1598

Required:

False

1599

Inherited:

False

1600

Property Type:

String

1601

Cardinality:

Single

1602

Updatability:

Read Only

1603

Choices:

Not Applicable

1604

Open Choice:

Not Applicable

1605
1606
1607

cmis:creationDate
Required:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

DateTime when the object was created.


False
11 January 2010
Page 48 of 236

1608

Inherited:

False

1609

Property Type:

DateTime

1610

Cardinality:

Single

1611

Updatability:

Read Only

1612

Choices:

Not Applicable

1613

Open Choice:

Not Applicable

1614
1615

cmis:lastModifiedBy

User who last modified the object.

1616

Required:

False

1617

Inherited:

False

1618

Property Type:

String

1619

Cardinality:

Single

1620

Updatability:

Read Only

1621

Choices:

Not Applicable

1622

Open Choice:

Not Applicable

1623
1624

cmis:lastModificationDate

DateTime when the object was last modified.

1625

Required:

False

1626

Inherited:

False

1627

Property Type:

DateTime

1628

Cardinality:

Single

1629

Updatability:

Read Only

1630

Choices:

Not Applicable

1631

Open Choice:

Not Applicable

1632
1633
1634

cmis:changeToken

Opaque token used for optimistic locking & concurrency


checking. (see section 2.2.1.3 Change Tokens)

1635

Required:

False

1636

Inherited:

False

1637

Property Type:

String

1638

Cardinality:

Single

1639

Updatability:

Read Only

1640

Choices:

Not Applicable

1641

Open Choice:

Not Applicable

1642
1643

cmis:policyText

1644

Required:

True

1645

Inherited:

False

1646

Property Type:

String

1647

Cardinality:

Single

1648

Choices:

Not Applicable

1649

Open Choice:

Not Applicable

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

User-friendly description of the policy

11 January 2010
Page 49 of 236

1650

2.1.8 Access Control

1651
1652

A repository can support either a base set of CMIS-defined permissions and/or its own set of repository
specific permissions.

1653
1654
1655
1656

The getACL service allows the requestor to specify that the result be expressed using only the CMIS
defined permissions. Without this restriction, the response may include, or be solely expressed in
repository specific permissions. The applyACL service permits either CMIS permissions or repository
permissions, or a combination of both, to be used.

1657

2.1.8.1 ACL, ACE, Principal, and Permission

1658
1659

An ACL is a list of Access Control Entries (ACEs) and MAY hold zero or more ACEs. If an ACL has no
ACEs, the behavior is the same as if the ACL is not set.

1660

An ACE holds:

1661
1662

one Principal: A principal represents a user management object, e.g. a user, group, or role.
It holds one String with the principalid.

1663

One or more Strings with the names of the permissions.

1664
1665

a Boolean flag direct, which indicates if TRUE the ACE is directly assigned to the object. If
FALSE, that the ACE is somehow derived.

1666

2.1.8.2 CMIS Permissions

1667

There are three basic permissions predefined by CMIS:

1668
1669

cmis:read: to be used to express permission to read. A Repository SHOULD express the


permission for reading properties AND reading content with this permission.

1670
1671

cmis:write: to be used to express permission to write. SHOULD be used to express permission


to write properties and content of an object. MAY include other basic CMIS permissions.

1672
1673

cmis:all: SHOULD be used to express all the permissions of a repository. SHOULD include all
other basic CMIS permissions.

1674
1675
1676

How these basic permissions can be mapped to the allowable actions is repository specific. However, the
actual repository semantics for the basic permissions with regard to allowable actions can be discovered
by the mappings parameter returned by getRepositoryInfo (see below).

1677

Repositories MAY extend this set with repository-specific permissions.

1678

2.1.8.3 ACL Capabilities

1679
1680
1681

Whether a repository supports ACLs at all, may be discovered via capabilityACL returned by
getRepositoryInfo (see section 2.1.1.1 Optional Capabilities). If capabilityACL is none, ACLs are not
supported by the repository.

1682
1683

If capabilityACL is discover or manage, additional information about the repositories permission model
and how changes to ACL are handled, can be discovered via the getRepositoryInfo service:

1684
1685

<Array> Enum propagation: specifies, how non-direct ACEs can be handled by the repository
using the following values (see section 2.2.10.2 applyACL):

1686
1687

objectonly indicates, that the repository is able to apply ACEs to a document or folder,
without changing the ACLs of other objects.

1688
1689

propagate: indicates that the ACEs is to be applied to the given object and all inheriting
objects.

1690
1691
1692

repositorydetermined indicates, that the repository has its own mechanism of


computing how changing an ACL for an object influences the non-direct ACEs of other
objects.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 50 of 236

1693
1694

<Array> PermissionDefinition repositoryPermissions: is a list with names and descriptions of


the supported permissions.

1695
1696

<Array> PermissionMapping mappings: contains a list with mappings for the basic CMIS
permissions to allowed actions.

1697

2.1.8.3.1 Supported Permissions

1698
1699

The list of permission definitions returned by getRepositoryInfo lists all the permissions a repository
supports. This list also includes the CMIS permissions if supported by the repository.

1700

A PermissionDefinition holds:

1701
1702

String permission: the (technical) name of the permission (unique within the list of permission
definitions).

1703
1704

(Optional) String description: an optional description of the permission that should be used as
the permissions name to be presented to the user.

1705

2.1.8.3.2 AllowableActions & Permission Mapping

1706
1707
1708

CMIS provides a mechanism called AllowableActions which allows an application to discover the set of
service operations that can currently be performed on a particular object, without having to actually invoke
the service.

1709
1710

The set of allowable actions on an object at a point in time are affected not only by CMIS ACLs, but also
by other factors such as:

1711
1712

Constraints inherent in the CMIS Domain Model based on the objects base type or current
versioning state.

1713

Policies or other control mechanisms that are opaque to CMIS.

1714
1715
1716

CMIS defines several services that applications can use at run-time to discover the AllowableActions for
an object.

1717
1718
1719
1720

If a Repository supports ACLs, then the repository MUST provide a mapping table that defines how the
permissions supported by the repository interact with the CMIS allowable actions, i.e. which permissions
are necessary for a principal to have on one or more objects in order to potentially perform each action,
subject to the other constraints on allowable actions above.

1721
1722

This section defines both the allowable actions as well as how those actions are presented in the
PermissionMapping table.

1723

The Permission Mapping table contains a set of (key, permissions) pairs:

1724
1725
1726
1727
1728

1729
1730
1731
1732
1733
1734

String Key: Because several allowable actions may require permissions on more than one object
for example, moving a document from one folder to another may require permissions on the
document and each of the folders the mapping table is defined in terms of permission keys,
where each key combines the name of the allowable action as the object for which the principal
needs the required permission.
o

For example the canMoveObject.Source key indicates the permissions that the
principal must have on the source folder to move an object from that folder into another
folder.

<Array> String permissions: The names of one or more permissions that the principal MUST
have. If more than one permission is specified, then the principal MUST be allowed to perform the
operation if they have ANY of the listed permissions.

1735
1736

The list below defines all mapping keys, as well as a permissions mapping that repositories SHOULD
use. Repositories MAY require additional permissions.

1737
1738

For convenience, the list below groups all mapping entries by the underlying Allowable Actions, and
includes descriptive information. For each Allowable Action the following information is given:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 51 of 236

1739

Description:

The description and name of the service the AllowableAction enables.

1740

Base Object:

The base object-types for which the allowable action MAY be TRUE.

1741

Operand:

The object the permission applies to.

1742

Key:

The permission mapping key.

1743

Permissions:

The permission values.

1744
1745
1746

Navigation Services:
canGetDescendants

1747

Description:

Can get the descendants of the folder (getDescendants)

1748

Base Object:

cmis:folder

1749

Operand:

cmis:folder

1750

Key:

canGetDescendants.Folder

1751

Permission:

Read

1752
1753

canGetFolderTree

1754

Description:

Can get the sub-folder tree of the folder (getFolderTree)

1755

Base Object:

cmis:folder

1756

Operand:

cmis:folder

1757

Key:

canGetFolderTree.Folder

1758

Permission:

Read

1759
1760

canGetChildren

1761

Description:

Can get the children of the folder (getChildren)

1762

Base Object:

cmis:folder

1763

Operand:

cmis:folder

1764

Key:

canGetChildren.Folder

1765

Permission:

Read

1766
1767

canGetFolderParent

1768

Description:

Can get the parent/ancestor folder(s) of the folder (getFolderParent)

1769

Base Object:

cmis:folder

1770

Operand:

cmis:folder

1771

Key:

canGetFolderParent.Folder

1772

Permission:

Read

1773
1774

canGetObjectParents

1775

Description:

Can get the parent folders of the object. (getObjectParents)

1776

Base Object:

cmis:document, cmis:folder, cmis:policy

1777

Operand

Object

1778

Key:

canGetObjectParents.Object

1779

Permission:

Read

1780
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 52 of 236

1781
1782

Object Services:
canCreateDocument

1783

Description:

Can create a cmis:document Object in the folder (createDocument)

1784

Base Object:

cmis:folder

1785

Operand:

Folder

1786

Key:

canCreateDocument.Folder

1787

Permission:

Read

1788
1789

canCreateFolder

1790
1791

Description:
(createFolder)

Can create a cmis:folder Object as a child of the specified folder

1792

Base Object:

cmis:folder

1793

Operand:

Folder

1794

Key:

canCreateFolder.Folder

1795

Permission:

Read

1796
1797

canCreateRelationship

1798
1799

Description:

Can create a Relationship in which this Object is a source


(createRelationship)

1800

Base Object:

cmis:document, cmis:folder

1801

Operand:

Object

1802

Key:

canCreateRelationship.Source

1803

Permission:

Read

1804
1805

canCreateRelationship

1806
1807

Description:

Can create a Relationship in which this Object is a target


(createRelationship)

1808

Base Object:

cmis:document, cmis:folder

1809

Operand:

Object

1810

Key:

canCreateRelationship.Target

1811

Permission:

Read

1812
1813

canGetProperties

1814

Description:

Can read the properties of this object (getProperties)

1815

Base Object:

cmis:document, cmis:folder, cmis:relationship, cmis:policy

1816

Operand:

Object

1817

Key:

canGetProperties.Object

1818

Permission:

Read

1819
1820

canGetRenditions

1821

Description:

Can retrieve the renditions of this object (getRenditions)

1822

Base Object:

cmis:document, or cmis:folder

1823

Operand:

Object

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 53 of 236

1824

Key:

canGetRenditions.Object

1825

Permission:

Read

1826
1827

canGetContentStream

1828
1829

Description:

Can get the content stream for the Document object


(getContentStream)

1830

Base Object:

cmis:document

1831

Operand:

Object

1832

Key:

canGetContentStream.Object

1833

Permission:

Read

1834
1835

canUpdateProperties

1836

Description:

Can update the properties of this object (updateProperties)

1837

Base Object:

cmis:document, cmis:folder, cmis:relationship, cmis:policy

1838

Operand:

Object

1839

Key:

canUpdateProperties.Object

1840

Permission:

Write

1841
1842

canMoveObject

1843

Description:

Can move the object (moveObject)

1844

Base Object:

cmis:document, cmis:folder, cmis:policy

1845

Operand:

Object

1846

Key:

canMoveObject.Object

1847

Permission:

Write

1848
1849

canMoveObject

1850

Description:

Can move an object into this folder (moveObject)

1851

Base Object:

cmis:folder

1852

Operand:

Folder

1853

Key:

canMoveObject.Target

1854

Permission:

Read

1855
1856

canMoveObject

1857

Description:

Can move an object from this folder (moveObject)

1858

Base Object:

cmis:folder

1859

Operand:

Folder

1860

Key:

canMoveObject.Source

1861

Permission:

Read

1862
1863

canDeleteObject

1864

Description:

Can delete this object (deleteObject)

1865

Base Object:

cmis:document, cmis:folder, cmis:relationship, cmis:policy

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 54 of 236

1866

Operand:

Object

1867

Key:

canDelete.Object

1868

Permission:

Write

1869
1870

canDeleteObject

1871

Description:

Can delete an object that is a child of this folder (deleteObject)

1872

Base Object:

cmis:folder

1873

Operand:

Folder

1874

Key:

canDelete.Folder

1875

Permission:

Read

1876
1877

canSetContentStream

1878
1879

Description:

Can set the content stream for the Document object


(setContentStream)

1880

Base Object:

cmis:document

1881

Operand:

Object

1882

Key:

canSetContentStream.Document

1883

Permission:

Write

1884
1885

canDeleteContentStream

1886

Base Object:

cmis:document

1887
1888

Action:

Can delete the content stream for the Document object


(deleteContentStream)

1889

Operand:

Object

1890

Key:

canDeleteContentStream.Document

1891

Permission:

Write

1892
1893

canDeleteTree

1894

Base Object:

cmis:folder

1895

Action:

Can delete the folder and all contained objects (deleteTree)

1896

Operand:

Object

1897

Key:

canDeleteTree.Folder

1898

Permission:

Write

1899
1900
1901

Filing Services:
canAddObjectToFolder

1902

Description:

Can file the document in a folder (addObjectToFolder)

1903

Base Object:

cmis:document, cmis:policy

1904

Operand:

Object

1905

Key:

canAddObjectToFolder.Object

1906

Permission:

Read

1907
1908

canAddObjectToFolder
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 55 of 236

1909

Description:

Can file a document in the specified folder (addObjectToFolder)

1910

Base Object:

cmis:document, cmis:policy

1911

Operand:

Object

1912

Key:

canAddObjectToFolder.Folder

1913

Permission:

Read

1914
1915

canRemoveObjectFromFolder

1916
1917

Description:
Can unfile the specified document from a folder
(removeObjectFromFolder)

1918

Base Object:

cmis:document, cmis:policy

1919

Operand:

Object

1920

Key:

canRemoveObjectFromFolder.Object

1921

Permission:

Read

1922
1923

canRemoveObjectFromFolder

1924
1925

Description:
Can unfile a document from the specified folder
(removeObjectFromFolder)

1926

Base Object:

cmis:document, cmis:policy

1927

Operand:

Object

1928

Key:

canRemoveObjectFromFolder.Folder

1929

Permission:

Read

1930
1931

Versioning Services:

1932

canCheckOut

1933

Description:

Can check out the Document object (checkOut)

1934

Base Object:

cmis:document

1935

Operand:

Object

1936

Key:

canCheckOut.Document

1937

Permission:

Write

1938
1939

canCancelCheckOut

1940

Description:

Can cancel the check out the Document object (cancelCheckOut)

1941

Base Object:

cmis:document

1942

Operand:

Object

1943

Key:

canCancelCheckOut.Document

1944

Permission:

Write

1945
1946

canCheckIn

1947

Description:

Can check in the Document object (checkIn)

1948

Base Object:

cmis:document

1949

Operand:

Object

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 56 of 236

1950

Key:

canCheckIn.Document

1951

Permission:

Write

1952
1953

canGetAllVersions

1954

Description:

Can get the version series for the Document object (getAllVersions)

1955

Base Object:

cmis:document

1956

Operand:

Object

1957

Key:

canGetAllVersions.Document

1958

Permission:

Read

1959
1960
1961

Relationship Services:
canGetObjectRelationships

1962
1963

Description:

Can get the relationship in which this object is a source/target


(getObjectRelationships)

1964

Base Object:

cmis:document, cmis:folder, cmis:policy

1965

Operand:

Object

1966

Key:

canGetObjectRelationships.Object

1967

Permission:

Read

1968
1969
1970

Policy Services:
canApplyPolicy

1971

Description:

Can apply a policy to the Object (applyPolicy)

1972

Base Object:

cmis:document, cmis:folder

1973

Operand:

Object

1974

Key:

canApplyPolicy.Object

1975

Permission:

Read

1976
1977

canApplyPolicy

1978

Description:

Can apply the specified policy to an Object (applyPolicy)

1979

Base Object:

cmis:policy

1980

Operand:

Object

1981

Key:

canApplyPolicy.Policy

1982

Permission:

Read

1983
1984

canRemovePolicy

1985

Description:

Can remove a policy from the specified Object (removePolicy)

1986

Base Object:

cmis:document, cmis:folder

1987

Operand:

Object

1988

Key:

canRemovePolicy.Object

1989

Permission:

Read

1990
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 57 of 236

1991

canRemovePolicy

1992

Description:

Can remove the specified policy from an Object (removePolicy)

1993

Base Object:

cmis:document, cmis:folder

1994

Operand:

cmis:policy

1995

Key:

canRemovePolicy.Policy

1996

Permission:

Read

1997
1998

canGetAppliedPolicies

1999
2000

Description:

Can get the list of Policies applied to the Object


(getAppliedPolicies)

2001

Base Object:

cmis:document, cmis:folder

2002

Operand:

Object

2003

Key:

canGetAppliedPolicies.Object

2004

Permission:

Read

2005
2006
2007

ACL Services:
canGetACL

2008

Description:

Can get ACL for object (getACL)

2009

Base Object:

cmis:document, cmis:folder, cmis:relationship, cmis:policy

2010

Operand:

Object

2011

Key:

canGetACL.Object

2012

Permission:

Read

2013
2014

canApplyACL

2015

Description:

Can apply ACL to this object (applyACL)

2016

Base Object:

cmis:document, cmis:folder, cmis:relationship, cmis:policy

2017

Operand:

Object

2018

Key:

canApplyACL.Object

2019

Permission:

Write

2020

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 58 of 236

2021
2022

2.1.9 Versioning

2023
2024

CMIS supports versioning of Document objects. Folder objects, relationship objects, and policy objects
cannot be versioned.

2025
2026
2027

Whether or not a Document object is versionable (i.e. whether or not operations performed on the object
via the Versioning Services MUST be allowed) is specified by the versionable attribute on its Objecttype.

2028
2029
2030

A version of a Document object is an explicit/deep copy of the object, preserving its state at a certain
point in time. Each version of a Document object is itself a Document object, i.e. has its own ObjectId,
property values, MAY be acted upon using all CMIS services that act upon Document objects, etc.

2031

2.1.9.1 Version Series

2032
2033
2034

A version series for a Document object is a transitively closed collection of all Document objects that
have been created from an original Document in the Repository. Each version series has a unique,
system-assigned, and immutable version series ID.

2035
2036
2037

The version series has transitive closure -- that is, if object B is a version of object A, and object C is a
version of object B, then object C is also a version of object A. The objects in a version series can be
conceptually sequenced by their respective CreationDate properties.

2038
2039

Additionally, the repository MAY expose a textual VersionLabel that describes to a user the position of
an individual object with respect to the version series. (For example, version 1.0).

2040
2041

Note: A Document object that is NOT versionable will always have a single object in its Version Series. A
versionable Document object MAY have one or more objects in its Version Series.

2042

2.1.9.2 Latest Version

2043
2044

The version that has the most recent LastModificationDate is called the Latest Version of the series, or
equivalently, the latest version of any Document object in the series.

2045
2046

When the latest version of a version series is deleted, a previous version (if there is one) becomes the
latest version.

2047

2.1.9.2.1 Behavioral constraints on non-Latest Versions

2048
2049

Repositories NEED NOT allow the non-latest versions in a Version Series to be updated, queried, or
searched.

2050

2.1.9.3 Major Versions

2051

A Document object in a Version Series MAY be designated as a Major Version.

2052
2053
2054
2055

The CMIS specification does not define any semantic/behavioral differences between Major and nonMajor versions in a Version Series. Repositories may enforce/apply additional constraints or semantics for
Major versions, if the effect on CMIS services remains consistent with an allowable behavior of the CMIS
model.

2056
2057

If the Version Series contains one or more Major versions, the one that has the most recent
LastModificationDate is the Latest Major Version of the version series.

2058
2059

(Note that while a Version Series MUST always have a Latest Version, it NEED NOT have a Latest Major
Version.)

2060
2061

When the latest major version is deleted, a previous major version (if there is one) becomes the latest
major version.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 59 of 236

2062

2.1.9.4 Services that modify Version Series

2063

2.1.9.4.1 Checkout

2064
2065
2066
2067

A new version of a versionable Document object is created when the checkIn service is invoked on the
Private Working copy (PWC) of this object. A PWC is created by invoking checkOut on a versionable
Document object. A repository MAY allow any Document object in a version series to be checked out, or
MAY only allow the Latest Version to be checked out.

2068

The effects of invoking the checkout service MUST be as follows:

2069

A new Document object, referred to herein as the Private Working Copy (PWC), is created.

2070
2071

The PWC NEED NOT be visible to users who have permissions to view other Document
objects in the Version Series.

2072
2073

Until it is checked in (using the checkIn service), the PWC MUST NOT be considered the
LatestMajorVersion in the Version Series.

2074
2075
2076
2077
2078

The property values for the PWC SHOULD be identical to the properties of the Document
object on which the checkout service was invoked. Certain properties such as cmis:objectId
may be different. Properties such as cmis:creationDate most likely will be different. The
content-stream of the PWC MAY be identical to the content-stream of the Document object
on which the checkout service was invoked, or MAY be not set.

2079
2080
2081

After a successful checkout operation is completed, and until such time when the PWC is deleted (via the
cancelCheckOut service) or checked-in (via the checkIn) service, the effects on other Documents in the
Version Series MUST be as follows:

2082
2083

The repository MUST throw an exception if the checkout service is invoked on any Document in
the Version Series. (I.e. there can only be one PWC for a version series at a time.)

2084

The value of the cmis:isVersionSeriesCheckedOut property MUST be TRUE.

2085
2086
2087

The value of the cmis:versionSeriesCheckedOutBy property MAY be set to a value indicating


which user created the PWC. (The Repository MAY still show the not set value for this
property.)

2088
2089

The value of the cmis:versionSeriesCheckedOutId property MAY be set to the ObjectId of the
PWC. (The Repository MAY still show the not set value for this property).

2090
2091

The repository MAY prevent operations that modify or delete the other Documents in the Version
Series.

2092

2.1.9.4.2 Updates to the Private Working Copy

2093
2094

If the repository supports the optional PWCUpdatable capability, then the repository MUST allow
authorized users to modify the PWC Object using the Object services (e.g. UpdateProperties).

2095
2096

If the repository does NOT support the PWCUpdatable capability, then the PWC object can only be
modified as part of the checkIn service call.

2097

2.1.9.4.3 Discarding Check out

2098
2099
2100

An authorized user MAY discard the check-out using the cancelCheckOut service on any Document in
the Version Series or by using the deleteObject service on the PWC Object. The effects of discarding a
check-out MUST be as follows:

2101

The PWC Object MUST be deleted.

2102

For all other Documents in the Version Series:

2103

The value of the cmis:isVersionSeriesCheckedOut property MUST be FALSE.

2104

The value of the cmis:versionSeriesCheckedOutBy property MUST be not set.

2105

The value of the cmis:versionSeriesCheckedOutId property MUST be not set.

2106

The repository MUST allow authorized users to invoke the checkout service.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 60 of 236

2107

2.1.9.4.4 Checkin

2108

An authorized user/application MAY check in the Private Working Copy object via the checkIn service.

2109
2110

The checkIn service allows users/applications to provide update property values and a content-stream for
the PWC object.

2111

The effects of the checkIn service MUST be as follows for successful checkins:

2112
2113
2114

The PWC object MUST be updated as specified by the inputs to the checkIn service. (Note that
for repositories that do NOT support the PWCUpdatable property, this is the only way to update
the PWC object.)

2115
2116

The Document object resulting from the checkIn operation MUST be considered the Latest
Version in the Version Series.

2117
2118

If the inputs to the checkIn service specified that the PWC MUST be a major version, then the
PWC MUST be considered the Latest Major Version in the Version Series.

2119
2120

If the checkin returns a new cmis:objected, then the PWC object MUST disappear if the checkIn
call was successful and the new checked in version will use the new specified id.

2121

For all Documents in the Version Series:

2122

The value of the cmis:isVersionSeriesCheckedOut property MUST be FALSE.

2123

The value of the cmis:versionSeriesCheckedOutBy property MUST be not set.

2124

The value of the cmis:versionSeriesCheckedOutId property MUST be not set.

2125

The repository MUST allow authorized users to invoke the checkout service.

2126

Note: The Repository MAY change the ID of the PWC upon completion of the checkin service invocation.

2127
2128

Note: A repository MAY automatically create new versions of Document objects without an explicit
invocation of the checkout/checkin services.

2129

2.1.9.5 Versioning Properties on Document Objects

2130

All Document objects will have the following read-only property values pertaining to versioning:

2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149

cmis:isLatestVersion

Boolean

TRUE if the Document object is the Latest Version in its Version Series. FALSE otherwise.
cmis:isMajorVersion

Boolean

TRUE if the Document object is a Major Version in its Version Series. FALSE otherwise.
cmis:isLatestMajorVersion

Boolean

TRUE if the Document object is the Latest Major Version in its Version Series. FALSE otherwise.
cmis:versionLabel

String (optional)

Optional textual description the position of an individual object with respect to the version series.
(For example, version 1.0).
cmis:versionSeriesId

ID

ID of the Version Series for this Object.


cmis:isVersionSeriesCheckedOut

Boolean

TRUE if there currenly exists a Private Working Copy for this Version Series. FALSE otherwise
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 61 of 236

2150
2151

cmis:versionSeriesCheckedOutBy

2152
2153
2154
2155

If IsVersionSeriesCheckedOut is TRUE: then an identifier for the user who created the Private
Working Copy. Not set otherwise.
cmis:versionSeriesCheckedOutId

2156
2157
2158
2159

String

ID

If IsVersionSeriesCheckedOut is TRUE: The Identifier for the Private Working Copy. Not set
otherwise.
cmis:checkinComment

2160

String

Textual comment associated with the given version.

2161
2162
2163

Note: Changes made via the Versioning Services that affect the values of these properties MUST NOT
constitute modifications to the Document objects in the Version Series (e.g. MUST NOT affect the
cmis:lastModificationDate, etc.)

2164

2.1.9.6 Document Creation and Initial Versioning State

2165
2166
2167

A repository MAY create new Document objects in a Private Working Copy state when they are created
via the createDocument or createDocumentFromSource services. This state is logically equivalent to
having a Version Series that contains exactly one object (the PWC) and 0 other documents.

2168
2169

The repository MAY also create new Document objects in a Major Version state. This state is logically
equivalent to having a Version Series that contains exactly one Major Version and 0 other documents.

2170
2171
2172

The repository MAY also create new Document objects in a Non-Major Version state. This state is
logically equivalent to having a Version Series that contains exactly one Non-Major Version and 0 other
documents.

2173
2174

If the repository does not support versioning the repository MAY create new Document objects in a Major
Version state. MUST ignore the value of the versioningState parameter.

2175

2.1.9.7 Version Specific/Independent membership in Folders

2176
2177

Repositories MAY treat membership of a Document object in a folder collection as version-specific or


version-independent.

2178
2179

Repositories MUST indicate whether they support version-specific membership in a folder via the
VersionSpecificFiling optional capability flag.

2180

If the repository is treating folder collection membership as version-independent, then:

2181
2182

Moving or Filing a Document Object into a folder MUST result in ALL Documents in the Version
Series being moved/filed into the folder.

2183
2184
2185

The Repository MAY return only the latest-version OR latest major-version Document object in a
version series in the response to Navigation service requests (getChildren, getDescendants), and
NEED NOT return other Document Objects filed in the folder that are in the Version Series.

2186
2187
2188

If the repository is treating folder collection membership as version-specific, then moving or Filing a
Document Object into a folder MUST NOT result in other Documents in the Version Series being
moved/filed.

2189

2.1.9.8 Version Specific/Independent membership in Relationships

2190
2191
2192

A relationship object MAY have either a version-specific or version-independent binding to its source
and/or target objects. This behavior MAY vary between repositories and between individual relationship
types defined for a Repository.

2193

If a relationship object has a version-independent binding to its source/target object, then:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 62 of 236

2194
2195
2196
2197
2198
2199

The getObjectRelationships service invoked on a Document Object MUST return the relationship
if Relationship was source/target is set to ANY Document Object in the Version Series.

If a relationship object has a version-specific binding to its source/target object, then:

The getObjectRelationships service invoked on a Document Object MUST return the relationship
if Relationship was source/target is set to the ID of the Document Object on which the service was
invoked.

2200

2.1.9.9 Versioning visibility in Query Services

2201
2202

Repositories MAY include non-latest-versions of Document Objects in results to the Discovery Services
(query).

2203
2204

Repositories MUST indicate whether they support querying for non-latest-versions via the
AllVersionsSearchable optional capability flag.

2205
2206
2207

If AllVersionsSearchable is TRUE then the Repository MUST include in the query results ANY
Document Object in the Version Series that matches the query criteria. (subject to other query constraints
such as security.)

2208
2209

Additionally, repositories MAY include Private Working Copy objects in results in results to the Discovery
Services (query).

2210
2211

Repositories MUST indicate whether they support querying for Private Working Copy objects via the
PWCSearchable optional capability flag.

2212
2213
2214

If PWCSearchable is TRUE then the Repository MUST include in the query results ANY Private Working
Copy Document Objects that matches the query criteria (subject to other query constraints such as
security.)

2215
2216
2217

If PWCSearchable is FALSE then the Repository MUST NOT include in the query results ANY Private
Working Copy Document Objects that match the query criteria (subject to other query constraints such as
security.)

2218

2.1.10 Query

2219
2220

CMIS provides a type-based query service for discovering objects that match specified criteria, by
defining a read-only projection of the CMIS data model into a Relational View.

2221
2222
2223
2224
2225
2226
2227

Through this relational view, queries may be performed via a simplified SQL SELECT statement. This
query language is based on a subset of the SQL-92 grammar (ISO/IEC 9075: 1992 Database
Language SQL), with a few extensions to enhance its filtering capability for the CMIS data model, such as
existential quantification for multi-valued property, full-text search, and folder membership. Other
statements of the SQL language are not adopted by CMIS. The semantics of this query language is
defined by the SQL-92 standard, plus the extensions, in conjunction with the model mapping defined by
CMISs relational view.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 63 of 236

CMIS Query
Syntax
SQL-92 subset + Extensions for
Multi-valued property
Fulltext search
Folder membership

Semantics
SQL-92 + Extensions
+ Relational View mapping

Relational View

Table (Object Type, Type Inheritance)


Row (Object)
Column (Property)

Object Type, Type Inheritance,


Object, Property, Content Stream,
Versioning

CMIS Data Model

2228
2229

2.1.10.1 Relational View Projection of the CMIS Data Model

2230
2231

The relational view of a CMIS repository consists of a collection of virtual tables that are defined on top of
the CMIS data model. This relational view is used for query purposes only.

2232
2233

In this relational view a Virtual Table is implicitly defined for each queryable Object-Type defined in the
repository. (Non-queryable Object-Types are NOT exposed through this Relational View.)

2234
2235
2236
2237
2238

In each Virtual Table, a Virtual Column is implicitly defined for each property defined in the Object-Type
Definition AND for all properties defined on ANY ancestor-type of the Object-Type but NOT defined in the
Object-Type definition. Virtual Columns for properties defined on ancestor-types of the Object-type but
NOT defined in the Object-Type definition MUST contain the SQL NULL value. Virtual Columns for
properties whose value is not set MUST contain the SQL NULL value.

2239
2240
2241

An object-types queryName attribute is used as the table name for the corresponding virtual table, and a
propertys queryName attribute is used as the column name for the corresponding table column. Please
see the restrictions on queryName in the appropriate data model section.

2242
2243

The Virtual Column for a multi-valued property MUST contain a single list value that includes all values of
the property.

2244

2.1.10.1.1 Object-Type Hierarchy in the Relational View Projection

2245
2246

The Relational View projection of the CMIS Data Model ensures that the Virtual Table for a particular
Object-type is a complete super-set of the Virtual Table for any and all of its ancestor types.

2247
2248
2249
2250

Additionally, an Object-Type definitions includedInSupertypeQuery specifies whether objects of that


Object-Type MUST be included in the Virtual Table for any of its ancestor types. If the
includedInSupertypeQuery attribute of the Object-Type is FALSE, then objects of that Object-Type
MUST NOT be included in the Virtual Table for any of its ancestor types.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 64 of 236

2251
2252
2253

Thus the Virtual Table for an Object-type includes a row not only for each Object of that type, but all
Objects of any of that Object-types Descendant Types for which the includedInSupertypeQuery
attribute is TRUE.

2254
2255
2256

But since the Virtual Table will include only columns for properties defined in the Object-Type underlying
the Virtual Table, a row that is a query result representing an Object of a Descendant Type can only
include those columns for properties defined on the Object-Type underlying the Virtual Table.

Query Search Scope


B is a subtype of A.
C is a subtype of B.

= Inherited property definitions

Relational View

Search scope
for query on A

Objects of
Type A
Search scope
for query on B
Objects of
Type B
Search scope
for query on C
Objects of
Type C

2257
2258

2.1.10.1.2 Content Streams

2259

Content-streams are NOT exposed through this relational view.

2260

2.1.10.1.3 Result Set

2261
2262

When a query is submitted, a set of pseudo CMIS objects will be returned. These pseudo objects are
comprised of the properties specified in the select clause of the query statement.

2263
2264
2265

For each property in each object in the result set, the Repository MUST include the property definition ID
as well as either the query name (if no alias is used) or the alias in place of the query name (if an alias is
used).

2266
2267

If the select clause of the query statement contains properties from a single type reference then the
repository MAY represent these pseudo-objects with additional object information.

2268

2.1.10.2 Query Language Definition

2269
2270

This query languages is based on a subset of the SQL-92 grammar. CMIS-specific language extensions
to SQL-92 are called out explicitly.

2271

The basic structure of a CMIS query is a SQL statement that MUST include the following clauses:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 65 of 236

2272
2273

SELECT [virtual columns]: This clause identifies the set of virtual columns that will be included
in the query results for each row.

2274
2275

FROM [Virtual Table Names]: This clause identifies which Virtual Table(s) the query will run
against.

2276

Additionally, a CMIS query MAY include the following clauses:

2277
2278

WHERE [conditions]: This clause identifies the constraints that rows MUST satisfy to be
considered a result for the query.

2279
2280

ORDER BY [sort specification]: This clause identifies the order in which the result rows MUST
be sorted in the result row set.

2281

2.1.10.2.1 BNF Grammar

2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294

This BNF grammar is a subset of the SQL-92 grammar (ISO/IEC 9075: 1992 Database Language
SQL), except for some production alternatives. Specifically, except for these extensions, the following
production rules are derived from the SQL-92 grammar. The non-terminals used in this grammar are also
borrowed from the SQL-92 grammar without altering their semantics. Accordingly, the non-terminal
<column name> is used for single-valued properties only so that the semantics of SQL can be preserved
and borrowed. This approach not only facilitates comparison of the two query languages, and simplifies
the translation of a CMIS query to a SQL query for a RDBMS-based implementation, but also allows
future expansion of this query language to cover a larger subset of SQL with minimum conflict. The CMIS
extensions are introduced primarily to support multi-valued properties and full-text search, and to test
folder membership. Multi-valued properties are handled separately from single-valued properties, using
separate non-terminals and separate production rules to prevent the extensions from corrupting SQL-92
semantics.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 66 of 236

2295
2296

<CMIS 1.0 query statement> ::= <simple table> [ <order by clause> ]

2297

<simple table> ::= SELECT <select list> <from clause> [ <where clause> ]

2298

<select list> ::= *

2299
2300

| <select sublist> [ { , <select sublist> } ]


<select sublist> ::= <value expression> [ [ AS ] <column name> ]

2301

| <qualifier> .*

2302

| <multi-valued-column reference>

2303

<value expression> ::= <column reference> | <numeric value function>

2304

<column reference> ::= [ <qualifier> . ] <column name>

2305

<multi-valued-column reference> ::= [ <qualifier> . ] <multi-valued-column name>

2306

<numeric value function> ::= SCORE()

2307

<qualifier> ::= <table name> | <correlation name>

2308

<from clause> ::= FROM <table reference>

2309

<table reference> ::= <table name> [ [ AS ] <correlation name> ]

2310
2311
2312

| <joined table>
<joined table> ::= ( <joined table> )
| <table reference> [ <join type> ] JOIN <table reference> <join specification>

2313

<join type> ::= INNER | LEFT [ OUTER ]

2314

<join specification> ::= ON <column reference> "=" <column reference>

2315

<where clause> ::= WHERE <search condition>

2316

<search condition> ::= <boolean term> | <search condition> OR <boolean term>

2317

<boolean term> ::= <boolean factor> | <boolean term> AND <boolean factor>

2318

<boolean factor> ::= [ NOT ] <boolean test>

2319

<boolean test> ::= <predicate> | ( <search condition> )

2320

<predicate> ::= <comparison predicate> | <in predicate> | <like predicate> | <null predicate>

2321

| <quantified comparison predicate> | <quantified in predicate>

2322

| <text search predicate> | <folder predicate>

2323

<comparison predicate> ::= <value expression> <comp op> <literal>

2324

<comp op> ::= = | <> | < | > | <= | >=

2325

<literal> ::= <signed numeric literal> | <character string literal> | <datetime literal> | <boolean literal>

2326

<in predicate> ::= <column reference> [ NOT ] IN ( <in value list> )

2327

<in value list> ::= <literal> [{ , <literal> }]

2328

<like predicate> ::= <column reference> [ NOT ] LIKE <character string literal>

2329

<null predicate> ::= { <column reference> | <multi-valued-column reference> } IS [ NOT ] NULL

2330

<quantified comparison predicate> ::= <literal> = ANY <multi-valued-column reference>

2331

<quantified in predicate> ::= ANY <multi-valued-column reference> [ NOT ] IN ( <in value list> )

2332

<text search predicate> ::= CONTAINS "("

2333

[ <qualifier> "," ] <quote> <text search expression> <quote> ")"

2334

<folder predicate> ::= { IN_FOLDER | IN_TREE } ( [ <qualifier> , ] <folder id> )

2335

<order by clause> ::= ORDER BY <sort specification> [ { , <sort specification> } ]

2336

<sort specification> ::= <column reference> [ ASC | DESC ]

2337

<correlation name> ::= <identifier>


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 67 of 236

2338

<table name> ::= <identifier>

!! This MUST be the name of an object-type.

2339

<column name> ::= <identifier> !! This MUST be the name of a single-valued property,

2340

or an alias for a scalar output value.

2341

<multi-valued-column name> ::= <identifier>

!! This MUST be the name of a multi-valued property.

2342

<folder id> ::= <character string literal>

!! This MUST be the object identity of a folder object.

2343

<identifier> ::=

!! As defined by queryName attribute.

2344

<signed numeric literal> ::=

!! As defined by SQL-92 grammar.

2345

<character string literal> ::=

!! As defined by SQL-92 grammar. (i.e. enclosed in single-quotes)

2346
2347

!! This is full-text search criteria.

2348

<text search expression> ::= <disjunct>conjunct> [ {<space> OR <space> <disjunct>}conjunct>} ]

2349

<disjunctconjunct> ::= <term> [ {<space> <term>} ]

2350

<term> ::= ['-'] <simple term>

2351

<simple term> ::= <word> | <phrase>

2352

<word> ::= <non space char> [ {<non space char>} ]

2353

<phrase> ::= <quote> <word> [ {<space> <word>} ] <quote>

2354

<space> ::= <space char> [ {<space char>} ]

2355

<non space char> ::= <char> - <space char>

2356

<space char> ::= ' '

2357

<char> ::= !! Any character

2358
2359

<datetime literal> ::= TIMESTAMP <quote> <datetime string> <quote>

2360

<datetime string> ::= YYYY-MM-DDThh:mm:ss.sss[Z | +hh:mm | -hh:mm]

2361

<boolean literal> ::= TRUE | FALSE | true | false

2362

<quote> ::= |

2363

2.1.10.2.2 SELECT Clause

2364

The SELECT clause MUST contain exactly one of the following:

2365

2366
2367
2368
2369
2370

A comma separated list of one or more column names.


o

!! Single-quote only, consistent with SQL-92 string literal

If an explicit column list is provided: A repository MUST include in its result row set all of the
columns specified in the SELECT clause.

* : If this token is specified, then the repository MUST return columns for ALL single-valued
properties defined in the Object-Types whose Virtual Tables are listed in the FROM clause, and
SHOULD also return all multi-valued properties.

2371
2372

All column names MUST be valid queryName values for properties that are defined as queryable in the
Object-Type(s) whose Virtual Tables are listed in the FROM clause.

2373

2.1.10.2.3 FROM Clause

2374
2375

The FROM clause identifies which Virtual Table(s) the query will be run against, as described in the
previous section.

2376
2377

The FROM clause MUST contain only the queryNames of Object-Types whose queryable attribute value
is TRUE.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 68 of 236

2378

2.1.10.2.3.1

Join Support

2379
2380

CMIS repositories MAY support the use of SQL JOIN queries, and MUST indicate their support level
using the Optional Capability attribute capabilityJoin.

2381
2382

If the Repositorys value for the capabilityJoin attribute is none, then no JOIN clauses can be
used in queries.

2383
2384

If the Repositorys value for the capabilityJoin attribute is inneronly, then only inner JOIN clauses
can be used in queries.

2385
2386

If the Repositorys value for the capabilityJoin attribute is innerandouter, then inner and/or outer
JOIN clauses can be used in queries.

2387
2388

Only explicit joins using the JOIN keyword is supported. Queries MUST NOT include implicit joins as
part of the WHERE clause of a CMIS query.

2389
2390

CMIS queries MUST only support join operations using the equality predicate on single-valued
properties.

2391

2.1.10.2.4 WHERE Clause

2392

This clause identifies the constraints that rows MUST satisfy to be considered a result for the query.

2393
2394

All column names MUST be valid queryName or their aliased values for properties that are defined as
queryable in the Object-Type(s) whose Virtual Tables are listed in the FROM clause.

2395
2396

Properties are defined to not support a null value, therefore the <null predicate> MUST be interpreted as
testing the not set or set state of the specified property.

2397

2.1.10.2.4.1

2398
2399
2400

SQLs simple comparison predicate, IN predicate, and LIKE predicate are supported, for single-valued
properties only (so that SQLs semantics is preserved). Boolean conjunction (AND), disjunction (OR), and
negation (NOT) of predicates are also supported.

2401
2402
2403

Repositories SHOULD support the comparisons for the property types as described in the list below.
Repositories MAY support additional comparisons and operators. Any additional operators not specified
are repository-specific:

Comparisons permitted in the WHERE clause.

2404
2405

<Property Type>

2406

Supported Operators: <List of Operators supported on Type>

2407

Supported Literal: <Supported type of Literal in comparison>

2408
2409

String (Single)

2410

Supported Operators: =, <>, [NOT] LIKE

2411

Supported Literal: String

2412
2413

String (IN)

2414

Supported Operators: [NOT] IN

2415

Supported Literal: List of Strings

2416
2417

Decimal

2418

Supported Operators: =, <>, <, <=, >, >=

2419

Supported Literal: Decimal

2420
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 69 of 236

2421

Decimal (IN)

2422

Supported Operators: [NOT] IN

2423

Supported Literal: List of Decimal

2424
2425

Integer

2426

Supported Operators: =, <>, <, <=, >, >=

2427

Supported Literal: Integer

2428
2429

Integer (IN)

2430

Supported Operators: [NOT] IN

2431

Supported Literal: List of Integer

2432
2433

Boolean

2434

Supported Operators: =

2435

Supported Literal: <boolean literal>

2436
2437

DateTime

2438

Supported Operators: =, <>, <*, <=*, >*, >=*

2439

Supported Literal: <datetime literal>

2440

* - comparison is based on chronological before or after date.

2441
2442

DateTime (IN)

2443

Supported Operators: [NOT] IN

2444

Supported Literal: List of <datetime literal>s

2445
2446

ID

2447

Supported Operators: =, <>

2448

Supported Literal: String

2449
2450

ID (IN)

2451

Supported Operators: [NOT] IN

2452

Supported Literal: List of strings

2453
2454

URI

2455

Supported Operators: =, <>

2456

Supported Literal: String

2457
2458

URI (IN)

2459

Supported Operators: [NOT] IN

2460

Supported Literal: List of strings

2461
2462

URI
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 70 of 236

2463

Supported Operators: [NOT] LIKE

2464

Supported Literal: String

2465
2466

Operations on the SCORE() output MUST be treated the same as decimal operations.

2467
2468
2469

When using properties in a join statement, comparison MUST be allowed on properties of the same types
as defined by the table above. Repositories MAY extend this behavior.

2470
2471
2472

The ANY operation argument MUST be one of the properties found in the table above which supports
equality operations

2473

2.1.10.2.4.2

2474
2475

The CMIS query language includes several new non-terminals to expose semantics for querying multivalued properties, in a way that does not alter the semantics of existing SQL-92 production rules.

2476

2.1.10.2.4.2.1 Multi-valued column references

2477

BNF grammar structure: <Multi-valued-column reference>, <multi-valued-column name>

2478
2479
2480

Multi-valued property support (SQL-92 Extension)

These are non-terminals defined for multi-valued properties whereas SQL-92s <column
reference> and <column name> are retained for single-valued properties only. This is to preserve
the single-value semantics of a regular column in the SQL-92 grammar.

2481

2.1.10.2.4.2.2 <Quantified comparison predicate>

2482
2483
2484
2485
2486

The SQL-92 production rule for <quantified comparison predicate> is extended to accept a multi-valued
property in place of a <table subquery>. This operation is restricted to equality tests only.

2487

The SQL-92 <quantifier> is restricted to ANY only.

2488
2489

The SQL-92 <row value constructor> is restricted to a literal only.

<Table subquery> is not supported in CMIS-SQL.

2490
2491
2492
2493

Example:
SELECT
Y.CLAIM_NUM, X.PROPERTY_ADDRESS, Y.DAMAGE_ESTIMATES
FROM POLICY AS X JOIN CLAIMS AS Y ON ( X.POLICY_NUM = Y.POLICY_NUM )
WHERE
( 100000 = ANY Y.DAMAGE_ESTIMATES )

2494

(Note: DAMAGE_ESTIMATES is a multi-valued Integer property.)

2495

2.1.10.2.4.2.3 IN/ANY Predicate

2496

BNF grammar structure: <Quantified in predicate>

2497
2498
2499
2500
2501
2502
2503
2504
2505

CMIS-SQL exposes a new IN predicate defined for a multi-valued property. It is modeled after the SQL92 IN predicate, but since the entire predicate is different semantically, it has its own production rule in
the BNF grammar below.
The quantifier is restricted to ANY. The predicate MUST be evaluated to TRUE if at least one of the
propertys values is (or, is not, if NOT is specified) among the given list of literal values. Otherwise the
predicate is evaluated to FALSE.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 71 of 236

2506
2507

The ANY operation argument MUST be one of the properties found in the comparison list above which
supports IN operations.

2508

Example:

2509
2510
2511
2512
2513

SELECT
*
FROM CAR_REVIEW
WHERE
(MAKE = buickbuick ) OR
( ANY FEATURES IN ((NAVIGATION SYSTEM, SYSTEM, SATELLITE
RADIO, MP3) )

2514

RADIO, MP3) ) (Note: FEATURES is a multi-valued String property.)

2515

2.1.10.2.4.3

CONTAINS() predicate function (CMIS-SQL Extension)

2516

BNF grammar structure:: CONTAINS ( [ <qualifier> ,] <text search expression> )

2517
2518

Usage: This is a predicate function that encapsulates the full-text search capability that MAY be provided
by a Repository (See previous section.)

2519

Inputs:

2520
2521
2522
2523
2524
2525
2526

<Qualifier>
The value of this optional parameter MUST be the name of one of the Virtual Tables listed in the
FROM clause for the query.
If specified, then the predicate SHOULD only be applied to objects in the specified Virtual
Table, but a repository MAY ignore the value of the parameter.
If not specified, applies to the single virtual table. If the query is a join, a server SHOULD
throw an exception if the qualifier is not specified.

2527
2528
2529
2530
2531
2532
2533
2534

<Text Search Expression>


The <text search expression> parameter MUST be a character string literal in quotes, specifying
the full-text search criteria.

2535

Terms separated by whitespace are ANDed together.

2536

Terms separated by OR are ORed together

2537

Implicit AND has higher precedence than OR

2538
2539

Within a word or phrase, each double (single-)quote must also be escaped by a preceding
backslash \

2540

The Text Search Expression may be a set of terms or phrases with an optional - to signal
negation. A phrase is defined as a word or group of words. A group of words must be
surrounded by quotes to be considered a single phrase.

Return value:

2541

The predicate returns a Boolean value.

2542
2543

The predicate MUST return TRUE if the object is considered by the repository as relevant with
respect to the given <text search expression> parameter.

2544
2545

The predicate MUST return FALSE if the object is considered by the repository as not relevant
with respect to the given <text search expression> parameter.

2546
2547
2548

Constraints:
At most one CONTAINS() function MUST be included in a single query statement. The repository
MUST throw an exception if more than one CONTAINS() function is found.

2549
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 72 of 236

2550
2551

The return value of the CONTAINS() function MAY only be included conjunctively (ANDed) with the
aggregate of all other predicates, if there is any, in the WHERE clause.

2552

2.1.10.2.4.4

2553

BNF grammar structure: SCORE ()

2554
2555

Usage: This is a predicate function that encapsulates the full-text search capability that MAY be provided
by a Repository (See previous section.)

2556

Inputs: No inputs MUST be provided for this predicate function.

2557

Return value:

SCORE() predicate function

2558

The SCORE() predicate function returns a decimal value in the interval [0,1] .

2559
2560

A repository MUST return the value 0 if the object is considered by the repository as having
absolutely no relevance with respect to the CONTAINS() function specified in the query.

2561
2562

A repository MUST return the value 1 if the object is considered by the repository as having
absolutely complete relevance with respect to the CONTAINS() function specified in the query.

2563

Constraints:

2564
2565

The SCORE() function MUST only be used in queries that also include a CONTAINS() predicate
function

2566
2567

The SCORE() function MUST only be used in the SELECT clause of a query. It MUST NOT be
used in the WHERE clause or in the ORDER BY clauses.

2568
2569

An alias column name defined for the SCORE() function call in the SELECT clause (i.e.,
"SELECT SCORE() AS column_name ") may be used in the ORDER BY clause.

2570
2571
2572

If SCORE() is included in the SELECT clause and an alias column name is not provided, then a
query name of SEARCH_SCORE is used for the query output, and the property definition ID is
repository-specific.

2573

2.1.10.2.4.5

IN_FOLDER() predicate function

2574

BNF grammar structure: IN_FOLDER( [ <qualifier>, ] <folder id> )

2575
2576

Usage: This is a predicate function that tests whether or not a candidate object is a child-object of the
folder object identified by the given <folder id>.

2577

Inputs:

2578
2579
2580
2581
2582
2583
2584

<qualifier>
The value of this optional parameter MUST be the name of one of the Virtual Tables listed in the
FROM clause for the query.
If specified, then the predicate SHOULD only be applied to objects in the specified Virtual
Table, but a repository MAY ignore the value of the parameter.
If not specified, applies to the single virtual table. If the query is a join, a server SHOULD
throw an exception if the qualifier is not specified.

2585

<folder id>

2586

The value of this parameter MUST be the ID of a folder object in the repository.

2587
2588
2589
2590
2591

Return value:
The predicate function MUST return TRUE if the object is a child-object of the folder specified by
<folder id>.
The predicate function MUST return FALSE if the object is a NOT a child-object of the folder
specified by <folder id>.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 73 of 236

2592

2.1.10.2.4.6

IN_TREE() predicate function

2593

BNF grammar structure: IN_TREE( [ <qualifier>, ] <folder id> )

2594
2595

Usage: This is a predicate function that tests whether or not a candidate object is a descendant-object of
the folder object identified by the given <folder id>.

2596

Inputs:

2597
2598
2599
2600
2601
2602
2603

<qualifier>
The value of this optional parameter MUST be the name of one of the Virtual Tables listed in the
FROM clause for the query.
If specified, then the predicate SHOULD only be applied to objects in the specified Virtual
Table, but a repository MAY ignore the value of the parameter.
If not specified, applies to the single virtual table. If the query is a join, a server SHOULD
throw an exception if the qualifier is not specified.

2604

<folder id>

2605

The value of this parameter MUST be the ID of a folder object in the repository.

2606
2607
2608
2609
2610

Return value:
The predicate function MUST return TRUE if the object is a descendant-object of the folder
specified by <folder id>.
The predicate function MUST return FALSE if the object is a NOT a descendant -object of the
folder specified by <folder id>.

2611

2.1.10.2.5 ORDER BY Clause

2612

This clause MUST contain a comma separated list of one or more column names.

2613
2614

All column names referenced in this clause MUST be valid queryName or their aliased values for
properties defined as orderable in the Object-type(s) whose Virtual Tables are listed in the FROM clause.

2615

Only columns in the SELECT clause MAY be in the ORDER BY clause.

2616

Collation rules for the ORDER BY clause are repository specific.

2617

2.1.10.3 Escaping

2618
2619

Repositories MUST support the escaping of characters using a backslash (\) in the query statement. The
backslash character (\) will be used to escape characters within quoted strings in the query as follows:

2620

1. \" will represent a double-quote (") character

2621

2.1. \ will represent a single-quote() character

2622

3.2. \ \ will represent a backslash (\) character

2623

4.3. Within a LIKE string, \% and \_ will represent the literal characters % and _, respectively.

2624

5.4. All other instances of a \ are errors.

2625

2.1.11 Change Log

2626
2627
2628
2629
2630

CMIS provides a change log mechanism to allow applications to easily discover the set of changes that
have occurred to objects stored in the repository since a previous point in time. This change log can then
be used by applications such as search services that maintain an external index of the repository to
efficiently determine how to synchronize their index to the current state of the repository (rather than
having to query for all objects currently in the repository).

2631

Entries recorded in the change log are referred to below as change events.

2632
2633

Note that change events in the change log MUST be returned in ascending order from the time when the
change event occurred.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 74 of 236

2634

2.1.11.1 Completeness of the Change Log

2635
2636
2637
2638

The Change Log mechanism exposed by a repository MAY be able to return an entry for every change
ever made to content in the repository, or may only be able to return an entry for all changes made since
a particular point in time. This completeness level of the change log is indicated via the optional
changesIncomplete value found on the getRepositoryInfo service response

2639
2640
2641
2642

However, repositories MUST ensure that if an application requests the entire contents of the repositorys
change log, that the contents of the change log includes ALL changes made to any object in the
repository after the first change listed in the change log. (I.e. repositories MAY truncate events from the
change log on a first-in first-out basis, but not in any other order.)

2643
2644

A Repository MAY record events such as filing/unfiling/moving of Documents as change events on the
Documents, their parent Folder(s), or both the Documents and the parent Folders.

2645

2.1.11.2 Change Log Token

2646
2647

The primary index into the change log of a repository is the change log token. The change log token is
an opaque string that uniquely identifies a particular change in the change log.

2648

2.1.11.2.1 Latest Change Token repository information

2649
2650
2651

Repositories that support the changeLogToken event MUST expose the latest change log token (i.e. the
change log token corresponding to the most recent change to any object in the repository) as a property
returned by the getRepositoryInfo service.

2652
2653

This will enable applications to begin subscribing to the change log for a repository by discovering what
change log token they should use on a going-forward basis to discover change events to the repository.

2654

2.1.11.3 Change Event

2655
2656

A change event represents a single action that occurred to an object in the repository that affected the
persisted state of the object.

2657
2658

A Repository that supports the change log capability MUST expose at least the following information for
each change object:

2659

ID ObjectId: The ObjectId of the object to which the change occurred

2660

Enum ChangeType: An enumeration that indicates the type of the change. Valid values are:

2661

created: The object was created.

2662

updated: The object was updated.

2663

deleted: The object was deleted

2664

security: The access control or security policy for the object were changed.

2665
2666
2667
2668

<Properties> properties: Additionally, for events of changeType updated, the repository MAY
optionally include the new values of properties on the object (if any).

Repositories MUST indicate whether they include properties for updated change events via the optional
enumCapabilityChanges capability.

2669
2670

2.2 Services

2671
2672

Part IThe Services section of the CMIS specification defines a set of services that are described in a
protocol/binding-agnostic fashion.

2673
2674

Every protocol binding of the CMIS specification MUST implement all of the methods described in this
section or explain why the service is not implemented.

2675
2676

However, the details of how each service & method is implemented will be described in those protocol
binding specifications.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 75 of 236

2677

2.2.1 Common Service Elements

2678

The following elements are common across many of the CMIS services.

2679

2.2.1.1 Paging

2680
2681

All of the methods that allow for the retrieval of a collection of CMIS objects support paging of their result
sets except where explicitly stated otherwise. The following pattern is used:

2682

Input Parameters:

2683
2684

(optional) Integer maxItems: This is the maximum number of items to return in a response. The
repository MUST NOT exceed this maximum. Default is repository-specific.

2685
2686

(optional) Integer skipCount: This is the number of potential results that the repository MUST
skip/page over before returning any results. Defaults to 0.

2687

Output Parameters:

2688
2689
2690
2691

Boolean hasMoreItems: TRUE if the Repository contains additional items after those contained
in the response. FALSE otherwise. If TRUE, a request with a larger skipCount or larger
maxItems is expected to return additional results (unless the contents of the repository has
changed).

2692
2693
2694
2695

Integer numItems: If the repository knows the total number of items in a result set, the
repository SHOULD include the number here. If the repository does not know the number of
items in a result set, this parameter SHOULD not be set. The value in the parameter MAY NOT
be accurate the next time the client retrieves the result set or the next page in the result set.

2696
2697
2698

If the caller of a method does not specify a value for maxItems, then the Repository MAY select an
appropriate number of items to return, and MUST use the hasMoreItems output parameter to indicate if
any additional results were not returned.

2699

Repositories MAY return a smaller number of items than the specified value for maxItems.

2700
2701

Each binding will express the above in context and may have different mechanisms for communicating
hasMoreItems and numItems.

2702

2.2.1.2 Retrieving additional information on objects in CMIS service calls

2703
2704
2705

Several CMIS services that return object information have the ability to return dependent object
information as part of their response, such as the Allowable Actions for an object, rendition information,
etc.

2706
2707

The CMIS service methods that support returning a result set of objects will include the ability to return
the following object information:

2708

Properties (retrieves a subset instead of additional information)

2709

Relationships

2710

Renditions

2711

ACLs

2712

AllowableActions

2713
2714
2715

This section describes the input parameter & output pattern for those services. All input parameters are
optional.

2716

2.2.1.2.1 Properties

2717
2718
2719

Description: All of the methods that allow for the retrieval of properties for CMIS Objects have a
Property Filter as an optional parameter, which allows the caller to specify a subset of properties for
Objects that MUST be returned by the repository in the output of the method.

2720

Optional Input Parameter:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 76 of 236

2721

String filter: Value indicating which properties for Objects MUST be returned. Values are:

2722

Not set: The set of properties to be returned MUST be determined by the repository.

2723
2724

A comma-delimited list of property definition Query Names: The properties listed


MUST be returned.

2725

* : All properties MUST be returned for all objects.

2726
2727

Repositories SHOULD return only the properties specified in the property filter if they exist on the objects
type definition.

2728
2729
2730

If a property filter specifies a property that is not set, it MUST be represented as a property element
without a value element.

2731

2.2.1.2.2 Relationships

2732

Description: Used to retrieve the relationships in which the object(s) are participating.

2733

Optional Input Parameter:

2734
2735

Enum includeRelationships: Value indicating what relationships in which the objects returned
participate MUST be returned, if any. Values are:

2736

none:No relationships MUST be returned. (Default).

2737
2738

source: Only relationships in which the objects returned are the source MUST be
returned.

2739
2740

target: Only relationships in which the objects returned are the target MUST be
returned.

2741
2742

both: Relationships in which the objects returned are the source or the target MUST be
returned.

2743
2744

Output Parameter for each object:

<Array> Relationships: A collection of the relationship objects.

2745

2.2.1.2.3 Policies

2746

Description: Used to retrieve the policies currently applied to the object(s).

2747

Optional Input Parameter:

2748
2749
2750
2751

Boolean includePolicyIds: If TRUE, then the Repository MUST return the Ids of the policies
applied to the object. Defaults to FALSE.
Output Parameter or each object:
<Array> Policies: A collection of the policy objects.

2752

2.2.1.2.4 Renditions

2753

Description: Used to retrieve the renditions of the object(s).

2754

Optional Input Parameter:

2755
2756

2757
2758
2759

String renditionFilter: The Repository MUST return the set of renditions whose kind matches
this filter. See section below for the filter grammar.
o

Defaults to cmis:none.

Output Parameter for each object:

<Array> Renditions: The set of renditions.

2760

2.2.1.2.4.1 Rendition Filter Grammar

2761

The Rendition Filter grammar is defined as follows:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 77 of 236

2762

<renditionInclusion> ::= <none> | <wildcard> | <termlist>

2763

<termlist> ::= <term> | <term> ',' <termlist>

2764

<term> ::= <kind> | <mimetype>

2765

<kind> ::= <text>

2766

<mimetype> ::= <type> '/' <subtype>

2767

<type> ::= <text>

2768

<subtype> ::= <text> | <wildcard>

2769

<text> ::= /* any char except whitespace */

2770

<wildcard> ::= '*'

2771

<none> ::= 'cmis:none'

2772

An inclusion pattern allows:

2773

Wildcard : include all associated Renditions

2774
2775

Comma-separated list of Rendition kinds or mimetypes : include only those Renditions


that match one of the specified kinds or mimetypes

2776

cmis:none: (Default) exclude all associated Renditions

2777

Examples:

2778

* (include all Renditions)

2779

cmis:thumbnail (include only Thumbnails)

2780

Image/* (include all image Renditions)

2781

application/pdf, application/x-shockwave-flash (include web ready Renditions)

2782

cmis:none (exclude all Renditions)

2783

2.2.1.2.5 ACLs

2784

Description: Used to retrieve the ACLs for the object(s) described in the service response.

2785

Optional Input Parameter:

2786
2787
2788
2789

Boolean includeACL: If TRUE, then the Repository MUST return the ACLs for each object in
the result set. Defaults to FALSE.

Output Parameter for each object:

<Array> ACLs: The list of access control entries of the ACL for the object.

2790

2.2.1.2.6 Allowable Actions

2791

Description: Used to retrieve the allowable actions for the object(s) described in the service response.

2792

Optional Input Parameter:

2793
2794
2795
2796

Boolean includeAllowableActions: If TRUE, then the Repository MUST return the


available actions for each object in the result set. Defaults to FALSE.

Output Parameter for each object:

AllowableActions: See cmisAllowableActionsType in the CMIS schema.

2797

2.2.1.3 Change Tokens

2798
2799
2800

The CMIS base object-type definitions include an opaque string ChangeToken property that a
Repository MAY use for optimistic locking and/or concurrency checking to ensure that user updates do
not conflict.

2801
2802

If a Repository provides values for the ChangeLogTokenChangeToken property for an Object, then all
invocations of the update methods on that object (updateProperties, setContentStream,
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 78 of 236

2803
2804
2805
2806

deleteContentStream) MUST provide the value of the changeLogTokenchangeToken property as an input


parameter, and the Repository MUST throw an updateConflictException if the value specified for the
changeLogTokenchangeToken does NOT match the changeLogTokenchangeToken value for the object
being updated.

2807

2.2.1.4 Exceptions

2808
2809

The following sections list the complete set of exceptions that MAY be returned by a repository in
response to a CMIS service method call.

2810

2.2.1.4.1 General Exceptions

2811

The following exceptions MAY be returned by a repository in response to ANY CMIS service method call.

2812
2813
2814

The Cause field indicates the circumstances under which a repository SHOULD return a particular
exception.
invalidArgument

2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829

Cause: One or more of the input parameters to the service method is missing or invalid.
objectNotFound
Cause: The service call has specified an object that does not exist in the Repository.
notSupported
The service method invoked requires an optional capability not supported by the
repository.

Cause:

permissionDenied
Cause:

The caller of the service method does not have sufficient permissions to perform the
operation.

runtime
Cause:

Any other cause not expressible by another CMIS exception.

2830

2.2.1.4.2 Specific Exceptions

2831
2832

The following exceptions MAY be returned by a repositiory in response to one or more CMIS service
methods calls.

2833
2834
2835

For each exception, the general intent is listed as well as a list of the methods which MAY cause the
exception to be thrown.
constraint

2836
2837

Intent:

2838

Methods:

2839
2840
2841

The operation violates a Repository- or Object-level constraint defined in the CMIS


domain model.

Navigation Services:
o getObjectParents
Object Services:

2842

o createDocument

2843

o createDocumentFromSource

2844

o createFolder

2845

o createRelationship
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 79 of 236

2846

o createPolicy

2847

o updateProperties

2848

o moveObject

2849

o deleteObject

2850

o setContentStream

2851

o deleteContentStream

2852

Multi-filing Services:

2853

o addObjectToFolder

2854

Versioning Services:

2855

o checkOut

2856

o cancelCheckOut

2857

o checkIn

2858

Policy Services:

2859

o applyPolicy

2860

o removePolicy

2861

Change Log Services:

2862
2863

o getContentChanges

2864

contentAlreadyExists

2865
2866

Intent:

2867

Methods:

2868
2869
2870
2871

The operation attempts to set the content stream for a Document that already has a
content stream without explicitly specifying the overwriteFlag parameter.

Object Services:
o setContentStream
filterNotValid

2872

Intent: The property filter or rendition filter input to the operation is not valid.

2873

Methods:

2874

Navigation Services:

2875

o getDescendants

2876

o getChildren

2877

o getFolderParent

2878

o getObjectParents

2879

o getCheckedOutDocs

2880

Object Services:

2881

o getProperties

2882

o getRenditions

2883

o getObject

2884

o getObjectByPath

2885

Versioning Services:

2886

o getPropertiesOfLatestVersion

2887

o getAllVersions
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 80 of 236

2888

Policy Services:

2889
2890
2891

o getAppliedPolicies
nameConstraintViolation

2892
2893

Intent:

2894

Methods:

2895

The repository is not able to store the object that the user is creating/updating due to
a name constraint violation.

Object Services:

2896

o createDocument

2897

o createDocumentFromSource

2898

o createFolder

2899

o createRelationship

2900

o createPolicy

2901

o updateProperties

2902
2903

o moveObject

2904

storage

2905
2906

Intent:

2907

Methods:

2908

The repository is not able to store the object that the user is creating/updating due to
an internal storage problem.

Object Services:

2909

o createDocument

2910

o createDocumentFromSource

2911

o createFolder

2912

o createRelationship

2913

o createPolicy

2914

o updateProperties

2915

o moveObject

2916

o setContentStream

2917

o deleteContentStream

2918

Versioning Services:

2919

o checkOut

2920
2921

o checkIn

2922

streamNotSupported

2923
2924

Intent:

2925

Methods:

2926

The operation is attempting to get or set a contentStream for a Document whose


Object-type specifies that a content stream is not allowed for Documents of that type.

Object Services:

2927

o createDocument

2928

o createDocumentFromSource

2929

o getContentStream

2930

o setContentStream
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 81 of 236

2931

Versioning Services:

2932
2933
2934

o checkIn
updateConflict

2935
2936

Intent:

2937

Methods:

2938

The operation is attempting to update an object that is no longer current (as


determined by the repository).

Object Services:

2939

o updateProperties

2940

o moveObject

2941

o deleteObject

2942

o deleteTree

2943

o setContentStream

2944

o deleteContentStream

2945

Versioning Services:

2946

o checkOut

2947

o cancelCheckOut

2948

o checkIn

2949
2950

versioning

2951
2952

Intent:

2953

Methods:

2954

The operation is attempting to perform an action on a non-current version of a


Document that cannot be performed on a non-current version.

Object Services:

2955

o updateProperties

2956

o moveObject

2957

o setContentStream

2958

o deleteContentStream

2959

Versioning Services:

2960

o checkOut

2961

o cancelCheckOut

2962

o checkIn

2963

2.2.1.5 ACLs

2964
2965

Those services which allow for the setting of ACLs may take the optional macro cmis:user which allows
the caller to indicate the operation applies to the current authenticated user.

2966

2.2.2 Repository Services

2967
2968
2969

The Repository Services (getRepositories, getRepositoryInfo, getTypeChildren, getTypeDescendants,


getTypeDefinition) are used to discover information about the repository, including information about the
repository and the object-types defined for the repository.

2970

2.2.2.1 getRepositories

2971

Description: Returns a list of CMIS repositories available from this CMIS service endpoint.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 82 of 236

2972

2.2.2.1.1 Inputs

2973

None.

2974

2.2.2.1.2 Outputs

2975

A list of repository information, with (at least) the following information for each entry:

2976

ID repositoryId: The identifier for the Repository.

2977

String repositoryName: A display name for the Repository.

2978

2.2.2.1.3 Exceptions Thrown & Conditions

2979

See section 2.2.1.4.1 General Exceptions

2980

2.2.2.2 getRepositoryInfo

2981
2982

Description: Returns information about the CMIS repository, the optional capabilities it supports and its
Access Control information if applicable. .

2983

2.2.2.2.1 Inputs

2984

Required:

2985
2986
2987

ID repositoryId: The identifier for the Repository.

2.2.2.2.2 Outputs

2988

ID repositoryId: The identifier for the Repository.


o

Note: This MUST be the same identifier as the input to the method.

2989

String repositoryName: A display name for the Repository.

2990

String repositoryDescription: A display description for the Repository.

2991

String vendorName: A display name for the vendor of the Repositorys underlying application.

2992

String productName: A display name for the Repositorys underlying application.

2993
2994

String productVersion: A display name for the version number of the Repositorys
underlying application.

2995

ID rootFolderId: The ID of the Root Folder Object for the Repository.

2996
2997

<List of capabilities>: The set of values for the repository-optional capabilities specified in
section 2.1.1.1 Optional Capabilities

2998
2999

String latestChangeLogToken: The change log token corresponding to the most recent
change event for any object in the repository.

3000
3001

DecimalString cmisVersionSupported: A decimal that indicates what version of the CMIS


specification this repository supports as specified in 2.1.1.2 Implementation Information.

3002
3003

URI thinClientURI: A optional repository-specific URI pointing to the repositorys web


interface.

3004
3005
3006
3007

Boolean changesIncomplete: Indicates whether or not the repositorys change log can return
all changes ever made to any object in the repository or only changes made after a particular
point in time. Applicable when the repositorys optional capability capabilityChanges is not
none.

3008

If FALSE, then the change log can return all changes ever made to every object.

3009
3010

If TRUE, then the change log includes all changes made since a particular point in time,
but not all changes ever made.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 83 of 236

3011
3012
3013

<List of enum values> changesOnType: Indicates whether changes are available for base
types in the repository. Valid values are from enumBaseObjectTypeIds. See section 2.1.11
Change Log.

3014

cmis:document

3015

cmis:folder

3016

cmis:policy

3017

cmis:relationship

3018

Enum supportedPermissions: specifies which types of permissions are supported.

3019

basic: indicates that the CMIS Basic permissions are supported.

3020

repository: Indicates that repository specific permissions are supported.

3021
3022

both: indicates that both CMIS basic permissions and repository specific permissions are
supported.

3023
3024

Enum propagation: The list of allowed values for applyACL, which control how non-direct
ACEs are handled by the repository:

3025
3026
3027

objectonly: indicates that the repository is able to apply ACEs without changing the
ACLs of other objects i.e. ACEs are applied, potentially breaking the sharing
dependency for non-direct ACEs.

3028
3029
3030

propagate: indicates that the repository is able to apply ACEs to a given object and
propagate this change to all inheriting objects i.e. ACEs are applied with the (intended)
side effect to inheriting objects.

3031
3032

repositorydetermined: indicates that the repository uses its own mechanisms to


handle non-direct ACEs when applying ACLs.

3033
3034

<Array> Permission permissions: The list of repository-specific permissions the repository


supports for managing ACEs (see section 2.8 Access Control).

3035
3036

<Array> PermissionMapping mapping: The list of mappings for the CMIS Basic permissions to
allowable actions (see section 2.8 Access Control).

3037
3038
3039

String principalAnonymous: If set, this field holds the principal who is used for anonymous
access. This principal can then be passed to the ACL services to specify what permissions
anonymous users should have.

3040
3041
3042

String principalAnyone: If set, this field holds the principal who is used to indicate any
authenticated user. This principal can then be passed to the ACL services to specify what
permissions any authenticated user should have.

3043
3044

The cmisRepositoryInfoType schema describes the markup that will be included in all CMIS protocol
bindings to implement this service.

3045

2.2.2.2.3 Exceptions Thrown & Conditions

3046

See section 2.2.1.4.1 General Exceptions

3047

2.2.2.3 getTypeChildren

3048
3049

Description: Returns the list of Object-Types defined for the Repository that are children of the specified
Type.

3050

2.2.2.3.1 Inputs

3051

Required:

3052

3053

Optional:

String repositoryId: The identifier for the Repository.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 84 of 236

3054

String typeId: The typeId of an Object-Type specified in the Repository.

3055

If specified, then the Repository MUST return all of child types of the specified type.

3056

If not specified, then the Repository MUST return all Base Object-Types.

3057
3058

Boolean includePropertyDefinitions: If TRUE, then the Repository MUST return the property
definitions for each Object-Type returned.

3059

If FALSE (default), the Repository MUST return only the attributes for each Object-Type.

3060

Integer maxItems: See section 2.2.1.1 Paging.

3061

Integer skipCount: See section 2.2.1.1 Paging.

3062

2.2.2.3.2 Outputs

3063

<Array> Object-Types: The list of child Object-Types defined for the given typeId.

3064

Boolean hasMoreItems: See section 2.2.1.1 Paging.

3065
3066

Optional:
Integer numItems: See section 2.2.1.1 Paging.

3067

2.2.2.3.3 Exceptions Thrown & Conditions

3068

See section 2.2.1.4.1 General Exceptions

3069

2.2.2.4 getTypeDescendants

3070
3071

Description: Returns the set of descendant Object-Types defined for the Repository under the specified
Type.

3072

Notes:

3073

This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3074

The order in which results are returned is respository-specific.

3075

2.2.2.4.1 Inputs

3076

Required:

3077

3078

Optional:

3079

String repositoryId: The identifier for the Repository.


String typeId: The typeId of an Object-Type specified in the Repository.

3080

If specified, then the Repository MUST return all descendant types for the specified type.

3081
3082

If not specified, then the Repository MUST return all types and MUST ignore the value of
the depth parameter

3083
3084

Integer depth: The number of levels of depth in the type hierarchy from which to return results.
Valid values are:

3085

1: Return only types that are children of the type.

3086
3087

<Integer value greater than 1>: Return only types that are children of the type and
descendants up to <value> levels deep.

3088

-1: Return ALL descendant types at all depth levels in the CMIS hierarchy.

3089

The default value is repository specific and SHOULD be at least 2 or -1.

3090
3091
3092

Boolean includePropertyDefinitions: If TRUE, then the Repository MUST return the property
definitions for each Object-Type returned.
o

If FALSE (default), the Repository MUST return only the attributes for each Object-Type.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 85 of 236

3093
3094

2.2.2.4.2 Outputs
<Array> Object-Types: The hierarchy of Object-Types defined for the Repository.

3095

2.2.2.4.3 Exceptions Thrown & Conditions

3096

See section 2.2.1.4.1 General Exceptions

3097
3098

invalidArgument: The Repository MUST throw this exception if the service is invoked with
an invalid depth.

3099

2.2.2.5 getTypeDefinition

3100

Description: Gets the definition of the specified Object-Type.Inputs

3101

2.2.2.5.1 Inputs

3102

Required:

3103

String repositoryId: The identifier for the Repository.

3104

String typeId: The typeId of an Object-Type specified in the Repository.

3105
3106
3107

2.2.2.5.2 Outputs

Object-type including all property definitions. See section 2.1.3.3 (Object-Type Property
Definitions) for further details.

3108

2.2.2.5.3 Exceptions Thrown & Conditions

3109

See section 2.2.1.4.1 General Exceptions

3110

2.2.3 Navigation Services

3111
3112
3113

The Navigation Services (getDescendants, getChildren, getFolderParent, getObjectParents,


getCheckedoutDocs), are used to traverse the folder hierarchy in a CMIS Repository, and to locate
Documents that are checked out.

3114

2.2.3.1 getChildren

3115

Description: Gets the list of child objects contained in the specified folder.

3116

Notes:

3117
3118

If the Repository supports the optional VersionSpecificFiling capability, then the repository
MUST return the document versions filed in the specified folder.

3119

Otherwise, the latest version of the documents MUST be returned.

3120

2.2.3.1.1 Inputs

3121

Required:

3122

ID repositoryId: The identifier for the Repository.


ID folderId: The identifier for the folder.

3123

3124

Optional:

3125

Integer maxItems: See section 2.2.1.1 Paging.

3126

Integer skipCount: See section 2.2.1.1 Paging.

3127

String orderBy: See ORDER BY Clause in the query

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 86 of 236

3128
3129
3130

String orderBy: The orderBy parameter MUST be a comma-separated list of query names and
the ascending modifier ASC or the descending modifier DESC for each query name. A
repository's handling of the orderBy input is repository-specific.

3131
3132
3133

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties. The service
will only return the properties in the matched object if they exist on the matched object type
definition and in the filter.

3134

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3135

String renditionFilter: See section 2.2.1.2.4 Renditions.

3136

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3137
3138

Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each


child object for use in constructing that objects path.

3139
3140
3141

2.2.3.1.2 Outputs

<Array> ObjectResults: A list of the child objects for the specified folder. Each object result
MUST include the following elements if they are requested:

3142

<Array> Properties: The list of properties for the object.

3143

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3144

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3145

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3146

String PathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3147

3148

Optional:

3149
3150

Boolean hasMoreItems: See section 2.2.1.1 Paging.

Integer numItems: See section 2.2.1.1 Paging.

2.2.3.1.3 Exceptions Thrown & Conditions

3151

See section 2.2.1.4.1 General Exceptions

3152
3153

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3154

invalidArgument: if the specified folder is not a folder

3155

2.2.3.2 getDescendants

3156
3157

Description: Gets the set of descendant objects contained in the specified folder or any of its childfolders.

3158

Notes:

3159

This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3160

The order in which results are returned is respository-specific..

3161
3162
3163

If the Repository supports the optional capability capabilityVersionSpecificFiling, then


the repository MUST return the document versions filed in the specified folder or its descendant
folders. Otherwise, the latest version of the documents MUST be returned.

3164
3165
3166

If the Repository supports the optional capability capabilityMutlifiling and the same
document is encountered multiple times in the hierarchy, then the repository MUST return that
document each time is encountered.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 87 of 236

3167

2.2.3.2.1 Inputs

3168

Required:

3169

ID repositoryId: The identifier for the Repository.

3170

ID folderId: The identifier for the folder.

3171

Optional:

3172
3173

Integer depth: The number of levels of depth in the folder hierarchy from which to return results.
Valid values are:

3174

1: Return only objects that are children of the folder.

3175
3176

<Integer value greater than 1>: Return only objects that are children of the folder and
descendants up to <value> levels deep.

3177

-1: Return ALL descendant objects at all depth levels in the CMIS hierarchy.

3178

The default value is repository specific and SHOULD be at least 2 or -1

3179

String filter: See section 2.2.1.2.1 Properties.

3180

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3181

String renditionFilter: See section 2.2.1.2.4 Renditions.

3182

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3183
3184

Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each


child object for use in constructing that objects path.

3185
3186
3187

2.2.3.2.2 Outputs

<Array> ObjectResults: A list of the descendant objects for the specified folder. Each object
result MUST include the following elements if they are requested:

3188

<Array> Properties: The list of properties for the object.

3189

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3190

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3191

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3192

String PathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3193

2.2.3.2.3 Exceptions Thrown & Conditions

3194

See section 2.2.1.4.1 General Exceptions

3195
3196

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3197
3198

invalidArgument: The Repository MUST throw this exception if the service is invoked with
depth = 0.

3199

invalidArgument: if the specified folder is not a folder

3200

2.2.3.3 getFolderTree

3201

Description: Gets the set of descendant folder objects contained in the specified folder.

3202
3203

Notes:

3204

This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3205

The order in which results are returned is respository-specific..

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 88 of 236

3206

2.2.3.3.1 Inputs

3207

Required:

3208

ID repositoryId: The identifier for the Repository.

3209

ID folderId: The identifier for the folder.

3210

Optional:

3211
3212

Integer depth: The number of levels of depth in the folder hierarchy from which to return results.
Valid values are:

3213

1: Return only folders that are children of the folder.

3214
3215

<Integer value greater than 1>: Return only folders that are children of the folder and
descendant folders up to <value> levels deep.

3216

-1: Return ALL descendant folders at all depth levels in the CMIS hierarchy.

3217

The default value is repository specific and SHOULD be at least 2 or -1

3218

String filter: See section 2.2.1.2.1 Properties.

3219

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3220

String renditionFilter: See section 2.2.1.2.4 Renditions.

3221

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3222
3223

Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each


child object for use in constructing that objects path.

3224
3225
3226

2.2.3.3.2 Outputs

<Array> ObjectResults: A list of the descendant folders for the specified folder. Each object
result MUST include the following elements if they are requested:

3227

<Array> Properties: The list of properties for the object.

3228

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3229

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3230

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3231

String pathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3232

2.2.3.3.3 Exceptions Thrown & Conditions

3233

See section 2.2.1.4.1 General Exceptions

3234
3235

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3236
3237

invalidArgument: The Repository MUST throw this exception if the service is invoked with
an invalid depth

3238

invalidArgument: if the specified folder is not a folder

3239
3240
3241

2.2.3.4 getFolderParent

3242

Description: Gets the parent folder object for the specified folder object.

3243

2.2.3.4.1 Inputs

3244

Required:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 89 of 236

3245

ID repositoryId: The identifier for the Repository.

3246

ID folderId: The identifier for the folder.

3247

Optional:

3248

3249
3250
3251

String filter: See section 2.2.1.2.1 Properties.Error! Reference source not found..

2.2.3.4.2 Outputs

Object: The parent folder object of the specified folder.

2.2.3.4.3 Exceptions Thrown & Conditions

3252

See section 2.2.1.4.1 General Exceptions

3253
3254

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3255
3256

invalidArgument: The Repository MUST throw this exception if the folderId input is the root
folder.

3257

2.2.3.5 getObjectParents

3258

Description: Gets the parent folder(s) for the specified non-folder, fileable object.

3259

2.2.3.5.1 Inputs

3260

Required:

3261

ID repositoryId: The identifier for the Repository.

3262

ID objectId: The identifier for the object.

3263

Optional:

3264

String filter: See section 2.2.1.2.1 Properties

3265

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3266

String renditionFilter: See section 2.2.1.2.4 Renditions.

3267

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3268

Boolean includeRelativePathSegment: See section 2.1.5.3 Paths.

3269
3270
3271
3272

2.2.3.5.2 Outputs

<Array> ObjectResults: A list of the parent folder(s) of the specified objects. Empty for unfiled
objects or for the root folder. Each object result MUST include the following elements if they are
requested:

3273

<Array> Properties: The list of properties for the object.

3274

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3275

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3276

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3277
3278

String relativePathSegment: If includeRelativePathSegment was TRUE. See section


2.1.5.3 Paths.

3279
3280

2.2.3.5.3 Exceptions Thrown & Conditions

See section 2.2.1.4.1 General Exceptions


8

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 90 of 236

3281
3282

constraint: The Repository MUST throw this exception if this method is invoked on an object
who Object-Type Definition specifies that it is not fileable.

3283
3284

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3285

invalidArgument: if the specified folder is not a folder

3286

2.2.3.6 getCheckedOutDocs

3287

Description: Gets the list of documents that are checked out that the user has access to.

3288

2.2.3.6.1 Inputs

3289

Required:

3290

3291

Optional:

3292

ID repositoryId: The identifier for the Repository.


ID folderId: The identifier for a folder in the repository from which documents should be returned.

3293
3294

If specified, the Repository MUST only return checked out documents that are childobjects of the specified folder.

3295
3296

If not specified, the Repository MUST return checked out documents from anywhere in
the repository hierarchy.

3297

Integer maxItems: See section 2.2.1.1 Paging.

3298

Integer skipCount: See section 2.2.1.1 Paging.

3299

String orderBy: See ORDER BY Clause in the query

3300
3301
3302

String orderBy: The orderBy parameter MUST be a comma-separated list of query names and
the ascending modifier ASC or the descending modifier DESC for each query name. A
repository's handling of the orderBy input is repository-specific.

3303

String filter: See section 2.2.1.2.1 Properties.

3304

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3305

String renditionFilter: See section 2.2.1.2.4 Renditions.

3306

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3307
3308
3309

2.2.3.6.2 Outputs

<Array> ObjectResults: A list of checked out documents. Each object result MUST include the
following elements if they are requested:

3310

<Array> Properties: The list of properties for the object.

3311

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3312

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3313

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3314

3315

Optional:

3316

Boolean hasMoreItems: See section 2.2.1.1 Paging.


Integer numItems: See section 2.2.1.1 Paging.

3317
3318
3319

2.2.3.6.3 Exceptions Thrown & Conditions

See section 2.2.1.4.1 General Exceptions


8

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 91 of 236

3320
3321

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

3322

2.2.4 Object Services

3323

CMIS provides ID-based CRUD (Create, Retrieve, Update, Delete), operations on objects in a Repository.

3324

2.2.4.1 createDocument

3325
3326

Description: Creates a document object of the specified type (given by the cmis:objectTypeId property)
in the (optionally) specified location.

3327

2.2.4.1.1 Inputs

3328

Required:

3329

ID repositoryId: The identifier for the Repository.

3330
3331

<Array> properties: The property values that MUST be applied to the newly-created Document
Object.

3332

Optional:

3333
3334

3335
3336

ID folderId: If specified, the identifier for the folder that MUST be the parent folder for the newlycreated Document Object.
o

This parameter MUST be specified if the Repository does NOT support the optional
unfiling capability.

3337
3338
3339
3340

<contentStream> contentStream: The Content Stream that MUST be stored for the newlycreated Document Object. The method of passing the contentStream to the server and the
encoding mechanism will be specified by each specific binding. MUST be required if the type
requires it.

3341
3342
3343

Enum versioningState: An enumeration specifying what the versioing state of the newly-created
object MUST be. If the repository does not support versioning, the repository MUST ignore the
versioningState parameter. Valid values are:

3344

none: The document MUST be created as a non-versionable document.

3345

checkedout: The document MUST be created in the checked-out state.

3346

major (default): The document MUST be created as a major version

3347

minor: The document MUST be created as a minor version.

3348
3349

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Document
object.

3350
3351

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Document
object, either using the ACL from folderId if specified, or being applied if no folderId is specified.

3352
3353
3354

<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Document object, either using the ACL from folderId if specified, or being ignored if no folderId is
specified.

3355
3356
3357

2.2.4.1.2 Outputs
ID objectId: The ID of the newly-created document.

2.2.4.1.3 Exceptions Thrown & Conditions

3358

See section 2.2.1.4.1 General Exceptions

3359
3360

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 92 of 236

3361
3362

The cmis:objectTypeId property value is not an Object-Type whose baseType is


Document.

3363
3364

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of


the parent-folder specified by folderId.

3365
3366

The value of any of the properties violates the min/max/required/length constraints


specified in the property definition in the Object-Type.

3367
3368
3369

The contentStreamAllowed attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to required and no contentStream input
parameter is provided.

3370
3371
3372

The versionable attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and a value for the versioningState
input parameter is provided that is something other than none.

3373
3374
3375

The versionable attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to TRUE and the value for the versioningState
input parameter is provided that is none.

3376
3377

The controllablePolicy attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one policy is provided.

3378
3379

The controllableACL attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one ACE is provided.

3380
3381

At least one of the permissions is used in an ACE provided which is not supported by the
repository.

3382
3383
3384

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. If the repository


detects a violation with the given cmis:name property value, the repository MAY throw this
exception or chose a name which does not conflict.

3385

storage: See section 2.2.1.4.2 Specific Exceptions.

3386
3387
3388

streamNotSupported: The Repository MUST throw this exception if the


contentStreamAllowed attribute of the Object-Type definition specified by the cmis:objectTypeId
property value is set to not allowed and a contentStream input parameter is provided.

3389

2.2.4.2 createDocumentFromSource

3390
3391

Description: Creates a document object as a copy of the given source document in the (optionally)
specified location.

3392

2.2.4.2.1 Inputs

3393

Required:

3394

ID repositoryId: The identifier for the Repository.

3395

ID sourceId: The identifier for the source document.

3396

Optional:

3397
3398

<Array> properties: The property values that MUST be applied to the Object. This list of
properties SHOULD only contain properties whose values differ from the source document.

3399
3400

ID folderId: If specified, the identifier for the folder that MUST be the parent folder for the newlycreated Document Object.

3401
3402
3403
3404
3405

This parameter MUST be specified if the Repository does NOT support the optional
unfiling capability.

Enum versioningState: An enumeration specifying what the versioing state of the newly-created
object MUST be. Valid values are:
o

none: The document MUST be created as a non-versionable document.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 93 of 236

3406

checkedout: The document MUST be created in the checked-out state.

3407

major (default): The document MUST be created as a major version

3408

minor: The document MUST be created as a minor version.

3409
3410

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Document
object.

3411
3412

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Document
object, either using the ACL from folderId if specified, or being applied if no folderId is specified.

3413
3414
3415

<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Document object, either using the ACL from folderId if specified, or being ignored if no folderId is
specified.

3416
3417
3418

2.2.4.2.2 Outputs
ID objectId: The ID of the newly-created document.

2.2.4.2.3 Exceptions Thrown & Conditions

3419

See section 2.2.1.4.1 General Exceptions

3420
3421

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

3422

The sourceId is not an Object whose baseType is Document.

3423
3424

The source documents cmis:objectTypeId property value is NOT in the list of


AllowedChildObjectTypeIds of the parent-folder specified by folderId.

3425
3426
3427

The versionable attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and a value for the versioningState
input parameter is provided that is something other than none.

3428
3429
3430

The versionable attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to TRUE and the value for the versioningState
input parameter is provided that is none.

3431
3432

The controllablePolicy attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one policy is provided.

3433
3434

The controllableACL attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one ACE is provided.

3435
3436

At least one of the permissions is used in an ACE provided which is not supported by the
repository.

3437
3438
3439

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. If the repository


detects a violation with the given cmis:name property value, the repository MAY throw this
exception or chose a name which does not conflict.

3440

storage: See section 2.2.1.4.2 Specific Exceptions.

3441
3442
3443

streamNotSupported: The Repository MUST throw this exception if the


contentStreamAllowed attribute of the Object-Type definition specified by the cmis:objectTypeId
property value is set to not allowed and a contentStream input parameter is provided.

3444

2.2.4.3 createFolder

3445

Description: Creates a folder object of the specified type in the specified location.

3446

2.2.4.3.1 Inputs

3447

Required:

3448

ID repositoryId: The identifier for the Repository.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 94 of 236

3449
3450

<Array> properties: The property values that MUST be applied to the newly-created Folder
Object.

3451
3452

ID folderId: The identifier for the folder that MUST be the parent folder for the newly-created
Folder Object.

3453

Optional:

3454

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Folder object.

3455
3456

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Folder object,
either using the ACL from folderId if specified, or being applied if no folderId is specified.

3457
3458
3459

<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Folder object, either using the ACL from folderId if specified, or being ignored if no folderId is
specified.

3460
3461
3462

2.2.4.3.2 Outputs

ID objectId: The ID of the newly-created folder.

2.2.4.3.3 Exceptions Thrown & Conditions

3463

See section 2.2.1.4.1 General Exceptions

3464
3465

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

3466

The cmis:objectTypeId property value is not an Object-Type whose baseType is Folder.

3467
3468

The value of any of the properties violates the min/max/required/length constraints


specified in the property definition in the Object-Type.

3469
3470

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of


the parent-folder specified by folderId.

3471
3472

The controllablePolicy attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one policy is provided.

3473
3474

The controllableACL attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one ACE is provided.

3475
3476

At least one of the permissions is used in an ACE provided which is not supported by the
repository.

3477
3478
3479

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. If the repository


detects a violation with the given cmis:name property value, the repository MAY throw this
exception or chose a name which does not conflict.

3480

storage: See section 2.2.1.4.2 Specific Exceptions.

3481

2.2.4.4 createRelationship

3482

Description: Creates a relationship object of the specified type

3483

2.2.4.4.1 Inputs

3484

Required:

3485

ID repositoryId: The identifier for the Repository.

3486
3487

<Array> properties: The property values that MUST be applied to the newly-created
Relationship Object.

3488

Optional:

3489
3490

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Replationship
object.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 95 of 236

3491
3492
3493
3494
3495
3496
3497
3498

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Relationship
object, either using the ACL from folderId if specified, or being applied if no folderId is specified.
<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Relationship object, either using the ACL from folderId if specified, or being ignored if no folderId
is specified.

2.2.4.4.2 Outputs

ID objectId: The ID of the newly-created relationship.

2.2.4.4.3 Exceptions Thrown & Conditions

3499

See section 2.2.1.4.1 General Exceptions

3500
3501

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

3502
3503

The cmis:objectTypeId property value is not an Object-Type whose baseType is


Relationship.

3504
3505

The value of any of the properties violates the min/max/required/length constraints


specified in the property definition in the Object-Type.

3506
3507

The sourceObjectIds ObjectType is not in the list of allowedSourceTypes specified by


the Object-Type definition specified by cmis:objectTypeId property value.

3508
3509

The targetObjectIds ObjectType is not in the list of allowedTargetTypes specified by the


Object-Type definition specified by cmis:objectTypeId property value.

3510
3511

The controllablePolicy attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one policy is provided.

3512
3513

The controllableACL attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one ACE is provided.

3514
3515

At least one of the permissions is used in an ACE provided which is not supported by the
repository.

3516
3517
3518

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. If the repository


detects a violation with the given cmis:name property value, the repository MAY throw this
exception or chose a name which does not conflict.

3519

storage: See section 2.2.1.4.2 Specific Exceptions.

3520

2.2.4.5 createPolicy

3521

Description: Creates a policy object of the specified type

3522

2.2.4.5.1 Inputs

3523

Required:

3524

ID repositoryId: The identifier for the Repository.

3525
3526

<Array> properties: The property values that MUST be applied to the newly-created Policy
Object.

3527

Optional:

3528
3529

3530
3531
3532

ID folderId: If specified, the identifier for the folder that MUST be the parent folder for the newlycreated Policy Object.
o

This parameter MUST be specified if the Repository does NOT support the optional unfiling
capability.

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Policy object.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 96 of 236

3533
3534

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Policy object,
either using the ACL from folderId if specified, or being applied if no folderId is specified.

3535
3536
3537

<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Policy object, either using the ACL from folderId if specified, or being ignored if no folderId is
specified.

3538
3539
3540

2.2.4.5.2 Outputs

ID objectId: The ID of the newly-created Policy Object.

2.2.4.5.3 Exceptions Thrown & Conditions

3541

See section 2.2.1.4.1 General Exceptions

3542
3543

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

3544

The cmis:objectTypeId property value is not an Object-Type whose baseType is Policy.

3545
3546

The value of any of the properties violates the min/max/required/length constraints


specified in the property definition in the Object-Type.

3547
3548

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of


the parent-folder specified by folderId.

3549
3550

The controllablePolicy attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one policy is provided.

3551
3552

The controllableACL attribute of the Object-Type definition specified by the


cmis:objectTypeId property value is set to FALSE and at least one ACE is provided.

3553
3554

At least one of the permissions is used in an ACE provided which is not supported by the
repository.

3555
3556
3557

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. If the repository


detects a violation with the given cmis:name property value, the repository MAY throw this
exception or chose a name which does not conflict.

3558

storage: See section 2.2.1.4.2 Specific Exceptions.

3559

2.2.4.6 getAllowableActions

3560

Description: Gets the list of allowable actions for an Object (see section.2.2.1.2.6 Allowable Actions).

3561

2.2.4.6.1 Inputs

3562

Required:

3563

ID repositoryId: The identifier for the Repository.

3564

ID objectId: The identifier for the object

3565
3566
3567
3568

2.2.4.6.2 Outputs

<Array> AllowableActions: see section 2.2.1.2.6 Allowable Actions.

2.2.4.6.3 Exceptions Thrown & Conditions


See section 2.2.1.4.1 General Exceptions
8

3569

2.2.4.7 getObject

3570

Description: Gets the specified information for the Object.


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 97 of 236

3571

2.2.4.7.1 Inputs

3572

Required:

3573

ID repositoryId: The identifier for the Repository.

3574

ID objectId: The identifier for the object

3575

Optional:

3576

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

3577

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3578

Boolean includePolicyIds: See section 2.2.1.2.3 Policies.

3579

String renditionFilter: See section 2.2.1.2.4 Renditions.

3580

Boolean includeACL: See section 2.2.1.2.5 ACLs.

3581

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3582

2.2.4.7.2 Outputs

3583

<Array> Properties: The list of properties for the object.

3584

3585

<Array> Policy Ids: See section 2.2.1.2.3 Policies.

3586

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3587

3588

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3589

<Array> Relationships: See section 2.2.1.2.2 Relationships.

<Array> ACLs: See section 2.2.1.2.5 ACLs.

2.2.4.7.3 Exceptions Thrown & Conditions

3590

See section 2.2.1.4.1 General Exceptions

3591
3592

filterNotValid: The Repository MUST throw this exception if this property filter input parameter
is not valid.

3593

2.2.4.8 getProperties

3594

Description: Gets the list of properties for an Object.

3595

2.2.4.8.1 Inputs

3596

Required:

ID repositoryId: The identifier for the Repository.

3598

ID objectId: The identifier for the object

3599

Optional:

3600

3597

3601
3602
3603

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

2.2.4.8.2 Outputs
<Array> Properties: The list of properties for the object.

2.2.4.8.3 Exceptions Thrown & Conditions

3604

See section 2.2.1.4.1 General Exceptions

3605
3606

filterNotValid: The Repository MUST throw this exception if this property filter input parameter
is not valid.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 98 of 236

3607

2.2.4.9 getObjectByPath

3608

Description: Gets the specified object.

3609

2.2.4.9.1 Inputs

3610

Required:

3611

ID repositoryId: The identifier for the Repository.

3612

String path: The path to the object. See section 2.1.5.3 Paths.

3613

Optional:

3614

String filter: See section 2.2.1.2.1 Properties.

3615

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3616

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3617

String renditionFilter: See section 2.2.1.2.4 Renditions.

3618

Boolean includePolicyIds: See section 2.2.1.2.2 Relationships.

3619

Boolean includeACL: See section 2.2.1.2.5 ACLs.

3620

2.2.4.9.2 Outputs

3621

<Array> Properties: The list of properties for the object.

3622

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3623

2.2.4.9.3 Exceptions Thrown & Conditions

3624

3625
3626

filterNotValid: The Repository MUST throw this exception if this property filter input parameter
is not valid.

See section 2.2.1.4.1 General Exceptions


9

3627

2.2.4.10 getContentStream

3628
3629

Description: Gets the content stream for the specified Document object, or gets a rendition stream for a
specified rendition of a document or folder object.

3630
3631

Notes: Each CMIS protocol binding MAY provide a way for fetching a sub-range within a content stream,
in a manner appropriate to that protocol.

3632

2.2.4.10.1 Inputs

3633

Required:

3634

ID repositoryId: The identifier for the Repository.

3635

ID objectId: The identifier for the object

3636

Optional:

3637
3638
3639

3640
3641

ID streamId: The identifier for the rendition stream, when used to get a rendition stream. For
Documents, if not provided then this method returns the content stream. For Folders, it MUST be
provided.

2.2.4.10.2 Outputs

<Stream> ContentStream: The specified content stream or rendition stream for the object.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 99 of 236

3642

2.2.4.10.3 Exceptions Thrown & Conditions

3643

3644
3645

constraint: The Repository MUST throw this exception if the object specified by objectId does
NOT have a content stream or rendition stream.

See section 2.2.1.4.1 General Exceptions


9

3646

2.2.4.11 getRenditions

3647
3648

Description: Gets the list of associated Renditions for the specified object. Only rendition attributes are
returned, not rendition stream.

3649
3650

Notes: Each CMIS protocol binding MAY provide a way for fetching a sub-range within a content stream,
in a manner appropriate to that protocol.

3651

2.2.4.11.1 Inputs

3652

Required:

3653

ID repositoryId: The identifier for the Repository.

3654

ID objectId: The identifier for the object

3655

Optional:

3656

String renditionFilter: See Section 2.2.1.2.4

3657

Integer maxItems: See section 2.2.1.1 Paging.

3658

Integer skipCount: See section 2.2.1.1 Paging.

3659
3660
3661

2.2.4.11.2 Outputs

<Array> Renditions: The set of renditions available on this object

2.2.4.11.3 Exceptions Thrown & Conditions

3662

See section 2.2.1.4.1 General Exceptions

3663
3664

notSupported: The service method requires functionality that is not supported by the
repository

3665

filterNotValid : The filter specified is not valid

3666

2.2.4.12 updateProperties

3667

Description: Updates properties of the specified object.

3668

Notes:

3669
3670

A Repository MAY automatically create new Document versions as part of an update properties
operation. Therefore, the objectId output NEED NOT be identical to the objectId input.

3671
3672
3673

Each CMIS protocol bindings MUST specify whether the updateProperties service MUST always
include all updatable properties, or only those properties whose values are different than the
original value of the object.

3674

2.2.4.12.1 Inputs

3675

Required:

3676

3677

ID objectId: The identifier of the object to be updated.

3678

3679

Optional:

ID repositoryId: The identifier for the Repository.


<Array> properties: The updated property values that MUST be applied to the Object.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 100 of 236

3680
3681

String changeToken: See section 2.2.1.3 Change Tokens.

2.2.4.12.2 Outputs

3682

ID objectId: The ID of the updated object.

3683

String changeToken: See section 2.2.1.3 Change Tokens.

3684

2.2.4.12.3 Exceptions Thrown & Conditions

3685

See section 2.2.1.4.1 General Exceptions

3686
3687
3688

constraint: The Repository MUST throw this exception if the value of any of the properties
violates the min/max/required/length constraints specified in the property definition in the ObjectType.

3689
3690

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. The repository MAY


throw this exception or chose a name which does not conflict.

3691

storage: See section 2.2.1.4.2 Specific Exceptions.

3692

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3693
3694

versioning: The Repository MUST throw this exception if ANY of the following conditions are
met:

3695
3696

The object is not checked out and ANY of the properties being updated are defined in
their Object-Type definition have an attribute value of Updatability when checked-out.

3697
3698

Additionally, the repository MAY throw this exception if the object is a non-current
Document Version.

3699

2.2.4.13 moveObject

3700

Description: Moves the specified file-able object from one folder to another.

3701

2.2.4.13.1 Inputs

3702

Required:

3703

ID repositoryId: The identifier for the Repository.

3704

ID objectId: The identifier of the object to be moved.

3705

ID targetFolderId: The folder into which the object is to be moved.

3706

ID sourceFolderId: The folder from which the object is to be moved.

3707
3708
3709

2.2.4.13.2 Outputs

ID objectId: The identifier of the object to be moved.

2.2.4.13.3 Exceptions Thrown & Conditions

3710

See section 2.2.1.4.1 General Exceptions

3711
3712
3713

invalidArgument: The Repository MUST throw this exception if the service is invoked with a
missing sourceFolderId or the sourceFolderId doesnt match the specified objects parent folder
(or one of the parent folders if the repository supports multifiling.).

3714
3715
3716

constraint: The Repository MUST throw this exception if the cmis:objectTypeId property value
of the given object is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified
by targetFolderId.

3717
3718

nameConstraintViolation: See section 2.2.1.4.2 Specific Exceptions. The repository MAY


throw this exception or chose a name which does not conflict.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 101 of 236

3719

storage: See section 2.2.1.4.2 Specific Exceptions.

3720

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3721
3722

versioning: The repository MAY throw this exception if the object is a non-current Document
Version.

3723

2.2.4.14 deleteObject

3724

Description: Deletes the specified object.

3725

2.2.4.14.1 Inputs

3726

Required:

3727

ID repositoryId: The identifier for the Repository.

3728

ID objectId: The identifier of the object to be deleted.

3729

Optional:

3730
3731
3732
3733

Boolean allVersions: If TRUE (default), then delete all versions of the document. If FALSE,
delete only the document object specified. The Repository MUST ignore the value of this
parameter when this service is invoke on a non-document object or non-versionable document
object.

3734
3735

2.2.4.14.2 Exceptions Thrown & Conditions

3736

See section 2.2.1.4.1 General Exceptions

3737
3738

constraint: The Repository MUST throw this exception if the method is invoked on a Folder
object that contains one or more objects.

3739

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3740

2.2.4.15 deleteTree

3741

Description: Deletes the specified folder object and all of its child- and descendant-objects.

3742

Notes:

3743
3744

A Repository MAY attempt to delete child- and descendant-objects of the specified folder in any
order.

3745
3746

Any child- or descendant-object that the Repository cannot delete MUST persist in a valid state in
the CMIS domain model.

3747

This is not atomic.

3748
3749
3750

However, if deletesinglefiled is chosen and some objects fail to delete, then single-filed objects
are either deleted or kept, never just unfiled. This is so that a user can call this command again to
recover from the error by using the same tree.

3751

2.2.4.15.1 Inputs

3752

Required:

3753

ID repositoryId: The identifier for the Repository.

3754

ID folderId: The identifier of the folder to be deleted.

3755

Optional:

3756
3757

Boolean allVersions: If TRUE (default), then delete all versions of the document. If FALSE,
delete only the document object specified. The Repository MUST ignore the value of this

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 102 of 236

3758
3759
3760
3761

parameter when this service is invoke on a non-document object or non-versionable document


object.

Enum unfileObjects: An enumeration specifying how the repository MUST process file-able
child- or descendant-objects. Valid values are:

3762

unfile: Unfile all fileable objects.

3763
3764

deletesinglefiled: Delete all fileable non-folder objects whose only parent-folders are in
the current folder tree. Unfile all other fileable non-folder objects from the current folder tree.

3765

delete (default): Delete all fileable objects.

3766
3767
3768

3769
3770
3771
3772
3773

boolean continueOnFailure: If TRUE, then the repository SHOULD continue attempting to


perform this operation even if deletion of a child- or descendant-object in the specified folder
cannot be deleted.
o

If FALSE (default), then the repository SHOULD abort this method when it fails to delete a
single child- or descendant-object.

2.2.4.15.2 Outputs

<Array> ID failedToDelete: A list of identifiers of objects in the folder tree that were not deleted.

2.2.4.15.3 Exceptions Thrown & Conditions

3774

See section 2.2.1.4.1 General Exceptions

3775

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3776

2.2.4.16 setContentStream

3777

Description: Sets the content stream for the specified Document object.

3778
3779

Notes: A Repository MAY automatically create new Document versions as part of this service method.
Therefore, the obejctId output NEED NOT be identical to the objectId input.

3780

2.2.4.16.1 Inputs

3781

Required:

3782

ID repositoryId: The identifier for the Repository.

3783

ID objectId: The identifier for the Document object.

3784

<contentStream> contentStream: The Content Stream

3785

Optional:

3786
3787

3788
3789
3790
3791

Boolean overwriteFlag: If TRUE (default), then the Repository MUST replace the existing
content stream for the object (if any) with the input contentStream.
o

If FALSE, then the Repository MUST only set the input contentStream for the object if the
object currently does not have a content-stream.

String changeToken: See section 2.2.1.3 Change Tokens.

2.2.4.16.2 Outputs

3792

ID objectId: The ID of the document.

3793

String changeToken: See section 2.2.1.3 Change Tokens.

3794
3795

2.2.4.16.3 Exceptions Thrown & Conditions

See section 2.2.1.4.1 General Exceptions


9

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 103 of 236

3796
3797

contentAlreadyExists: The Repository MUST throw this exception if the input parameter
overwriteFlag is FALSE and the Object already has a content-stream.

3798

storage: See section 2.2.1.4.2 Specific Exceptions.

3799
3800
3801

streamNotSupported: The Repository MUST throw this exception if the


contentStreamAllowed attribute of the Object-Type definition specified by the cmis:objectTypeId
property value of the given document is set to notallowed.

3802

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3803
3804

versioning: The repository MAY throw this exception if the object is a non-current Document
Version.

3805

2.2.4.17 deleteContentStream

3806

Description: Deletes the content stream for the specified Document object.

3807
3808

Notes: A Repository MAY automatically create new Document versions as part of this service method.
Therefore, the objectId output NEED NOT be identical to the objectId input.

3809

2.2.4.17.1 Inputs

3810

Required:

3811

ID repositoryId: The identifier for the Repository.

3812

ID objectId: The identifier for the Document object.

3813

Optional:

3814

3815

String changeToken: See section 2.2.1.3 Change Tokens.

2.2.4.17.2 Outputs

3816

ID objectId: The ID of the Document object.

3817

String changeToken: See section 2.2.1.3 Change Tokens.

3818

2.2.4.17.3 Exceptions Thrown & Conditions

3819

See section 2.2.1.4.1 General Exceptions

3820
3821

constraint: The Repository MUST throw this exception if the Objects Object-Type definition
contentStreamAllowed attribute is set to required.

3822

storage: See section 2.2.1.4.2 Specific Exceptions.

3823

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3824
3825

versioning: The repository MAY throw this exception if the object is a non-current Document
Version.

3826

2.2.5 Multi-filing Services

3827
3828
3829

The Multi-filing services (addObjectToFolder, removeObjectFromFolder) are supported only if the


repository supports the multifiling or unfiling optional capabilities. The Multi-filing Services are used to
file/un-file objects into/from folders.

3830

This service is NOT used to create or delete objects in the repository.

3831

2.2.5.1 addObjectToFolder

3832

Description: Adds an existing fileable non-folder object to a folder.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 104 of 236

3833

2.2.5.1.1 Inputs

3834

Required:

3835

ID repositoryId: The identifier for the Repository.

3836

ID objectId: The identifier of the object.

3837

ID folderId: The folder into which the object is to be filed.

3838

Optional:

3839
3840

3841

Boolean allVersions: Add all versions of the object to the folder if the repository supports
version-specific filing. Defaults to TRUE.

2.2.5.1.2 Exceptions Thrown & Conditions

3842

See section 2.2.1.4.1 General Exceptions.

3843
3844
3845

constraint: The Repository MUST throw this exception if the cmis:objectTypeId property value
of the given object is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified
by folderId.

3846

2.2.5.2 removeObjectFromFolder

3847

Description: Removes an existing fileable non-folder object from a folder.

3848

2.2.5.2.1 Inputs

3849

Required:

3850

ID repositoryId: The identifier for the Repository.

3851

ID objectId: The identifier of the object.

3852

Optional:

3853

3854
3855
3856
3857

ID folderId: The folder from which the object is to be removed.


o

If no value is specified, then the Repository MUST remove the object from all folders in which
it is currently filed.

2.2.5.2.2 Exceptions Thrown & Conditions

See section 2.2.1.4.1 General Exceptions


9

3858

2.2.6 Discovery Services

3859

The Discovery Services (query) are used to search for query-able objects within the Repository.

3860

2.2.6.1 query

3861

Description: Executes a CMIS query statement against the contents of the Repository.

3862

2.2.6.1.1 Inputs

3863

Required:

3864

ID repositoryId: The identifier for the Repository.

3865

String statement: CMIS query to be executed. (See section 2.1.10 Query.)

3866

Optional:

3867

3868
3869

Boolean searchAllVersions:
o

If TRUE, then the Repository MUST include latest and non-latest versions of document
objects in the query search scope.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 105 of 236

3870
3871

If FALSE (default), then the Repository MUST only include latest versions of documents
in the query search scope.

3872
3873

If the Repository does not support the optional capabilityAllVersionsSearchable


capability, then this parameter value MUST be set to FALSE.

3874

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3875
3876
3877
3878

Note: For query statements where the SELECT clause contains properties from only one
virtual table reference (i.e. referenced object-type), any value for this enum may be used.
If the SELECT clause contains properties from more than one table, then the value of this
parameter MUST be none.

3879

String renditionFilter: See section 2.2.1.2.4 Renditions.

3880

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3881
3882
3883
3884

Note: For query statements where the SELECT clause contains properties from only one
virtual table reference (i.e. referenced object-type), any value for this parameter may be
used. If the SELECT clause contains properties from more than one table, then the value
of this parameter MUST be FALSE.

3885

Integer maxItems: See section 2.2.1.1 Paging.

3886

Integer skipCount: See section 2.2.1.1 Paging.

3887
3888
3889

2.2.6.1.2 Outputs

<Array> Object QueryResults: The set of results for the query. (See section 2.1.10 Query.).
Each object result MUST include the following elements if they are requested:

3890

<Array> Relationships: See section 2.2.1.2.2 Relationships.

3891

<Array> Renditions: See section 2.2.1.2.4 Renditions.

3892

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3893

3894

Optional:

3895

Boolean hasMoreItems: See section 2.2.1.1 Paging.


Integer numItems: See section 2.2.1.1 Paging.

3896
3897

2.2.6.1.3 Exceptions Thrown & Conditions

3898

See section 2.2.1.4.1 General Exceptions

3899
3900
3901

If the select clause includes properties from more than a single type reference, then the
repository SHOULD throw an exception if includeRelationships is something other than none or
includeAllowableActions is specified as TRUE.

3902

2.2.6.2 getContentChanges

3903
3904

Description: Gets a list of content changes. This service is intended to be used by search crawlers or
other applications that need to efficiently understand what has changed in the repository.

3905

Notes:

3906

The content stream is NOT returned for any change event.

3907

The definition of the authority needed to call this service is repository specific.

3908

The latest change log token for a repository can be acquired via the getRepositoryInfo service.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 106 of 236

3909

2.2.6.2.1 Inputs

3910

Required:

3911

3912

Optional:

3913

ID repositoryId: The identifier for the Repository.


String changeLogToken:

3914
3915

If specified, then the Repository MUST return the change event corresponding to the value of
the specified change log token as the first result in the output.

3916
3917

If not specified, then the Repository MUST return the first change event recorded in the
change log.

3918

Boolean includeProperties:

3919
3920
3921

If TRUE, then the Repository MUST include the updated property values for updated
change events. if the repository supports returning property values as specified by
capbilityChanges.

3922
3923
3924

If FALSE (default), then the Repository MUST NOT include the updated property values for
updated change events. The single exception to this is that the objectId MUST always be
included.

3925

Boolean includePolicyIDs:includePolicyIds:

3926
3927

If TRUE, then the Repository MUST include the IDs of Policies applied to the object referenced in
each change event, if the change event modified the set of policies applied to the object.

3928

If FALSE (default), then the Repository will not include policy information.

3929
3930

String filter: See section 2.2.1.2.1 Properties. The service will only return the properties in the
matched object if they exist on the matched object type definition and in the filter.

3931

Boolean includeACL: See section 2.2.1.2.5 ACLs.

3932

Integer maxItems: See section 2.2.1.1 Paging.

3933
3934
3935

2.2.6.2.2 Outputs

<Array> changeEvents: A collection of CMIS objects that MUST include the information as
specified in 2.1.11.3. Each result MUST include the following elements if they are requested:

3936

<Array> policyIDs: The IDs of Policies applied to the object referenced in the change event.

3937

<Array> ACLs: The ACLs applied to the object reference in the change event.

3938
3939

String lastChangeLogTokenlatestChangeLogToken: The change log token corresponding to


the last change event in changeEvents.

3940

Boolean hasMoreItems: See section 2.2.1.1 Paging.

3941

Optional:

3942

3943

Integer numItems: See section 2.2.1.1 Paging.

2.2.6.2.3 Exceptions Thrown & Conditions

3944

See section 2.2.1.4.1 General Exceptions

3945
3946
3947

constraint: The Repository MUST throw this exception if the event corresponding to the
change log token provided as an input parameter is no longer available in the change log. (E.g.
because the change log was truncated).

3948

2.2.7 Versioning Services

3949
3950

The Versioning services (checkOut, cancelCheckOut, getPropertiesOfLatestVersion, getAllVersions,


deleteAllVersions) are used to navigate or update a Document Version Series.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 107 of 236

3951

2.2.7.1 checkOut

3952

Description: Create a private working copy of the document.

3953

2.2.7.1.1 Inputs

3954

Required:

3955

ID repositoryId: The identifier for the Repository.

3956

ID objectId: The identifier of the object.document version.

3957

2.2.7.1.2 Outputs

3958

ID objectId: The identifier for the Private Working Copy document.

3959
3960

Boolean contentCopied: TRUE if the content-stream of the Private Working Copy is a copy of
the contentStream of the Document that was checked out.

3961
3962

FALSE if the content-stream of the Private Working Copy is not set.

2.2.7.1.3 Exceptions Thrown & Conditions

3963

See section 2.2.1.4.1 General Exceptions

3964
3965

constraint: The Repository MUST throw this exception if the Documents Object-Type
definitions versionable attribute is FALSE.

3966

storage: See section 2.2.1.4.2 Specific Exceptions.

3967

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3968
3969

versioning: The repository MAY throw this exception if the object is a non-current Document
Version.

3970

2.2.7.2 cancelCheckOut

3971
3972

Description: Reverses the effect of a check-out. Removes the private working copy of the checked-out
document, allowing other documents in the version series to be checked out again.

3973

2.2.7.2.1 Inputs

3974

Required:

3975

ID repositoryId: The identifier for the Repository.

3976

ID objectId: The identifier of the document.Private Working Copy.

3977

2.2.7.2.2 Exceptions Thrown & Conditions

3978

See section 2.2.1.4.1 General Exceptions

3979
3980

constraint: The Repository MUST throw this exception if the Documents Object-Type
definitions versionable attribute is FALSE.

3981

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

3982
3983

versioning: The repository MAY throw this exception if the object is a non-current Document
Version.

3984

2.2.7.3 checkIn

3985

Description: Checks-in the Private Working Copy document.

3986

Notes:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 108 of 236

3987
3988
3989

For repositories that do NOT support the optional capabilityPWCUpdatable capability, the
properties and contentStream input parameters MUST be provided on the checkIn method for
updates to happen as part of checkIn.

3990
3991
3992

Each CMIS protocol bindings MUST specify whether the checkin service MUST always include all
updatable properties, or only those properties whose values are different than the original value
of the object.

3993

2.2.7.3.1 Inputs

3994

Required:

3995

ID repositoryId: The identifier for the Repository.

3996

ID objectId: The identifier of the document.

3997

Optional:

3998

3999

Boolean major: TRUE (default) if the checked-in Document Object MUST be a major version.
o

FALSE if the checked-in Document Object MUST NOT be a major version.

4000
4001

<Array> properties: The property values that MUST be applied to the checked-in Document
Object.

4002
4003
4004

<contentStream> contentStream: The Content Stream that MUST be stored for the checked-in
Document Object. The method of passing the contentStream to the server and the encoding
mechanism will be specified by each specific binding.

4005

String checkinComment: See section 2.1.9.5 Versioning Properties on Document Objects.

4006
4007

<Array> policies: A list of policy IDs that MUST be applied to the newly-created Document
object.

4008
4009

<Array> ACE addACEs: A list of ACEs that MUST be added to the newly-created Document
object, either using the ACL from folderId if specified, or being applied if no folderId is specified.

4010
4011
4012

<Array> ACE removeACEs: A list of ACEs that MUST be removed from the newly-created
Document object, either using the ACL from folderId if specified, or being ignored if no folderId is
specified.

4013
4014
4015

2.2.7.3.2 Outputs
ID objectId: The ID of the checked-in document.

2.2.7.3.3 Exceptions Thrown & Conditions

4016

See section 2.2.1.4.1 General Exceptions

4017
4018

constraint: The Repository MUST throw this exception if the Documents Object-Type
definitions versionable attribute is FALSE.

4019

storage: See section 2.2.1.4.2 Specific Exceptions.

4020
4021
4022

streamNotSupported: The Repository MUST throw this exception if the


contentStreamAllowed attribute of the Object-Type definition specified by the cmis:objectTypeId
property value is set to not allowed and a contentStream input parameter is provided.

4023

updateConflict: See section 2.2.1.4.2 Specific Exceptions.

4024

2.2.7.4 getObjectOfLatestVersion

4025

Description: Get a the latest Document object in the Version Series.

4026

2.2.7.4.1 Inputs

4027

Required:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 109 of 236

4028

ID repositoryId: The identifier for the Repository.

4029

ID objectId: The identifier for the Version Series.

4030

Optional:

4031
4032

4033
4034

Boolean major: If TRUE, then the Repository MUST returnthe properties for the latest major
version object in the Version Series.
o

If FALSE (default), the Repository MUST return the properties for the latest (major or nonmajor) version object in the Version Series.

4035

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

4036

Enum includeRelationships: See section 2.2.1.2.2 Relationships.

4037

Boolean includePolicyIds: See section 2.2.1.2.3 Policies.

4038

String renditionFilter: See section 2.2.1.2.4 Renditions.

4039

Boolean includeACL: See section 2.2.1.2.5 ACLs.

4040

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

4041

2.2.7.4.2 Outputs

4042

<Array> Properties: The list of properties for the object.

4043

4044

<Array> Policy Ids: See section 2.2.1.2.3 Policies.

4045

<Array> Renditions: See section 2.2.1.2.4 Renditions.

4046

4047

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

4048

<Array> Relationships: See section 2.2.1.2.2 Relationships.

<Array> ACLs: See section 2.2.1.2.5 ACLs.

2.2.7.4.3 Exceptions Thrown & Conditions

4049

See section 2.2.1.4.1 General Exceptions

4050
4051

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

4052
4053

objectNotFound: The Repository MUST throw this exception if the input parameter major is
TRUE and the Version Series contains no major versions.

4054

2.2.7.5 getPropertiesOfLatestVersion

4055

Description: Get a subset of the properties for the latest Document Object in the Version Series.

4056

2.2.7.5.1 Inputs

4057

Required:

4058

ID repositoryId: The identifier for the Repository.

4059

ID objectId: The identifier for the Version Series.

4060

Optional:

4061
4062

4063
4064
4065

Boolean major: If TRUE, then the Repository MUST return the properties for the latest major
version object in the Version Series.
o

If FALSE (default), the Repository MUST return the properties for the latest (major or nonmajor) version object in the Version Series.

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 110 of 236

4066
4067
4068

2.2.7.5.2 Outputs
<Array> Properties: The list of properties for the object.

2.2.7.5.3 Exceptions Thrown & Conditions

4069

See section 2.2.1.4.1 General Exceptions

4070
4071

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

4072
4073

objectNotFound: The Repository MUST throw this exception if the input parameter major is
TRUE and the Version Series contains no major versions.

4074

2.2.7.6 getAllVersions

4075
4076

Description: Returns the list of all Document Objects in the specified Version Series, sorted by
cmis:creationDate descending.

4077

Notes:

4078
4079

The result set for this operation MUST include the Private Working Copy, subject to callers
access privileges.

4080

2.2.7.6.1 Inputs

4081

Required:

4082

ID repositoryId: The identifier for the Repository.

4083

ID objectId: The identifier for the Version Series.

4084

Optional:

4085

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

4086

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

4087
4088
4089

2.2.7.6.2 Outputs

<Array> ObjectResults: A list of Document Objects in the specified Version Series. Each object
result MUST include the following elements if they are requested:

4090

<Array> Properties: The list of properties for the object.

4091

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

4092
4093

2.2.7.6.3 Exceptions Thrown & Conditions

4094

See section 2.2.1.4.1 General Exceptions

4095
4096

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

4097

2.2.8 Relationship Services

4098
4099

The Relationship Services (getObjectRelationships) are used to retrieve the dependent Relationship
objects associated with an independent object.

4100

2.2.8.1 getObjectRelationships

4101

Description: Gets all or a subset of relationships associated with an independent object.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 111 of 236

4102

2.2.8.1.1 Inputs

4103

Required:

4104

ID repositoryId: The identifier for the Repository.

4105

ID objectId: The identifier of the object.

4106
4107

Optional:

4108
4109
4110

Boolean includeSubRelationshipTypes: If TRUE, then the Repository MUST return all


relationships whose Object-Types are descendant-types of the given objects cmis:objectTypeId
property value. as well as relationships of the specified type.

4111

Default is FALSE

4112
4113

If FALSE, then the Repository MUST only return relationships whose Object-Type is
equivalent to the given objects cmis:objectTypeId property value.

4114
4115
4116

Enum relationshipDirection: An enumeration specifying whether the Repository MUST


return relationships where the specified Object is the source of the relationship, the target of the
relationship, or both. Valid values are:

4117
4118

source: (default) The Repository MUST return only relationship objects where the specified
object is the source object.

4119
4120

target: The Repository MUST return only relationship objects where the specified object is
the target object.

4121
4122

either: The Repository MUST return relationship objects where the specified object is
either the source or the target object.

4123
4124

4125

ID typeId: If specified, then the Repository MUST return only relationships whose Object-Type is
of the type specified (and possibly its descendant-types see next parameter.)
o

If not specified, then the repository MUST return Relationship objects of all types.

4126

Integer maxItems: See section 2.2.1.1 Paging.

4127

Integer skipCount: See section 2.2.1.1 Paging.

4128

String filter: See section 2.2.1.2.1 Properties.

4129

Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

4130
4131
4132

2.2.8.1.2 Outputs

<Array> Objects: A list of the relationship objects. Each object result MUST include the following
elements if they are requested:

4133

<Array> Properties: The list of properties for the object.

4134

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

4135

4136

Optional:

4137

Boolean hasMoreItems: See section 2.2.1.1 Paging.


Integer numItems: See section 2.2.1.1 Paging.

4138
4139

2.2.8.1.3 Exceptions Thrown & Conditions

4140

See section 2.2.1.4.1 General Exceptions

4141
4142

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 112 of 236

4143

2.2.9 Policy Services

4144
4145

The Policy Services (applyPolicy, removePolicy, getAppliedPolicies) are used to apply or remove a policy
object to a controllablePolicy object.

4146

2.2.9.1 applyPolicy

4147

Description: Applies a specified policy to an object.

4148

2.2.9.1.1 Inputs

4149

Required:

4150

ID repositoryId: The identifier for the Repository.

4151

ID policyId: The identifier for the Policy to be applied.

4152

ID objectId: The identifier of the object.

4153

2.2.9.1.2 Exceptions Thrown & Conditions

4154

See section 2.2.1.4.1 General Exceptions

4155
4156

constraint : The Repository MUST throw this exception if the specified objects Object-Type
definitions attribute for controllablePolicy is FALSE.

4157

2.2.9.2 removePolicy

4158

Description: Removes a specified policy from an object.

4159

2.2.9.2.1 Inputs

4160

Required:

4161

ID repositoryId: The identifier for the Repository.

4162

ID policyId: The identifier for the Policy to be removed.

4163

ID objectId: The identifier of the object.

4164

2.2.9.2.2 Exceptions Thrown & Conditions

4165

See section 2.2.1.4.1 General Exceptions

4166
4167

constraint: The Repository MUST throw this exception if the specified objects Object-Type
definitions attribute for controllablePolicy is FALSE.

4168

2.2.9.3 getAppliedPolicies

4169

Description: Gets the list of policies currently applied to the specified object.

4170

2.2.9.3.1 Inputs

4171

Required:

4172

ID repositoryId: The identifier for the Repository.

4173

ID objectId: The identifier of the object.

4174

Optional:

4175
4176
4177

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

2.2.9.3.2 Outputs
<Array> Objects: A list of Policy Objects.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 113 of 236

4178

2.2.9.3.3 Exceptions Thrown & Conditions

4179

See section 2.2.1.4.1 General Exceptions

4180
4181

filterNotValid: The Repository MUST throw this exception if this property filter input
parameter is not valid.

4182

2.2.10 ACL Services

4183

2.2.10.1 getACL

4184

Description: Get the ACL currently applied to the specified document or folder object.

4185

2.2.10.1.1 Inputs

4186

Required:

4187

ID repositoryId: The identifier for the repository.

4188

ID objectId: The identifier for the object

4189

Optional:

4190
4191

Boolean onlyBasicPermissions: See section 2.8 Access Control. The repository SHOULD
make a best effort to fully express the native security applied to the object

4192
4193

TRUE: (default value if not provided) indicates that the client requests that the returned
ACL be expressed using only the CMIS Basic permissions.

4194
4195

FALSE: indicates that the server may respond using either solely CMIS Basic
permissions, or repository specific permissions or some combination of both.

4196
4197
4198
4199
4200
4201
4202

2.2.10.1.2 Outputs

<Array> AccessControlEntryType: The list of access control entries of the ACL for the object.

Optional:

Boolean exact: An indicator that the ACL returned fully describes the permission for this object
i.e. there are no other security constraints applied to this object. Not provided defaults to FALSE.

2.2.10.1.3 Exceptions Thrown & Conditions

See section 2.2.1.4.1 General Exceptions


1

4203

2.2.10.1.4 Notes

4204
4205

This service MUST be supported by a repository, if getRepository returns capabilityACL=discover or


=manage.

4206
4207

How an ACL for the object is computed is up to the repository. A client MUST NOT assume that the ACEs
from the ACL as returned by this service can be applied via applyACL.

4208

2.2.10.2 applyACL

4209

Description: Adds or removes the given ACEs to or from the ACL of document or folder object.

4210

2.2.10.2.1 Inputs

4211

Required:

4212

ID repositoryId: The identifier for the repository.

4213

ID objectId: The identifier for the object

4214

Optional:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 114 of 236

4215

<Array> AccessControlEntryType addACEs: The ACEs to be added.

4216

<Array> AccessControlEntryType removeACEs: The ACEs to be removed.

4217

Enum ACLPropagation: Specifies how ACEs should be handled:

4218

objectonly: ACEs must be applied without changing the ACLs of other objects.

4219

propagate: ACEs must be applied by propagate the changes to all inheriting objects.

4220
4221

repositorydetermined: Default value. Indicates that the client leaves the behavior to
the repository.

4222

2.2.10.2.2 Outputs

4223
4224

4225

Optional:

4226
4227

Boolean exact: An indicator that the ACL returned fully describes the permission for this object
i.e. there are no other security constraints applied to this object. Not provided defaults to FALSE.

4228

String changeToken: See section 2.2.1.3 Change Tokens.

4229

<Array> AccessControlEntryType: The list of access control entries of the resulting ACL for the
object

2.2.10.2.3 Exceptions Thrown & Conditions

4230

See section 2.2.1.4.1 General Exceptions

4231
4232

constraint: The Repository MUST throw this exception if ANY of the following conditions are
met:

4233

The specified objects Object-Type definitions attribute for controllableACL is FALSE.

4234
4235

The value for ACLPropagation does not match the values as returned via
getACLCapabilities.

4236
4237
4238

At least one of the specified values for permission in ANY of the ACEs does not match
ANY of the permissionNames as returned by getACLCapability and is not a CMIS Basic
permission

4239

2.2.10.2.4 Notes

4240

This service MUST be supported by a repository, if getRepository returns capabilityACL=manage.

4241
4242
4243
4244

How ACEs are added or removed to or from the object is up to the repository with respect to the
ACLPropagation provided by the client. For shared ACEs (e.g. via inheritance), the repository MAY
merge the ACEs provided with the ACEs of the ACL already applied to the object (i.e. the ACEs provided
MAY not be completely added or removed from the effective ACL for the object).

4245
4246

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 115 of 236

4247

3 Restful AtomPub Binding

4248

3.1 Overview

4249
4250

This binding is based upon the Atom (RFC4287) and Atom Publishing Protocol (RFC5023).
Implementations of CMIS MUST be compliant with RFC4287 and RFC5023.

4251
4252
4253
4254

In this binding, the client interacts with the repository by acquiring the service document. The client will
request the service document by the URI provided by the vendor. The client will then choose a CMIS
collection, and then start accessing the repository by following the references in the returned documents.

4255
4256
4257
4258
4259

This binding consists of a service document specifying at least CMIS service collections, atom collections,
feeds and entry documents. CMIS extends the Atom and AtomPub documents utilizing the Atom and
AtomPub extension mechanism. CMIS also leverages link tags to specify additional resources related to
the requested resource.

4260
4261
4262

When requesting a resource, optional parameters may be specified to change default behavior via query
parameters.

4263

3.1.1 Namespaces

4264
4265

This specification uses the following namespaces and prefixes when referring to xml or xml schema
elements in the text or examples:

4266

4267
4268

4269
4270

4273

Prefix: cmisra

Atom : http://www.w3.org/2005/Atom
o

Prefix: cmis

CMIS-RestAtom: http://docs.oasis-open.org/ns/cmis/restatom/200908/
o

4271
4272

CMIS-Core: http://docs.oasis-open.org/ns/cmis/core/200908/

Prefix: atom

AtomPub: http://www.w3.org/2007/app
o

Prefix: app

4274
4275

3.1.2 Authentication

4276
4277

Authentication SHOULD be handled by the transport protocol. Please see AtomPub (RFC5023) section
14.

4278
4279

3.1.3 Response Formats

4280
4281
4282
4283

The client can specify, in HTTP the Accept header, which formats are acceptable to the client. With this
mechanism the client can chose which response format the CMIS implementation should respond with.
The CMIS compliant implementation MUST support the appropriate Media Types specified in this
document.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 116 of 236

4284

3.1.4 Optional Arguments

4285
4286

The binding supports adding optional parameters to CMIS resources to modify the default behavior.
CMIS implementations MUST support arguments being specified as HTTP query string parameters.

4287
4288
4289

Names and valid values for HTTP query string parameters are as described in the appropriate CMIS
Service descriptions [see CMIS Domain Model]. Valid values of enumeration types are also represented
in the CMIS Core XML Schema

4290

3.1.5 Errors and Exceptions

4291

Exceptions MUST be mapped to the appropriate HTTP status code.

4292
4293

Repositories SHOULD provide sufficient information in the body of the HTTP response for a user to
determine corrective action.

4294

See Section 3.2.4 HTTP Status Codes for more information.

4295

3.1.6 Renditions

4296
4297

Each Rendition included in a CMIS AtomPub response is represented as an Atom link with relationship
alternate.

4298
4299

The following attributes SHOULD be included on the link element:

4300

href: URI to the rendition content stream

4301

type: The Media Type of the Rendition

4302

cmisra:renditionKind: The Rendition Kind for the Rendition

4303
4304

The following attributes MAY be included

4305

title: The Filename (or name property if object) of Rendition

4306

length: The length of the rendition

4307

3.1.7 Content Streams

4308
4309

The content stream for a document SHOULD be referenced by the content src attribute as well as the
edit-media link relation.

4310
4311

A CMIS Repository MAY use different URIs for both content src attribute and the edit-media link relation
for the same content stream.

4312

The following attributes SHOULD be included on the link element:

4313

href: URI to the content stream

4314

type: The Media Type of the content stream

4315

3.1.8 Paging of Feeds

4316
4317

For paging, please see the AtomPub RFC. CMIS leverages first, next, previous, and last link relations to
express paging.

4318
4319

If the repository can include the number of items (numItems in CMIS Domain Model) in a feed, then the
repository SHOULD include the cmisra:numItems extension element in the feed.

4320

3.1.9 Services not Exposed

4321

The following services are not exposed in this binding:

4322

getRenditions: This is exposed as part of getObject

4323

getProperties: This is exposed as part of getObject

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 117 of 236

4324
4325

createDocumentFromSource: This is not exposed in this binding except as the client saving the
resource and resubmitting it without the cmis:objectId.

Setting ACL on Create or Checkin operations

4326
4327
4328
4329
4330
4331

This is currently not possible with the REST binding. The Create or Checkin operation
must be performed first, then the dependent resource, ACL, must be retrieved and
updated.

4332
4333

setContentStream: This does not return the new object id and change token as specified by the
domain model. This is not possible without introducing a new HTTP header.

4334
4335

deleteContentStream: This does not return the new object id and change token as specified by
the domain model. This is not possible without introducing a new HTTP header.

4336
4337

checkOut: This does not return whether or not content was copied. This is not possible without
introducing a new HTTP header.

4338

3.1.9.1 removePolicy

4339
4340

This service is exposed from the domain model in the RESTful Atom Binding. However, it is not as
straightforward. To remove a policy from an object, one must do:

4341

Get the object.

4342

Fetch the policies collection of the object.

4343

Walk through the feed and find the policy object where cmis:objectId == policy id to remove.

4344

Get the self lin of this policy object.

4345

Perform a DELETE on this URL.

4346
4347
4348

This is also the only case in the RESTful Atom Binding where an URI in a collection (policies) is specific
to that collection.

4349

3.2 HTTP

4350

3.2.1 Entity Tag

4351
4352
4353

CMIS changeTokens are represented as Entity Tags and follow HTTPs use of Entity Tags. CMIS server
implementations SHOULD support Entity Tags. ChangeTokens are also provided as properties and
SHOULD be provided when the object is included inside an atom entry or feed.

4354

3.2.2 HTTP Range

4355

Repositories MAY support HTTP Range requests on Content Streams.

4356

3.2.3 HTTP OPTIONS Method

4357
4358
4359

The repository MAY support the HTTP OPTIONS method on all the resources defined in this
specification. If the repository supports OPTIONS, then the repository MUST at least return the HTTP
methods specified for that resource in the Allow header.

4360

3.2.4 HTTP Status Codes

4361
4362
4363

CommonPlease see the HTTP specification for more information on the HTTP status codes. These are
provided as guidance from the HTTP specification. If any conflict arises, the HTTP specification is
authoritative.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 118 of 236

4364

3.2.4.1 General CMIS Exceptions

4365
4366

The following listing defines the HTTP status codes that repositories MUST return for the various common
exceptions defined in CMIS Domain Model.

4367

CMIS Services Exception

HTTP Status Code

4368

invalidArgument

400

4369

objectNotFound

404

4370

permissionDenied

403

4371

operationNotSupportednotSupported

4372

updateConflict

409

4373

runtime

500

4374

405

3.2.4.2 Other Exceptions

4375

CMIS Services Exception

HTTP Status Code

4376

constraint

409

4377

filterNotValid

400

4378

streamNotSupported

403

4379

storage

500

4380

contentAlreadyExists

409

4381

versioning

409

4382

updateConflict

409

4383

nameConstraintViolation

409

4384
4385
4386

3.2.4.33.2.4.2 Notable HTTP Status Codes

4387
4388
4389

415 Unsupported Media Type


o

4390
4391

When a document is POSTed to a collection that does not support the media type of the
document, this status code MUST be returned

422 Unprocessable Entity (Defined in RFC4918 Section 11.2)


o

When a request has been POSTed but cannot be processed, this status code MUST be
returned

4392
4393

Please see RFC2616 Section 10 for more information.

4394
4395

3.3 Media Types

4396

CMIS introduces new media types for:

4397

a CMIS Query document (application/cmisquery+xml)

4398

a CMIS AllowableActions document (application/cmisallowableactions+xml)

4399

an Atom Document (Entry or Feed) with any CMIS Markup (application/cmisatom+xml)

4400

an Atom Feed Document with CMIS Hierarchy extensions (application/cmistree+xml)

4401
4402
4403

In addition to those media types specified by CMIS, CMIS also leverages these media types:

AtomPub Service (application/atomsvc+xml)

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 119 of 236

4404

Atom Entry (application/atom+xml;type=entry)

4405

Atom Feed (application/atom+xml;type=feed)

4406

3.3.1 CMIS Atom

4407

Media Type: application/cmisatom+xml

4408

Starting tag: atom:feed or atom:entry

4409

Type Parameters:

4410
4411

type the semantics of the type parameter MUST be the same as the media type parameter for
atom documents.

4412
4413
4414
4415

This allows clients to differentiate between repositories that require atom media type with CMIS
extensions (application/cmisatom+xml) for creation and repositories that allow generic atom media type
without CMIS extensions (application/atom+xml).

4416
4417
4418
4419

This is only used for CMIS repositories to advertise what media types are accepted for adding to a
collection (e.g., creating resources in a collection). As such CMIS does not require specifying whether an
atom feed has CMIS markup. It is included to be consistent with the Atom media type.

4420
4421
4422
4423

All feeds and entries from a CMIS repository MUST utilize the atom media type for exposing Atom
resources. Please see the individual resources for more information on the media type. This provides
the interoperability with Atom clients.

4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:id>urn:uuid:5f716462-7b6b-4a0d-bd1d-34677d5514d7efe0542e-8933-4b3e93f2-4d1caa3fc2d9</atom:id>
<atom:title type="text">CMIS Example Document</atom:title>
<atom:updated>2009-10-19T10:09:59.296-072010-01-25T10:20:58.31808:00</atom:updated>
<atom:content type="text">some text</atom:content>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Document</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 120 of 236

4456

3.3.2 CMIS Query

4457

Media Type: application/cmisquery+xml

4458

Starting tag: cmis:query

4459
4460

This document contains the representation of a query to be executed in a CMIS repository.

4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmis:query xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmis:statement>SELECT * FROM cmis:document</cmis:statement>
<cmis:searchAllVersions>true</cmis:searchAllVersions>
<cmis:includeAllowableActions>false</cmis:includeAllowableActions>
<cmis:includeRelationships>none</cmis:includeRelationships>
<cmis:renditionFilter>*</cmis:renditionFilter>
<cmis:maxItems>50</cmis:maxItems>
<cmis:skipCount>0</cmis:skipCount>
</cmis:query>

4477
4478

Please also see the example documents included with the schema.

4479
4480

3.3.3 CMIS Allowable Actions

4481

Media Type: application/cmisallowableactions+xml

4482

Starting tag: cmis:allowableactionsallowableActions

4483
4484
4485

This document contains the representation of the allowable actions the user may perform on the
referenced object.

4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmis:allowableActions xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmis:canDeleteObject>true</cmis:canDeleteObject>
<cmis:canUpdateProperties>true</cmis:canUpdateProperties>
<cmis:canGetProperties>true</cmis:canGetProperties>
<cmis:canGetObjectRelationships>true</cmis:canGetObjectRelationships>
<cmis:canGetObjectParents>true</cmis:canGetObjectParents>
<cmis:canMoveObject>true</cmis:canMoveObject>
<cmis:canDeleteContentStream>true</cmis:canDeleteContentStream>
<cmis:canCheckOut>true</cmis:canCheckOut>
<cmis:canCancelCheckOut>true</cmis:canCancelCheckOut>
<cmis:canCheckIn>true</cmis:canCheckIn>
<cmis:canSetContentStream>true</cmis:canSetContentStream>
<cmis:canGetAllVersions>true</cmis:canGetAllVersions>
<cmis:canAddObjectToFolder>true</cmis:canAddObjectToFolder>
<cmis:canRemoveObjectFromFolder>true</cmis:canRemoveObjectFromFolder>
<cmis:canGetContentStream>true</cmis:canGetContentStream>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 121 of 236

4509
4510
4511
4512
4513

<cmis:canApplyPolicy>true</cmis:canApplyPolicy>
<cmis:canGetAppliedPolicies>true</cmis:canGetAppliedPolicies>
<cmis:canRemovePolicy>true</cmis:canRemovePolicy>
<cmis:canCreateDocument>true</cmis:canCreateDocument>
</cmis:allowableActions>

4514
4515

Please also see the example documents included with the schema.

4516
4517

3.3.4 CMIS Tree

4518

Media Type: application/cmistree+xml

4519

Starting tag: atom:feed

4520
4521

This document is an atom feed (application/atom+xml;type=feed) with CMIS markup to nest a hierarchy.

4522
4523

Please see Section 3.3.2.1 for more information.

4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">Feed for folder1</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:09:59.515-072010-01-25T10:20:58.53608:00</atom:updated>
<atom:id>urn:uuid:08d13325-cba1-4290-95e3-f485068b08e84a80905c-f774-4a9ea57d-bf0dae5a796e</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/4f942e30-895c-4c82-9b3158f639b6c2d7cf3c076e-36e9-4ace-8fed-41e0d92dfc71/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/4f942e30-895c-4c82-9b3158f639b6c2d7cf3c076e-36e9-4ace-8fed-41e0d92dfc71"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/foldertree" href="http://cmisexample.oasisopen.org/rep1/4f942e30-895c-4c82-9b31-58f639b6c2d7cf3c076e-36e9-4ace-8fed41e0d92dfc71/foldertree"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/4f942e30-895c-4c82-9b3158f639b6c2d7cf3c076e-36e9-4ace-8fed-41e0d92dfc71/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/b8803070-0253-4160-9ad626ad7adbf561bb11830c-7d1e-4b0f-9ff2-af4857c49200"/>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 122 of 236

4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628

</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/962b4fb8aefa-4d0c-8562-a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4"/>
<atom:id>urn:uuid:962b4fb8-aefa-4d0c-8562-a84e297e810763a9c18c-5e314590-8462-86d181e345a4</atom:id>
<atom:title type="text">CMIS Example Folder as Customer
type</atom:title>
<atom:updated>2009-10-19T10:09:59.515-072010-01-25T10:20:58.53608:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/962b4fb8-aefa-4d0c-8562-a84e297e810763a9c18c-5e31-4590-846286d181e345a4"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/962b4fb8-aefa-4d0c-8562-a84e297e810763a9c18c-5e31-4590-846286d181e345a4"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.515-072010-01-25T10:20:58.53608:00</atom:published>
<atom:summary type="html">HTML summary of Entry 962b4fb8-aefa-4d0c8562-a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/tree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/foldertree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/962b4fb8-aefa-4d0c-8562-a84e297e810763a9c18c-5e31-4590-846286d181e345a4/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>962b4fb8-aefa-4d0c-8562-a84e297e810763a9c18c5e31-4590-8462-86d181e345a4</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>customer</cmisra:pathSegment>
<cmisra:children>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 123 of 236

4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691

<atom:feed>
<atom:title type="text">CMIS Example Folder as Customer
type</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:09:59.515-072010-0125T10:20:58.536-08:00</atom:updated>
<atom:id>urn:uuid:084edab9-418a-42b9-813fcf450418181d51b5c0cd-e473-4492-82b3-666fbf913cf0</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/foldertree"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/962b4fb8-aefa-4d0c-8562a84e297e810763a9c18c-5e31-4590-8462-86d181e345a4/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/4f942e30-895c-4c82-9b3158f639b6c2d7cf3c076e-36e9-4ace-8fed-41e0d92dfc71"/>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasisopen.org/rep1/fba295fd-c8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e009fb8d85286e"/>
<atom:id>urn:uuid:fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e</atom:id>
<atom:title type="text">CMIS Example Doc as Invoice
type</atom:title>
<atom:updated>2009-10-19T10:09:59.515-072010-0125T10:20:58.536-08:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/fba295fd-c8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e009fb8d85286e"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/fba295fd-c8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e009fb8d85286e"/>
<atom:link
type="application/cmis+xml;type=allowableActions" rel="http://docs.oasisopen.org/ns/cmis/link/200908/allowableactions" href="http://cmisexample.oasisopen.org/rep1/fba295fd-c8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e009fb8d85286e/allowableactions"/>
<atom:link type="application/atom+xml;type=entry"
rel="describedby" href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.515-072010-0125T10:20:58.536-08:00</atom:published>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 124 of 236

4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753

<atom:summary type="html">HTML summary of Entry fba295fdc8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e</atom:summary>


<atom:link rel="edit-media"
href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/fba295fd-c8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e009fb8d85286e/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/parents"/>
<atom:link type="application/atom+xml;type=feed"
rel="version-history" href="http://cmisexample.oasis-open.org/rep1/fba295fdc8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/allversions"/>
<atom:link type="application/atom+xml;type=entry"
rel="current-version" href="http://cmisexample.oasis-open.org/rep1/fba295fdc8ed-40d1-8ddc-93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/latest"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/policies"/>
<atom:link type="application/cmisacl+xml"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/acl"
href="http://cmisexample.oasis-open.org/rep1/fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>fba295fd-c8ed-40d1-8ddc93671a9c89a520cb7e68-0a7e-46ea-87e0-09fb8d85286e</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>invoice1.pdf</cmisra:pathSegment>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/affc21586c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a"/>
<atom:id>urn:uuid:affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb47bf-b136-8a8d0b4b030a</atom:id>
<atom:title type="text">CMIS Example Doc as Invoice type</atom:title>
<atom:updated>2009-10-19T10:09:59.531-072010-01-25T10:20:58.56808:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b1368a8d0b4b030a"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b1368a8d0b4b030a"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 125 of 236

4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805

<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.531-072010-01-25T10:20:58.56808:00</atom:published>
<atom:summary type="html">HTML summary of Entry affc2158-6c8f-4245a045-688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b1368a8d0b4b030a/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b1368a8d0b4b030a/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="currentversion" href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/latest"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/affc2158-6c8f-4245-a045688225f8c2ad1de1d476-11fb-47bf-b136-8a8d0b4b030a/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/affc2158-6c8f-4245-a045-688225f8c2ad1de1d476-11fb-47bf-b1368a8d0b4b030a/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>affc2158-6c8f-4245-a045-688225f8c2ad1de1d47611fb-47bf-b136-8a8d0b4b030a</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>invoice3.pdf</cmisra:pathSegment>
</atom:entry>
</atom:feed>

4806
4807
4808
4809

Note: This media type is used on links with relation down (see section 3.2.3.2 Hierarchy Navigation
Internet Draft Link Relations). When the individual resources are returned by the CMIS repository they
will use the atom media type (application/atom+xml)

4810
4811

Please also see the example documents included with the schema.

4812

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 126 of 236

4813

3.3.5 CMIS ACL

4814

Media Type: application/cmisacl+xml

4815

Starting tag: cmis:acl

4816
4817

This document specifies an Access Control List based on the schema in CMIS Domain Model.

4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmis:acl xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmis:permission>
<cmis:principal>
<cmis:principalId>Al Brown</cmis:principalId>
</cmis:principal>
<cmis:permission>cmis:read</cmis:permission>
<cmis:permission>cmis:write</cmis:permission>
<cmis:permission>cmis:all</cmis:permission>
<cmis:permission>publish</cmis:permission>
<cmis:direct>true</cmis:direct>
</cmis:permission>
</cmis:acl>

4837
4838

Please also see the example documents included with the schema.

4839
4840

3.4 Atom Extensions for CMIS

4841

3.4.1 Atom Element Extensions

4842

3.4.1.1 AtomPub Workspace

4843

3.4.1.1.1 cmisra:collectionType

4844

This element is included inside the app:collection element. This specifies the cmis collection type.

4845

3.4.1.1.2 cmisra:repositoryInfo

4846
4847

This element is included inside the app:workspace element. This specifies information about the CMIS
repository.

4848

3.4.1.1.3 cmis:uritemplate

4849
4850

This element is included inside the app:workspace element. This specifies information about URI
templates

4851

3.4.1.2 Atom Feed

4852

3.4.1.2.1 cmisra:numItems

4853

This element is included inside the atom:feed element. This specifies the number of items in the feed.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 127 of 236

4854

3.4.1.3 Atom Entry

4855

3.4.1.3.1 cmisra:children

4856
4857

This element is included inside the atom:entry element. This includes the children of the atom entry. This
element MUST include an atom:feed element.

4858
4859

3.4.1.3.2 cmisra:object

4860
4861

This element is included inside the atom:entry element for CMIS Document, Folder, Relationship and
Policy objects. This specifies the CMIS object information for the atom entry.

4862
4863

3.4.1.3.3 cmisra:pathSegment

4864
4865

This element is included inside the atom:entry element for CMIS Type Definitions that are filable. This
specifies the pathSegment for this object in the folder representing the feed.

4866
4867

3.4.1.3.4 cmisra:relativePathSegment

4868
4869

This element is included inside the atom:entry element. This specifies the relative pathSegment for the
object in that particular folder. This MUST be used only inside an object parents feed.

4870

3.4.1.3.5 cmisra:type

4871
4872

This element is included inside the atom:entry element for CMIS Type Definitions. This specifies the type
definition the atom entry represents.

4873

3.4.1.3.6 cmisra:content

4874
4875

This element specifies the content of the atom:entry element. The content is base64 encoded. in the
base64 element. The elements of a cmisra:content element are:

4876

mediaType: This contains the media type of the content as described by RFC4288.

4877

base64: This contains the base64 content of the file

4878
4879

This element MUST take precedence over atom:content on submission of an atom entry to a repository.

4880
4881

A repository MUST use the atom:content element to return back to the client the content of the document.

4882
4883
4884

Note: This is required when the client has an XML document stored that is might not be well formed and
thus would not be able to be included inside atom:content element.

4885
4886

3.4.2 Attributes

4887

These attributes are in the CMIS RestAtom namespace (cmisra).

4888

3.4.2.1 cmisra:id

4889
4890

This attribute is used on the atom:link element to specify the cmis id of the resource. This attribute
SHOULD be on all link relations that point to a CMIS object.

4891
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 128 of 236

4892
4893

This attribute MAY also be on cmisra:type. The value of the attribute on cmis:type MUST be the same as
the type definition id.

4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:link xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/" type="application/atom+xml;type=feed"
rel="down" href="http://cmisexample.oasis-open.org/rep1//children/ba2cb7936d6d-48cd-b6c2-62dcddedc4b5e170da7d-d322-472d-b1eb-67bdb1ec18ca/1"
cmisra:id="ba2cb793-6d6d-48cd-b6c2-62dcddedc4b5e170da7d-d322-472d-b1eb67bdb1ec18ca"/>

4906
4907

Please also see the example documents included with the schema.

4908
4909

3.4.2.2 cmisra:renditionKind

4910
4911

This attribute is used on the atom:link element with relation alternate to specify the renditionKind of the
resource. This attribute SHOULD be on all link elements with relation alternate that are a CMIS rendition.

4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:link xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/" type="text/html" rel="alternate"
href="http://cmisexample.oasis-open.org/rep1//rendition/ba2cb793-6d6d-48cdb6c2-62dcddedc4b5e170da7d-d322-472d-b1eb-67bdb1ec18ca/1"
cmisra:renditionKind="cmis:thumbnail"/>

4923
4924

Please also see the example documents included with the schema.

4925

3.4.3 CMIS Link Relations

4926
4927
4928

The listing below outlines the different link relation types in CMIS. This is in addition to the link relations
specified by Atom and Atom Publishing Protocol. The registry for link relations is located at
http://www.iana.org/assignments/link-relations/link-relations.xhtml.

4929
4930
4931
4932
4933

The link element with a specified relation MUST be included if client can perform the operation. The
repository SHOULD omit the link relation if the operation is not available. The operation may not be
available due to a variety of reasons such as access control, administrative policies, or other
mechanisms.

4934
4935
4936
4937
4938

Links may have the following attribute in addition to the ones specified by Atom and Atom Publishing
Protocol:

(CMIS) id: Specifies the CMIS ID of the resource referenced by the link. Repositories SHOULD
include this attribute for elements such as atom:link that point to CMIS resources that have an id.

4939
4940

These are the link relation types specified by CMIS:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 129 of 236

4941

3.4.3.1 Existing Link Relations

4942
4943

Existing link relations should be used where appropriate by the implementation. In addition, the following
link relations are leveraged for the CMIS specification:

4944

self

4945

This link relation provides the URI to retrieve this resource again.

4946

Service: The appropriate service that generated the atom entry or feed.

4947

Resources: All except AllowableActions, ACL and Content Streams

4948

service

4949
4950
4951

The service link relation when provided on a CMIS resource MUST point to an AtomPub
service document with only one workspace element. This workspace element MUST
represent the repository containing that resource.

4952

Media Type: application/atomsvc+xml

4953

Resources: All except AllowableActions, ACL and Content Streams

4954

describedby

4955
4956

When used on a CMIS resource, this link relation MUST point to an atom entry that
describes the type of that resource.

4957

Service: getTypeDefinition on specified object

4958

Media Type: application/atom+xml;type=entry

4959
4960

Resources: CMIS Document, CMIS Folder, CMIS Relationship, CMIS Policy objects and
CMIS Types

4962
4963

When used on an Atom Feed document, this link relation MUST point to the atom entry
representing the CMIS resource from whom this feed is derived.

4964

Media Type: application/atom+xml;type=entry

4965

Resources: All CMIS Feeds and Collections

4961

4966

via

edit-media

4967
4968
4969

When used on a CMIS document resource, this link relation MUST point to the URI for
content stream of the CMIS document. This URI MUST be used to set or delete the
content stream. This URI MAY be used to retrieve the content stream for the document.

4970

Service: setContentStream (PUT) , deleteContentStream (DELETE)

4971

Media Type: Specific to resource

4972

Resources: CMIS Document

4974
4975

When used on a CMIS resource, this link relation MUST provide an URI that can be used
with the HTTP PUT method to modify the atom:entry for the CMIS resource

4973

edit

4976

Service: getObject (GET), updateProperties (PUT)

4977

Media Type: application/atom+xml;type=entry

4978

Resources: CMIS Documents, CMIS Folders, CMIS Relationships and CMIS Policies

4979

alternate

4980

This is used to express Renditions on a CMIS resource. See section 3.2.7 Renditions.

4981

Service: getContentStream for specified rendition

4982

Resources: CMIS Document, CMIS Folder and CMIS Policies

This is used for Paging. Please see the AtomPub specification.

4983
4984

first

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 130 of 236

4985

Media Type: application/atom+xml;type=feed

4986

Resources: All Feeds

4987

previous

4988

This is used for Paging. Please see the AtomPub specification.

4989

Media Type: application/atom+xml;type=feed

4990

Resources: All Feeds

4991

next

4992

This is used for Paging. Please see the AtomPub specification.

4993

Media Type: application/atom+xml;type=feed

4994

Resources: All Feeds

4996

This is used for Paging. Please see the AtomPub specification.

4997

Media Type: application/atom+xml;type=feed

4998

Resources: All Feeds

4995

last

4999
5000
5001
5002

Please see http://www.iana.org/assignments/link-relations/link-relations.xhtml for more information on


these link relations.

5003

3.4.3.2 Hierarchy Navigation Internet Draft Link Relations

5004
5005

Please refer to the Internet Draft here: http://www.ietf.org/internet-drafts/draft-divilly-atom-hierarchy03.txt.

5006
5007
5008

CMIS leverages the following link relations from the Internet Draft:

up

5009

Service: getFolderParent, getObjectParents, getTypeDefnition, getObject

5010

Media Type: application/atom+xml;type=feed, application/atom+xml;type=entry

5011
5012
5013

Resources: CMIS Document, CMIS Folder, CMIS Type Definitions, CMIS Folder
Children, CMIS Folder Descendants, CMIS FolderTree, CMIS Type Children, CMIS Type
Descendants

5014
5015
5016

This link relation is not included on CMIS Base Type Definitions or the CMIS
Root Folder

down

5017

Service: getChildren, getDescendants, getTypeChildren, getTypeDescendants

5018

Media Type:

5019

For children: application/atom+xml;type=feed

5020

For descendants: application/cmistree+xml

5021
5022
5023

The descendants feed resource when retrieved from the CMIS repository
will use the Atom Feed Media Type (application/atom+xmll;type=feed)

Resources: CMIS Folder, Type

5024

3.4.3.3 Versioning Internet Draft Link Relations

5025
5026

Please refer to the Internet Draft here: http://www.ietf.org/internet-drafts/draft-brown-versioning-linkrelations-01.txt.


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 131 of 236

5027
5028
5029

CMIS leverages the following link relations from the Internet Draft:

version-history

5030

Service: getAllVersions

5031

Media Type: application/atom+xml;type=feed

5032

Resources: CMIS Document

5033

current-version

5034

Service: getObjectForLatestVersion

5035

Media Type: application/atom+xml;type=entry

5036

Resources: CMIS Document

5037

working-copy

5038
5039

Service: getObject for private-working-copy specified by


cmis:versionSeriesCheckedOutId property

5040

Media Type: application/atom+xml;type=entry

5041

Resources: CMIS Document

5042
5043
5044

3.4.3.4 CMIS Specific Link Relations


CMIS defines the following link relations:
o

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions

5045
5046

This link relation MUST point to a resource containing a CMIS AllowableActions


document for the CMIS resource containing this link relation.

5047

Service: getAllowableActions

5048

Media Type: application/cmisallowableactions+xml

5049
5050

Resources: CMIS Documents, CMIS Folders, CMIS Policies, and CMIS


Relationships

5051

http://docs.oasis-open.org/ns/cmis/link/200908/relationships

5052
5053

This link relation MUST point to a resource containing an Atom Feed of CMIS
relationship resources for the CMIS resource containing this link relation.

5054

Service: getObjectRelationships

5055

Media Type: application/atom+xml;type=feed

5056

Resources: CMIS Documents, CMIS Folders, and CMIS Policies

5057

http://docs.oasis-open.org/ns/cmis/link/200908/source

5058
5059
5060

When used on a CMIS Relationship resource, this link relation MUST point to an
atom entry document for the CMIS Resource specified by the cmis:sourceId
property on the relationship.

5061

Source Link on Relationship

5062

Media Type: application/atom+xml;type=entry

5063

Resources: CMIS Relationships

5064

http://docs.oasis-open.org/ns/cmis/link/200908/target

5065
5066
5067

When used on a CMIS Relationship resource, this link relation MUST point to an
atom entry document for the CMIS Resource specified by the cmis:targetId
property on the relationship.

5068

Target Link on Relationship

5069

Media Type: application/atom+xml;type=entry

5070

Resources: CMIS Relationships

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 132 of 236

5071

http://docs.oasis-open.org/ns/cmis/link/200908/policies

5072
5073

This link relation MUST point to a resource containing an Atom Feed of CMIS
Policy resources for the CMIS resource containing this link relation.

5074

Service: getAppliedPolicies

5075

Media Type: application/atom+xml;type=feed

5076

Resources: CMIS Documents and CMIS Folders

5077

http://docs.oasis-open.org/ns/cmis/link/200908/acl

5078
5079

This link relation MUST point to a resource containing a CMIS ACL document for
the CMIS resource containing this link relation.

5080

Service: getACL

5081

Media Type: application/cmisacl+xml

5082
5083

Resources: CMIS Documents, CMIS Folders, CMIS Relationships, and CMIS


Policies that are securable

5084

http://docs.oasis-open.org/ns/cmis/link/200908/changes

5085

This link relation MUST point to an Atom Feed containing the set of changes

5086

Service: getContentChanges

5087

Media Type: application/atom+xml;type=feed

5088

Resources: AtomPub Workspace Element in Service Document

5089

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree

5090
5091

Used in AtomPub Service Document to identify the folder tree for a specified
folder

5092

Service: getFolderTree

5093

Media Type: application/atom+xml;type=feed

5094

Resources: CMIS Folder, also used in AtomPub Service Document for root folder

5095

http://docs.oasis-open.org/ns/cmis/link/200908/typedescendants

5096

Used in AtomPub Service Document to identify the base types descendants

5097

Service: getTypeDescendants

5098

Media Type: application/atom+xml;type=feed

5099

Resources: AtomPub Workspace Element in Service Document

5100

http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants

5101

Used in AtomPub Service Document to identify the root folder descendants

5102

Service: getDescendants for root folder

5103

Media Type: application/atom+xml;type=feed

5104

Resources: AtomPub Workspace Element in Service Document

5105
5106

3.5 Atom Resources

5107

For all Atom Resources used in this specification, the following MUST be followed:

5108

3.5.1 Feeds

5109

Any feed MUST be a valid Atom Feed document and conform to the guidelines below for cmis objects:

5110
5111

atom:updated SHOULD be the latest time the folder or its contents was updated. If unknown by
the underlying repository, it MUSTbe the current time.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 133 of 236

5112

atom:author/atom:name MUST be the CMIS property cmis:createdBy

5113

atom:title MUST be the CMIS property cmis:name

5114
5115
5116

The atom:link with relation self MUST be generated to return the URI of the feed. If paging or any
other mechanism is used to filter, sort, or change the representation of the feed, the URI MUST
point back a resource with the same representation.

5117
5118

A feed SHOULD contain the element app:collection, describing the appropriate media types
supported for creation of new entries in the feed

5119
5120

atom:id SHOULD be derived from cmis:objectId. This id MUST be compliant with atoms
specification and be a valid URI.

5121
5122

Feeds MAY be paged via the link relations specified in AtomPub. If more items are available than
contained in the feed, then a link with the relation next MUST be included in the feed.

5123
5124

Any feed MUST be a valid Atom Feed document and conform to the guidelines below for cmis types:

5125
5126

atom:updated SHOULD be the latest time type definition was updated. If unknown by the
underlying repository, it MUSTbe the current time.

5127

atom:author/atom:name is repository specific

5128

atom:title MUST be the displayName attribute of the CMIS Type Definition.

5129

The atom:link with relation self MUST be generated to return the URI of the feed

5130
5131

atom:id SHOULD be derived from the id attribute of the CMIS Type Definition. This id MUST be
compliant with atoms specification and be a valid URI.

5132
5133

Feeds MAY be paged via the link relations specified in AtomPub. If more items are available than
contained in the feed, then a link with the relation next MUST be included in the feed.

5134
5135

If on the root type, all fields are repository specific.

5136
5137
5138
5139

Ordering of entries in a feed is repository-specific if orderBy argument is not specified. If orderBy


argument is specified, the order of the entries in the feed SHOULD conform to the ordering specified by
the orderBy argument.

5140
5141

Note: Please see feedvalidator.org to validate Atom compliance.

5142

3.5.2 Entries

5143
5144

At any point where an Atom document of type Entry is sent or returned, it must be a valid Atom Entry
document and conform to the guidelines below for a cmis object:

5145

atom:title MUST be the cmis:name property

5146

app:edited MUST be cmis:lastModifiedDate

5147

atom:updated MUST be cmis:lastModifiedDate

5148

atom:published MUST be cmis:createdDate

5149

atom:author/atom:name MUST be cmis:createdBy

5150
5151

All CMIS properties MUST be exposed in CMIS cmis:properties elements even if they are
duplicated in an atom element

5152
5153

atom:id SHOULD be derived from cmis:objectId. This id MUST be compliant with atoms
specification and be a valid URI.

5154
5155
5156

The repository SHOULD populate the atom:summary tag with text that best represents a
summary of the object. For example, an HTML table containing the properties and their values or
the description of the document if available.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 134 of 236

5157
5158

For Documents that support Content Streams:

5159
5160
5161
5162

The repository SHOULD use the atom:content/src attribute to point to the content stream.
The client SHOULD use cmisra:content if the content is not well-formed or would have
trouble fitting inside an atom:content element. The repository MUST use the
cmisra:content element if provided by the client over the atom:content element.

5163
5164
5165

Other Objects (Folders, Relationships, and other Document Types that do not support Content
Streams, etc):

5166
5167
5168
5169

The repository MUST comply with the atom specification and have an atom:content
element. This is repository specific. Any value in the content field MUST be ignored if the
atom entry represents a non-document object by the CMIS repository when the atom
entry is POSTed to a collection or sent to the repository via a PUT.

5170
5171
5172

When POSTing an Atom Document, the Atom elements MUST take precedence over the corresponding
writable CMIS property. For example, atom:title will overwrite cmis:name.

5173
5174
5175

At any point where an Atom document of CMIS Type is sent or returned, it must be a valid Atom Entry
document and conform to the guidelines below for a cmis type definition:

5176

atom:title MUST be the cmis:displayName

5177
5178

The repository SHOULD populate the atom:summary tag with text that best represents a
summary of the object. For example, the type description if available.

5179
5180
5181
5182

The repository MUST comply with the atom specification and have an atom:content element. This
is repository specific. Any value in the content field MUST be ignored if the atom entry represents
a non-document object by the CMIS repository when the atom entry is POSTed to a collection or
sent to the repository via a PUT.

5183
5184
5185

Any atom element that is not specified is repository-specific.

5186

3.5.2.1 Hierarchical Atom Entries

5187
5188

The repository SHOULD NOT provide any links to hierarchical objects if those capabilities are not
supported with the exception of getTypeDescendants which is required

5189
5190
5191
5192

For atom entries that are hierarchical such as Folder Tree or Descendants, the repository MUST populate
a cmisra:children element in the atom:entry with the enclosing feed of its direct children. This pattern
continues until the depth is satisfied.

5193
5194
5195

The cmisra:children element that MUST be included ininclude an atom entry::feed element that contains
the children entries of this resource.

5196

<xs:element name="children" type="atom:feedType" />

5197
5198
5199

If an entry does not contain cmisra:children element, then the entry MAY have children even though it is
not represented in the atom entry.

5200
5201
5202

For Example, here is a minimal Atom Entry with CMIS Children Extension Element:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 135 of 236

5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265

<atom:entry xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/78a66015-ffd34233-85d3-39cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef"/>
<atom:id>urn:uuid:78a66015-ffd3-4233-85d3-39cad56fa091af1d8c7f-b554-4dfbbfe1-1f41e4b34fef</atom:id>
<atom:title type="text">CMIS Example Folder as Customer type</atom:title>
<atom:updated>2009-10-19T10:09:58.906-072010-01-25T10:20:57.81808:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>78a66015-ffd3-4233-85d3-39cad56fa091af1d8c7f-b5544dfb-bfe1-1f41e4b34fef</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>customer</cmisra:pathSegment>
<cmisra:children>
<atom:feed>
<atom:title type="text">CMIS Example Folder as Customer
type</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:09:58.906-072010-01-25T10:20:57.81808:00</atom:updated>
<atom:id>urn:uuid:d05a1c90-bb02-42e2-baba-f51366e701c1ce2d65afb246-454b-90ff-0986d9b05178</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef/foldertree"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/c84ae842-15a2-4571-93fe65cca95faa242eb09309-58f7-4627-b735-4d5cf4ba6554"/>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasisopen.org/rep1/78a66015-ffd3-4233-85d3-39cad56fa091af1d8c7f-b554-4dfb-bfe11f41e4b34fef"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 136 of 236

5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286

<atom:id>urn:uuid:78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef</atom:id>
<atom:title type="text">CMIS Example Child of
Folder</atom:title>
<atom:updated>2009-10-19T10:09:58.906-072010-0125T10:20:57.818-08:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>78a66015-ffd3-4233-85d339cad56fa091af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>document</cmisra:pathSegment>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>

5287

Please also see the example documents included with the schema.

5288

3.6 AtomPub Service Document (Repository)

5289
5290

The AtomPub Service Document contains the set of repositories that are available. Each repository is
mapped to a app:workspace element in the AtomPub Service document.

5291
5292

CMIS Services exposed:

5293

GET: getRepositories, getRepositoryInfo

5294
5295

Media Type: application/atomsvc+xml

5296
5297
5298

How the client will get the initial AtomPub (APP) service document or the URI for the service document is
repository specific. Examples are via URI, or loading the service document from disk.

5299
5300
5301
5302

The service document will be available from Atom Entry and Atom Feed documents via a link relationship,
service. That AtomPub service document MUST contain only one workspace element which MUST be
the workspace representing the repository containing the Atom Entry or Atom Feed document.

5303
5304
5305
5306
5307

A workspace element for a CMIS repository MUST have a collection element for each of following
collections: Each collection MUST also contain a cmisra:collectionType attributeelement with the given
value:

Root Folder Children Collection: Root folder of the Repository

5308

root for the children collection of the root folder

5309

cmisra:collectiontype=root

5310

Types Children Collection: Collection containing all the base types in the repository

5311

types for the children collection

5312

cmisra:collectiontype=types

5313
5314
5315

The workspace element SHOULD contain these collections if the repository supports this functionality:

CheckedOut collection: collection containing all checked out documents user can see

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 137 of 236

5316

checkedout

5317

cmisra:collectiontype=checkedout

5318

Query collection: Collection for posting queries to be executed

5319

query

5320

cmisra:collectiontype=query

5321

Unfiled folder: Folder for posting documents to be unfiled; read can be disabled

5322

unfiled

5323

cmisra:collectiontype=unfiled

5324
5325

The repository MUST include the URI templates in the workspace elements.

5326
5327
5328
5329
5330

The workspace element MUST also contain the following link element with the relation:

http://docs.oasis-open.org/ns/cmis/link/200908/typesdescendants:http://docs.oasisopen.org/ns/cmis/link/200908/typedescendants: This link relation points to the types descendants


for the base types in the repository.

5331
5332
5333

The workspace element MUST contain the following link elements of the following relations for those
services which are supported by the repository:

5334
5335

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: This link relation points to the folder


tree of the root folder. See Folder Tree resource for more information.

5336
5337

http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants: This link relation points to the


descendants feedRoot Folder Descendants Feed for the root folder.

5338
5339
5340

http://docs.oasis-open.org/ns/cmis/link/200908/changes:This link relation points to the changes


feed for the repository.

5341
5342
5343
5344

The workspace element may include app:collection element for the collections that represent folders in
the repository. However, an alternative approach, especially for a repository with many folders, is to not
enumerate those collections here, but include the app:collection element per RFC5023 in the Atom Feed
document.

5345

3.6.1 URI Templates

5346
5347

CMIS defines the following URI Templates:

5348

objectbyid

5349

objectbypath

5350

query

5351

typebyid

5352
5353

Repositories MUST provide the following URI Templates:

5354

objectbyid

5355

objectbypath

5356

typebyid

5357
5358

Repositories MUST provide the URI Template query if the repository supports query.

5359
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 138 of 236

5360
5361
5362

Repositories MAY extend that set of templates. Those URI Template Types will be repository specific.
Repositories MAY have more than one entry per URI Template type if the entries have different media
types.

5363
5364
5365
5366

URI Templates are simple replacement of the template parameter with the specified value. If a client
does not want to specify a value for some of these variables, then the client MUST substitute an empty
string for the variable.

5367
5368
5369

For example, if the URI template that supports the variable {id} is
http://example.org/rep1/getbyid/{id}

5370
5371
5372

If the client wants to find the entry for an object with an id of obj_1 then the URI would be:
http://example.org/rep1/getbyid/obj_1

5373
5374
5375

Arguments that are substituted for URI template parameters MUST be percent escaped according to
RFC3986. Please see that RFC for more information.

5376
5377

All variables MUST be in the template.

5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389

Structure of URI Template:


<xs:complexType name="cmisUriTemplateType">
<xs:sequence>
<xs:element name="template" type="xs:string" />
<xs:element name="type" type="xs:string" />
<xs:element name="mediatype" type="xs:string" />
<xs:any processContents="lax" namespace="##other"
minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>

5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405

Example of URI Template element in an AtomPub Workspace Element:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmisra:uritemplate xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmisra:template>http://cmisexample.oasisopen.org/rep1/objectbyid/{id}?filter={filter}&amp;includeAllowableActions={inc
ludeAllowableActions}&amp;includePolicyIds={includePolicyIds}&amp;includeRelat
ionships={includeRelationships}&amp;includeACL={includeACL}</cmisra:template>
<cmisra:type>objectbyid</cmisra:type>
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype>
</cmisra:uritemplate>

5406
5407

Please also see the example documents included with the schema.

5408

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 139 of 236

5409

3.6.1.1 Object By Id

5410
5411

This URI template provides a method for creating an URI that directly accesses an atom entry
representing documents, folders, policies or relationship objects. See section 3.8 for more information.

5412
5413

Type: objectbyid

5414

Media Type: application/atom+xml;type=entry

5415
5416

Service: getObjectById

5417
5418

Variables that are supported by the template:

5419

{id}: Id of object

5420

{filter}: Property Filter

5421

{includeAllowableActions}

5422
5423

{includePolicyIds}: Include Policy Ids:

5424
5425

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5428
5429

Valid values: true, false

{includeRelationships}: Include relationships

5426
5427

Valid values: true, false

Valid values: true, false

{renditionFilter}

5430

Valid values: Please see renditionFilter in CMIS Domain Model

5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmisra:uritemplate xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmisra:template>http://cmisexample.oasisopen.org/rep1/objectbyid/{id}?filter={filter}&amp;includeAllowableActions={inc
ludeAllowableActions}&amp;includePolicyIds={includePolicyIds}&amp;includeRelat
ionships={includeRelationships}&amp;includeACL={includeACL}</cmisra:template>
<cmisra:type>objectbyid</cmisra:type>
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype>
</cmisra:uritemplate>

5447
5448

Please also see the example documents included with the schema.

5449

3.6.1.2 Object By Path

5450
5451

This URI template provides a method for creating an URI that directly accesses an atom entry
representing documents, folders or policy objects. See section 3.8 for more information.

5452
5453

Type: objectbypath

5454

Media Type: application/atom+xml;type=entry


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 140 of 236

5455
5456

Service: getObjectByPath

5457
5458

Variables that are supported by the template:

5459

{path}: Path of Object

5460

{filter}: Property Filter

5461

{includeAllowableActions}: Boolean for include Allowable Actions

5462
5463

{includePolicyIds}: Include Policy Ids:

5464
5465

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5468
5469

Valid values: true, false

{includeRelationships}: Include relationships

5466
5467

Valid values: true, false

Valid values: true, false

{renditionFilter}

5470

Valid values: Please see renditionFilter in CMIS Domain Model

5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmisra:uritemplate xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmisra:template>http://cmisexample.oasisopen.org/rep1/objectbypath?p={path}&amp;filter={filter}&amp;includeAllowableAc
tions={includeAllowableActions}&amp;includePolicyIds={includePolicyIds}&amp;in
cludeRelationships={includeRelationships}&amp;includeACL={includeACL}</cmisra:
template>
<cmisra:type>objectbypath</cmisra:type>
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype>
</cmisra:uritemplate>

5489
5490

Please also see the example documents included with the schema.

5491
5492

3.6.1.3 Query

5493

Type: query

5494

Media Type: application/atom+xml;type=feed

5495
5496

Service: query

5497
5498

Variables that are supported by the template:

5499

{q}: CMIS Query Statement

5500

{searchAllVersions}: Boolean, true if to search all versions

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 141 of 236

5501

{maxItems}: Integer, Max items to return

5502

{skipCount}: Integer, Items to skip

5503

{includeAllowableActions}: Boolean

5504

{includeRelationships}: Boolean

5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmisra:uritemplate xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmisra:template>http://cmisexample.oasisopen.org/rep1/query?q={q}&amp;searchAllVersions={searchAllVersions}&amp;maxIte
ms={maxItems}&amp;skipCount={skipCount}&amp;includeAllowableActions={includeAl
lowableActions}=&amp;includeRelationships={includeRelationships}</cmisra:templ
ate>
<cmisra:type>query</cmisra:type>
<cmisra:mediatype>application/atom+xml;type=feed</cmisra:mediatype>
</cmisra:uritemplate>

5523
5524

Please also see the example documents included with the schema.

5525
5526

3.6.1.4 Type By Id

5527

Type: typebyid

5528

Media Type: application/atom+xml;type=entry

5529
5530

Service: getTypeDefinition

5531
5532
5533

Variables that are supported by the template:

{id}: CMIS Type Id

5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cmisra:uritemplate xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmisra:template>http://cmisexample.oasisopen.org/rep1/type?id={id}</cmisra:template>
<cmisra:type>query</cmisra:type>
<cmisra:mediatype>application/atom+xml;type=entry</cmisra:mediatype>
</cmisra:uritemplate>

5548
5549

Please also see the example documents included with the schema.

5550
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 142 of 236

5551
5552

3.6.2 HTTP Methods

5553

3.6.2.1 GET

5554
5555

This retrieves the AtomPub Service document for a specified repository. This exposes the capabilities
defined in getRepositories and getRepositoryInfo in the Domain Model.

5556
5557
5558

The optional argument MAY be specified:

repositoryId:

5559
5560

This query parameter allows a client to specify a different repository than the one that is
referenced by the URI.

5561
5562

If specified, the repository MUST return the AtomPub services document for the specified
repository if that repository exists.

5563
5564

If not specified, the repository MUST return the service document for the repository that is
referenced by URI.

5565
5566

3.7 Service Collections

5567

These are the collections that are included on an AtomPub Service document in the workspace element.

5568
5569

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP
verb in a repository-specific manner.

5570

3.7.1 Root Folder Collection

5571

This is a collection described in the service document. Please see Folder Children.

5572

3.7.2 Query Collection

5573
5574
5575
5576

This is a collection for processing queries. If the implementation supports GET on this collection, then the
implementation SHOULD at least return a feed consisting of zero or more atom entries. These atom
entries should represent persisted objects related to query such as persisted queries, long running
queries or search templates.

5577
5578

CMIS Services exposed via HTTP verbs:

5579

POST: Query

5580
5581

Media Type: application/atom+xml;type=feed

5582

Accept:

5583

MUST support CMIS Query document,

5584

MAY support other media type

5585
5586
5587
5588

Link Relations on resulting feed from Query Collection:

5589
5590

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 143 of 236

5591
5592
5593

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

5594
5595
5596

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

5597
5598

3.7.2.1 POST

5599

This collection MUST accept CMIS Query documents (application/cmisquery+xml).

5600
5601
5602
5603
5604

Upon submission (creation) of a query document, a response must be returned with a Location header
representing the feed for that query. If the query cannot be performed and an atom feed returned, the
repository MUST return the appropriate HTTP status code. In addition, the server SHOULD return the
feed directly. If the server does so, the server should also return the Content-Location header.

5605
5606

The feed returned MUST contain a set of atom entries representing the result set from the query.

5607
5608
5609
5610

The atom entries should contain the bare minimum necessary for Atom compliance [RFC4287]. The
atom entries MUST contain the CMIS extension element (cmis:object) containing the properties specified
by the query in the select clause of the query statement.

5611
5612
5613

If all the selected properties can be mapped to the same type reference, then the repository MAY include
additional information in the atom entry.

5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626

Please see http://tools.ietf.org/html/rfc5023#section-5.3.


Status Codes:
201 Success
Headers returned:
Location Header
Content-Location Header
Link Relations on resulting feed from POST to Query Collection:

5627
5628

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

5629
5630
5631
5632
5633
5634
5635
5636
5637

Example client request:


POST /Query HTTP/1.1
Host: example.org
Content-Length: 756
Content-Type: application/cmisquery+xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 144 of 236

5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652

<cmis:query xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmis:statement>SELECT cmis:objectId FROM cmis:document</cmis:statement>
<cmis:searchAllVersions>true</cmis:searchAllVersions>
<cmis:includeAllowableActions>false</cmis:includeAllowableActions>
<cmis:includeRelationships>none</cmis:includeRelationships>
<cmis:renditionFilter>*</cmis:renditionFilter>
<cmis:maxItems>50</cmis:maxItems>
<cmis:skipCount>0</cmis:skipCount>
</cmis:query>

5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:10:01 -070021:00 -0800
Content-Length: 1830
Content-Type: application/atom+xml;type=feed
Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/6e23b7c6e377-4a6b-b21c-7450f28b4b5d44ce5b47-ebc3-4513-86e0-d3f46c77d0a8
Location: http://cmisexample.oasis-open.org/rep1/queryresult/6e23b7c6-e3774a6b-b21c-7450f28b4b5d44ce5b47-ebc3-4513-86e0-d3f46c77d0a8

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:feed xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">CMIS Query Result for SELECT cmis:objectId FROM
cmis:document</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:2010-01.078-07-25T10:21:00.42708:00</atom:updated>
<atom:id>urn:uuid:7fd19974-9597-4eb9-88ca-3a2297cd893c811b1b9b-80f5-4788b46c-aa77564e294b</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/c7f915fb-c222-45c9-8fa25062102c62b911355977-434b-4e71-b83a-77dea9878e04/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/b45190626b13-4160-8abe-1c43bfbfe32ea3386ea0-0477-4a74-96bd-70d3da1c483a"/>
<atom:id>urn:uuid:b4519062-6b13-4160-8abe-1c43bfbfe32ea3386ea0-04774a74-96bd-70d3da1c483a</atom:id>
<atom:title type="text">Resulting Document</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.078-07-25T10:21:00.42708:00</atom:updated>
<cmisra:object>
<cmis:properties>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 145 of 236

5700
5701
5702
5703
5704
5705
5706
5707
5708
5709

<cmis:propertyId queryName="cmis:objectId" localName="repcmis:objectId" propertyDefinitionId="cmis:objectId">


<cmis:value>b4519062-6b13-4160-8abe-1c43bfbfe32ea3386ea00477-4a74-96bd-70d3da1c483a</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>
</atom:feed>

5710
5711

Please also see the example documents included with the schema.

5712
5713

3.7.3 Checked Out Collection

5714
5715

This is a collection described in the service document that contains allthe private working copies (PWCs)
of the checkedout documents in the repository.

5716

CMIS Services:

5717

GET: getCheckedOutDocs

5718

POST: checkOut

5719

Media Type: application/atom+xml;type=feed

5720

Accept:

5721

MUST support Atom Entry Documents with CMIS extensions

5722

application/atom+xml;type=entry or

5723

application/cmisatom+xml

5724

MAY support other media type

5725
5726
5727
5728

Link Relations:

5729
5730

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

5731
5732
5733

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

5734
5735
5736

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

5737
5738

3.7.3.1 GET

5739

The following arguments may be supplied. Please see the domain model for more information:

5740

filter

5741

folderId

5742

maxItems

5743

skipCount

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 146 of 236

5744

renditionFilter

5745

includeAllowableActions

5746

includeRelationships

5747

3.7.3.2 POST

5748
5749

When an atom entry is POSTed to this collection, the atom entry will be checked out. A ContentLocation header MUST be returned containing the location of the private working copy.

5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784

Example client request:


POST /CheckedOut HTTP/1.1
Host: example.org
Content-Length: 1044
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/46559af4-db97471d-b229-d9b27322bf438d32d716-701b-4491-84e8-ad57c8230940"/>
<atom:id>urn:uuid:46559af4-db97-471d-b229-d9b27322bf438d32d716-701b-449184e8-ad57c8230940</atom:id>
<atom:title type="text">CMIS Example Document to checkout</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.031-07-25T10:21:00.38008:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>46559af4-db97-471d-b229-d9b27322bf438d32d716-701b4491-84e8-ad57c8230940</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

5785
5786
5787
5788
5789
5790
5791
5792

Example server response:


HTTP/1.1 201 Created
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

5793
5794
5795
5796
5797
5798

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:10:01 -070021:00 -0800
Content-Length: 7846
Content-Type: application/atom+xml;type=entry

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 147 of 236

5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860

Content-Location: http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443cbf6b-e9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe
Location: http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/6cce57fc-4e31491c-8fab-4aa6e6797dbe"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/64f55634-f2de443c-bf6b-e9e30341581f"/>
<atom:id>urn:uuid:64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c8fab-4aa6e6797dbe</atom:id>
<atom:title type="text">CMIS Example Child of Folder</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.046-07-25T10:21:00.39608:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:01.046-072010-01-25T10:21:00.39608:00</atom:published>
<atom:summary type="html">HTML summary of Entry 64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe/alternate"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 148 of 236

5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924

<atom:link type="application/atom+xml;type=feed" rel="up"


href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31-491c-8fab4aa6e6797dbe/acl"/>
<atom:link type="application/atom+xml;type=feed" rel="working-copy"
href="http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f6cce57fc-4e31-491c-8fab-4aa6e6797dbe/pwc"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31491c-8fab-4aa6e6797dbe</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customer</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Child of Folder</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:2010-01.046-07-25T10:21:00.39608:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:10:2010-01.046-07-25T10:21:00.39608:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean localName="rep-cmis:isLatestVersion"
propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 149 of 236

5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983

</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isMajorVersion"
propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isLatestMajorVersion"
propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isImmutable"
propertyDefinitionId="cmis:isImmutable">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="rep-cmis:checkinComment"
propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:versionLabel"
propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamMimeType"
propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamFileName"
propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="rep-cmis:contentStreamLength"
propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for Document"
localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:versionSeriesCheckedOutId"
propertyDefinitionId="cmis:versionSeriesCheckedOutId">
<cmis:value>64f55634-f2de-443c-bf6b-e9e30341581f6cce57fc-4e31491c-8fab-4aa6e6797dbe</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="repcmis:versionSeriesCheckedOutBy"
propertyDefinitionId="cmis:versionSeriesCheckedOutBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

5984
5985

Please also see the example documents included with the schema.

5986
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 150 of 236

5987

3.7.4 Unfiled Collection

5988
5989
5990

This is a collection described in the service document that contains all the unfiled documents in the
repository. This collection MUST be available if unfilingun-filing or multi-filing is supported by the
repository.

5991
5992

A repository that supports un-filing MAY provide read access (GET). If read access is not provided, the
repository SHOULD respond to a read attempt with the HTTP status code 405 (notSupported).

5993

CMIS Services:

5994

GET: getUnfiled

5995

POST: removeObjectFromFolder

5996

Media Type: application/atom+xml;type=feed

5997

Accept:

5998

MUST support Atom Entry Documents with CMIS extensions

5999

application/atom+xml;type=entry or

6000

application/cmisatom+xml

6001

MAY support other media type

6002
6003
6004
6005

Link Relations:

6006
6007

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

6008
6009
6010

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

6011
6012
6013

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

6014
6015

3.7.4.1 GET

6016

The following arguments may be supplied. Please see the domain model for more information:

6017

filter

6018

folderId

6019

maxItems

6020

skipCount

6021

includeAllowableActions

6022

includeRelationships

6023

3.7.4.23.7.4.1 POST

6024
6025

This removes the object from all folders in the repository by default. If the optional argument removeFrom
is specified, the object will only be removed from that folder only.

6026
6027
6028

If the Atom Entry POSTed, does not have the CMIS extensions with a valid cmis:objectId, the document
does not exist, or the document is not in that folder, the appropriate HTTP status code MUST be returned.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 151 of 236

6029
6030
6031
6032

This adheres to AtomPub model. Please see http://tools.ietf.org/html/rfc5023#section-5.3.

HTTP Success: 201


Location Header

6033
6034
6035
6036
6037

The following arguments may be supplied. Please see the domain model for more information:

removeFrom: For repositories which support multi-filing, this parameter identifies which folder to
remove this object from. If specified, it indicates the folder from which the object shall be moved.
If not specified, the object will be removed from all folders.

6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076

Example client request:


POST /Unfiled HTTP/1.1
Host: example.org
Content-Length: 1043
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/1f8ceb22-cc154d75-9221-00588cd22bdc12aa2bec-6f43-47d1-99ef-21797867173c"/>
<atom:id>urn:uuid:1f8ceb22-cc15-4d75-9221-00588cd22bdc12aa2bec-6f43-47d199ef-21797867173c</atom:id>
<atom:title type="text">CMIS Example Document to unfiled</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.078-07-25T10:21:00.42708:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>1f8ceb22-cc15-4d75-9221-00588cd22bdc12aa2bec-6f4347d1-99ef-21797867173c</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6077
6078
6079
6080
6081
6082
6083
6084

Example server response:


HTTP/1.1 201 Created
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6085
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 152 of 236

6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:10:01 -070021:00 -0800
Content-Length: 7234
Content-Type: application/atom+xml;type=entry
Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/e2d2c9b3dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774-da3b102f224c
Location: http://cmisexample.oasis-open.org/rep1/queryresult/e2d2c9b3-dab44c65-866a-d8006d1bb16f15118373-8911-442b-9774-da3b102f224c

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/<?xml
version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab44c65-866a-d8006d1bb16f"/>
15118373-8911-442b-9774-da3b102f224c"/>
<atom:id>urn:uuid:e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b9774-da3b102f224c</atom:id>
<atom:title type="text">CMIS Example Document to unfiled</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.093-07-25T10:21:00.44308:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:01.093-072010-01-25T10:21:00.44308:00</atom:published>
<atom:summary type="html">HTML summary of Entry e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c/edit-media"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 153 of 236

6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213

<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c/alternate"/>


<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/e2d2c9b3-dab4-4c65-866ad8006d1bb16f15118373-8911-442b-9774-da3b102f224c/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911-442b-9774da3b102f224c/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>e2d2c9b3-dab4-4c65-866a-d8006d1bb16f15118373-8911442b-9774-da3b102f224c</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customer</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Document to unfiled</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:2010-01.093-07-25T10:21:00.44308:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:10:2010-01.093-07-25T10:21:00.44308:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 154 of 236

6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266

</cmis:propertyString>
<cmis:propertyBoolean localName="rep-cmis:isLatestVersion"
propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isMajorVersion"
propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isLatestMajorVersion"
propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isImmutable"
propertyDefinitionId="cmis:isImmutable">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="rep-cmis:checkinComment"
propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:versionLabel"
propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamMimeType"
propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamFileName"
propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="rep-cmis:contentStreamLength"
propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for Document"
localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

6267
6268

Please also see the example documents included with the schema.

6269
6270

3.7.5 Types Children Collection

6271
6272
6273

This is a collection described in the service document that contains the types in the repository under the
specified parent type. If no parent type is specified, then the base types are returned in the feed. This
feed does not include any nesting and is a flat feed.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 155 of 236

6274

CMIS Services:

6275

GET: getTypeChildren

6276

Media Type: application/atom+xml;type=feed

6277
6278
6279
6280

Link Relations:

6281

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

6282

via: points to the type definition entry whose children represent this feed

6283
6284

down: points to the atom feed document representing the descendents collection for this same
type with media type of application/cmistree+xml

6285

paging link relations as appropriate: first, next, previous, last

6286

up: points to the parent type definition

6287

If this is a children feed for a base object type, this link is not present.

6288
6289

This feed contains a set of atom entries for each child type definition.

6290
6291
6292

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

6293
6294
6295

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:type inside atom:entry

6296
6297
6298

3.7.5.1 GET

6299

The following arguments may be supplied. Please see the domain model for more information:

6300

includePropertyDefinitions

6301

maxItems

6302

skipCount

6303

typeId

6304

3.8 Collections

6305
6306

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP
verb in a repository-specific manner.

6307
6308

3.8.1 Relationships Collection

6309
6310

This is the set of relationships available (either source or target or both) from a specific item such as a
document, folder or policy.

6311

CMIS Services:

6312

GET: getObjectRelationships

6313

POST: createRelationship
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 156 of 236

6314

Media Type: application/atom+xml;type=feed

6315

Accept:

6316

MUST support Atom Entry Documents with CMIS extensions

6317

application/atom+xml;type=entry or

6318

application/cmisatom+xml

6319

MAY support other media type

6320
6321
6322
6323

Link Relations:

6324
6325

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

6326
6327
6328

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

6329
6330
6331

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

6332
6333

3.8.1.1 GET

6334

The following arguments may be supplied. Please see the domain model for more information:

6335

typeId

6336

includeSubRelationshipTypes

6337

relationshipDirection

6338

maxItems

6339

skipCount

6340

filter

6341

includeAllowableActions

6342

3.8.1.2 POST

6343
6344

When an atom entry with CMIS markup is posted to this collection, if that atom entry represents a new
CMIS relationship, then that relationship will be created.

6345
6346

The server MUST return the appropriate HTTP status code if the source is different than the sourceId or
target different than the targetId for the source and targets specified in this collection.

6347

The server MUST return the appropriate status code if the cmis:objectTypeId is not specified.

6348
6349
6350
6351
6352
6353
6354
6355
6356
6357

Example client request:


POST /relationships/source/76a5d5bc-cdfe-42ac-9fde-dd09ad384a71dbf0316c-47b547c9-a2fa-f005eb93f0a4 HTTP/1.1
Host: example.org
Content-Length: 1432
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 157 of 236

6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395

<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/235d5fdc-61934ec0-8a78-c0da832a06d9dab97641-8c94-4a12-a604-7532980f05cb"/>
<atom:id>urn:uuid:235d5fdc-6193-4ec0-8a78-c0da832a06d9dab97641-8c94-4a12a604-7532980f05cb</atom:id>
<atom:title type="text">New Relationship</atom:title>
<atom:updated>2009-10-19T10:09:59.796-072010-01-25T10:20:58.86408:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customerRelationships</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:sourceId"
propertyDefinitionId="cmis:sourceId">
<cmis:value>76a5d5bc-cdfe-42ac-9fde-dd09ad384a71dbf0316c-47b547c9-a2fa-f005eb93f0a4</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:targetId"
propertyDefinitionId="cmis:targetId">
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:targetId"
propertyDefinitionId="cmis:targetId">
<cmis:value>5f3afe79-1e78-4ff9-a3bf-782c5a492e11b9baac7d-7584445e-bcd1-29af9b25bf2f</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6396
6397
6398
6399
6400
6401
6402
6403

Example server response:


HTTP/1.1 201 Created
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:09:59 -070020:58 -0800
Content-Length: 4684
Content-Type: application/atom+xml;type=entry
Content-Location: http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c8cd2-30900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495
Location: http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c-8cd230900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 158 of 236

6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479

<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/5f3287a5-74424e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495"/>
<atom:id>urn:uuid:5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c2786df-3f4b157bb495</atom:id>
<atom:title type="text">New Relationship</atom:title>
<atom:updated>2009-10-19T10:09:59.812-072010-01-25T10:20:58.88008:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c-8cd230900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c-8cd230900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.812-072010-01-25T10:20:58.88008:00</atom:published>
<atom:summary type="html">HTML summary of Entry 5f3287a5-7442-4e5c-8cd230900d7a73a6b3006a8f-345b-4c27-86df-3f4b157bb495</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="http://docs.oasisopen.org/ns/cmis/link/200908/source" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495/source"/>
<atom:link type="application/atom+xml;type=entry" rel="http://docs.oasisopen.org/ns/cmis/link/200908/target" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495/target"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b-4c27-86df3f4b157bb495/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>5f3287a5-7442-4e5c-8cd2-30900d7a73a6b3006a8f-345b4c27-86df-3f4b157bb495</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customerRelationships</cmis:value>
</cmis:propertyId>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 159 of 236

6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519

<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>New Relationship</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:09:59.812-072010-01-25T10:20:58.88008:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:09:59.812-072010-01-25T10:20:58.88008:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:relationship</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:sourceId"
propertyDefinitionId="cmis:sourceId">
<cmis:value>36f25b8d-c920-4d1f-86ab-3fb8d7ea5f97d4551c6d-30bd4fc2-9c84-a55f11559e89</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:targetId"
propertyDefinitionId="cmis:targetId">
<cmis:value>3f4b0e37-a49d-4bf0-b71d-f8ed0c865029fe7e056f-c4bf42f1-a03e-3ababcf2491d</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6520
6521

Please also see the example documents included with the schema.

6522
6523

3.8.2 Folder Children Collection

6524

This is a collection comprised of all the direct children of a particular folder represented as a feed.

6525

CMIS Services:

6526

GET: getChildren

6527

POST:

6528

createDocument

6529

or createFolder

6530

or createPolicy

6531

or moveObject

6532

or addObjectToFolder

6533
6534

Media Type: application/atom+xml;type=feed


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 160 of 236

6535
6536

Accept:

6537

MUST support Atom Entry Documents with CMIS extensions

6538

MAY support other media type

6539
6540
6541
6542

Link Relations:

6543

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

6544

via: points to the atom entry of the folder generating this collection

6545

up: points to the atom entry document for this folders parent

6546

If the root folder, this link relation MUST NOT be included.

6547

Media Type: application/atom+xml;type=entry

6548
6549

6550
6551
6552
6553

6554
6555

down: points to the atom feed document representing the descendents feed with a media type of
application/cmistree+xml

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: Points to the folder tree for this folder.


This is represented as a feed with CMIS hierarchy extensions.
o

If a repository does not support capabilityGetDescendants, then this link SHOULD NOT
be included.

Media Type: application/atom+xml;type=feed

paging link relations as appropriate: first, next, previous, last

6556
6557
6558

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

6559
6560

The following CMIS Atom extension element MUST be included inside the atom entries:

6561

cmisra:object inside atom:entry

6562

cmisra:pathSegment inside atom:entry

6563
6564

3.8.2.1 GET

6565

HTTP Code:

6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577

200 OK (Success)

The following arguments may be supplied. Please see the domain model for more information:

maxItems
skipCount
filter
includeAllowableActions
includeRelationships
renditionFilter
o If specified, renditions will be returned as links with relation alternate.
orderBy
includePathSegment

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 161 of 236

6578

3.8.2.2 POST

6579
6580

CMIS repositories MUST be compliant with RFC5023 for POSTing new entries into a collection. Please
see http://tools.ietf.org/html/rfc5023#section-5.3.

6581
6582

HTTP Success: 201


Location Header

6583
6584
6585
6586

The following arguments MAY be supplied.

sourceFolderId: This parameter indicates the folder from which the object shall be moved from to
the current specified folder. This parameter is not allowed for create operations.

6587

If specified moveObject will be performed.

6588

If not specified, addObjectToFolder will be performed.

6589
6590
6591

versioningState: The optional argument versioningState MAY specify additional versioning


behavior such as checkIn as major or minor. Please see CMIS Domain Model for more
information on this parameter.

6592
6593

POSTing an Atom Entry document with CMIS markup:

6594

Adding a document to a folder:

6595
6596

If the atom entry has a cmis property cmis:objectId that is valid for the repository, the object will
be added to the folder.

6597
6598
6599
6600

When an object is added to the folder, in repositories that do not support multi-filing it will be
removed from the previous folder and the operation treated as move. If the repository supports
multiple folders, it will be added to the new folder.

6601
6602

If the optional argument sourceFolderId is specified, then the object will be removed from the
folder specified.

6603
6604
6605

If atom:content is missing from the request, the repository MUST treat the missing atom:content
element as an empty atom:content element.

6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628

Example client request:


POST /obj/8a7761eb-2a0c-4400-b515-964308d6cb5e1cd0d82f-d579-4897-9b0aad0917595445?sourceFolderId=0571b0e4-8043-4e48-8a89-448206c2b365313fd58d-2eab41af-9517-06dadb010d49 HTTP/1.1
Host: example.org
Content-Length: 1227
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:id>urn:uuid:8a7761eb-2a0c-4400-b515-964308d6cb5e1cd0d82f-d579-48979b0a-ad0917595445</atom:id>
<atom:title type="text">Document - To Be Moved</atom:title>
<atom:updated>2009-10-19T10:09:59.640-072010-01-25T10:20:58.70808:00</atom:updated>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 162 of 236

6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646

<atom:content src="http://cmisexample.oasisopen.org/rep1//content/8a7761eb-2a0c-4400-b515-964308d6cb5e1cd0d82f-d579-48979b0a-ad0917595445"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>8a7761eb-2a0c-4400-b515-964308d6cb5e1cd0d82f-d5794897-9b0a-ad0917595445</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658

Example server response:


HTTP/1.1 201 Created
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:09:59 -070020:58 -0800
Content-Length: 7213
Content-Type: application/atom+xml;type=entry
Content-Location: http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4826b-3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b
Location: http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/b4423b8a-e46e49fb-8141-4aed91d28b5b"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 163 of 236

6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754

<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/69553581-23114aa4-826b-3aa0a8eb8b15"/>
<atom:id>urn:uuid:69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb8141-4aed91d28b5b</atom:id>
<atom:title type="text">Document - To Be Moved</atom:title>
<atom:updated>2009-10-19T10:09:59.671-072010-01-25T10:20:58.78608:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.687-072010-01-25T10:20:58.78608:00</atom:published>
<atom:summary type="html">HTML summary of Entry 69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15b4423b8a-e46e-49fb-8141-4aed91d28b5b/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e-49fb-81414aed91d28b5b/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>69553581-2311-4aa4-826b-3aa0a8eb8b15b4423b8a-e46e49fb-8141-4aed91d28b5b</cmis:value>
</cmis:propertyId>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 164 of 236

6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817

<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>Document - To Be Moved</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:09:59.687-072010-01-25T10:20:58.78608:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:09:59.687-072010-01-25T10:20:58.78608:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean localName="rep-cmis:isLatestVersion"
propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isMajorVersion"
propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isLatestMajorVersion"
propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isImmutable"
propertyDefinitionId="cmis:isImmutable">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="rep-cmis:checkinComment"
propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:versionLabel"
propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamMimeType"
propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 165 of 236

6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836

<cmis:propertyString localName="rep-cmis:contentStreamFileName"
propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="rep-cmis:contentStreamLength"
propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for Document"
localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

6837
6838

Please also see the example documents included with the schema.

6839
6840
6841
6842
6843

Creating a CMIS Object (in that folder):


If the cmis:objectId property is missing, the object will be created and then added to the folder. If
the cmis:objectId property is present but not a valid object Id, the repository MUST return the
appropriate HTTP status code.

6844
6845
6846
6847

For Documents:
If Content Stream is not provided and it is required by the type definition, the repository
MUST return the appropriate HTTP status code.

6848
6849
6850

Content Streams MAY be provided by any of the following mechanisms:


o

As part of the atom entry via the src attribute on the content element (AtomPub)

6851

src attribute: Implementers MAY support external references to content

6852
6853

If the URI in the src attribute is not reachable, then an appropriate http
status code should be returned.

6854

6855
6856
6857
6858
6859

6862

Please see the AtomPub specification RFC5023 for the processing


model of the content element.

If the cmisra:content is provided by the client inside the atom:entry, the


cmisra:content element MUST take precendence over the atom:content element.
(CMIS)

At a later time (AtomPub)

6860
6861

As part of the atom entry inlining via the content element (AtomPub)

This element cmisra:content is base64 encoded


At a later time by replacing the edit-media link with a new content

6863
6864
6865

The optional argument versioningState MAY specify additional versioning behavior such
as checkin.

6866
6867

Example client request:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 166 of 236

6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911

POST /obj/4f833ce6-f53d-4fb5-a268-7c53705a0807bb2b208b-3acd-4abe-97888078a239f228 HTTP/1.1


Host: example.org
Content-Length: 1190
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:id>urn:uuid:4f833ce6-f53d-4fb5-a268-7c53705a0807bb2b208b-3acd-4abe9788-8078a239f228</atom:id>
<atom:title type="text">New Invoice</atom:title>
<atom:updated>2009-10-19T10:09:59.718-072010-01-25T10:20:58.81808:00</atom:updated>
<atom:content type="text">this is the content of the new
document</atom:content>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<atom:content type="text">this is the content of the new
document</atom:content>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>4f833ce6-f53d-4fb5-a268-7c53705a0807bb2b208b-3acd4abe-9788-8078a239f228</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923

Example server response:


HTTP/1.1 201 Created
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

6924
6925
6926
6927
6928
6929

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:09:59 -070020:58 -0800
Content-Length: 7191
Content-Type: application/atom+xml;type=entry
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 167 of 236

6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991

Content-Location: http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae8d72-ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d
Location: http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/<?xml
version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf40ae-8d72-ea72987af212"/>
13475008-6a20-4454-ad0b-10ea94c4b93d"/>
<atom:id>urn:uuid:8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454ad0b-10ea94c4b93d</atom:id>
<atom:title type="text">New Invoice</atom:title>
<atom:updated>2009-10-19T10:09:59.734-072010-01-25T10:20:58.81808:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.734-072010-01-25T10:20:58.83308:00</atom:published>
<atom:summary type="html">HTML summary of Entry 8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d/alternate"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 168 of 236

6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053

<atom:link type="application/atom+xml;type=feed" rel="up"


href="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af21213475008-6a20-4454-ad0b-10ea94c4b93d/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a20-4454-ad0b10ea94c4b93d/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>8f714453-f9cf-40ae-8d72-ea72987af21213475008-6a204454-ad0b-10ea94c4b93d</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>New Invoice</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:09:59.734-072010-01-25T10:20:58.83308:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:09:59.734-072010-01-25T10:20:58.83308:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean localName="rep-cmis:isLatestVersion"
propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 169 of 236

7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101

<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isMajorVersion"
propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isLatestMajorVersion"
propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isImmutable"
propertyDefinitionId="cmis:isImmutable">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="rep-cmis:checkinComment"
propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:versionLabel"
propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamMimeType"
propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:contentStreamFileName"
propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="rep-cmis:contentStreamLength"
propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for Document"
localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

7102
7103

Please also see the example documents included with the schema.

7104
7105

POSTing other document formats: (AtomPub)

7106
7107

The behavior is repository specific when a non Atom entry or an atom document without the
CMIS elements is posted to a folder collection.

7108
7109

For example, the repository MAY auto-create a document with a specific type (document) the
client could edit.

7110
7111

If the repository does not support this scenario or another exception occurs, then the repository
MUST return the appropriate HTTP status code.

7112
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 170 of 236

7113

Optional arguments:

7114

versioningState (for createDocument)

7115

sourceFolderId (for moveObject)

7116
7117

3.8.3 Policies Collection

7118
7119
7120
7121

This is an atom feed of all the policy objects currently applied to a specific object. This is the only
collection where the URIs of the objects in the collection MUST be specific to that collection. A DELETE
on the policy object in the collection is a removal of the policy from the object NOT a deletion of the policy
object itself.

7122
7123

CMIS Services:

7124

GET: getAppliedPolicies

7125

POST: applyPolicy (to object representing this collection of policies)

7126

DELETE: removePolicy

7127

Media Type: application/atom+xml;type=feed

7128

Accept:

7129

MUST support Atom Entry Documents with CMIS extensions

7130

application/atom+xml;type=entry or

7131

application/cmisatom+xml

7132

MAY support other media type

7133
7134
7135
7136

Link Relations:

7137

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

7138

via: points to the atom entry of the resource generating this collection

7139

paging link relations as appropriate: first, next, previous, last

7140
7141
7142

The policy entries displayed here are specific to the object generating this collection. A DELETE method
on those URIs will invoke removePolicy().

7143
7144
7145

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

7146
7147
7148

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

7149
7150

3.8.3.1 GET

7151

The following arguments may be supplied. Please see the domain model for more information:

7152

filter

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 171 of 236

7153

3.8.3.2 POST

7154
7155

When an Atom Entry representing a Policy is posted to this collection, the policy will be applied to the
object.

7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195

Example client request:


POST /policies/f6fc3972-ed27-4b49-9412-b4ef2b0f715ef3670f66-62ee-487f-b733999a69237024 HTTP/1.1
Host: example.org
Content-Length: 1039
Content-Type: application/atom+xml;type=entry

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/f6fc3972-ed274b49-9412-b4ef2b0f715ef3670f66-62ee-487f-b733-999a69237024"/>
<atom:id>urn:uuid:f6fc3972-ed27-4b49-9412-b4ef2b0f715ef3670f66-62ee-487fb733-999a69237024</atom:id>
<atom:title type="text">Security Policy for Invoices</atom:title>
<atom:updated>2009-10-19T10:09:59.765-072010-01-25T10:20:58.84908:00</atom:updated>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>f6fc3972-ed27-4b49-9412-b4ef2b0f715ef3670f66-62ee487f-b733-999a69237024</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208

Example server response:


HTTP/1.1 201 Created
Date: Mon, 19 Oct 200925 Jan 2010 10:09:59 -070020:58 -0800
Content-Length: 4043
Content-Type: application/atom+xml;type=entry
Content-Location: http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf9bce-b6238caa561655cca51b-6cfa-4354-bdfe-690761576116
Location: http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf-9bceb6238caa561655cca51b-6cfa-4354-bdfe-690761576116

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 172 of 236

7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272

<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/<?xml
version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/1ee01165-98cf45bf-9bce-b6238caa5616"/>
55cca51b-6cfa-4354-bdfe-690761576116"/>
<atom:id>urn:uuid:1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa-4354bdfe-690761576116</atom:id>
<atom:title type="text">Security Policy for Invoices</atom:title>
<atom:updated>2009-10-19T10:09:59.765-072010-01-25T10:20:58.84908:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa-4354-bdfe690761576116"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa-4354-bdfe690761576116"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf-9bceb6238caa561655cca51b-6cfa-4354-bdfe-690761576116/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf-9bceb6238caa561655cca51b-6cfa-4354-bdfe-690761576116/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.781-072010-01-25T10:20:58.84908:00</atom:published>
<atom:summary type="html">HTML summary of Entry 1ee01165-98cf-45bf-9bceb6238caa561655cca51b-6cfa-4354-bdfe-690761576116</atom:summary>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf-9bceb6238caa561655cca51b-6cfa-4354-bdfe-690761576116/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa-4354-bdfe690761576116/relationships"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa-4354-bdfe690761576116/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 173 of 236

7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313

<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>1ee01165-98cf-45bf-9bce-b6238caa561655cca51b-6cfa4354-bdfe-690761576116</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>generalSecurityPolicy</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>Security Policy for Invoices</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:09:59.781-072010-01-25T10:20:58.84908:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="rep-cmis:lastModificationDate"
propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:09:59.781-072010-01-25T10:20:58.86408:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:policy</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
</atom:entry>

7314
7315

Please also see the example documents included with the schema.

7316

3.8.3.3 DELETE

7317
7318
7319

This is the only collection where the URIs of the objects in the collection MUST be specific to that
collection. A DELETE on the policy object in the collection is a removal of the policy from the object NOT
a deletion of the policy object itself.

7320
7321

3.9 Feeds

7322
7323

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP
verb in a repository-specific manner.

7324

3.9.1 Object Parents Feed

7325

This is the set of parents for a specific object.

7326

CMIS Services:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 174 of 236

7327
7328

GET: getObjectParents
Media Type: application/atom+xml;type=feed

7329
7330
7331
7332

Link Relations:

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

7333
7334

Media Type: application/atomsvc+xml

via: points to the atom entry of object whos parents are represented by this collection

7335
7336

This feed contains a set of atom entries for each parent of the object that MUST contain:

7337

cmisra:object inside atom:entry

7338

cmisra:relativePathSegment inside atom:entry for the name of the object inside the folder

7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">Parent Feed for 1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.562-072010-01-25T10:20:59.81808:00</atom:updated>
<atom:id>urn:uuid:a8fc16cb-d385-4172-b994-da119636d9546f541940-4abf-471b99f0-8e6f66d53789</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb"/>
<atom:link type="application/atom+xml;type=feed" rel="first"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb/first"/>
<atom:link type="application/atom+xml;type=feed" rel="next"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb/4"/>
<atom:link type="application/atom+xml;type=feed" rel="previous"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb/2"/>
<atom:link type="application/atom+xml;type=feed" rel="last"
href="http://cmisexample.oasis-open.org/rep1/1b43e592-a780-4feb-a0dcd25de6bf7ab4268d30b5-91a0-47f0-b985-6765e178f0bb/last"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 175 of 236

7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446

</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/adb70b59db45-4da2-81c0-11062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e"/>
<atom:id>urn:uuid:adb70b59-db45-4da2-81c0-11062fb063bd661d6945-8f754dea-8799-7ba07b0e510e</atom:id>
<atom:title type="text">Customer Folder</atom:title>
<atom:updated>2009-10-19T10:10:00.562-072010-01-25T10:20:59.83308:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/adb70b59-db45-4da2-81c0-11062fb063bd661d6945-8f75-4dea-87997ba07b0e510e"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/adb70b59-db45-4da2-81c0-11062fb063bd661d6945-8f75-4dea-87997ba07b0e510e"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:00.562-072010-01-25T10:20:59.83308:00</atom:published>
<atom:summary type="html">HTML summary of Entry adb70b59-db45-4da281c0-11062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/tree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/foldertree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/adb70b59-db45-4da2-81c011062fb063bd661d6945-8f75-4dea-8799-7ba07b0e510e/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/adb70b59-db45-4da2-81c0-11062fb063bd661d6945-8f75-4dea-87997ba07b0e510e/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>adb70b59-db45-4da2-81c0-11062fb063bd661d69458f75-4dea-8799-7ba07b0e510e</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customer</cmis:value>
</cmis:propertyId>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 176 of 236

7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482

<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>Customer Folder</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:00.562-072010-0125T10:20:59.833-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:10:00.562-072010-0125T10:20:59.833-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:folder</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:parentId"
propertyDefinitionId="cmis:parentId">
<cmis:value>adb70b59-db45-4da2-81c011062fb063bdup661d6945-8f75-4dea-8799-7ba07b0e510eup</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:relativePathSegment>customer1</cmisra:relativePathSegment>
</atom:entry>
</atom:feed>

7483
7484

Please also see the example documents included with the schema.

7485

3.9.1.1 GET

7486

The following arguments may be supplied. Please see the domain model for more information:

7487

filter

7488

includeAllowableActions

7489

includeRelationships

7490

renditionFilter

7491

includeRelativePathSegment

7492
7493

If true, then the cmisra:relativePathSegment element willMUST be included in the


response.

7494

3.9.2 Changes

7495
7496
7497

This is a link relationship described in the service document that contains the changes in the repository in
the workspace element. The link relation pointing to this feed is http://docs.oasisopen.org/ns/cmis/link/200908/changes.

7498
7499
7500

The ChangeLog Token is specified in the URI specified by the paging link notations. Through this binding
it is not possible to retrieve the ChangeLog Token from the URIs.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 177 of 236

7501
7502

CMIS Services:

7503

GET: getContentChanges()

7504

Media Type: application/atom+xml;type=feed

7505

Link Relations:

7506
7507

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

7508
7509

Media Type: application/atomsvc+xml

paging link relations as appropriate: first, next, previous, last

7510

ChangeLogToken is incorporated into the URI specified by the next link relation

7511
7512

This feed MUST be ordered from oldest first to newest.

7513
7514
7515
7516

If the next changes does not exist yet, the link relation next MAY be available. If the next link relation is
not available, the client should revisit the feed in the future and look for new items and the next link
relation.

7517
7518
7519

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

7520
7521
7522

The following CMIS Atom extension element MUST be included inside the atom entries:

cmisra:object inside atom:entry

7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">changelog feed</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:092010-01-25T10:20:59.953-0725508:00</atom:updated>
<atom:id>urn:uuid:04393e94-6888-404e-b9de-765cf769b5de0bfc5306-fc76-4cd8a0c0-7653dd43c0ff</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/oId/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=feed" rel="first"
href="http://cmisexample.oasis-open.org/rep1/oId/first"/>
<atom:link type="application/atom+xml;type=feed" rel="next"
href="http://cmisexample.oasis-open.org/rep1/oId/4"/>
<atom:link type="application/atom+xml;type=feed" rel="previous"
href="http://cmisexample.oasis-open.org/rep1/oId/2"/>
<atom:link type="application/atom+xml;type=feed" rel="last"
href="http://cmisexample.oasis-open.org/rep1/oId/last"/>
<cmisra:numItems>2</cmisra:numItems>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 178 of 236

7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617

<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/2ff371430d0d-4c1a-948d-bd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd"/>
<atom:id>urn:uuid:2ff37143-0d0d-4c1a-948d-bd8311261c1f3f724c1d-12c843f2-919f-674df52b6ebd</atom:id>
<atom:title type="text">CMIS Example Folder as Customer Policy
type</atom:title>
<atom:updated>2009-10-19T10:092010-01-25T10:20:59.953-0725508:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/2ff37143-0d0d-4c1a-948d-bd8311261c1f3f724c1d-12c8-43f2-919f674df52b6ebd"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/2ff37143-0d0d-4c1a-948d-bd8311261c1f3f724c1d-12c8-43f2-919f674df52b6ebd"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:092010-01-25T10:20:59.953-0725508:00</atom:published>
<atom:summary type="html">HTML summary of Entry 2ff37143-0d0d-4c1a948d-bd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/tree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/foldertree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/2ff37143-0d0d-4c1a-948dbd8311261c1f3f724c1d-12c8-43f2-919f-674df52b6ebd/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/2ff37143-0d0d-4c1a-948d-bd8311261c1f3f724c1d-12c8-43f2-919f674df52b6ebd/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>2ff37143-0d0d-4c1a-948d-bd8311261c1f3f724c1d12c8-43f2-919f-674df52b6ebd</cmis:value>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 179 of 236

7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679

</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customerpolicy</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Folder as Customer Policy
type</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:092010-01-25T10:20:59.953-0725508:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:092010-01-25T10:20:59.953-0725508:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:folder</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:parentId"
propertyDefinitionId="cmis:parentId">
<cmis:value>2ff37143-0d0d-4c1a-948dbd8311261c1fup3f724c1d-12c8-43f2-919f-674df52b6ebdup</cmis:value>
</cmis:propertyId>
</cmis:properties>
<cmis:changeEventInfo>
<cmis:changeType>updated</cmis:changeType>
<cmis:changeTime>2009-10-19T10:092010-01-25T10:20:59.95307255-08:00</cmis:changeTime>
</cmis:changeEventInfo>
</cmisra:object>
<cmisra:pathSegment>policy</cmisra:pathSegment>
</atom:entry>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/95715cc85f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42"/>
<atom:id>urn:uuid:95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a24a39-be2c-269806eb0d42</atom:id>
<atom:title type="text">CMIS Example Document</atom:title>
<atom:updated>2009-10-19T10:092010-01-25T10:20:59.968-0725508:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c269806eb0d42"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 180 of 236

7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742

<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c269806eb0d42"/>


<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:092010-01-25T10:20:59.968-0725508:00</atom:published>
<atom:summary type="html">HTML summary of Entry 95715cc8-5f9c-45ce8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c269806eb0d42/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c269806eb0d42/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="currentversion" href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/latest"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/95715cc8-5f9c-45ce-8c544c2d8d7c44fc6e27bada-b5a2-4a39-be2c-269806eb0d42/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27bada-b5a2-4a39-be2c269806eb0d42/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc6e27badab5a2-4a39-be2c-269806eb0d42</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Document</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:092010-01-25T10:20:59.968-0727108:00</cmis:value>
</cmis:propertyDateTime>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 181 of 236

7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806

<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">


<cmis:value>2009-10-19T10:092010-01-25T10:20:59.968-0727108:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean localName="rep-cmis:isLatestVersion"
propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isMajorVersion"
propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isLatestMajorVersion" propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="rep-cmis:isImmutable"
propertyDefinitionId="cmis:isImmutable">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="rep-cmis:checkinComment"
propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:versionLabel"
propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:contentStreamMimeType" propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:contentStreamFileName" propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="rep-cmis:contentStreamLength"
propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for Document"
localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 182 of 236

7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817

</cmis:propertyString>
</cmis:properties>
<cmis:changeEventInfo>
<cmis:changeType>updated</cmis:changeType>
<cmis:changeTime>2009-10-19T10:092010-01-25T10:20:59.96807271-08:00</cmis:changeTime>
</cmis:changeEventInfo>
</cmisra:object>
<cmisra:pathSegment>invoice.pdf</cmisra:pathSegment>
</atom:entry>
</atom:feed>

7818
7819

Please also see the example documents included with the schema.

7820

3.9.2.1 GET

7821

The following optional parameters may be supplied:

7822

filter

7823

maxItems

7824

includeACL

7825

includePolicyIds

7826

includeProperties

7827

filter

7828
7829
7830

changeLogToken: If this parameter is specified, start the changes from the specified token. The
changeLogToken is embedded in the paging link relations for normal iteration through the change
list.

7831

3.9.3 Folder Descendants

7832
7833
7834

This is a hierarchical feed comprising items under a specified folder to a specified depth. This is available
via the link relation down with the application/cmistree+xml media type. Please see the Hierarchical Atom
Entries for more information on format.

7835
7836
7837

If a repository does not support capabilityGetDescendants, then these resources SHOULD NOT be
exposed.

7838
7839

CMIS Services:

7840

GET: getDescendants

7841
7842

DELETE: deleteTree
Media Type: application/atom+xml;type=feed

7843
7844
7845
7846

Link Relations:

7847

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

7848

via: points to the atom entry of the folder generating this collection

7849

up: points to the atom entry document for this folders parent

7850

Media Type: application/atom+xml;type=entry

7851

If the root folder, this link relation MUST not be included.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 183 of 236

7852

down:

7853
7854

points to the atom feed document representing the children feed for this same folder with
media type of application/atom+xml;type=entry

7855

Since this is the descendants, the descendants link SHOULD NOT be included

7856

paging link relations MAY be included as appropriate: first, next, previous, last

7857
7858
7859

Repositories may support these paging link relations on a particular cmisra:children


element.

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: Points to the folder tree for this folder

7860
7861
7862

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

7863
7864

The following CMIS Atom extension element MUST be included inside the atom entries:

7865

cmisra:object inside atom:entry

7866

cmisra:pathSegment inside atom:entry

7867

cmisra:children inside atom:entry

7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">Feed for folder1</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.203-072010-01-25T10:20:59.36408:00</atom:updated>
<atom:id>urn:uuid:83638fc5-90e7-4d03-bd04-1a4cc5c5c98ecb0a47d4-8d09-46f99b09-584acad684af</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/80dfb434-883b-4850-871d6524c1ec2a64f083dd6f-1465-4516-97ce-040ec0c7c05a/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/80dfb434-883b-4850-871d6524c1ec2a64f083dd6f-1465-4516-97ce-040ec0c7c05a"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/foldertree" href="http://cmisexample.oasisopen.org/rep1/80dfb434-883b-4850-871d-6524c1ec2a64f083dd6f-1465-4516-97ce040ec0c7c05a/foldertree"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/80dfb434-883b-4850-871d6524c1ec2a64f083dd6f-1465-4516-97ce-040ec0c7c05a/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/ba8910f0-0e99-4cda-a1f6befce0fa20e703dcf5b8-5f82-45a1-b276-44d88069eec3"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 184 of 236

7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969

<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/c2e574a02d30-4834-b8a3-6333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f"/>
<atom:id>urn:uuid:c2e574a0-2d30-4834-b8a3-6333b33181c38e5a512c-8f2d4387-a283-f3f30bbc312f</atom:id>
<atom:title type="text">CMIS Example Folder as Customer
type</atom:title>
<atom:updated>2009-10-19T10:10:00.203-072010-01-25T10:20:59.36408:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/c2e574a0-2d30-4834-b8a3-6333b33181c38e5a512c-8f2d-4387-a283f3f30bbc312f"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/c2e574a0-2d30-4834-b8a3-6333b33181c38e5a512c-8f2d-4387-a283f3f30bbc312f"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:00.203-072010-01-25T10:20:59.38008:00</atom:published>
<atom:summary type="html">HTML summary of Entry c2e574a0-2d30-4834b8a3-6333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/tree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/foldertree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/c2e574a0-2d30-4834-b8a3-6333b33181c38e5a512c-8f2d-4387-a283f3f30bbc312f/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>c2e574a0-2d30-4834-b8a3-6333b33181c38e5a512c8f2d-4387-a283-f3f30bbc312f</cmis:value>
</cmis:propertyId>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 185 of 236

7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033

<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customer</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Folder as Customer
type</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:00.203-072010-0125T10:20:59.380-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:10:00.203-072010-0125T10:20:59.380-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:folder</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:parentId"
propertyDefinitionId="cmis:parentId">
<cmis:value>c2e574a0-2d30-4834-b8a36333b33181c3up8e5a512c-8f2d-4387-a283-f3f30bbc312fup</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>customer</cmisra:pathSegment>
<cmisra:children>
<atom:feed>
<atom:title type="text">CMIS Example Folder as Customer
type</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.203-072010-0125T10:20:59.380-08:00</atom:updated>
<atom:id>urn:uuid:9550c57d-64cd-4f00-9ab45b44903717e867ee5e9f-d2e3-457d-9dec-be718e780452</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/foldertree"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 186 of 236

8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094

<atom:link type="application/atom+xml;type=feed" rel="down"


href="http://cmisexample.oasis-open.org/rep1/c2e574a0-2d30-4834-b8a36333b33181c38e5a512c-8f2d-4387-a283-f3f30bbc312f/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/80dfb434-883b-4850-871d6524c1ec2a64f083dd6f-1465-4516-97ce-040ec0c7c05a"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasisopen.org/rep1/d4bc9b02-f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a0529f01e636c72a"/>
<atom:id>urn:uuid:d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a</atom:id>
<atom:title type="text">CMIS Example Doc as Invoice
type</atom:title>
<atom:updated>2009-10-19T10:10:00.203-072010-0125T10:20:59.380-08:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/d4bc9b02-f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a0529f01e636c72a"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/d4bc9b02-f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a0529f01e636c72a"/>
<atom:link
type="application/cmis+xml;type=allowableActions" rel="http://docs.oasisopen.org/ns/cmis/link/200908/allowableactions" href="http://cmisexample.oasisopen.org/rep1/d4bc9b02-f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a0529f01e636c72a/allowableactions"/>
<atom:link type="application/atom+xml;type=entry"
rel="describedby" href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f73249ce-979a-da31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:00.203-072010-0125T10:20:59.380-08:00</atom:published>
<atom:summary type="html">HTML summary of Entry d4bc9b02f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a</atom:summary>
<atom:link rel="edit-media"
href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/d4bc9b02-f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a0529f01e636c72a/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/parents"/>
<atom:link type="application/atom+xml;type=feed"
rel="version-history" href="http://cmisexample.oasis-open.org/rep1/d4bc9b02f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/allversions"/>
<atom:link type="application/atom+xml;type=entry"
rel="current-version" href="http://cmisexample.oasis-open.org/rep1/d4bc9b02f732-49ce-979a-da31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/latest"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/relationships"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 187 of 236

8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157

<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/policies"/>
<atom:link type="application/cmisacl+xml"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/acl"
href="http://cmisexample.oasis-open.org/rep1/d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>d4bc9b02-f732-49ce-979ada31175a4d508c2dbba5-ea33-469f-a052-9f01e636c72a</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>invoice</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>CMIS Example Doc as Invoice
type</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="repcmis:creationDate" propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:00.218-072010-0125T10:20:59.380-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">
<cmis:value>2009-10-19T10:10:00.218-072010-0125T10:20:59.380-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:document</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="repcmis:lastModifiedBy" propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:createdBy" propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean localName="repcmis:isLatestVersion" propertyDefinitionId="cmis:isLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isVersionSeriesCheckedOut"
propertyDefinitionId="cmis:isVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isMajorVersion" propertyDefinitionId="cmis:isMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean localName="repcmis:isLatestMajorVersion" propertyDefinitionId="cmis:isLatestMajorVersion">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 188 of 236

8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196

<cmis:propertyBoolean localName="repcmis:isImmutable" propertyDefinitionId="cmis:isImmutable">


<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString localName="repcmis:checkinComment" propertyDefinitionId="cmis:checkinComment">
<cmis:value>Checkin comment</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:versionLabel" propertyDefinitionId="cmis:versionLabel">
<cmis:value>0.1</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:contentStreamMimeType" propertyDefinitionId="cmis:contentStreamMimeType">
<cmis:value>text/plain</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="repcmis:contentStreamFileName" propertyDefinitionId="cmis:contentStreamFileName">
<cmis:value>text.txt</cmis:value>
</cmis:propertyString>
<cmis:propertyInteger localName="repcmis:contentStreamLength" propertyDefinitionId="cmis:contentStreamLength">
<cmis:value>4234</cmis:value>
</cmis:propertyInteger>
<cmis:propertyString displayName="Keywords for
Document" localName="keywords" propertyDefinitionId="keywords">
<cmis:value>document</cmis:value>
<cmis:value>example</cmis:value>
<cmis:value>sample</cmis:value>
<cmis:value>cmis</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>invoice1.pdf</cmisra:pathSegment>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>
</atom:feed>

8197
8198

Please also see the example documents included with the schema.

8199

3.9.3.1 GET

8200

The following arguments may be supplied. Please see the domain model for more information:

8201

filter

8202

depth

8203

includeAllowableActions

8204

includeRelationships

8205

renditionFilter

8206

includePathSegment

8207

3.9.3.2 DELETE

8208
8209

This deletes the folder and all sub-folders. The following arguments may be supplied. Please see the
domain model for more information:

8210

continueOnFailure

8211

unfileObjects

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 189 of 236

8212
8213

Status Code:

8214

200 OK if successful. Body contains entity describing the status

8215

202 Accepted, if accepted but deletion not yet taking place

8216

204 No Content, if successful with no content

8217

403 Forbidden, if permission is denied

8218

401 Unauthorized, if not authenticated

8219

500 Internal Server Error. The body SHOULD contain an entity describing the status

8220
8221
8222

If the delete method does not delete all items, invoking GET with infinite depth on this URI will return the
items not deleted. Subsequent DELETE methods can be invoked on this URI.

8223
8224

Note: If the repository does not implement get on this resource, or the canGetDescendants is false, there
is no mechanism to identify the resources that were not removed.

8225

3.9.4 Folder Tree

8226
8227
8228

This is a hierarchical feed comprising all the folders under a specified folder. This is available via the link
relation foldertree with media type application/atom+xml;type=feed. Please see the Hierarchical Atom
Entries for more information on format.

8229
8230

CMIS Services:

8231

GET: getFolderTree

8232

DELETE: deleteTree

8233

Media Type: application/atom +xml;type=feed

8234
8235
8236
8237

Link Relations:

8238

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.
o

Media Type: application/atomsvc+xml

8239

via: points to the atom entry of the folder generating this collection

8240

up: points to the atom entry document of this folders parent

8241

If the root folder, this link relation MUST not be included.

8242

Media Type: application/atom+xml;type=entry

8243

down:

8244
8245

application/atom+xml : Points to the atom feed document representing the children feed
for this same folder

8246
8247
8248

application/cmistree+xml: Points to the descendants feed of the same folder. If a


repository does not support capabilityGetDescendants, then this link SHOULD NOT be
included.

8249
8250
8251

paging link relations MAY be included as appropriate: first, next, previous, last
o

Repositories may support these paging link relations on a particular cmisra:children


element.

8252
8253

This feed contains a set of atom entries for each sub-folder in the folder.

8254
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 190 of 236

8255
8256

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

8257
8258

The following CMIS Atom extension element MUST be included inside the atom entries:

8259

cmisra:object inside atom:entry

8260

cmisra:pathSegment inside atom:entry

8261

cmisra:children inside atom:entry

8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">FolderTree Feed of Folder1</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.312-072010-01-25T10:20:59.52108:00</atom:updated>
<atom:id>urn:uuid:e8627e01-9b28-4e5b-b7b4-d88c05bae4e9f87e5678-dd24-42149e71-635f060beb7d</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/3bcbead0-ad9f-4e0c-a2e849d025e062c56e327a3c-a246-4cee-8176-b65edc3e1854/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/3bcbead0-ad9f-4e0c-a2e849d025e062c56e327a3c-a246-4cee-8176-b65edc3e1854"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/3bcbead0-ad9f-4e0c-a2e849d025e062c56e327a3c-a246-4cee-8176-b65edc3e1854/tree"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/3bcbead0-ad9f-4e0c-a2e849d025e062c56e327a3c-a246-4cee-8176-b65edc3e1854/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/cdaf0998-582a-445f-9179113a12470b043056c4d7-4e16-49cb-a750-ad7a3844a1aa"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/7d9c26a2ad1e-43e5-b176-247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180"/>
<atom:id>urn:uuid:7d9c26a2-ad1e-43e5-b176-247b64e4f4bcc7b5a83e-37b64f5a-b646-50892252a180</atom:id>
<atom:title type="text">Customer Folder</atom:title>
<atom:updated>2009-10-19T10:10:00.312-072010-01-25T10:20:59.52108:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/7d9c26a2-ad1e-43e5-b176-247b64e4f4bcc7b5a83e-37b6-4f5a-b64650892252a180"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 191 of 236

8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376

<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/7d9c26a2-ad1e-43e5-b176-247b64e4f4bcc7b5a83e-37b6-4f5a-b64650892252a180"/>


<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:00.312-072010-01-25T10:20:59.52108:00</atom:published>
<atom:summary type="html">HTML summary of Entry 7d9c26a2-ad1e-43e5b176-247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/tree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/foldertree"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/foldertree"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/7d9c26a2-ad1e-43e5-b176247b64e4f4bcc7b5a83e-37b6-4f5a-b646-50892252a180/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/7d9c26a2-ad1e-43e5-b176-247b64e4f4bcc7b5a83e-37b6-4f5a-b64650892252a180/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>7d9c26a2-ad1e-43e5-b176-247b64e4f4bcc7b5a83e37b6-4f5a-b646-50892252a180</cmis:value>
</cmis:propertyId>
<cmis:propertyId localName="rep-cmis:objectTypeId"
propertyDefinitionId="cmis:objectTypeId">
<cmis:value>customer</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:name"
propertyDefinitionId="cmis:name">
<cmis:value>Customer Folder</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime localName="rep-cmis:creationDate"
propertyDefinitionId="cmis:creationDate">
<cmis:value>2009-10-19T10:10:00.328-072010-0125T10:20:59.521-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyDateTime localName="repcmis:lastModificationDate" propertyDefinitionId="cmis:lastModificationDate">

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 192 of 236

8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401

<cmis:value>2009-10-19T10:10:00.328-072010-0125T10:20:59.521-08:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyId localName="rep-cmis:baseTypeId"
propertyDefinitionId="cmis:baseTypeId">
<cmis:value>cmis:folder</cmis:value>
</cmis:propertyId>
<cmis:propertyString localName="rep-cmis:lastModifiedBy"
propertyDefinitionId="cmis:lastModifiedBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyString localName="rep-cmis:createdBy"
propertyDefinitionId="cmis:createdBy">
<cmis:value>Al Brown</cmis:value>
</cmis:propertyString>
<cmis:propertyId localName="rep-cmis:parentId"
propertyDefinitionId="cmis:parentId">
<cmis:value>7d9c26a2-ad1e-43e5-b176247b64e4f4bcupc7b5a83e-37b6-4f5a-b646-50892252a180up</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
<cmisra:pathSegment>customer</cmisra:pathSegment>
</atom:entry>
</atom:feed>

8402
8403

Please also see the example documents included with the schema.

8404

3.9.4.1 GET

8405

The following arguments may be supplied. Please see the domain model for more information:

8406

filter

8407

depth

8408

includeAllowableActions

8409

includeRelationships

8410

renditionFilter

8411

3.9.4.2 DELETE

8412

This is the same as DELETE on Folder Descendants. Please see that section.

8413

3.9.5 AllVersions Feed

8414

This is a feed comprised of all the versions of the given document.

8415

CMIS Services:

8416

GET: getAllVersions

8417

DELETE: deleteAllVersions

8418

Media Type: application/atom+xml;type=feed

8419
8420

The feed SHOULD contain the newest versions at the beginning of the feed.

8421
8422
8423
8424

Link Relations:

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 193 of 236

8425

Media Type: application/atomsvc+xml

8426

via: points to the atom entry of the resource generating this collection

8427

paging link relations as appropriate: first, next, previous, last

8428
8429

This feed contains a set of atom entries for each version in the version series

8430

cmisra:object inside atom:entry

8431

cmisra:children inside atom:entry if atom:entry represents a CMIS Folder

8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">AllVersions for Document c3141e18-fb48-4742-a6f8adef86dea79ae8abd7cd-b9ec-4dba-9eaa-1bce2ae9977f</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:09:59.828-072010-01-25T10:20:58.89608:00</atom:updated>
<atom:id>urn:uuid:309c322f-1e10-4306-85ba-98f1870c58825dc3d1c1-3e85-4720acf8-cf98c96a5830</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/c3141e18-fb48-4742-a6f8adef86dea79ae8abd7cd-b9ec-4dba-9eaa-1bce2ae9977f/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/c3141e18-fb48-4742-a6f8adef86dea79ae8abd7cd-b9ec-4dba-9eaa-1bce2ae9977f"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/9c7860a7be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281"/>
<atom:id>urn:uuid:9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac114911-b5a3-60781fa5c281</atom:id>
<atom:title type="text">Invoice (Version1)</atom:title>
<atom:updated>2009-10-19T10:09:59.828-072010-01-25T10:20:58.89608:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a360781fa5c281"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a360781fa5c281"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/allowableactions"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 194 of 236

8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529

<atom:link type="application/atom+xml;type=entry" rel="describedby"


href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:09:59.843-072010-01-25T10:20:58.89608:00</atom:published>
<atom:summary type="html">HTML summary of Entry 9c7860a7-be25-439eb473-8da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a360781fa5c281/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a360781fa5c281/alternate"/>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="currentversion" href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/latest"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/relationships"
href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/relationships"/>
<atom:link type="application/atom+xml;type=feed"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/policies"
href="http://cmisexample.oasis-open.org/rep1/9c7860a7-be25-439e-b4738da032402a6d197033f2-ac11-4911-b5a3-60781fa5c281/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/9c7860a7-be25-439e-b473-8da032402a6d197033f2-ac11-4911-b5a360781fa5c281/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>9c7860a7-be25-439e-b473-8da032402a6d197033f2ac11-4911-b5a3-60781fa5c281</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>
</atom:feed>

8530
8531

Please also see the example documents included with the schema.

8532

3.9.5.1 GET

8533

The following arguments may be supplied. Please see the domain model for more information:

8534

filter

8535

includeAllowableActions

8536

3.9.5.2 DELETE

8537

This removes the entire version history of the document.

8538
8539

Success HTTP code: 204


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 195 of 236

8540

3.9.6 Type Descendants Feed

8541
8542
8543
8544

This is a feed described in the service document that contains all the types under a specific type in the
repository to a specific depth. If no parent type is specified, then the base types and their descendants
are returned in the feed which is equivalent to all types in the repository if depth is infinite. The link
relation is http://docs.oasis-open.org/ns/cmis/link/200908/typesdescendantstypedescendants.

8545
8546
8547

Types are nested using the CMIS hierarchy extension. Please see section 3.2.3.2 Hierarchy Navigation
Internet Draft Link Relations.

8548
8549

CMIS Services:

8550

GET: getTypeDescendants

8551
8552

Media Type: application/atom+xml;type=feed

8553
8554
8555
8556

Link Relations:

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

8557

Media Type: application/atomsvc+xml

8558
8559

via: points to the type definition whose descendents represent this feed. This link is not present if
no parent type is specified.

8560

down: points to the children feed for the same type

8561

up: points to the parent type definition

8562

If this is a descendants feed for a base object type, this link is not present.

8563
8564
8565

The following CMIS Atom extension element MAY be included inside the atom feed:

cmisra:numItems

8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589

Example:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:cmism="http://docs.oasis-open.org/ns/cmis/messaging/200908/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:app="http://www.w3.org/2007/app" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:title type="text">Base Types</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.656-072010-01-25T10:20:59.91108:00</atom:updated>
<atom:id>urn:uuid:e1981abc-a130-4cf0-89f2-0fa26f2801fec5d3d357-33ec-47c18436-563e0d94d2e5</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1//3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 196 of 236

8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653

<atom:link type="application/atom+xml;type=feed" rel="down"


href="http://cmisexample.oasis-open.org/rep1//children"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for cmis:document</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/cmis:document</atom:id>
<atom:link type="application/atom+xml;type=entry" rel="self"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document/parent"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:document/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:document/children/tree"/>
<atom:published>2009-10-19T10:10:00.656-072010-01-25T10:20:59.92708:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
cmis:document</atom:summary>
<atom:title type="text">Type Definition - cmis:document</atom:title>
<atom:updated>2009-10-19T10:10:00.656-072010-01-25T10:20:59.92708:00</atom:updated>
<app:edited>2009-10-19T10:10:00.671-072010-01-25T10:20:59.92708:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="cmis:cmisTypeDocumentDefinitionType" cmisra:id="cmis:document">
<cmis:id>dtcmis:document</cmis:id>
<cmis:localName>myrepname-cmis:document</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>cmis:document</cmis:displayName>
<cmis:queryName>cmis:document</cmis:queryName>
<cmis:description>Description for type definition
cmis:document</cmis:description>
<cmis:baseId>cmis:document</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
<cmis:versionable>true</cmis:versionable>
<cmis:contentStreamAllowed>allowed</cmis:contentStreamAllowed>
</cmisra:type>
<cmisra:children>
<atom:feed>
<atom:title type="text">Children for Document</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 197 of 236

8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717

</atom:author>
<atom:updated>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:updated>
<atom:id>urn:uuid:5657c90b-b07f-4225-832d28a5302f84246f1cdc44-bd89-41c0-8fad-89f3ad0f8f30</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/cmis:document/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/cmis:document"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/cmis:document/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/document"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for invoicedocument</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/invoice-document</atom:id>
<atom:link type="application/atom+xml;type=entry"
rel="self" href="http://cmisexample.oasis-open.org/rep1/type/invoicedocument"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/invoice-document"/>
<atom:link type="application/atom+xml;type=entry"
rel="describedby" href="http://cmisexample.oasisopen.org/rep1/type/cmis:document"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/invoice-document/parent"/>
<atom:link type="application/atom+xml;type=feed"
rel="down" href="http://cmisexample.oasis-open.org/rep1/type/invoicedocument/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/invoicedocument/children/tree"/>
<atom:published>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
invoice-document</atom:summary>
<atom:title type="text">Type Definition - invoicedocument</atom:title>
<atom:updated>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:updated>
<app:edited>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:type="cmis:cmisTypeDocumentDefinitionType" cmisra:id="invoicedocument">
<cmis:id>dtinvoice-document</cmis:id>
<cmis:localName>myrepname-invoicedocument</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>invoice-document</cmis:displayName>
<cmis:queryName>invoice-document</cmis:queryName>
<cmis:description>Description for type definition
invoice-document</cmis:description>
<cmis:baseId>cmis:document</cmis:baseId>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 198 of 236

8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780

<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
<cmis:versionable>true</cmis:versionable>
<cmis:contentStreamAllowed>allowed</cmis:contentStreamAllowed>
</cmisra:type>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for cmis:folder</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/cmis:folder</atom:id>
<atom:link type="application/atom+xml;type=entry" rel="self"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder/parent"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:folder/children/tree"/>
<atom:published>2009-10-19T10:10:00.671-072010-01-25T10:20:59.92708:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
cmis:folder</atom:summary>
<atom:title type="text">Type Definition - cmis:folder</atom:title>
<atom:updated>2009-10-19T10:10:00.671-072010-01-25T10:20:59.92708:00</atom:updated>
<app:edited>2009-10-19T10:10:00.671-072010-01-25T10:20:59.92708:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="cmis:cmisTypeFolderDefinitionType" cmisra:id="cmis:folder">
<cmis:id>dtcmis:folder</cmis:id>
<cmis:localName>myrepname-cmis:folder</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>cmis:folder</cmis:displayName>
<cmis:queryName>cmis:folder</cmis:queryName>
<cmis:description>Description for type definition
cmis:folder</cmis:description>
<cmis:baseId>cmis:folder</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 199 of 236

8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844

<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
</cmisra:type>
<cmisra:children>
<atom:feed>
<atom:title type="text">Children for Folder</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:updated>
<atom:id>urn:uuid:7b556496-2a09-40ca-b2a53e4e5596fb89361a3ac1-f7f7-47cb-b941-ae1200213fe0</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/cmis:folder/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/cmis:folder"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/cmis:folder/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/cmis:folder"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for customerfolder</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/customer-folder</atom:id>
<atom:link type="application/atom+xml;type=entry"
rel="self" href="http://cmisexample.oasis-open.org/rep1/type/customerfolder"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/customer-folder"/>
<atom:link type="application/atom+xml;type=entry"
rel="describedby" href="http://cmisexample.oasisopen.org/rep1/type/cmis:folder"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/customer-folder/parent"/>
<atom:link type="application/atom+xml;type=feed"
rel="down" href="http://cmisexample.oasis-open.org/rep1/type/customerfolder/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/customerfolder/children/tree"/>
<atom:published>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
customer-folder</atom:summary>
<atom:title type="text">Type Definition - customerfolder</atom:title>
<atom:updated>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</atom:updated>
<app:edited>2009-10-19T10:10:00.671-072010-0125T10:20:59.927-08:00</app:edited>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 200 of 236

8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908

<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:type="cmis:cmisTypeFolderDefinitionType" cmisra:id="customerfolder">


<cmis:id>dtcustomer-folder</cmis:id>
<cmis:localName>myrepname-customerfolder</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>customer-folder</cmis:displayName>
<cmis:queryName>customer-folder</cmis:queryName>
<cmis:description>Description for type definition
customer-folder</cmis:description>
<cmis:baseId>cmis:folder</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
</cmisra:type>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for cmis:relationship</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/cmis:relationship</atom:id>
<atom:link type="application/atom+xml;type=entry" rel="self"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:relationship"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:relationship"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:relationship"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:relationship/parent"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:relationship/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:relationship/children/tree"/>
<atom:published>2009-10-19T10:10:00.671-072010-01-25T10:20:59.94308:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
cmis:relationship</atom:summary>
<atom:title type="text">Type Definition cmis:relationship</atom:title>
<atom:updated>2009-10-19T10:10:00.687-072010-01-25T10:20:59.94308:00</atom:updated>
<app:edited>2009-10-19T10:10:00.687-072010-01-25T10:20:59.94308:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="cmis:cmisTypeRelationshipDefinitionType"
cmisra:id="cmis:relationship">
<cmis:id>dtcmis:relationship</cmis:id>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 201 of 236

8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972

<cmis:localName>myrepname-cmis:relationship</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>cmis:relationship</cmis:displayName>
<cmis:queryName>cmis:relationship</cmis:queryName>
<cmis:description>Description for type definition
cmis:relationship</cmis:description>
<cmis:baseId>cmis:relationship</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>false</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
<cmis:allowedSourceTypes>invoice</cmis:allowedSourceTypes>
<cmis:allowedSourceTypes>capitalinvoice</cmis:allowedSourceTypes>
<cmis:allowedTargetTypes>customer</cmis:allowedTargetTypes>
</cmisra:type>
<cmisra:children>
<atom:feed>
<atom:title type="text">Children for Relationship</atom:title>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:updated>2009-10-19T10:10:00.687-072010-0125T10:20:59.943-08:00</atom:updated>
<atom:id>urn:uuid:1bc33a0d-27ac-4976-9cab58ea28e3ff6c9394ff3d-87c4-48c9-a951-ba725560faac</atom:id>
<atom:link type="application/atom+xml;type=feed" rel="self"
href="http://cmisexample.oasis-open.org/rep1/cmis:relationship/3"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:link type="application/atom+xml;type=entry" rel="via"
href="http://cmisexample.oasis-open.org/rep1/cmis:relationship"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/cmis:relationship/children"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/cmis:folder"/>
<cmisra:numItems>1</cmisra:numItems>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for customerrelationship</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/customer-relationship</atom:id>
<atom:link type="application/atom+xml;type=entry"
rel="self" href="http://cmisexample.oasis-open.org/rep1/type/customerrelationship"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/customer-relationship"/>
<atom:link type="application/atom+xml;type=entry"
rel="describedby" href="http://cmisexample.oasisopen.org/rep1/type/cmis:relationship"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/customerrelationship/parent"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 202 of 236

8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035

<atom:link type="application/atom+xml;type=feed"
rel="down" href="http://cmisexample.oasis-open.org/rep1/type/customerrelationship/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/customerrelationship/children/tree"/>
<atom:published>2009-10-19T10:10:00.687-072010-0125T10:20:59.943-08:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
customer-relationship</atom:summary>
<atom:title type="text">Type Definition - customerrelationship</atom:title>
<atom:updated>2009-10-19T10:10:00.687-072010-0125T10:20:59.943-08:00</atom:updated>
<app:edited>2009-10-19T10:10:00.687-072010-0125T10:20:59.943-08:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:type="cmis:cmisTypeRelationshipDefinitionType"
cmisra:id="customer-relationship">
<cmis:id>dtcustomer-relationship</cmis:id>
<cmis:localName>myrepname-customerrelationship</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>customerrelationship</cmis:displayName>
<cmis:queryName>customer-relationship</cmis:queryName>
<cmis:description>Description for type definition
customer-relationship</cmis:description>
<cmis:baseId>cmis:relationship</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>false</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
<cmis:allowedSourceTypes>invoice</cmis:allowedSourceTypes>
<cmis:allowedSourceTypes>capitalinvoice</cmis:allowedSourceTypes>
<cmis:allowedTargetTypes>customer</cmis:allowedTargetTypes>
</cmisra:type>
</atom:entry>
</atom:feed>
</cmisra:children>
</atom:entry>
<atom:entry>
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for cmis:policy</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/cmis:policy</atom:id>
<atom:link type="application/atom+xml;type=entry" rel="self"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 203 of 236

9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074

<atom:link type="application/atom+xml;type=entry" rel="describedby"


href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy/parent"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:policy/children/tree"/>
<atom:published>2009-10-19T10:10:00.687-072010-01-25T10:20:59.94308:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
cmis:policy</atom:summary>
<atom:title type="text">Type Definition - cmis:policy</atom:title>
<atom:updated>2009-10-19T10:10:00.687-072010-01-25T10:20:59.94308:00</atom:updated>
<app:edited>2009-10-19T10:10:00.687-072010-01-25T10:20:59.94308:00</app:edited>
<cmisra:type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="cmis:cmisTypePolicyDefinitionType" cmisra:id="cmis:policy">
<cmis:id>dtcmis:policy</cmis:id>
<cmis:localName>myrepname-cmis:policy</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>cmis:policy</cmis:displayName>
<cmis:queryName>cmis:policy</cmis:queryName>
<cmis:description>Description for type definition
cmis:policy</cmis:description>
<cmis:baseId>cmis:policy</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>false</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
</cmisra:type>
</atom:entry>
</atom:feed>

9075
9076

Please also see the example documents included with the schema.

9077

3.9.6.1 GET

9078

The following arguments may be supplied. Please see the domain model for more information:

9079

includePropertyDefinitions

9080

depth

9081

3.10 Resources

9082
9083

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP
verb in a repository-specific manner.

9084

3.10.1 Type Entry

9085

This represents a type definition in the repository. This is enclosed as an atom entry

9086
9087
9088

CMIS Services:
GET: getTypeDefinition
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 204 of 236

9089

Media Type: application/atom+xml;type=entry

9090
9091
9092
9093

Link Relations:

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9094

Media Type: application/atomsvc+xml

9095

up: Points to the parent type as atom entry if applicable

9096

down: Points to the children of this type as atom feed if applicable

9097
9098

(Children) Media Type: application/atom +xml;type=feed points to the atom feed


document representing the children feed for this same type

9099
9100

(Descendants) Media Type: application/cmistree+xml points to the atom feed document


representing the descendents feed for this same type

9101

describedby: Points to the type definition atom entry of the base type of this type definition.

9102
9103
9104

The following CMIS Atom extension element MUST be included inside the atom entry:

cmisra:type

9105

3.10.1.1 GET

9106

There are no optional arguments for this resource.

9107
9108
9109
9110
9111
9112

Request:
GET /obj/0010d88d-d006-4d50-aad0-c8f61f80f2735070f89a-6f00-4acf-84e9d8836a6c7d23 HTTP/1.1
Host: example.org

9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:10:01 -070021:00 -0800
Content-Length: 2995
Content-Type: application/atom+xml;type=entry
Location: http://cmisexample.oasis-open.org/rep1/cmis:document

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content>Type Definition for cmis:document</atom:content>
<atom:id>http://cmisexample.oasisopen.org/rep1/type/cmis:document</atom:id>
<atom:link type="application/atom+xml;type=entry" rel="self"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 205 of 236

9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182

<atom:link type="application/atom+xml;type=entry" rel="describedby"


href="http://cmisexample.oasis-open.org/rep1/type/cmis:document"/>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/type/cmis:document/parent"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:document/children/flat"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasisopen.org/rep1/type/cmis:document/children/tree"/>
<atom:published>2009-10-19T10:10:01.015-072010-01-25T10:21:00.38008:00</atom:published>
<atom:summary type="html">HTML summary of Type Definition
cmis:document</atom:summary>
<atom:title type="text">Type Definition - cmis:document</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.015-07-25T10:21:00.38008:00</atom:updated>
<app:edited>2009-10-19T10:10:2010-01.015-07-25T10:21:00.38008:00</app:edited>
<cmisra:type xsi:type="cmis:cmisTypeDocumentDefinitionType"
cmisra:id="cmis:document" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
<cmis:id>dtcmis:document</cmis:id>
<cmis:localName>myrepname-cmis:document</cmis:localName>
<cmis:localNamespace xsi:nil="true"/>
<cmis:displayName>cmis:document</cmis:displayName>
<cmis:queryName>cmis:document</cmis:queryName>
<cmis:description>Description for type definition
cmis:document</cmis:description>
<cmis:baseId>cmis:document</cmis:baseId>
<cmis:parentId>parent</cmis:parentId>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:fulltextIndexed>false</cmis:fulltextIndexed>
<cmis:includedInSupertypeQuery>true</cmis:includedInSupertypeQuery>
<cmis:controllablePolicy>true</cmis:controllablePolicy>
<cmis:controllableACL>true</cmis:controllableACL>
<cmis:versionable>true</cmis:versionable>
<cmis:contentStreamAllowed>allowed</cmis:contentStreamAllowed>
</cmisra:type>
</atom:entry>

9183
9184

Please also see the example documents included with the schema.

9185
9186

3.10.2 Document Entry

9187

This is a CMIS Document instance.

9188
9189

CMIS Services:

9190

GET: getObject, getObjectOfLatestVersion (getObject)

9191

PUT: updateProperties

9192

DELETE: deleteObject

9193

Media Type: application/atom+xml;type=entry

9194
9195

Link Relations:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 206 of 236

9196
9197

self: Points to an URI that returns the atom entry for this document. Please see Atom for more
information.

9198

edit: Points to an URI that accepts PUT of atom entry. Please see AtomPub for more information.

9199
9200

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9201

Media Type: application/atomsvc+xml

9202
9203

up: Points to the atom feed containing the set of parents. If there is only one parent, the
repository MAY point this link relation directly to the atom entry of the parent.

9204

version-history: Points to atom feed containing the versions of this document

9205
9206

If the document is not versionable, this link relation may not be on the resource

current-version: Points to the latest version of the document

9207

Uses query parameter returnVersion and enumReturnVersion

9208

If this version is the current-version, this link relation may not be on the resource

9209

edit-media:

9210

Same as setContentStream. Allows updating the content stream on this document

9211

Please see AtomPub for more information

9212

working-copy: Points to the private working copy if it exists.

9213

describedby: Points to the type definition as an atom entry for the type of this document entry.

9214
9215

alternate: this is used to identify the renditions available for the specified object. Please see the
Renditions section.

9216
9217

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions


document for this object.

9218
9219

http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for


this object

9220

http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9221

http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9222
9223
9224

The following CMIS Atom extension element MUST be included inside the atom entry:

cmisra:object

9225
9226

3.10.2.1 GET

9227

The following arguments may be supplied. Please see the domain model for more information:

9228

returnVersion

9229

Used to differentiate between getObject() and getObjectOfLatestVersion().

9230

valid values are are described by the schema element cmisra:enumReturnVersion

9231

If not specified, return the version specified by the URI

9232

includeAllowableActions

9233

includeRelationships

9234

includePolicyIds

9235

includeACL

9236

filter

9237

renditionFilter

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 207 of 236

9238

If not specified, renditions will not be included.

9239
9240
9241
9242
9243
9244
9245

Request:
GET /obj/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647?filter=cmis:objectId HTTP/1.1
Host: example.org

9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:1021:00 -07000800
Content-Length: 3403
Content-Type: application/atom+xml;type=entry
Location: /obj/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647?filter=cmis:objectId

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad3-16379127e647"/>
<atom:id>urn:uuid:8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a9ad3-16379127e647</atom:id>
<atom:title type="text">Invoice</atom:title>
<atom:updated>2009-10-19T10:102010-01-25T10:21:00.843-0719308:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:102010-01-25T10:21:00.843-0719308:00</atom:published>
<atom:summary type="html">HTML summary of Entry 8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647/edit-media"/>
<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647/alternate"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 208 of 236

9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330

<atom:link type="application/atom+xml;type=feed" rel="up"


href="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/8a7b8f30-3e9f-49b9-acf794851ff7ad087c088887-5991-4b3a-9ad3-16379127e647/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-5991-4b3a-9ad316379127e647/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>8a7b8f30-3e9f-49b9-acf7-94851ff7ad087c088887-59914b3a-9ad3-16379127e647</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

9331
9332

Please also see the example documents included with the schema.

9333
9334

3.10.2.2 PUT

9335
9336

This does a replacement of the atom entry with the atom entry document specified. If readwrite
properties are not included, the repository SHOULD NOT modify them.

9337
9338

The server SHOULD respond with:

9339

HTTP Status Code 200

9340

Response Body containing the updated atom entry

9341
9342

3.10.2.3 DELETE

9343

This removes the document.

9344

Success HTTP code: 204

9345

3.10.3 Document Private Working Copy (PWC) Entry

9346

This is the private working copy of the document (checkedout version of document)

9347

CMIS Services:

9348

GET: getObject

9349

PUT: updateProperties or checkIn


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 209 of 236

9350
9351

DELETE: cancelCheckOut
Media Type: application/atom+xml;type=entry

9352
9353

Link relations:

9354

self: Points to the URI to retrieve this atom entry. Please see Atom for more information

9355
9356

edit: Points to the URI to update this atom entry via POST. Please see AtomPub for more
information.

9357
9358

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9359

Media Type: application/atomsvc+xml

9360
9361

up: Points to the atom feed containing the set of parents. If there is only one parent, the
repository MAY point this link relation directly to the atom entry of the parent.

9362

version-history

9363
9364

Points to an URI that returns the feed associated with the version history

edit-media

9365

Same as setContentStream. Allows updating the content stream on this document

9366

Please see AtomPub for more information

9367

via: atom entry that created this private working copy

9368

describedby: Points to the type definition as an atom entry for the type of this PWC entry.

9369
9370

alternate: this is used to identify the renditions available for the specified object. Please see the
Renditions section.

9371
9372

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions


document for this object.

9373
9374

http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for


this object

9375

http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9376

http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9377
9378
9379

The following element MUST be included inside the atom entry:

cmisra:object

9380
9381

3.10.3.1 GET

9382

The following arguments may be supplied. Please see the domain model for more information:

9383

filter

9384

includeAllowableActions

9385

includeRelationships

9386

renditionFilter

9387

If not specified, renditions will not be included.

9388
9389
9390
9391
9392
9393

Request:
GET /obj/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206?filter=cmis:objectId HTTP/1.1
Host: example.org
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 210 of 236

9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:1021:00 -07000800
Content-Length: 3564
Content-Type: application/atom+xml;type=entry
Location: /obj/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206?filter=cmis:objectId

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/3240a476-6de64ab2-978d-85ca2f4f3206"/>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c984c38-9141-604d287fb881"/>
<atom:id>urn:uuid:3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2978d-85ca2f4f3206</atom:id>
<atom:title type="text">Invoice</atom:title>
<atom:updated>2009-10-19T10:102010-01-25T10:21:00.968-0733308:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:102010-01-25T10:21:00.968-0733308:00</atom:published>
<atom:summary type="html">HTML summary of Entry 3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206</atom:summary>
<atom:link rel="edit-media" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206/edit-media"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 211 of 236

9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494

<atom:link rel="alternate" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206/alternate"/>


<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="version-history"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/allversions"/>
<atom:link type="application/atom+xml;type=entry" rel="current-version"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/latest"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de6-4ab2-978d85ca2f4f3206/acl"/>
<atom:link type="application/atom+xml;type=feed" rel="working-copy"
href="http://cmisexample.oasis-open.org/rep1/3ca7d7d0-1c98-4c38-9141604d287fb8813240a476-6de6-4ab2-978d-85ca2f4f3206/pwc"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>3ca7d7d0-1c98-4c38-9141-604d287fb8813240a476-6de64ab2-978d-85ca2f4f3206</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

9495
9496

Please also see the example documents included with the schema.

9497
9498

3.10.3.2 PUT

9499
9500

This does a replacement of the atom entry with the atom entry document specified. If modifiable
properties (whencheckedout or readwrite) are not included, the repository SHOULD NOT modify them.

9501
9502

The following arguments may be supplied. Please see the domain model for more information:

9503

checkinComment

9504

major

9505

checkin

9506
9507

Used to differentiate between updateProperties() or checkin() services. If TRUE, execute


checkin service.

9508
9509

If this argument is specified as TRUE, then the body to PUT MAY be omitted if there are
no modifications to be made during checkin

9510
9511

The server SHOULD respond with:


cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 212 of 236

9512

HTTP Status Code 200

9513

Location header of the resource (if changed via checkin)

9514

Response Body containing the updated atom entry

9515

3.10.3.3 DELETE

9516

This removes the document entry, in this case, cancels the check out. The PWC will be removed.

9517
9518

Success HTTP code: 204

9519

3.10.4 Folder Entry

9520

This is a CMIS Folder instance. The properties of a folder map onto the feed tag.

9521

CMIS Services:

9522

GET: getObject

9523

PUT: updateProperties

9524

DELETE: deleteObject (this is deletion of the folder only and not any contained objects)

9525

Media Type: application/atom+xml;type=entry

9526
9527

Link Relations:

9528

self: Points to the URI to retrieve this atom entry. Please see Atom for more information

9529
9530

editinformationedit: Points to the URI to update this atom entry via POST. Please see AtomPub
for more information.

9531
9532

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9533

Media Type: application/atomsvc+xml

9534

describedby: Points to the type definition as an atom entry for the type of this folder entry.

9535

down: Points to the children of this folder if they exist

9536
9537

application/atom+xml : Points to the atom feed document representing the children feed
for this same folder

9538

application/cmistree+xml: Points to the descendants feed of the same folder

9539

9540

up: Points to the atom entry for the parent


o

If the root folder, this link will not be present

9541
9542

alternate: this is used to identify the renditions available for the specified object. Please see the
Renditions section.

9543
9544

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions


document for this object.

9545
9546

http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for


this object

9547

http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9548

http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9549

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: Points to the folder tree for this folder

9550
9551
9552

The following CMIS Atom extension element MUST be included inside the atom entry:

cmisra:object

9553
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 213 of 236

9554

3.10.4.1 GET

9555

The following arguments may be supplied. Please see the domain model for more information:

9556

filter

9557

includeAllowableActions

9558

includeRelationships

9559

renditionFilter

9560

If not specified, renditions will not be included.

9561
9562
9563
9564
9565
9566

Request:
GET /obj/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093?filter=cmis:objectId HTTP/1.1
Host: example.org

9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:1021:00 -07000800
Content-Length: 3332
Content-Type: application/atom+xml;type=entry
Location: /obj/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093?filter=cmis:objectId

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/<?xml
version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc4459-8089-0e6f0a500150"/>
cfc03a28-8240-471d-b4ba-6d8756cd5093"/>
<atom:id>urn:uuid:24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471db4ba-6d8756cd5093</atom:id>
<atom:title type="text">Customer Folder</atom:title>
<atom:updated>2009-10-19T10:102010-01-25T10:21:00.875-0720808:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093"/>
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 214 of 236

9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662

<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093"/>


<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:102010-01-25T10:21:00.875-0720808:00</atom:published>
<atom:summary type="html">HTML summary of Entry 24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="up"
href="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093/up"/>
<atom:link type="application/atom+xml;type=feed" rel="down"
href="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093/children"/>
<atom:link type="application/cmistree+xml" rel="down"
href="http://cmisexample.oasis-open.org/rep1/24cbe125-1ffc-4459-80890e6f0a500150cfc03a28-8240-471d-b4ba-6d8756cd5093/tree"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/foldertree" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093/foldertree"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093/relationships"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093/policies"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240-471d-b4ba6d8756cd5093/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>24cbe125-1ffc-4459-8089-0e6f0a500150cfc03a28-8240471d-b4ba-6d8756cd5093</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

9663
9664

Please also see the example documents included with the schema.

9665
9666

3.10.4.2 PUT

9667
9668

This does a replacement of the atom entry with the atom entry document specified. If readwrite
properties are not included, the repository SHOULD NOT modify them.

9669
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 215 of 236

9670

The server SHOULD respond with:

9671

HTTP Status Code 200

9672

Response Body containing the updated atom entry

9673
9674

3.10.4.3 DELETE

9675

This removes the object (folder) from the repository.

9676

Success HTTP code: 204

9677

3.10.5 Relationship Entry

9678

This is a CMIS relationship instance. These objects are exposed via relationships link type.

9679

CMIS Services:

9680

GET: getObject

9681

PUT: updateProperties

9682

DELETE: deleteObject

9683

Media Type: application/atom+xml;type=entry

9684
9685

Link Relations:

9686

self: Points to the URI to retrieve this atom entry. Please see Atom for more information

9687
9688

edit: Points to the URI to update this atom entry via POST. Please see AtomPub for more
information.

9689
9690

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9691

Media Type: application/atomsvc+xml

9692

describedby: Points to the type definition as an atom entry for the type of this relationship entry.

9693

http://docs.oasis-open.org/ns/cmis/link/200908/target

9694

http://docs.oasis-open.org/ns/cmis/link/200908/source

9695
9696

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions


document for this object.

9697

http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9698

http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9699
9700
9701

The following element MUST be included inside the atom entry:

cmisra:object

9702
9703

3.10.5.1 GET

9704

The following arguments may be supplied. Please see the domain model for more information:

9705

filter

9706

includeAllowableActions

9707
9708
9709
9710

Request:
GET /obj/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439?filter=cmis:objectId HTTP/1.1
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 216 of 236

9711
9712

Host: example.org

9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:10:01 -070021:00 -0800
Content-Length: 2861
Content-Type: application/atom+xml;type=entry
Location: /obj/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439?filter=cmis:objectId

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/38af30f5-020d4274-b25c-0821b6db899bad443afd-aa1a-4071-9735-1a49aac4e439"/>
<atom:id>urn:uuid:38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-40719735-1a49aac4e439</atom:id>
<atom:title type="text">Customer Relationship</atom:title>
<atom:updated>2009-10-19T10:10:2010-01.000-07-25T10:21:00.34908:00</atom:updated>
<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439"/>
<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/38af30f5-020d-4274-b25c0821b6db899bad443afd-aa1a-4071-9735-1a49aac4e439/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/38af30f5-020d-4274-b25c0821b6db899bad443afd-aa1a-4071-9735-1a49aac4e439/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:10:01.000-072010-01-25T10:21:00.36508:00</atom:published>
<atom:summary type="html">HTML summary of Entry 38af30f5-020d-4274-b25c0821b6db899bad443afd-aa1a-4071-9735-1a49aac4e439</atom:summary>
<atom:link type="application/atom+xml;type=entry" rel="http://docs.oasisopen.org/ns/cmis/link/200908/source" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439/source"/>
<atom:link type="application/atom+xml;type=entry" rel="http://docs.oasisopen.org/ns/cmis/link/200908/target" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439/target"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/policies" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439/policies"/>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 217 of 236

9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786

<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a-4071-97351a49aac4e439/acl"/>


<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>38af30f5-020d-4274-b25c-0821b6db899bad443afd-aa1a4071-9735-1a49aac4e439</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

9787
9788

Please also see the example documents included with the schema.

9789
9790

3.10.5.2 PUT

9791
9792

This does a replacement of the atom entry with the atom entry document specified. If readwrite
properties are not included, the repository SHOULD NOT modify them.

9793
9794

The server SHOULD respond with:

9795

HTTP Status Code 200

9796

Response Body containing the updated atom entry

9797
9798

3.10.5.3 DELETE

9799

This removes the relationship entry.

9800

Successful HTTP code: 204

9801

3.10.6 Policy Entry

9802

This is a CMIS policy instance.

9803

CMIS Services:

9804

GET: getObject

9805

PUT: updateProperties

9806
9807

DELETE: deleteObject or removePolicy


Media Type: application/atom+xml;type=entry

9808
9809

Link Relations:

9810

self

9811

edit

9812
9813

service: Points to service document containing the CMIS repository. The service document
MUST contain only one workspace element.

9814
9815

Media Type: application/atomsvc+xml

describedby: Points to the type definition as an atom entry for the type of this policy entry.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 218 of 236

9816
9817

alternate: this is used to identify the renditions available for the specified object. Please see the
Renditions section.

9818
9819

http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions


document for this object.

9820

http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9821

http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9822
9823
9824

The following element MUST be included inside the atom entry:

cmisra:object

9825
9826

3.10.6.1 GET

9827

The following arguments may be supplied. Please see the domain model for more information:

9828

filter

9829

includeAllowableActions

9830

includeRelationships

9831

renditionFilter

9832

If not specified, renditions will not be included.

9833
9834
9835
9836
9837
9838

Request:
GET /obj/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0?filter=cmis:objectId HTTP/1.1
Host: example.org

9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:1021:00 -07000800
Content-Length: 2608
Content-Type: application/atom+xml;type=entry
Location: /obj/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0?filter=cmis:objectId

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<atom:entry xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<atom:author>
<atom:name>Al Brown</atom:name>
<atom:uri>http://www.ibm.com/</atom:uri>
<atom:email>albertcbrown@us.ibm.com</atom:email>
</atom:author>
<atom:content src="http://cmisexample.oasis-open.org/rep1/408fb453-4a184103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f0-4e4cd4631bf0"/>
<atom:id>urn:uuid:408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940b2f0-4e4cd4631bf0</atom:id>
<atom:title type="text">Security Policy</atom:title>
<atom:updated>2009-10-19T10:102010-01-25T10:21:00.937-0731808:00</atom:updated>

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 219 of 236

9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907

<atom:link rel="self" href="http://cmisexample.oasisopen.org/rep1/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0"/>


<atom:link rel="edit" href="http://cmisexample.oasisopen.org/rep1/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0"/>
<atom:link type="application/cmis+xml;type=allowableActions"
rel="http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions"
href="http://cmisexample.oasis-open.org/rep1/408fb453-4a18-4103-b495e84a2a2761a0a09ed524-5f1b-4940-b2f0-4e4cd4631bf0/allowableactions"/>
<atom:link type="application/atom+xml;type=entry" rel="describedby"
href="http://cmisexample.oasis-open.org/rep1/408fb453-4a18-4103-b495e84a2a2761a0a09ed524-5f1b-4940-b2f0-4e4cd4631bf0/type"/>
<atom:link type="application/atomsvc+xml" rel="service"
href="http://cmisexample.oasis-open.org/rep1//service"/>
<atom:published>2009-10-19T10:102010-01-25T10:21:00.937-0731808:00</atom:published>
<atom:summary type="html">HTML summary of Entry 408fb453-4a18-4103-b495e84a2a2761a0a09ed524-5f1b-4940-b2f0-4e4cd4631bf0</atom:summary>
<atom:link type="application/atom+xml;type=feed" rel="up"
href="http://cmisexample.oasis-open.org/rep1/408fb453-4a18-4103-b495e84a2a2761a0a09ed524-5f1b-4940-b2f0-4e4cd4631bf0/parents"/>
<atom:link type="application/atom+xml;type=feed" rel="http://docs.oasisopen.org/ns/cmis/link/200908/relationships" href="http://cmisexample.oasisopen.org/rep1/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0/relationships"/>
<atom:link type="application/cmisacl+xml" rel="http://docs.oasisopen.org/ns/cmis/link/200908/acl" href="http://cmisexample.oasisopen.org/rep1/408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b-4940-b2f04e4cd4631bf0/acl"/>
<cmisra:object>
<cmis:properties>
<cmis:propertyId localName="rep-cmis:objectId"
propertyDefinitionId="cmis:objectId">
<cmis:value>408fb453-4a18-4103-b495-e84a2a2761a0a09ed524-5f1b4940-b2f0-4e4cd4631bf0</cmis:value>
</cmis:propertyId>
</cmis:properties>
</cmisra:object>
</atom:entry>

9908
9909

Please also see the example documents included with the schema.

9910
9911

3.10.6.2 PUT

9912
9913

This does a replacement of the atom entry with the atom entry document specified. If read/write
properties are not included, the repository SHOULD NOT modify them.

9914
9915

The server SHOULD respond with:

9916

HTTP Status Code 200

9917

Response Body containing the updated atom entry

9918
9919

3.10.6.3 DELETE

9920
9921

This removes the policy entry. If this policy entry was discovered through a policy collection on an object,
then removePolicy() is performed rather than deleteObject() on the policy itself.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 220 of 236

9922
9923

Success HTTP code: 204

9924

3.10.7 Content Stream

9925

This is the content stream portion of the document object.

9926

CMIS Services:

9927

GET: getContentStream

9928

PUT: setContentStream

9929

DELETE: deleteContentStream

9930

Media Type: Mime/Type of resource (mime type of content stream on document)

9931

3.10.7.1 GET

9932

This returns the content stream.

9933
9934
9935

It is RECOMMENDED that HTTP Range requests are supported on this resource. It is RECOMMENDED
that HTTP compression is also supported.

9936
9937

Please see RFC2616 for more information on HTTP Range requests.

9938

3.10.7.2 PUT

9939

This does a replacement of the content stream.

9940
9941
9942

The following optional arguments may be supplied. Please see the domain model for more information:

9943
9944

overwriteFlag.
o

If not specified, this defaults to true in this binding and behaves consistent with
AtomPub.

9945
9946

Success HTTP code: 201

9947
9948
9949

Success HTTP code: 200 (with content), 204 (without content) or 201 if a new resource is created.
Please see the HTTP specification for more information.

9950
9951

Returns headers:

9952

Content-Location: URI for content stream

9953

Location: URI for content stream

9954

3.10.7.3 DELETE

9955

This removes the content stream.

9956

3.10.8 ACL Resource

9957

CMIS Services:

9958

GET: getACL

9959

PUT: applyACL

9960
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 221 of 236

9961

Media Type: application/cmisacl+xml

9962
9963

3.10.8.1 GET

9964
9965

This returns the CMIS ACL for a specified object. The client will follow the link on the atom entry to get
the CMIS ACL for that object.

9966
9967
9968
9969
9970
9971

Request:
GET /objacl/59fe373b-0348-493e-baaf-21089b596f0afd79b7bd-2579-4ad1-aea2eda89527fbef HTTP/1.1
Host: example.org

9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999

Response:
HTTP/1.1 200 Ok
Date: Mon, 19 Oct 200925 Jan 2010 10:1021:00 -07000800
Content-Length: 758
Content-Type: application/cmisacl+xml
Location: /objacl/59fe373b-0348-493e-baaf-21089b596f0afd79b7bd-2579-4ad1-aea2eda89527fbef

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<cmis:acl xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cmis="http://docs.oasisopen.org/ns/cmis/core/200908/" xmlns:cmism="http://docs.oasisopen.org/ns/cmis/messaging/200908/" xmlns:cmisra="http://docs.oasisopen.org/ns/cmis/restatom/200908/">
<cmis:permission>
<cmis:principal>
<cmis:principalId>Al Brown</cmis:principalId>
</cmis:principal>
<cmis:permission>cmis:read</cmis:permission>
<cmis:permission>cmis:write</cmis:permission>
<cmis:permission>cmis:all</cmis:permission>
<cmis:permission>publish</cmis:permission>
<cmis:direct>true</cmis:direct>
</cmis:permission>
</cmis:acl>

10000
10001

Please also see the example documents included with the schema.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 222 of 236

10002

4 Web Services Binding

10003

4.1 Overview

10004

All services and operations defined in the Domain Model are presented in the Web Services binding.

10005
10006
10007
10008
10009

The WSDL for these services reference two XSD documents. One defines elements for the primary data
types of documents, folders, relationships and policies as well as collections of these types of objects.
The second XSD defines the message formats for each of the CMIS services; the messages often refer
to the data types defined in the first XSD schema. The WSDL presents exactly the abstract services
defined in the Services section.

10010
10011

The normative CMIS Web Services binding is defined by the WSDL and XSD as well as the details given
here in this part of the CMIS specification except the examples.

10012

4.1.1 WS-I

10013

A CMIS Web Services binding MUST comply with WS-I Basic Profile 1.1 and Basic Security Profile 1.0.

10014

4.1.2 Authentication

10015
10016
10017

A CMIS Web Services binding SHOULD support WS-Security 1.1 for Username Token Profile 1.1 and
MAY also support other authentication mechanisms. A CMIS repository MAY grant access to all or a
subset of the CMIS services to unauthenticated clients.

10018

4.1.3 Content Transfer

10019
10020

A CMISAll endpoints of the Web Services binding SHOULD supportMUST be MTOM content transfers. It
MUST accept content that is base64 encoded.

10021

4.1.4 enabled.Reporting Errors

10022
10023
10024

Services MUST report errors via SOAP faults. The CMIS-Messaging.xsd defines a basic fault structure
that includes an error code and an error message and the WSDL for each service defines specific
messages that have the basic fault format.

10025

4.2 Web Services Binding Mapping

10026
10027
10028
10029
10030

The Domain Model defines all services, operations, parameters and objects of CMIS. The Web Services
binding is an exact one-to-one mapping of this definition with small exceptions that are explained in the
next section. Operations and parameters are named exactly after their counterparts in the Services
section. All rules and exceptions defined there apply to the Web Services binding. Optional parameters
and optional return values are not set if they are missing or their value is NULL.

10031

4.3 Additions to the Services section

10032

4.3.1 updateProperties and checkIn Semantics

10033
10034
10035

This binding supports partial properties updates. All properties passed to updateProperties or checkIn will
be updated to their new values. Properties that are passed without a value will be set to their default
value or un-set if no default value is defined. All others property values remain untouched.

10036

4.3.2 Content Ranges

10037
10038

This binding supports the retrieval of content ranges. The operation getContentStream accepts two
optional parameters:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 223 of 236

10039

Integer offset: The first byte of the content to retrieve. Default value is 0.

10040
10041

Integer length: The length of the range in bytes. Default value is the size of the content minus
the offset.

10042
10043
10044

If the offset value is greater than the size of the content the repository SHOULD throw a constraint
exception.

10045
10046

If offset + length is greater than the size of the content the repository should deliver the content from the
offset to the end of the content.

10047
10048

4.3.3 Extensions

10049
10050

On all input messages and some output messages exists an element called extension. This element is
used to provide vendor or repository-specific information between client and server.

10051
10052

All of the types referenced by the schema also support xs:any for vendor or repository-specific
information.

10053

4.3.4 Web Services Specific Structures

10054

This binding requires specific structures that are not part of the general CMIS schema.

10055

Please also see the example request and response documents included with the schema.

10056

4.3.4.1 cmisFaultType and cmisFault

10057
10058

cmisFaultType and cmisFault SHOULD be used to generate SOAP faults. See 4.1.4 Reporting
Errors.

10059

4.3.4.2 cmisRepositoryEntryType

10060
10061

cmisRepositoryEntryType is the return structure of getRepositories. It contains the id and the name
of a repository.

10062

4.3.4.3 cmisTypeContainer

10063

cmisTypeContainer is the return structure of getTypeDescendants. It holds a type hierarchy.

10064

4.3.4.4 cmisTypeDefinitionListType

10065
10066

cmisTypeDefinitionListType is the return structure of getTypeChildren. It contains a list of types,


the hasMoreItems flag and the numItem element.

10067
10068

4.3.4.5 cmisObjectInFolderType, cmisObjectParentsType and


cmisObjectInFolderContainerType

10069
10070
10071
10072

cmisObjectInFolderType holds, in addition to a cmisObjectType object, a path segment string. It


is used in all operations that support the includePathSegments parameter.
cmisObjectParentsType is similar but has a relative path segment string instead of a path segment.
For details about path segments and relative path segments see Part I section 2.5.3 Paths.2.1.5.3 Paths.

10073

cmisObjectInFolderContainerType contains a folder hierarchy.

10074

4.3.4.6 cmisObjectListType and cmisObjectInFolderListType

10075
10076
10077

cmisObjectListType and cmisObjectInFolderListType hold lists of cmisObjectType and


cmisObjectInFolderType structures. They also contain the hasMoreItems flag and the numItems
element that are returned by operations that return these lists.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 224 of 236

10078

4.3.4.7 cmisContentStreamType

10079

cmisContentStreamType wraps a content stream and additional information about the stream.

length

Length of the content stream in bytes.

Client to Repository

Repository to Client

SHOULD be set

SHOULD be set

SHOULD be set

MUST be set

SHOULD be set

SHOULD be set

MUST be set

MUST be set

If set it MUST be a positive number.


If the length is unknown it MUST NOT be
set.
mimeType

MIME Media Type of the content stream.


For the primary content of a document it
SHOULD match the value of the property
cmis:contentStreamMimeType.

filename

Filename of the content stream.


For the primary content of a document it
SHOULD match the value of the property
cmis:contentStreamFileName.

stream

The content stream.


MUST be present even if the content
stream has 0 bytes.

10080
10081

4.3.4.8 cmisACLType

10082
10083
10084

cmisACLType is the return structure of getACL and applyACL. It contains the current Access Control List
(ACL) of the object and the exact flag that indeciates if the ACL fully describes the permission of this
object.

10085

4.3.4.9 cmisExtensionType

10086

cmisExtensionType is a placeholder for extensions. See 4.3.3 Extensions.

10087

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 225 of 236

10088

5 IANA Considerations

10089

5.1 Content-Type Registration

10090

5.1.1 CMIS Query

10091

A CMIS Query Document, when serialized as XML 1.0, can be identified with the following media type:

10092
10093

MIME media type name: application

10094

MIME subtype name: cmisquery +xml

10095

Mandatory parameters: None

10096

Optional parameters:

10097
10098
10099
10100
10101
10102
10103
10104
10105

"charset": This parameter has semantics identical to the charset parameter of the
"application/xml" media type as specified in [RFC3023].
Encoding considerations:
Identical to those of "application/xml" as described in [RFC3023], Section 3.2.
Security considerations: As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security
considerations as described in [RFC3023], Section 10.
Interoperability considerations:
There are no known interoperability issues.

10106

Published specification: This specification.

10107

Applications that use this media type:

10108

No known applications currently use this media type.

10109

Additional information:

10110

Magic number(s):

10111

As specified for "application/xml" in [RFC3023], Section 3.2.

10112

File extension: .cmisquery

10113

Fragment identifiers:

10114
10115
10116

As specified for "application/xml" in [RFC3023], Section 5.


Base URI:
As specified in [RFC3023], Section 6.

10117

Macintosh File Type code: TEXT

10118

Person and email address to contact for further information:

10119
10120

Al Brown <albertcbrown@us.ibm.com>
OASIS CMIS TC <cmis@lists.oasis-open.org>

10121

Intended usage: COMMON

10122

Author/Change controller: IESG

10123

5.1.2 CMIS AllowableActions

10124
10125

A CMIS Allowable Actions Document, when serialized as XML 1.0, can be identified with the following
media type:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 226 of 236

10126
10127

MIME media type name: application

10128

MIME subtype name: cmisallowableactions +xml

10129

Mandatory parameters: None.

10130

Optional parameters:

10131
10132
10133
10134
10135
10136
10137
10138
10139

"charset": This parameter has semantics identical to the charset parameter of the
"application/xml" media type as specified in [RFC3023].
Encoding considerations:
Identical to those of "application/xml" as described in [RFC3023], Section 3.2.
Security considerations: As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security
considerations as described in [RFC3023], Section 10.
Interoperability considerations:
There are no known interoperability issues.

10140

Published specification: This specification.

10141

Applications that use this media type:

10142

No known applications currently use this media type.

10143

Additional information:

10144

Magic number(s):

10145

As specified for "application/xml" in [RFC3023], Section 3.2.

10146

File extension: .cmisallowableactions

10147

Fragment identifiers:

10148
10149
10150

As specified for "application/xml" in [RFC3023], Section 5.


Base URI:
As specified in [RFC3023], Section 6.

10151

Macintosh File Type code: TEXT

10152

Person and email address to contact for further information:

10153
10154

Al Brown <albertcbrown@us.ibm.com>
OASIS CMIS TC <cmis@lists.oasis-open.org>

10155

Intended usage: COMMON

10156

Author/Change controller: IESG

10157
10158

5.1.3 CMIS Tree

10159

A CMIS Tree Document, when serialized as XML 1.0, can be identified with the following media type:

10160
10161

MIME media type name: application

10162

MIME subtype name: cmistree +xml

10163

Mandatory parameters: None.

10164

Optional parameters:

10165
10166
10167

"charset": This parameter has semantics identical to the charset parameter of the "application/xml" media
type as specified in [RFC3023].
Encoding considerations:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 227 of 236

10168
10169
10170
10171
10172
10173

Identical to those of "application/xml" as described in [RFC3023], Section 3.2.


Security considerations: As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security considerations as
described in [RFC3023], Section 10.
Interoperability considerations:
There are no known interoperability issues.

10174

Published specification: This specification.

10175

Applications that use this media type:

10176
10177
10178
10179

No known applications currently use this media type.


Additional information:
Magic number(s):
As specified for "application/xml" in [RFC3023], Section 3.2.

10180

File extension: .cmistree

10181

Fragment identifiers:

10182
10183

As specified for "application/xml" in [RFC3023], Section 5.


Base URI:

10184

As specified in [RFC3023], Section 6.

10185

Macintosh File Type code: TEXT

10186

Person and email address to contact for further information:

10187

Al Brown <albertcbrown@us.ibm.com>

10188

OASIS CMIS TC <cmis@lists.oasis-open.org>

10189

Intended usage: COMMON

10190

Author/Change controller: IESG

10191
10192

5.1.4 CMIS Atom

10193

A CMIS Atom Document, when serialized as XML 1.0, can be identified with the following media type:

10194
10195

MIME media type name: application

10196

MIME subtype name: cmisatom +xml

10197

Mandatory parameters: None.

10198

Optional parameters:

10199
10200

"charset": This parameter has semantics identical to the charset parameter of the "application/xml" media
type as specified in [RFC3023].

10201
10202

type: This parameter has semantics identical to the type parameter of the application/atom+xml as
specified in [RFC4287]

10203
10204
10205
10206
10207
10208
10209
10210

Encoding considerations:
Identical to those of "application/xml" as described in [RFC3023], Section 3.2.
Security considerations: As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security considerations as
described in [RFC3023], Section 10.
Interoperability considerations:
There are no known interoperability issues.
Published specification: This specification.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 228 of 236

10211
10212

Applications that use this media type:


No known applications currently use this media type.

10213

Additional information:

10214

Magic number(s):

10215

As specified for "application/xml" in [RFC3023], Section 3.2.

10216

File extension: .cmisatom

10217

Fragment identifiers:

10218
10219

As specified for "application/xml" in [RFC3023], Section 5.


Base URI:

10220

As specified in [RFC3023], Section 6.

10221

Macintosh File Type code: TEXT

10222

Person and email address to contact for further information:

10223

Al Brown <albertcbrown@us.ibm.com>

10224

OASIS CMIS TC <cmis@lists.oasis-open.org>

10225

Intended usage: COMMON

10226

Author/Change controller: IESG

10227
10228

Please see section 3.1.1 on why this media type is needed above the Atom Media Type.

10229

5.1.5 CMIS ACL

10230

A CMIS ACL Document, when serialized as XML 1.0, can be identified with the following media type:

10231
10232

MIME media type name: application

10233

MIME subtype name: cmisacl +xml

10234

Mandatory parameters: None.

10235

Optional parameters:

10236
10237
10238
10239
10240
10241
10242
10243
10244

"charset": This parameter has semantics identical to the charset parameter of the "application/xml" media
type as specified in [RFC3023].
Encoding considerations:
Identical to those of "application/xml" as described in [RFC3023], Section 3.2.
Security considerations: As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security considerations as
described in [RFC3023], Section 10.
Interoperability considerations:
There are no known interoperability issues.

10245

Published specification: This specification.

10246

Applications that use this media type:

10247

No known applications currently use this media type.

10248

Additional information:

10249

Magic number(s):

10250

As specified for "application/xml" in [RFC3023], Section 3.2.

10251

File extension: .cmisacl

10252

Fragment identifiers:
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 229 of 236

10253
10254

As specified for "application/xml" in [RFC3023], Section 5.


Base URI:

10255

As specified in [RFC3023], Section 6.

10256

Macintosh File Type code: TEXT

10257

Person and email address to contact for further information:

10258

Al Brown <albertcbrown@us.ibm.com>

10259

OASIS CMIS TC <cmis@lists.oasis-open.org>

10260

Intended usage: COMMON

10261

Author/Change controller: IESG

10262

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 230 of 236

10263

6 Conformance

10264
10265

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level
requirements defined within this specification.

10266

Specification:

10267
10268
10269
10270
10271
10272

This specification references a number of other specifications (see the table above). In order to
comply with this specification, an implementation MUST implement the portions of referenced
specifications necessary to comply with the required provisions of this specification. Additionally,
the implementation of the portions of the referenced specifications that are specifically cited in
this specification MUST comply with the rules for those portions as established in the referenced
specification.

10273
10274
10275

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level
requirements defined within this specification.

10276
10277
10278

Domain Model:

10279

Normative text within this specification takes precedence over the CMIS Core XML Schema.

10280
10281
10282

That is, the normative text in this specification further constrains the schemas and/or WSDL that
are part of this specification; and this specification contains further constraints on the elements
defined in referenced schemas.

10283
10284

Clients:

10285
10286

Client implementations MAY implement either Restful AtomPub Binding or the Web
Services Binding.

10287
10288

Repositories:

10289

Repositories MUST implement the following CMIS protocol bindings:

10290

Restful AtomPub Binding

10291

Web Services Binding

10292
10293

Rest Binding:

10294
10295
10296
10297
10298
10299

This specification references a number of other specifications. In order to comply with this
specification, an implementation MUST implement the portions of referenced specifications
necessary to comply with the required provisions of this specification. Additionally, the
implementation of the portions of the referenced specifications that are specifically cited in this
specification MUST comply with the rules for those portions as established in the referenced
specification.

10300
10301
10302
10303

Additionally normative text within this specification takes precedence over the CMIS RestAtom
XML Schema. That is, the normative text in this specification further constrains the schemas
and/or WSDL that are part of this specification; and this specification contains further constraints
on the elements defined in referenced schemas.

10304
10305

The CMIS RestAtom XML takes precedence over any examples or non-normative outlines
included either in this document or as standalone examples.
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 231 of 236

10306
10307

Web Services Binding:

10308
10309
10310
10311

Normative text within this specification takes precedence over the CMIS Messaging XML and
CMIS WSDL. That is, the normative text in this specification further constrains the schemas and
WSDL that are part of this specification; and this specification contains further constraints on the
elements defined in referenced schemas.

10312
10313

The CMIS Messaging XML and CMIS WSDL takes precedence over any examples or nonnormative outlines included either in this document or as standalone examples.

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 232 of 236

10314

A. Acknowledgements

10315
10316

The following individuals have participated in the creation of this specification and are gratefully
acknowledged:

10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366

Participants:
Philippe Allart, Adullact
Florian Bartels, fme AG
Fred Boiscuvier, Exalead, Inc.
Al Brown, IBM
Jay Brown, IBM
Mark Carlson, Sun Microsystems
Derek Carr, IBM
David Caruana, Alfresco Software
Eric Chan, Oracle Corporation
Sameer Charles, Magnolia International AG
David Choy, EMC Corporation
Scott Conroy, Individual
Cornelia Davis, EMC Corporation
Kevin Dorr, Flatirons Solutions Corporation
Jason Dubreuil, Fidelity Investments
Betsy Fanning, AIIM
Steffen Frederiksen, Content Technologies ApS
Stephan Friedl, Quark
Dustin Friesenhahn, Microsoft Corporation
Gary Gershon, Individual
Paul Goetz, SAP AG
Gregory Grefenstette, Exalead, Inc.
Florent Guillaume, Nuxeo
Ethan Gur-esh, Microsoft Corporation
Martin Hermes, SAP AG
Jens Huebel, Open Text Corporation
David Izatt, Structured Software Systems Limited (3SL)
Gershon Janssen, Individual
Volker John, Saperion AG
Shane Johnson, Citytech, Inc.
Christophe Kijewska, Adullact
Ijonas Kisselbach, Vamosa
Mark Klamerus, Individual
Stephan Klevenz, SAP AG
Boris Kraft, Magnolia International AG
Alison Macmillan, Oracle Corporation
Michael Marth, Day Software
Mary McRae, OASIS
Ryan McVeigh, Oracle Corporation
Juerg Meier, fme AG
Gregory Melahn, IBM
Pat Miller, Microsoft Corporation
Florian MuellerMller, Open Text Corporation
Thomas Mueller, Day Software
John Newton, Alfresco Software
David Nuescheler, Day Software
Conleth O'Connell, Vignette Corporation
Dominique Pfister, Day Software
cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 233 of 236

10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405

Peeter Piegaze, Day Software


David Pitfield, Oracle Corporation
Norrie Quinn, EMC Corporation
Craig Randall, Adobe Corporation
Celso Rodriguez, ASG Software Solutions
Steve Roth, Oracle Corporation
Patrick Ryan, IBM
Angela Schreiber, Day Software
Spencer Shearer, Exalead, Inc.
Madi Solomon, Pearson PLC
Wojciech Specht, fme AG
Maik Uhlenberg, fme AG
Oliver Walthard, Day Software
Patrick Ward, Booz Allen Hamilton
Original Authors of the initial contribution:
Al Brown, IBM
David Choy, EMC
Cornelia Davis, EMC
Ethan Gur-Esh, Microsoft
Original Acknowledgements of the initial contribution:
Al Brown, IBM
David Caruana, Alfresco
Derek Carr, IBM
David Choy, EMC
Cornelia Davis, EMC
Paul Goetz, SAP
Ethan Gur-Esh, Microsoft
Martin Hermes, SAP
Jens Hubel, OpenText
Jay Brown, IBM
Ryan McVeigh, Oracle
Gregory Melahn, IBM
Florian MuellerMller, OpenText
John Newton, Alfresco
Norrie Quinn, EMC
Steve Roth, Oracle
Craig Randall, EMC

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 234 of 236

10406

B. Non-Normative Text

10407

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 235 of 236

10408

C. Revision History

10409
Revision

Date

Editor

Changes Made

1.0

01/11/2010

Al
Brown

First specification

10410

cmis-spec-v1.0
Copyright OASIS 2010. All Rights Reserved.

11 January 2010
Page 236 of 236

Potrebbero piacerti anche