DOCX

Content Management Interoperability Services (CMIS) Version 11

By Tracy Martinez,2014-08-09 11:45
6 views 0
Content Management Interoperability Services (CMIS) Version 11

    Content Management Interoperability Services (CMIS) Version 1.1 Working Draft 01

    05 April 2011

    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

    system's 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 Working Draft (WD) has been produced by one or more TC Members; it has not yet been

    voted on by the TC or approved as a Committee Draft (Committee Specification Draft or a

    Committee Note Draft). The OASIS document Approval Process begins officially with a TC vote

    to approve a WD as a Committee Draft. A TC may approve a Working Draft, revise it, and re-

    approve it any number of times as a Committee Draft.

Copyright ? OASIS Open 2011. 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.

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 1 of 230

Table of Contents

    1 Introduction ....................................................................................................................................... 5 1.1 Terminology .................................................................................................................................. 5 1.2 Normative References ................................................................................................................... 5 1.3 Non-Normative References............................................................................................................ 5 2 Section .............................................................................................................................................. 6 2.1 Data Model .................................................................................................................................... 6 2.1.1 Repository .............................................................................................................................. 6 2.1.2 Object .................................................................................................................................... 9 2.1.3 Object-Type .......................................................................................................................... 11 2.1.4 Document Object .................................................................................................................. 19 2.1.5 Folder Object ........................................................................................................................ 29 2.1.6 Relationship Object .............................................................................................................. 37 2.1.7 Policy Object ........................................................................................................................ 42 2.1.8 Access Control ..................................................................................................................... 47 2.1.9 Versioning ............................................................................................................................ 56 2.1.10 Query ................................................................................................................................. 60 2.1.11 Change Log ........................................................................................................................ 72 2.2 Services ...................................................................................................................................... 73 2.2.1 Common Service Elements .................................................................................................. 74 2.2.2 Repository Services .............................................................................................................. 81 2.2.3 Navigation Services .............................................................................................................. 84 2.2.4 Object Services .................................................................................................................... 90 2.2.5 Multi-filing Services ............................................................................................................. 103 2.2.6 Discovery Services ............................................................................................................. 104 2.2.7 Versioning Services ............................................................................................................ 106 2.2.8 Relationship Services ......................................................................................................... 110 2.2.9 Policy Services ................................................................................................................... 111 2.2.10 ACL Services.................................................................................................................... 113 3 Restful AtomPub Binding ............................................................................................................... 115 3.1 Overview ................................................................................................................................... 115 3.1.1 Namespaces ...................................................................................................................... 115 3.1.2 Authentication..................................................................................................................... 115 3.1.3 Response Formats ............................................................................................................. 115 3.1.4 Optional Arguments ............................................................................................................ 116 3.1.5 Errors and Exceptions ........................................................................................................ 116 3.1.6 Renditions .......................................................................................................................... 116 3.1.7 Content Streams ................................................................................................................ 116 3.1.8 Paging of Feeds ................................................................................................................. 116 3.1.9 Services not Exposed ......................................................................................................... 116 3.2 HTTP......................................................................................................................................... 117 3.2.1 Entity Tag ........................................................................................................................... 117 3.2.2 HTTP Range ...................................................................................................................... 118 cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 2 of 230

     3.2.3 HTTP OPTIONS Method .................................................................................................... 1183.2.4 HTTP Status Codes ............................................................................................................ 118 3.3 Media Types .............................................................................................................................. 119 3.3.1 CMIS Atom ......................................................................................................................... 119 3.3.2 CMIS Query ....................................................................................................................... 120 3.3.3 CMIS Allowable Actions ...................................................................................................... 120 3.3.4 CMIS Tree .......................................................................................................................... 121 3.3.5 CMIS ACL .......................................................................................................................... 126 3.4 Atom Extensions for CMIS ......................................................................................................... 126 3.4.1 Atom Element Extensions ................................................................................................... 126 3.4.2 Attributes ............................................................................................................................ 128 3.4.3 CMIS Link Relations ........................................................................................................... 128 3.5 Atom Resources ........................................................................................................................ 133 3.5.1 Feeds ................................................................................................................................. 133 3.5.2 Entries ................................................................................................................................ 133 3.6 AtomPub Service Document (Repository) .................................................................................. 136 3.6.1 URI Templates ................................................................................................................... 137 3.6.2 HTTP Methods ................................................................................................................... 142 3.7 Service Collections .................................................................................................................... 142 3.7.1 Root Folder Collection ........................................................................................................ 142 3.7.2 Query Collection ................................................................................................................. 143 3.7.3 Checked Out Collection ...................................................................................................... 145 3.7.4 Unfiled Collection................................................................................................................ 150 3.7.5 Types Children Collection ................................................................................................... 154 3.8 Collections ................................................................................................................................. 155 3.8.1 Relationships Collection ..................................................................................................... 155 3.8.2 Folder Children Collection................................................................................................... 158 3.8.3 Policies Collection .............................................................................................................. 167 3.9 Feeds ........................................................................................................................................ 170 3.9.1 Object Parents Feed ........................................................................................................... 170 3.9.2 Changes ............................................................................................................................. 173 3.9.3 Folder Descendants ........................................................................................................... 179 3.9.4 Folder Tree......................................................................................................................... 185 3.9.5 AllVersions Feed ................................................................................................................ 189 3.9.6 Type Descendants Feed ..................................................................................................... 191 3.10 Resources ............................................................................................................................... 200 3.10.1 Type Entry ........................................................................................................................ 200 3.10.2 Document Entry ................................................................................................................ 202 3.10.3 Document Private Working Copy (PWC) Entry .................................................................. 205 3.10.4 Folder Entry ...................................................................................................................... 208 3.10.5 Relationship Entry ............................................................................................................ 210 3.10.6 Policy Entry ...................................................................................................................... 213 3.10.7 Content Stream ................................................................................................................ 215 3.10.8 ACL Resource .................................................................................................................. 216 cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 3 of 230

     Web Services Binding ................................................................................................................... 218 4

    4.1 Overview ................................................................................................................................... 218

    4.1.1 WS-I ................................................................................................................................... 218

    4.1.2 Authentication..................................................................................................................... 218

    4.1.3 Content Transfer ................................................................................................................ 218

    4.1.4 Reporting Errors ................................................................................................................. 218 4.2 Web Services Binding Mapping ................................................................................................. 218 4.3 Additions to the Services section ............................................................................................... 218

    4.3.1 updateProperties and checkIn Semantics ........................................................................... 218

    4.3.2 Content Ranges ................................................................................................................. 219

    4.3.3 Extensions.......................................................................................................................... 219

    4.3.4 Web Services Specific Structures ....................................................................................... 219 5 IANA Considerations ..................................................................................................................... 221 5.1 Content-Type Registration ......................................................................................................... 221

    5.1.1 CMIS Query ....................................................................................................................... 221

    5.1.2 CMIS AllowableActions ....................................................................................................... 221

    5.1.3 CMIS Tree .......................................................................................................................... 222

    5.1.4 CMIS Atom ......................................................................................................................... 223

    5.1.5 CMIS ACL .......................................................................................................................... 224 6 [#] Conformance ............................................................................................................................ 226 A. Acknowledgements ...................................................................................................................... 228 B. Non-Normative Text ..................................................................................................................... 229 C. Revision History ........................................................................................................................... 230

cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 4 of 230

1 1 Introduction

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

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

    11 The key words “MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD

    12 NOT, RECOMMENDED, MAY, and OPTIONAL” in this document are to be interpreted as described 13 in 错误;未找到引用源。[RFC2119].

    14 1.2 Normative References

    15 [RFC4287] M. Nottingham, R. Sayre, Atom Syndication Format,

    16 http://www.ietf.org/rfc/rfc4287.txt, December 2005

    17 [RFC5023] J. Gregorio, B. de hOra, Atom Publishing Protocol,

    18 http://www.ietf.org/rfc/rfc5023.txt, October 2007

    19 [RFC2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, 20 Hypertext Transfer Protocol --HTTP/1.1, http://www.ietf.org/rfc/rfc2616.txt, June

    21 1999

    22 [RFC2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels,

    23 http://www.ietf.org/rfc/rfc2119.txt, March 1997

    24 [RFC4918] L. Dusseault, HTTP Extensions for Web Distributed Authoring and Versioning 25 (WebDAV), June 2007

    26 [RFC3986] T. Berners-Lee, R. Fielding, L. Masinter, Unified Resource Identifier, January

    27 2005

    28 [ID-Brown] J. Reschke Editor, A. Brown, G. Clemm, Link Relation Types for Simple Version

    29 Navigation between Web Resources, http://www.ietf.org/id/draft-brown-

    30 versioning-link-relations-07.txt, 2010

    31 [ID-WebLinking] M. Nottingham, Web Linking, http://tools.ietf.org/id/draft-nottingham-http-link-32 header-07.txt, 2010

    33 1.3 Non-Normative References

    34 [Reference] [Full reference citation]

    35

    36

    37

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 5 of 230

38 2 Section

    39 2.1 Data Model

    40 CMIS provides an interface for an application to access a Repository. To do so, CMIS specifies a core

    41 data model that defines the persistent information entities that are managed by the repository, and

    42 specifies a set of basic services that an application can use to access and manipulate these entities. In 43 accordance with the CMIS objectives, this data model does not cover all the concepts that a full-function

    44 ECM repository typically supports. Specifically, transient entities (such as programming interface objects), 45 administrative entities (such as user profiles), and extended concepts (such as compound or virtual 46 document, work flow and business process, event and subscription) are not included.

    47 However, when an application connects to a CMIS service endpoint, the same endpoint MAY provide 48 access to more than one CMIS repository. (How an application obtains a CMIS service endpoint is 49 outside the scope of CMIS. How the application connects to the endpoint is a part of the protocol that the 50 application uses.) An application MUST use the CMIS "Get Repositories" service (getRepositories) to

    51 obtain a list of repositories that are available at that endpoint. The Repository Identity MUST uniquely 52 identify an available repository at this service endpoint. Both the repository name and the repository 53 identity are opaque to CMIS. Aside from the "Get Repositories" service, all other CMIS services are 54 single-repository-scoped, and require a Repository Identity as an input parameter. In other words, except 55 for the "Get Repositories" service, multi-repository and inter-repository operations are not supported by 56 CMIS.

    57 2.1.1 Repository

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

    60 2.1.1.1 Optional Capabilities

    61 Commercial ECM repositories vary in their designs. Moreover, some repositories are designed for a 62 specific application domain and may not provide certain capabilities that are not needed for their targeted 63 domain. Thus, a repository implementation may not necessarily be able to support all CMIS capabilities. 64 A few CMIS capabilities are therefore "optional" for a repository to be compliant. A repository's support for 65 each of these optional capabilities is discoverable using the getRepositoryInfo service. The following is

    66 the list of these optional capabilities. All capabilities are "Boolean" (i.e. the Repository either supports the 67 capability entirely or not at all) unless otherwise noted.

    68

    69 Navigation Capabilities:

    70 capabilityGetDescendants

    71 Ability for an application to enumerate the descendants of a folder via the getDescendants service. 72 See section: 2.2.3.2 getDescendants

    73

    74 capabilityGetFolderTree

    75 Ability for an application to retrieve the folder tree via the getFolderTree service. 76 See section: 2.2.3.3 getFolderTree

    77

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 6 of 230

78 Object Capabilities:

    79 capabilityContentStreamUpdatability (enumCapabilityContentStreamUpdates)

    80 Indicates the support a repository has for updating a document's content stream. Valid values 81 are:

    82 ; none: The content stream may never be updated.

    83 ; anytime: The content stream may be updated any time.

    84 pwconly: The content stream may be updated only when checked out. The abbreviation PWC is 85 described in section 0

    86 ; Versioning.

    87 See Section: 2.1.4.1 Content Stream

    88

    89 capabilityChanges (enumCapabilityChanges)

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

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

    93 ; objectidsonly: The change log can return only the ObjectIDs for changed objects in 94 the repository and an indication of the type of change, not details of the actual change. 95 ; properties: The change log can return properties and the ObjectID for the changed 96 objects

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

    99 See Section: 2.1.11 Change Log

    100

    101 capabilityRenditions (enumCapabilityRendition)

    102 Indicates whether or not the repository exposes renditions of document or folder objects. 103 ; none: The repository does not expose renditions at all.

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

    106 Filing Capabilities:

    107 capabilityMultifiling

    108 Ability for an application to file a document or other file-able object in more than one folder 109 See Section: 2.1.5 Folder Object

    110

    111 capabilityUnfiling

    112 Ability for an application to leave a document or other file-able object not filed in any folder 113 See Section: 2.1.5 Folder Object

    114

    115 capabilityVersionSpecificFiling

    116 Ability for an application to file individual versions (i.e., not all versions) of a document in a folder 117 See Section: 0

    118 Versioning

    119

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 7 of 230

120 Versioning Capabilities:

    121 capabilityPWCUpdatable

    122 Ability for an application to update the "Private Working Copy" of a checked-out document 123 See Section: 0

    124 Versioning

    125

    126 capabilityPWCSearchable

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

    129 See Section: 0

    130 Versioning

    131

    132 capabilityAllVersionsSearchable

    133 Ability of the Repository to include all versions of document.If False, typically either the latest or 134 the latest major version will be searchable.

    135 See Section: 0

    136 Versioning

    137

    138 Query Capabilities:

    139 capabilityQuery (enumCapabilityQuery)

    140 Indicates the types of queries that the Repository has the ability to fulfill. Query support levels are: 141 ; none: No queries of any kind can be fulfilled.

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

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

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

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

    152 See Section: 2.1.10 Query

    153

    154 capabilityJoin (enumCapabilityJoin)

    155 Indicates the types of JOIN keywords that the Repository can fulfill in queries. Support levels are: 156 ; none: The repository cannot fulfill any queries that include any JOIN clauses.

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

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

    161 See Section: 2.1.10 Query

    162

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 8 of 230

163 ACL Capabilities:

    164 capabilityACL (enumCapabilityACL)

    165 Indicates the level of support for ACLs by the repository

    166 ; none: The repository does not support ACL services

    167 ; discover: The repository supports discovery of ACLs (getACL and other services) 168 ; manage: The repository supports discovery of ACLs AND applying ACLs (getACL and 169 applyACL services)

    170 See Section: 2.8 Access Control

    171 2.1.1.2 Implementation Information

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

    177 2.1.2 Object

    178 The entities managed by CMIS are modeled as typed Objects. There are four base types of objects:

    179 Document Objects, Folder Objects, Relationship Objects, and Policy Objects.

    180 ; A document object represents a standalone information asset. Document objects are the

    181 elementary entities managed by a CMIS repository.

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

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

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

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

    196 Every CMIS object has an opaque and immutable Object Identity (ID), which is assigned by the

    197 repository when the object is created. An ID uniquely identifies an object within a repository regardless of 198 the type of the object. Repositories SHOULD assign IDs that are "permanent" that is, they remain

    199 unchanged during the lifespan of the identified objects, and they are never reused or reassigned after the 200 objects are deleted from the repository.

    201 Every CMIS object has a set of named, but not explicitly ordered, Properties. (However, a Repository

    202 SHOULD always return object properties in a consistent order.) Within an object, each property is 203 uniquely identified by its property definition id.

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 9 of 230

204 In addition, a document object MAY have a Content-Stream, which may be used to hold a raw digital

    205 asset such as an image or a word-processing document. A repository MUST specify, in each object-type 206 definition, whether document objects of that type MAY, MUST, or MUST NOT have a content-stream. A 207 document MAY also have one or more Renditions associated with it. A rendition can be a thumbnail or

    208 an alternate representation of the content stream.

    209 Document or folder objects MAY have one Access Control List (ACL), which controls access to the

    210 document or folder. A policy object may also control access to the document or folder. An ACL 211 represents a list of Access Control Entries (ACEs). An ACE in turn represents one or more permissions

    212 being granted to a principal (a user, group, role, or something similar).

    213 The notion of localization of the objects in the data model is entirely repository specific. 214 CMIS objects MAY expose additional information, such as vendor-specific workflow data, beyond the 215 attributes described above. In this respect, the data model can be extended as desired. This specification 216 does not standardize such extensions.

    217 2.1.2.1 Property

    218 A property MAY hold zero, one, or more typed data value(s). Each property MAY be single-valued or

    219 multi-valued. A single-valued property contains a single data value, whereas a multi-valued property 220 contains an ordered list of data values of the same type. The ordering of values in a multi-valued property 221 MAY be preserved by the repository.

    222 A property, either single-valued or multi-valued, MAY be in a "not set" state. CMIS does not support "null" 223 property value.

    224 If a multi-valued property is not in a "not set" state, its property value MUST be a non-empty list of 225 individual values. Each individual value in the list MUST NOT be in a "not set" state and MUST conform to 226 the property's property-type.

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

    230 Every property is typed. The Property-type defines the data type of the data value(s) held by the property. 231 CMIS specifies the following Property-types. They include the following data types defined by "XML 232 Schema Part 2: Datatypes Second Edition" (W3C Recommendation, 28 October 2004,

    233 http://www.w3.org/TR/xmlschema-2/):

    234 ; string (xsd:string)

    235 ; boolean (xsd:boolean)

    236 ; decimal (see section 2.1.3.3.5 Attributes specific to Decimal Object-Type Property Definitions) 237 ; integer (xsd:integer)

    238 ; datetime (xsd:dateTime and see section 2.1.3.3.5 Attributes specific to Decimal Object-Type 239 Property Definitions)

    240 ; uri (xsd:anyURI)

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

    242 ; id

    243 ; html

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

    245 All properties MUST supply a String queryName attribute which is used for query and filter operations on

    246 object-types. This is an opaque String with limitations. This string SHOULD NOT contain any characters 247 that negatively interact with the BNF grammar.

    cmis-spec-v1.1 Working Draft 01 5 April 2011 Copyright ? OASIS Open 2011. All Rights Reserved. Intended as a Standards Track Work Product Page 10 of 230

Report this document

For any questions or suggestions please email
cust-service@docsford.com