OASIS Specification Template - Name

5 downloads 354 Views 1MB Size Report
Sep 23, 2009 - http://docs.oasis-open.org/cmis/CMIS/v1.0/cd04/cmis-spec-v1.0.html ...... The attributes on the default v
Content Management Interoperability Services (CMIS) Version 1.0 Committee Draft 04 23 September 2009 Specification URIs: This 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 Previous Version: N/A 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 Muller, 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/

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 1 of 226

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 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 Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s 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® 2009. All Rights Reserved.

23 September 2009 Page 2 of 226

Notices Copyright © OASIS® 2009. 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® 2009. All Rights Reserved.

23 September 2009 Page 3 of 226

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 ("

2306

[ "," ] ")"

2307

::= { IN_FOLDER | IN_TREE } “(“ [ “,” ] “)”

2308

::= ORDER BY [ { “,” }… ]

2309

::= [ ASC | DESC ]

2310

::= cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 66 of 226

2311

::=

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

2312

::= !! This MUST be the name of a single-valued property,

2313

or an alias for a scalar output value.

2314

::=

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

2315

::=

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

2316

::=

!! As defined by queryName attribute.

2317

::=

!! As defined by SQL-92 grammar.

2318

::=

!! As defined by SQL-92 grammar.

2319 2320

!! This is full-text search criteria.

2321

::= { OR }

2322

::= { }

2323

::= ['-']

2324

::= |

2325

::= {}

2326

::= { }

2327

::= {}

2328

::= -

2329

::= ' '

2330

::= !! Any character

2331 2332

::= TIMESTAMP

2333

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

2334

::= TRUE | FALSE | true | false

2335

::= ‘”’ | “’”

2336

2.1.10.2.2 SELECT Clause

2337

The SELECT clause MUST contain exactly one of the following:

2338



2339 2340 2341 2342 2343

A comma separated list of one or more column names. o



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.

2344 2345

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.

2346

2.1.10.2.3 FROM Clause

2347 2348

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

2349 2350

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

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 67 of 226

2351

2.1.10.2.3.1

Join Support

2352 2353

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

2354 2355



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

2356 2357



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

2358 2359



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

2360 2361

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.

2362 2363

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

2364

2.1.10.2.4 WHERE Clause

2365

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

2366 2367

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.

2368 2369

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

2370

2.1.10.2.4.1

2371 2372 2373

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

2374 2375 2376

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.

2377 2378

2379

Supported Operators:

2380

Supported Literal:

2381 2382

String (Single)

2383

Supported Operators: =, , [NOT] LIKE

2384

Supported Literal: String

2385 2386

String (IN)

2387

Supported Operators: [NOT] IN

2388

Supported Literal: List of Strings

2389 2390

Decimal

2391

Supported Operators: =, , =

2392

Supported Literal: Decimal

2393 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 68 of 226

2394

Decimal (IN)

2395

Supported Operators: [NOT] IN

2396

Supported Literal: List of Decimal

2397 2398

Integer

2399

Supported Operators: =, , =

2400

Supported Literal: Integer

2401 2402

Integer (IN)

2403

Supported Operators: [NOT] IN

2404

Supported Literal: List of Integer

2405 2406

Boolean

2407

Supported Operators: =

2408

Supported Literal:

2409 2410

DateTime

2411

Supported Operators: =, , =*

2412

Supported Literal:

2413

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

2414 2415

DateTime (IN)

2416

Supported Operators: [NOT] IN

2417

Supported Literal: List of ’s

2418 2419

ID

2420

Supported Operators: =,

2421

Supported Literal: String

2422 2423

ID (IN)

2424

Supported Operators: [NOT] IN

2425

Supported Literal: List of strings

2426 2427

URI

2428

Supported Operators: =,

2429

Supported Literal: String

2430 2431

URI (IN)

2432

Supported Operators: [NOT] IN

2433

Supported Literal: List of strings

2434 2435

URI cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 69 of 226

2436

Supported Operators: [NOT] LIKE

2437

Supported Literal: String

2438 2439

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

2440 2441 2442

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.

2443 2444 2445

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

2446

2.1.10.2.4.2

2447 2448

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.

2449

2.1.10.2.4.2.1 Multi-valued column references

2450

BNF grammar structure: ,

2451 2452 2453



Multi-valued property support (SQL-92 Extension)

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

2454

2.1.10.2.4.2.2

2455 2456 2457 2458 2459

The SQL-92 production rule for is extended to accept a multi-valued property in place of a
. This operation is restricted to equality tests only.

2460

The SQL-92 is restricted to ANY only.

2461 2462

The SQL-92 is restricted to a literal only.

is not supported in CMIS-SQL.

2463 2464 2465 2466

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 )

2467

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

2468

2.1.10.2.4.2.3 IN/ANY Predicate

2469

BNF grammar structure:

2470 2471 2472 2473 2474 2475 2476 2477 2478

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 property’s 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® 2009. All Rights Reserved.

23 September 2009 Page 70 of 226

2479 2480

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

2481

Example:

2482 2483 2484 2485

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

2486

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

2487

2.1.10.2.4.3

CONTAINS() predicate function (CMIS-SQL Extension)

2488

BNF grammar structure:: CONTAINS ( [ ,] )

2489 2490

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

2491

Inputs:

2492 2493 2494 2495 2496 2497 2498

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.

2499 2500 2501 2502 2503 2504 2505 2506

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

2507

Terms separated by whitespace are AND’ed together.

2508

Terms separated by “OR” are OR’ed together

2509

Implicit “AND” has higher precedence than “OR”

2510 2511

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.

Within a word or phrase, each double quote must also be escaped by a preceding backslash “\” Return value:

2512

The predicate returns a Boolean value.

2513 2514

The predicate MUST return TRUE if the object is considered by the repository as “relevant” with respect to the given parameter.

2515 2516

The predicate MUST return FALSE if the object is considered by the repository as not “relevant” with respect to the given parameter.

2517 2518 2519 2520 2521 2522

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. 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. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 71 of 226

2523

2.1.10.2.4.4

SCORE() predicate function

2524

BNF grammar structure: SCORE ()

2525 2526

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

2527

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

2528

Return value:

2529

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

2530 2531

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.

2532 2533

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.

2534

Constraints:

2535 2536

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

2537 2538

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.

2539 2540

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.

2541 2542 2543

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.

2544

2.1.10.2.4.5

IN_FOLDER() predicate function

2545

BNF grammar structure: IN_FOLDER( [ , ] )

2546 2547

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 .

2548

Inputs:

2549 2550 2551 2552 2553 2554 2555

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.

2556

2557

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

2558 2559 2560 2561 2562

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

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 72 of 226

2563

2.1.10.2.4.6

IN_TREE() predicate function

2564

BNF grammar structure: IN_TREE( [ , ] )

2565 2566

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 .

2567

Inputs:

2568 2569 2570 2571 2572 2573 2574

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.

2575

2576

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

2577 2578 2579 2580 2581

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

2582

2.1.10.2.5 ORDER BY Clause

2583

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

2584 2585

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.

2586

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

2587

Collation rules for the ORDER BY clause are repository specific.

2588

2.1.10.3 Escaping

2589 2590

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:

2591

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

2592

2. \’ will represent a single-quote(‘) character

2593

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

2594

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

2595

5. All other instances of a \ are errors.

2596

2.1.11 Change Log

2597 2598 2599 2600 2601

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).

2602

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

2603 2604

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® 2009. All Rights Reserved.

23 September 2009 Page 73 of 226

2605

2.1.11.1 Completeness of the Change Log

2606 2607 2608 2609

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

2610 2611 2612 2613

However, repositories MUST ensure that if an application requests the entire contents of the repository’s 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.)

2614 2615

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.

2616

2.1.11.2 Change Log Token

2617 2618

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.

2619

2.1.11.2.1 “Latest Change Token” repository information

2620 2621 2622

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.

2623 2624

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.

2625

2.1.11.3 Change Event

2626 2627

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

2628 2629

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

2630



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

2631



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

2632

o

created: The object was created.

2633

o

updated: The object was updated.

2634

o

deleted: The object was deleted

2635

o

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

2636 2637 2638 2639



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.

2640 2641

2.2 Services

2642 2643

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

2644 2645

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.

2646 2647

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

23 September 2009 Page 74 of 226

2648

2.2.1 Common Service Elements

2649

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

2650

2.2.1.1 Paging

2651 2652

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:

2653

Input Parameters:

2654 2655



(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.

2656 2657



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

2658

Output Parameters:

2659 2660 2661 2662



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).

2663 2664 2665 2666



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.

2667 2668 2669

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.

2670

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

2671 2672

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

2673

2.2.1.2 Retrieving additional information on objects in CMIS service calls

2674 2675 2676

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.

2677 2678

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

2679

• Properties (retrieves a subset instead of additional information)

2680

• Relationships

2681

• Renditions

2682

• ACLs

2683

• AllowableActions

2684 2685 2686

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

2687

2.2.1.2.1 Properties

2688 2689 2690

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.

2691

Optional Input Parameter: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 75 of 226

2692



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

2693

o

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

2694 2695

o

A comma-delimited list of property definition Query Names: The properties listed MUST be returned.

2696

o

“*” : All properties MUST be returned for all objects.

2697

Repositories SHOULD return only the properties specified in the property filter.

2698

2.2.1.2.2 Relationships

2699

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

2700

Optional Input Parameter:

2701 2702



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

2703

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

2704 2705

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

2706 2707

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

2708 2709

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

2710 2711

Output Parameter for each object: •

Relationships: A collection of the relationship objects.

2712

2.2.1.2.3 Policies

2713

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

2714

Optional Input Parameter:

2715 2716 2717 2718

• 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: • Policies: A collection of the policy objects.

2719

2.2.1.2.4 Renditions

2720

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

2721

Optional Input Parameter:

2722 2723



2724 2725 2726

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: •

Renditions: The set of renditions.

2727

2.2.1.2.4.1 Rendition Filter Grammar

2728 2729

The Rendition Filter grammar is defined as follows: ::= | |

2730

::= | ','

2731

::= |

2732

::= cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 76 of 226

2733

::= '/'

2734

::=

2735

::= |

2736

::= /* any char except whitespace */

2737

::= '*'

2738

::= 'cmis:none'

2739

An inclusion pattern allows:

2740

• Wildcard : include all associated Renditions

2741 2742

• Comma-separated list of Rendition kinds or mimetypes : include only those Renditions that match one of the specified kinds or mimetypes

2743

• cmis:none: (Default) exclude all associated Renditions

2744

Examples:

2745

• * (include all Renditions)

2746

• cmis:thumbnail (include only Thumbnails)

2747

• Image/* (include all image Renditions)

2748

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

2749

• cmis:none (exclude all Renditions)

2750

2.2.1.2.5 ACLs

2751

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

2752

Optional Input Parameter:

2753 2754 2755 2756



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: •

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

2757

2.2.1.2.6 Allowable Actions

2758

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

2759

Optional Input Parameter:

2760 2761 2762 2763



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.

2764

2.2.1.3 Change Tokens

2765 2766 2767

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.

2768 2769 2770 2771 2772

If a Repository provides values for the ChangeLogToken property for an Object, then all invocations of the “update” methods on that object (updateProperties, setContentStream, deleteContentStream) MUST provide the value of the changeLogToken property as an input parameter, and the Repository MUST throw an updateConflictException if the value specified for the changeLogToken does NOT match the changeLogToken value for the object being updated.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 77 of 226

2773

2.2.1.4 Exceptions

2774 2775

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

2776

2.2.1.4.1 General Exceptions

2777

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

2778 2779 2780

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

2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795

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.

2796

2.2.1.4.2 Specific Exceptions

2797 2798

The following exceptions MAY be returned by a repositiory in response to one or more CMIS service methods calls.

2799 2800 2801

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

2802 2803

Intent:

2804

Methods:

2805 2806 2807

The operation violates a Repository- or Object-level constraint defined in the CMIS domain model.

• Navigation Services: o getObjectParents • Object Services:

2808

o createDocument

2809

o createDocumentFromSource

2810

o createFolder

2811

o createRelationship

2812

o createPolicy

2813

o updateProperties

2814

o moveObject cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 78 of 226

2815

o deleteObject

2816

o setContentStream

2817

o deleteContentStream

2818

• Multi-filing Services:

2819

o addObjectToFolder

2820

• Versioning Services:

2821

o checkOut

2822

o cancelCheckOut

2823

o checkIn

2824

• Policy Services:

2825

o applyPolicy

2826

o removePolicy

2827

• Change Log Services:

2828 2829

o getContentChanges

2830

contentAlreadyExists

2831 2832

Intent:

2833

Methods:

2834 2835 2836 2837

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

2838

Intent: The property filter or rendition filter input to the operation is not valid.

2839

Methods:

2840

• Navigation Services:

2841

o getDescendants

2842

o getChildren

2843

o getFolderParent

2844

o getObjectParents

2845

o getCheckedOutDocs

2846

• Object Services:

2847

o getProperties

2848

o getRenditions

2849

o getObject

2850

o getObjectByPath

2851

• Versioning Services:

2852

o getPropertiesOfLatestVersion

2853

o getAllVersions

2854

• Policy Services:

2855 2856

o getAppliedPolicies

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 79 of 226

2857

nameConstraintViolation

2858 2859

Intent:

2860

Methods:

2861

The repository is not able to store the object that the user is creating/updating due to a name constraint violation.

• Object Services:

2862

o createDocument

2863

o createDocumentFromSource

2864

o createFolder

2865

o updateProperties

2866 2867

o moveObject

2868

storage

2869 2870

Intent:

2871

Methods:

2872

The repository is not able to store the object that the user is creating/updating due to an internal storage problem.

• Object Services:

2873

o createDocument

2874

o createDocumentFromSource

2875

o createFolder

2876

o createRelationship

2877

o createPolicy

2878

o updateProperties

2879

o moveObject

2880

o setContentStream

2881

o deleteContentStream

2882

• Versioning Services:

2883

o checkOut

2884 2885

o checkIn

2886

streamNotSupported

2887 2888

Intent:

2889

Methods:

2890

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 Document’s of that type.

• Object Services:

2891

o createDocument

2892

o createDocumentFromSource

2893

o getContentStream

2894

o setContentStream

2895 2896 2897 2898

• Versioning Services: o checkIn updateConflict

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 80 of 226

2899 2900

Intent:

The operation is attempting to update an object that is no longer current (as determined by the repository).

2901

Methods: • Object Services:

2902 2903

o updateProperties

2904

o moveObject

2905

o deleteObject

2906

o deleteTree

2907

o setContentStream

2908

o deleteContentStream • Versioning Services:

2909 2910

o checkOut

2911

o cancelCheckOut

2912

o checkIn

2913 2914

versioning

2915 2916

Intent:

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.

2917

Methods: • Object Services:

2918 2919

o updateProperties

2920

o moveObject

2921

o setContentStream

2922

o deleteContentStream • Versioning Services:

2923 2924

o checkOut

2925

o cancelCheckOut

2926

o checkIn

2927

2.2.1.5 ACLs

2928 2929

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.

2930

2.2.2 Repository Services

2931 2932 2933

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.

2934

2.2.2.1 getRepositories

2935

Description: Returns a list of CMIS repositories available from this CMIS service endpoint.

2936

2.2.2.1.1 Inputs

2937

None.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 81 of 226

2938

2.2.2.1.2 Outputs

2939

A list of repository information, with (at least) the following information for each entry:

2940



ID repositoryId: The identifier for the Repository.

2941



String repositoryName: A display name for the Repository.

2942

2.2.2.1.3 Exceptions Thrown & Conditions

2943

See section 2.2.1.4.1 General Exceptions

2944

2.2.2.2 getRepositoryInfo

2945 2946

Description: Returns information about the CMIS repository, the optional capabilities it supports and its Access Control information if applicable. .

2947

2.2.2.2.1 Inputs

2948

Required:

2949 2950 2951

7



ID repositoryId: The identifier for the Repository.

2.2.2.2.2 Outputs •

2952

ID repositoryId: The identifier for the Repository. o

Note: This MUST be the same identifier as the input to the method.

2953



String repositoryName: A display name for the Repository.

2954



String repositoryDescription: A display description for the Repository.

2955



String vendorName: A display name for the vendor of the Repository’s underlying application.

2956



String productName: A display name for the Repository’s underlying application.

2957 2958



String productVersion: A display name for the version number of the Repository’s underlying application.

2959



ID rootFolderId: The ID of the Root Folder Object for the Repository.

2960 2961



: The set of values for the repository-optional capabilities specified in section 2.1.1.1 Optional Capabilities

2962 2963



String latestChangeLogToken: The change log token corresponding to the most recent change event for any object in the repository.

2964 2965



Decimal cmisVersionSupported: A decimal that indicates what version of the CMIS specification this repository supports as specified in 2.1.1.2 Implementation Information.

2966 2967



URI thinClientURI: A optional repository-specific URI pointing to the repository’s web interface.

2968 2969 2970 2971



Boolean changesIncomplete: Indicates whether or not the repository’s 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 repository’s optional capability capabilityChanges is not none.

2972

o

If FALSE, then the change log can return all changes ever made to every object.

2973 2974

o

If TRUE, then the change log includes all changes made since a particular point in time, but not all changes ever made.

2975 2976 2977



changesOnType: Indicates whether changes are available for base types in the repository. Valid values are from enumBaseObjectTypeIds. See section 2.1.11 Change Log.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 82 of 226

2978

o

cmis:document

2979

o

cmis:folder

2980

o

cmis:policy

2981

o

cmis:relationship

2982



Enum supportedPermissions: specifies which types of permissions are supported.

2983

o

basic: indicates that the CMIS Basic permissions are supported.

2984

o

repository: Indicates that repository specific permissions are supported.

2985 2986

o

both: indicates that both CMIS basic permissions and repository specific permissions are supported.

2987 2988



Enum propagation: The list of allowed values for applyACL, which control how non-direct ACEs are handled by the repository:

2989 2990 2991

o

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.

2992 2993 2994

o

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.

2995 2996

o

repositorydetermined: indicates that the repository uses its own mechanisms to handle non-direct ACEs when applying ACLs.

2997 2998



Permission permissions: The list of repository-specific permissions the repository supports for managing ACEs (see section 2.8 Access Control).

2999 3000



PermissionMapping mapping: The list of mappings for the CMIS Basic permissions to allowable actions (see section 2.8 Access Control).

3001 3002 3003



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.

3004 3005 3006



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.

3007 3008

The cmisRepositoryInfoType schema describes the markup that will be included in all CMIS protocol bindings to implement this service.

3009

2.2.2.2.3 Exceptions Thrown & Conditions

3010

See section 2.2.1.4.1 General Exceptions

3011

2.2.2.3 getTypeChildren

3012 3013

Description: Returns the list of Object-Types defined for the Repository that are children of the specified Type.

3014

2.2.2.3.1 Inputs

3015

Required:

7

3016



3017

Optional:

3018



String repositoryId: The identifier for the Repository. String typeId: The typeId of an Object-Type specified in the Repository.

3019

o

If specified, then the Repository MUST return all of child types of the specified type.

3020

o

If not specified, then the Repository MUST return all Base Object-Types.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 83 of 226

3021 3022



Boolean includePropertyDefinitions: If TRUE, then the Repository MUST return the property definitions for each Object-Type returned.

3023

o

If FALSE (default), the Repository MUST return only the attributes for each Object-Type.

3024



Integer maxItems: See section 2.2.1.1 Paging.

3025



Integer skipCount: See section 2.2.1.1 Paging.

3026

2.2.2.3.2 Outputs

3027

Object-Types: The list of child Object-Types defined for the given typeId.

3028

Boolean hasMoreItems: See section 2.2.1.1 Paging.

3029 3030

Optional: Integer numItems: See section 2.2.1.1 Paging.

3031

2.2.2.3.3 Exceptions Thrown & Conditions

3032

See section 2.2.1.4.1 General Exceptions

3033

2.2.2.4 getTypeDescendants

3034 3035

Description: Returns the set of descendant Object-Types defined for the Repository under the specified Type.

3036

Notes:

7

3037



This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3038



The order in which results are returned is respository-specific.

3039

2.2.2.4.1 Inputs

3040

Required:

3041



3042

Optional:

3043



String repositoryId: The identifier for the Repository. String typeId: The typeId of an Object-Type specified in the Repository.

3044

o

If specified, then the Repository MUST return all descendant types for the specified type.

3045 3046

o

If not specified, then the Repository MUST return all types and MUST ignore the value of the depth parameter

3047 3048



Integer depth: The number of levels of depth in the type hierarchy from which to return results. Valid values are:

3049

o

1: Return only types that are children of the type.

3050 3051

o

: Return only types that are children of the type and descendants up to levels deep.

3052

o

-1: Return ALL descendant types at all depth levels in the CMIS hierarchy.

3053

o

The default value is repository specific and SHOULD be at least 2 or -1.

3054 3055 3056 3057 3058



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.

2.2.2.4.2 Outputs Object-Types: The hierarchy of Object-Types defined for the Repository.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 84 of 226

3059

2.2.2.4.3 Exceptions Thrown & Conditions

3060

See section 2.2.1.4.1 General Exceptions

3061 3062

7



invalidArgument: The Repository MUST throw this exception if the service is invoked with an invalid depth.

3063

2.2.2.5 getTypeDefinition

3064

Description: Gets the definition of the specified Object-Type.Inputs

3065

2.2.2.5.1 Inputs

3066

Required:

3067



String repositoryId: The identifier for the Repository.

3068



String typeId: The typeId of an Object-Type specified in the Repository.

3069 3070

2.2.2.5.2 Outputs •

Object-type including all property definitions.

3071

2.2.2.5.3 Exceptions Thrown & Conditions

3072

See section 2.2.1.4.1 General Exceptions

3073

2.2.3 Navigation Services

3074 3075 3076

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.

3077

2.2.3.1 getChildren

3078

Description: Gets the list of child objects contained in the specified folder.

3079

Notes:

3080 3081



If the Repository supports the optional “VersionSpecificFiling” capability, then the repository MUST return the document versions filed in the specified folder.

3082

o

Otherwise, the latest version of the documents MUST be returned.

3083

2.2.3.1.1 Inputs

3084

Required:

3085



ID repositoryId: The identifier for the Repository.

3086



ID folderId: The identifier for the folder.

3087

Optional:

3088



Integer maxItems: See section 2.2.1.1 Paging.

3089



Integer skipCount: See section 2.2.1.1 Paging.

3090



String orderBy: See ORDER BY Clause in the query

3091



String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

3092



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3093



String renditionFilter: See section 2.2.1.2.4 Renditions.

3094



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 85 of 226

3095 3096 3097 3098 3099



Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each child object for use in constructing that object’s path.

2.2.3.1.2 Outputs •

ObjectResults: A list of the child objects for the specified folder. Each object result MUST include the following elements if they are requested:

3100

o

Properties: The list of properties for the object.

3101

o

Relationships: See section 2.2.1.2.2 Relationships.

3102

o

Renditions: See section 2.2.1.2.4 Renditions.

3103

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3104

o

String PathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3105



3106

Optional:

3107 3108

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

3109



See section 2.2.1.4.1 General Exceptions

3110 3111



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

3112



invalidArgument: if the specified folder is not a folder

8

3113

2.2.3.2 getDescendants

3114 3115

Description: Gets the set of descendant objects contained in the specified folder or any of its childfolders.

3116

Notes:

3117



This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3118



The order in which results are returned is respository-specific..

3119 3120 3121



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.

3122 3123 3124



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.

3125

2.2.3.2.1 Inputs

3126

Required:

3127



ID repositoryId: The identifier for the Repository.

3128



ID folderId: The identifier for the folder.

3129

Optional:

3130 3131



Integer depth: The number of levels of depth in the folder hierarchy from which to return results. Valid values are:

3132

o

1: Return only objects that are children of the folder.

3133 3134

o

: Return only objects that are children of the folder and descendants up to levels deep.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 86 of 226

3135

o

-1: Return ALL descendant objects at all depth levels in the CMIS hierarchy.

3136

o

The default value is repository specific and SHOULD be at least 2 or -1

3137



String filter: See section 2.2.1.2.1 Properties.

3138



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3139



String renditionFilter: See section 2.2.1.2.4 Renditions.

3140



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3141 3142



Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each child object for use in constructing that object’s path.

3143 3144 3145

2.2.3.2.2 Outputs •

ObjectResults: A list of the descendant objects for the specified folder. Each object result MUST include the following elements if they are requested:

3146

o

Properties: The list of properties for the object.

3147

o

Relationships: See section 2.2.1.2.2 Relationships.

3148

o

Renditions: See section 2.2.1.2.4 Renditions.

3149

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3150

o

String PathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3151

2.2.3.2.3 Exceptions Thrown & Conditions

3152

See section 2.2.1.4.1 General Exceptions

3153 3154



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

3155 3156



invalidArgument: The Repository MUST throw this exception if the service is invoked with “depth = 0”.

3157



invalidArgument: if the specified folder is not a folder

3158

2.2.3.3 getFolderTree

3159

Description: Gets the set of descendant folder objects contained in the specified folder.

3160 3161

Notes:

3162



This method does NOT support paging as defined in the 2.2.1.1 Paging section.

3163



The order in which results are returned is respository-specific..

3164

2.2.3.3.1 Inputs

3165

Required:

3166



ID repositoryId: The identifier for the Repository.

3167



ID folderId: The identifier for the folder.

3168

Optional:

3169 3170



Integer depth: The number of levels of depth in the folder hierarchy from which to return results. Valid values are:

3171

o

1: Return only folders that are children of the folder.

3172 3173

o

: Return only folders that are children of the folder and descendant folders up to levels deep.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 87 of 226

3174

o

-1: Return ALL descendant folders at all depth levels in the CMIS hierarchy.

3175

o

The default value is repository specific and SHOULD be at least 2 or -1

3176



String filter: See section 2.2.1.2.1 Properties.

3177



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3178



String renditionFilter: See section 2.2.1.2.4 Renditions.

3179



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3180 3181



Boolean includePathSegment: Defaults to FALSE. If TRUE, returns a PathSegment for each child object for use in constructing that object’s path.

3182 3183 3184

2.2.3.3.2 Outputs •

ObjectResults: A list of the descendant folders for the specified folder. Each object result MUST include the following elements if they are requested:

3185

o

Properties: The list of properties for the object.

3186

o

Relationships: See section 2.2.1.2.2 Relationships.

3187

o

Renditions: See section 2.2.1.2.4 Renditions.

3188

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3189

o

String pathSegment: If includePathSegment was TRUE. See section 2.1.5.3 Paths.

3190

2.2.3.3.3 Exceptions Thrown & Conditions

3191



See section 2.2.1.4.1 General Exceptions

3192 3193



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

3194 3195



invalidArgument: The Repository MUST throw this exception if the service is invoked with an invalid depth

3196



invalidArgument: if the specified folder is not a folder

3197 3198 3199

2.2.3.4 getFolderParent

3200

Description: Gets the parent folder object for the specified folder object.

3201

2.2.3.4.1 Inputs

3202

Required:

3203



ID repositoryId: The identifier for the Repository.

3204



ID folderId: The identifier for the folder.

3205

Optional:

3206



3207 3208 3209 3210

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 •

See section 2.2.1.4.1 General Exceptions 8

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 88 of 226

3211 3212



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

3213 3214



invalidArgument: The Repository MUST throw this exception if the folderId input is the root folder.

3215

2.2.3.5 getObjectParents

3216

Description: Gets the parent folder(s) for the specified non-folder, fileable object.

3217

2.2.3.5.1 Inputs

3218

Required:

3219



ID repositoryId: The identifier for the Repository.

3220



ID objectId: The identifier for the object.

3221

Optional:

3222



String filter: See section 2.2.1.2.1 Properties

3223



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3224



String renditionFilter: See section 2.2.1.2.4 Renditions.

3225



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3226



Boolean includeRelativePathSegment: See section 2.1.5.3 Paths.

3227 3228 3229 3230

2.2.3.5.2 Outputs •

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:

3231

o

Properties: The list of properties for the object.

3232

o

Relationships: See section 2.2.1.2.2 Relationships.

3233

o

Renditions: See section 2.2.1.2.4 Renditions.

3234

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3235 3236

o

String relativePathSegment: If includeRelativePathSegment was TRUE. See section 2.1.5.3 Paths.

3237

2.2.3.5.3 Exceptions Thrown & Conditions

3238



See section 2.2.1.4.1 General Exceptions

3239 3240



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.

3241 3242



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

3243



invalidArgument: if the specified folder is not a folder

8

3244

2.2.3.6 getCheckedOutDocs

3245

Description: Gets the list of documents that are checked out that the user has access to.

3246

2.2.3.6.1 Inputs

3247

Required: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 89 of 226

3248



3249

Optional:

3250



ID repositoryId: The identifier for the Repository. ID folderId: The identifier for a folder in the repository from which documents should be returned.

3251 3252

o

If specified, the Repository MUST only return checked out documents that are childobjects of the specified folder.

3253 3254

o

If not specified, the Repository MUST return checked out documents from anywhere in the repository hierarchy.

3255



Integer maxItems: See section 2.2.1.1 Paging.

3256



Integer skipCount: See section 2.2.1.1 Paging.

3257



String orderBy: See ORDER BY Clause in the query

3258



String filter: See section 2.2.1.2.1 Properties.

3259



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3260



String renditionFilter: See section 2.2.1.2.4 Renditions.

3261



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3262 3263 3264

2.2.3.6.2 Outputs •

ObjectResults: A list of checked out documents. Each object result MUST include the following elements if they are requested:

3265

o

Properties: The list of properties for the object.

3266

o

Relationships: See section 2.2.1.2.2 Relationships.

3267

o

Renditions: See section 2.2.1.2.4 Renditions.

3268

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3269



3270

Optional:

3271

Boolean hasMoreItems: See section 2.2.1.1 Paging.

Integer numItems: See section 2.2.1.1 Paging.

3272 3273

2.2.3.6.3 Exceptions Thrown & Conditions

3274



See section 2.2.1.4.1 General Exceptions

3275 3276



filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

9

3277

2.2.4 Object Services

3278

CMIS provides ID-based CRUD (Create, Retrieve, Update, Delete), operations on objects in a Repository.

3279

2.2.4.1 createDocument

3280 3281

Description: Creates a document object of the specified type (given by the cmis:objectTypeId property) in the (optionally) specified location.

3282

2.2.4.1.1 Inputs

3283

Required:

3284



ID repositoryId: The identifier for the Repository.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 90 of 226

3285 3286



3287

Optional:

3288 3289



3290 3291

properties: The property values that MUST be applied to the newly-created Document Object. 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.

3292 3293 3294 3295



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.

3296 3297



Enum versioningState: An enumeration specifying what the versioing state of the newly-created object MUST be. Valid values are:

3298

o

none: The document MUST be created as a non-versionable document.

3299

o

checkedout: The document MUST be created in the checked-out state.

3300

o

major (default): The document MUST be created as a major version

3301

o

minor: The document MUST be created as a minor version.

3302 3303



policies: A list of policy IDs that MUST be applied to the newly-created Document object.

3304 3305



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.

3306 3307 3308



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.

3309 3310 3311

2.2.4.1.2 Outputs ID objectId: The ID of the newly-created document.

2.2.4.1.3 Exceptions Thrown & Conditions

3312



See section 2.2.1.4.1 General Exceptions

3313 3314



constraint: The Repository MUST throw this exception if ANY of the following conditions are met:

9

3315 3316

o

The cmis:objectTypeId property value is not an Object-Type whose baseType is “Document”.

3317 3318

o

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified by folderId.

3319 3320

o

The value of any of the properties violates the min/max/required/length constraints specified in the property definition in the Object-Type.

3321 3322 3323

o

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.

3324 3325 3326

o

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”.

3327 3328 3329

o

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”.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 91 of 226

3330 3331

o

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.

3332 3333

o

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.

3334 3335

o

At least one of the permissions is used in an ACE provided which is not supported by the repository.

3336 3337 3338



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.

3339



storage: See section 2.2.1.4.2 Specific Exceptions.

3340 3341 3342



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.

9

9

3343

2.2.4.2 createDocumentFromSource

3344 3345

Description: Creates a document object as a copy of the given source document in the (optionally) specified location.

3346

2.2.4.2.1 Inputs

3347

Required:

3348



ID repositoryId: The identifier for the Repository.

3349



ID sourceId: The identifier for the source document.

3350

Optional:

3351 3352



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.

3353 3354



ID folderId: If specified, the identifier for the folder that MUST be the parent folder for the newlycreated Document Object.

3355 3356 3357 3358

o •

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:

3359

o

none: The document MUST be created as a non-versionable document.

3360

o

checkedout: The document MUST be created in the checked-out state.

3361

o

major (default): The document MUST be created as a major version

3362

o

minor: The document MUST be created as a minor version.

3363 3364



policies: A list of policy IDs that MUST be applied to the newly-created Document object.

3365 3366



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.

3367 3368 3369



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.

3370 3371

2.2.4.2.2 Outputs ID objectId: The ID of the newly-created document.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 92 of 226

3372

2.2.4.2.3 Exceptions Thrown & Conditions

3373



See section 2.2.1.4.1 General Exceptions

3374 3375



constraint: The Repository MUST throw this exception if ANY of the following conditions are met:

9

3376

o

The sourceId is not an Object whose baseType is “Document”.

3377 3378

o

The source document’s cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified by folderId.

3379 3380 3381

o

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”.

3382 3383 3384

o

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”.

3385 3386

o

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.

3387 3388

o

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.

3389 3390

o

At least one of the permissions is used in an ACE provided which is not supported by the repository.

3391 3392 3393



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.

3394



storage: See section 2.2.1.4.2 Specific Exceptions.

3395 3396 3397



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.

9

9

3398

2.2.4.3 createFolder

3399

Description: Creates a folder object of the specified type in the specified location.

3400

2.2.4.3.1 Inputs

3401

Required:

3402



ID repositoryId: The identifier for the Repository.

3403 3404



properties: The property values that MUST be applied to the newly-created Folder Object.

3405 3406



ID folderId: The identifier for the folder that MUST be the parent folder for the newly-created Folder Object.

3407

Optional:

3408



policies: A list of policy IDs that MUST be applied to the newly-created Folder object.

3409 3410



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.

3411 3412 3413



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.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 93 of 226

3414 3415 3416

2.2.4.3.2 Outputs •

ID objectId: The ID of the newly-created folder.

2.2.4.3.3 Exceptions Thrown & Conditions

3417



See section 2.2.1.4.1 General Exceptions

3418 3419



constraint: The Repository MUST throw this exception if ANY of the following conditions are met:

9

3420

o

The cmis:objectTypeId property value is not an Object-Type whose baseType is “Folder”.

3421 3422

o

The value of any of the properties violates the min/max/required/length constraints specified in the property definition in the Object-Type.

3423 3424

o

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified by folderId.

3425 3426

o

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.

3427 3428

o

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.

3429 3430

o

At least one of the permissions is used in an ACE provided which is not supported by the repository.

3431 3432 3433



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.

3434



storage: See section 2.2.1.4.2 Specific Exceptions.

9

9

3435

2.2.4.4 createRelationship

3436

Description: Creates a relationship object of the specified type

3437

2.2.4.4.1 Inputs

3438

Required:

3439



ID repositoryId: The identifier for the Repository.

3440 3441



properties: The property values that MUST be applied to the newly-created Relationship Object.

3442

Optional:

3443 3444



policies: A list of policy IDs that MUST be applied to the newly-created Replationship object.

3445 3446 3447 3448 3449



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. 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.

3450 3451 3452 3453

2.2.4.4.2 Outputs •

ID objectId: The ID of the newly-created relationship.

2.2.4.4.3 Exceptions Thrown & Conditions •

See section 2.2.1.4.1 General Exceptions

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 94 of 226

3454 3455



constraint: The Repository MUST throw this exception if ANY of the following conditions are met:

3456 3457

o

The cmis:objectTypeId property value is not an Object-Type whose baseType is “Relationship”.

3458 3459

o

The value of any of the properties violates the min/max/required/length constraints specified in the property definition in the Object-Type.

3460 3461

o

The sourceObjectId’s ObjectType is not in the list of “allowedSourceTypes” specified by the Object-Type definition specified by cmis:objectTypeId property value.

3462 3463

o

The targetObjectId’s ObjectType is not in the list of “allowedTargetTypes” specified by the Object-Type definition specified by cmis:objectTypeId property value.

3464 3465

o

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.

3466 3467

o

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.

3468 3469

o

At least one of the permissions is used in an ACE provided which is not supported by the repository.

3470



storage: See section 2.2.1.4.2 Specific Exceptions. 9

3471

2.2.4.5 createPolicy

3472

Description: Creates a policy object of the specified type

3473

2.2.4.5.1 Inputs

3474

Required:

3475



ID repositoryId: The identifier for the Repository.

3476 3477



properties: The property values that MUST be applied to the newly-created Policy Object.

3478

Optional:

3479 3480



3481 3482

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.

3483



policies: A list of policy IDs that MUST be applied to the newly-created Policy object.

3484 3485



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.

3486 3487 3488



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.

3489 3490 3491

2.2.4.5.2 Outputs •

ID objectId: The ID of the newly-created Policy Object.

2.2.4.5.3 Exceptions Thrown & Conditions

3492



See section 2.2.1.4.1 General Exceptions

3493 3494



constraint: The Repository MUST throw this exception if ANY of the following conditions are met:

3495

9

o

The cmis:objectTypeId property value is not an Object-Type whose baseType is “Policy”.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 95 of 226

3496 3497

o

The value of any of the properties violates the min/max/required/length constraints specified in the property definition in the Object-Type.

3498 3499

o

The cmis:objectTypeId property value is NOT in the list of AllowedChildObjectTypeIds of the parent-folder specified by folderId.

3500 3501

o

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.

3502 3503

o

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.

3504 3505

o

At least one of the permissions is used in an ACE provided which is not supported by the repository.

3506



storage: See section 2.2.1.4.2 Specific Exceptions. 9

3507

2.2.4.6 getAllowableActions

3508

Description: Gets the list of allowable actions for an Object (see section.2.2.1.2.6 Allowable Actions).

3509

2.2.4.6.1 Inputs

3510

Required:

3511



ID repositoryId: The identifier for the Repository.

3512



ID objectId: The identifier for the object

3513 3514 3515 3516

2.2.4.6.2 Outputs •

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 9

3517

2.2.4.7 getObject

3518

Description: Gets the specified information for the Object.

3519

2.2.4.7.1 Inputs

3520

Required:

3521



ID repositoryId: The identifier for the Repository.

3522



ID objectId: The identifier for the object

3523

Optional:

3524



String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

3525



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3526



Boolean includePolicyIds: See section 2.2.1.2.3 Policies.

3527



String renditionFilter: See section 2.2.1.2.4 Renditions.

3528



Boolean includeACL: See section 2.2.1.2.5 ACLs.

3529



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3530 3531

2.2.4.7.2 Outputs Properties: The list of properties for the object. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 96 of 226

3532



3533

Policy Ids: See section 2.2.1.2.3 Policies.

3534

Renditions: See section 2.2.1.2.4 Renditions.

3535



3536

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3537

Relationships: See section 2.2.1.2.2 Relationships.

ACLs: See section 2.2.1.2.5 ACLs.

2.2.4.7.3 Exceptions Thrown & Conditions

3538

See section 2.2.1.4.1 General Exceptions

3539 3540

filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

9

3541

2.2.4.8 getProperties

3542

Description: Gets the list of properties for an Object.

3543

2.2.4.8.1 Inputs

3544

Required:

3545



ID repositoryId: The identifier for the Repository.

3546



ID objectId: The identifier for the object

3547

Optional:

3548



3549 3550 3551

String filter: See Error! Reference source not found.section 2.2.1.2.1 Properties.

2.2.4.8.2 Outputs Properties: The list of properties for the object.

2.2.4.8.3 Exceptions Thrown & Conditions

3552

See section 2.2.1.4.1 General Exceptions

3553 3554

filterNotValid: The Repository MUST throw this exception if this property filter input parameter is not valid.

9

3555

2.2.4.9 getObjectByPath

3556

Description: Gets the specified object.

3557

2.2.4.9.1 Inputs

3558

Required:

3559



ID repositoryId: The identifier for the Repository.

3560



String path: The path to the object. See section 2.1.5.3 Paths.

3561

Optional:

3562



String filter: See section 2.2.1.2.1 Properties.

3563



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3564

2.2.4.9.2 Outputs

3565

Properties: The list of properties for the object.

3566

AllowableActions: See section 2.2.1.2.6 Allowable Actions. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 97 of 226

3567

2.2.4.9.3 Exceptions Thrown & Conditions

3568



3569 3570

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

3571

2.2.4.10 getContentStream

3572 3573

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.

3574 3575

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.

3576

2.2.4.10.1 Inputs

3577

Required:

3578



ID repositoryId: The identifier for the Repository.

3579



ID objectId: The identifier for the object

3580

Optional:

3581 3582 3583



3584 3585 3586

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 •

ContentStream: The specified content stream or rendition stream for the object.

2.2.4.10.3 Exceptions Thrown & Conditions

3587



3588 3589

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

3590

2.2.4.11 getRenditions

3591 3592

Description: Gets the list of associated Renditions for the specified object. Only rendition attributes are returned, not rendition stream.

3593 3594

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.

3595

2.2.4.11.1 Inputs

3596

Required:

3597



ID repositoryId: The identifier for the Repository.

3598



ID objectId: The identifier for the object

3599

Optional:

3600



String renditionFilter: See Section 2.2.1.2.4

3601



Integer maxItems: See section 2.2.1.1 Paging.

3602



Integer skipCount: See section 2.2.1.1 Paging.

3603 3604

2.2.4.11.2 Outputs •

Renditions: The set of renditions available on this object

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 98 of 226

3605

2.2.4.11.3 Exceptions Thrown & Conditions

3606



See section 2.2.1.4.1 General Exceptions

3607 3608



notSupported: The service method requires functionality that is not supported by the repository

3609



filterNotValid : The filter specified is not valid

9

3610

2.2.4.12 updateProperties

3611

Description: Updates properties of the specified object.

3612

Notes:

3613 3614



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.

3615 3616 3617



Each CMIS protocol bindings MUST specify whether the updateProperties service MUST always include all up encoding="UTF-8" standalone="yes"?> Al Brown cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 118 of 226

4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366

urn:uuid:5f716462-7b6b-4a0d-bd1d-34677d5514d7 CMIS Example Document 2009-10-19T10:09:59.296-07:00 some text invoice CMIS Example Document

4367

3.3.2 CMIS Query

4368

Media Type: application/cmisquery+xml

4369

Starting tag: cmis:query

4370 4371

This document contains the representation of a query to be executed in a CMIS repository.

4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387

Example: SELECT * FROM cmis:document true false none * 50 0

4388 4389

Please also see the example documents included with the schema.

4390 4391

3.3.3 CMIS Allowable Actions

4392

Media Type: application/cmisallowableactions+xml

4393

Starting tag: cmis:allowableactions

4394 4395 4396

This document contains the representation of the allowable actions the user may perform on the referenced object.

4397 4398 4399

Example: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 119 of 226

4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424

true true true true true true true true true true true true true true true true true true true

4425 4426

Please also see the example documents included with the schema.

4427 4428

3.3.4 CMIS Tree

4429

Media Type: application/cmistree+xml

4430

Starting tag: atom:feed

4431 4432

This document is an atom feed (application/atom+xml;type=feed) with CMIS markup to nest a hierarchy.

4433 4434

Please see Section 3.3.2.1 for more information.

4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455

Example: Feed for folder1 Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:09:59.515-07:00 urn:uuid:08d13325-cba1-4290-95e3-f485068b08e8 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 120 of 226

4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519

Al Brown http://www.ibm.com/ [email protected] urn:uuid:962b4fb8-aefa-4d0c-8562-a84e297e8107 CMIS Example Folder as Customer type 2009-10-19T10:09:59.515-07:00 2009-10-19T10:09:59.515-07:00 HTML summary of Entry 962b4fb8-aefa-4d0c8562-a84e297e8107 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 121 of 226

4520 4521 4522 4523 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 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583

962b4fb8-aefa-4d0c-8562a84e297e8107 customer CMIS Example Folder as Customer type Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:09:59.515-07:00 urn:uuid:084edab9-418a-42b9-813f-cf450418181d Al Brown http://www.ibm.com/ [email protected] urn:uuid:fba295fd-c8ed-40d1-8ddc93671a9c89a5 CMIS Example Doc as Invoice type 2009-10-19T10:09:59.515-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 122 of 226

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 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646

2009-10-19T10:09:59.515-07:00 HTML summary of Entry fba295fdc8ed-40d1-8ddc-93671a9c89a5 fba295fd-c8ed-40d1-8ddc93671a9c89a5 invoice1.pdf Al Brown http://www.ibm.com/ [email protected] urn:uuid:affc2158-6c8f-4245-a045-688225f8c2ad CMIS Example Doc as Invoice type 2009-10-19T10:09:59.531-07:00

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 123 of 226

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

2009-10-19T10:09:59.531-07:00 HTML summary of Entry affc2158-6c8f-4245a045-688225f8c2ad affc2158-6c8f-4245-a045688225f8c2ad invoice3.pdf

4688 4689 4690 4691

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)

4692 4693

Please also see the example documents included with the schema.

4694 4695

3.3.5 CMIS ACL

4696

Media Type: application/cmisacl+xml

4697

Starting tag: cmis:acl

4698 4699

This document specifies an Access Control List based on the schema in CMIS Domain Model.

4700 4701 4702

Example: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 124 of 226

4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718

Al Brown cmis:read cmis:write cmis:all publish true

4719 4720

Please also see the example documents included with the schema.

4721 4722

3.4 Atom Extensions for CMIS

4723

3.4.1 Atom Element Extensions

4724

3.4.1.1 AtomPub Workspace

4725

3.4.1.1.1 cmisra:collectionType

4726

This element is included inside the app:collection element. This specifies the cmis collection type.

4727

3.4.1.1.2 cmisra:repositoryInfo

4728 4729

This element is included inside the app:workspace element. This specifies information about the CMIS repository.

4730

3.4.1.1.3 cmis:uritemplate

4731 4732

This element is included inside the app:workspace element. This specifies information about URI templates

4733

3.4.1.2 Atom Feed

4734

3.4.1.2.1 cmisra:numItems

4735

This element is included inside the atom:feed element. This specifies the number of items in the feed.

4736

3.4.1.3 Atom Entry

4737

3.4.1.3.1 cmisra:children

4738

This element is included inside the atom:entry element. This includes the children of the atom entry.

4739 4740

3.4.1.3.2 cmisra:object

4741 4742

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. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 125 of 226

4743 4744

3.4.1.3.3 cmisra:pathSegment

4745 4746

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.

4747 4748

3.4.1.3.4 cmisra:relativePathSegment

4749 4750

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.

4751

3.4.1.3.5 cmisra:type

4752 4753

This element is included inside the atom:entry element for CMIS Type Definitions. This specifies the type definition the atom entry represents.

4754

3.4.1.3.6 cmisra:content

4755

This element specifies the content of the atom:entry element. The content is base64 encoded.

4756

This element MUST take precedence over atom:content on submission of an atom entry to a repository.

4757

A repository MUST use the atom:content element to return back to the client the content of the document.

4758 4759

This is required when the client has an XML document stored that is not well formed and thus would not be able to be included inside atom:content element.

4760

3.4.2 Attributes

4761

These attributes are in the CMIS RestAtom namespace (cmisra).

4762

3.4.2.1 cmisra:id

4763 4764

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.

4765 4766 4767

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.

4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778

Example:

4779 4780

Please also see the example documents included with the schema.

4781

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 126 of 226

4782

3.4.2.2 cmisra:renditionKind

4783 4784

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.

4785 4786 4787 4788 4789 4790 4791 4792 4793 4794

Example:

4795 4796

Please also see the example documents included with the schema.

4797

3.4.3 CMIS Link Relations

4798 4799 4800

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.

4801 4802 4803 4804 4805

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.

4806 4807 4808 4809 4810

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.

4811 4812

These are the link relation types specified by CMIS:

4813

3.4.3.1 Existing Link Relations

4814 4815

Existing link relations should be used where appropriate by the implementation. In addition, the following link relations are leveraged for the CMIS specification:

4816



self

4817

o

This link relation provides the URI to retrieve this resource again.

4818

o

Service: The appropriate service that generated the atom entry or feed.

4819

o

Resources: All except AllowableActions, ACL and Content Streams

4820



service

4821 4822 4823

o

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.

4824

o

Media Type: application/atomsvc+xml

4825

o

Resources: All except AllowableActions, ACL and Content Streams

4826



describedby

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 127 of 226

4827 4828

o

When used on a CMIS resource, this link relation MUST point to an atom entry that describes the type of that resource.

4829

o

Service: getTypeDefinition on specified object

4830

o

Media Type: application/atom+xml;type=entry

4831 4832

o

Resources: CMIS Document, CMIS Folder, CMIS Relationship, CMIS Policy objects and CMIS Types

4834 4835

o

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.

4836

o

Media Type: application/atom+xml;type=entry

4837

o

Resources: All CMIS Feeds and Collections

4833

4838





via

edit-media

4839 4840 4841

o

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.

4842

o

Service: setContentStream (PUT) , deleteContentStream (DELETE)

4843

o

Media Type: Specific to resource

4844

o

Resources: CMIS Document

4846 4847

o

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

4848

o

Service: getObject (GET), updateProperties (PUT)

4845



edit

4849

o

Media Type: application/atom+xml;type=entry

4850

o

Resources: CMIS Documents, CMIS Folders, CMIS Relationships and CMIS Policies

4851



alternate

4852

o

This is used to express Renditions on a CMIS resource. See section 3.2.7 Renditions.

4853

o

Service: getContentStream for specified rendition

4854

o

Resources: CMIS Document, CMIS Folder and CMIS Policies

4856

o

This is used for Paging. Please see the AtomPub specification.

4857

o

Media Type: application/atom+xml;type=feed

4858

o

Resources: All Feeds

4855

4859





first

previous

4860

o

This is used for Paging. Please see the AtomPub specification.

4861

o

Media Type: application/atom+xml;type=feed

4862

o

Resources: All Feeds

4863



next

4864

o

This is used for Paging. Please see the AtomPub specification.

4865

o

Media Type: application/atom+xml;type=feed

4866

o

Resources: All Feeds

4868

o

This is used for Paging. Please see the AtomPub specification.

4869

o

Media Type: application/atom+xml;type=feed

4867



last

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 128 of 226

4870

o

Resources: All Feeds

4871 4872 4873 4874

Please see http://www.iana.org/assignments/link-relations/link-relations.xhtml for more information on these link relations.

4875

3.4.3.2 Hierarchy Navigation Internet Draft Link Relations

4876 4877

Please refer to the Internet Draft here: http://www.ietf.org/internet-drafts/draft-divilly-atom-hierarchy03.txt.

4878 4879 4880

CMIS leverages the following link relations from the Internet Draft: •

up

4881

o

4882

o

Media Type: application/atom+xml;type=feed, application/atom+xml;type=entry

4883 4884 4885

o

Resources: CMIS Document, CMIS Folder, CMIS Type Definitions, CMIS Folder Children, CMIS Folder Descendants, CMIS FolderTree, CMIS Type Children, CMIS Type Descendants ƒ

4886 4887 4888

Service: getFolderParent, getObjectParents, getTypeDefnition, getObject



This link relation is not included on CMIS Base Type Definitions or the CMIS Root Folder

down

4889

o

Service: getChildren, getDescendants, getTypeChildren, getTypeDescendants

4890

o

Media Type:

4891

ƒ

For children: application/atom+xml;type=feed

4892

ƒ

For descendants: application/cmistree+xml •

4893 4894 4895

o

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

4896

3.4.3.3 Versioning Internet Draft Link Relations

4897 4898

Please refer to the Internet Draft here: http://www.ietf.org/internet-drafts/draft-brown-versioning-linkrelations-01.txt.

4899 4900 4901

CMIS leverages the following link relations from the Internet Draft: •

version-history

4902

o

4903

o

Media Type: application/atom+xml;type=feed

4904

o

Resources: CMIS Document

4905



Service: getAllVersions

current-version

4906

o

Service: getObjectForLatestVersion

4907

o

Media Type: application/atom+xml;type=entry

4908

o

Resources: CMIS Document

4909



working-copy

4910 4911

o

Service: getObject for private-working-copy specified by cmis:versionSeriesCheckedOutId property

4912

o

Media Type: application/atom+xml;type=entry

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 129 of 226

4913 4914 4915 4916

o

Resources: CMIS Document

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

4917 4918

ƒ

This link relation MUST point to a resource containing a CMIS AllowableActions document for the CMIS resource containing this link relation.

4919

ƒ

Service: getAllowableActions

4920

ƒ

Media Type: application/cmisallowableactions+xml

4921 4922

ƒ

Resources: CMIS Documents, CMIS Folders, CMIS Policies, and CMIS Relationships

4923

o

http://docs.oasis-open.org/ns/cmis/link/200908/relationships

4924 4925

ƒ

This link relation MUST point to a resource containing an Atom Feed of CMIS relationship resources for the CMIS resource containing this link relation.

4926

ƒ

Service: getObjectRelationships

4927

ƒ

Media Type: application/atom+xml;type=feed

4928

ƒ

Resources: CMIS Documents, CMIS Folders, and CMIS Policies

4929

o

http://docs.oasis-open.org/ns/cmis/link/200908/source

4930 4931 4932

ƒ

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.

4933

ƒ

Source Link on Relationship

4934

ƒ

Media Type: application/atom+xml;type=entry

4935

ƒ

Resources: CMIS Relationships

4936

o

http://docs.oasis-open.org/ns/cmis/link/200908/target

4937 4938 4939

ƒ

4940

ƒ

Target Link on Relationship

4941

ƒ

Media Type: application/atom+xml;type=entry

4942

ƒ

Resources: CMIS Relationships

4943

o

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.

http://docs.oasis-open.org/ns/cmis/link/200908/policies

4944 4945

ƒ

This link relation MUST point to a resource containing an Atom Feed of CMIS Policy resources for the CMIS resource containing this link relation.

4946

ƒ

Service: getAppliedPolicies

4947

ƒ

Media Type: application/atom+xml;type=feed

ƒ

Resources: CMIS Documents and CMIS Folders

4948 4949

o

http://docs.oasis-open.org/ns/cmis/link/200908/acl

4950 4951

ƒ

This link relation MUST point to a resource containing a CMIS ACL document for the CMIS resource containing this link relation.

4952

ƒ

Service: getACL

4953

ƒ

Media Type: application/cmisacl+xml

4954 4955

ƒ

Resources: CMIS Documents, CMIS Folders, CMIS Relationships, and CMIS Policies that are securable

4956

o

http://docs.oasis-open.org/ns/cmis/link/200908/changes

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 130 of 226

4957

ƒ

This link relation MUST point to an Atom Feed containing the set of changes

4958

ƒ

Service: getContentChanges

4959

ƒ

Media Type: application/atom+xml;type=feed

4960

ƒ

Resources: AtomPub Workspace Element in Service Document

4961

o

http://docs.oasis-open.org/ns/cmis/link/200908/foldertree

4962 4963

ƒ

Used in AtomPub Service Document to identify the folder tree for a specified folder

4964

ƒ

Service: getFolderTree

4965

ƒ

Media Type: application/atom+xml;type=feed

4966

ƒ

Resources: CMIS Folder, also used in AtomPub Service Document for root folder

4967

o

http://docs.oasis-open.org/ns/cmis/link/200908/typedescendants

4968

ƒ

Used in AtomPub Service Document to identify the base types descendants

4969

ƒ

Service: getTypeDescendants

4970

ƒ

Media Type: application/atom+xml;type=feed

4971

ƒ

Resources: AtomPub Workspace Element in Service Document

4972

o

http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants

4973

ƒ

Used in AtomPub Service Document to identify the root folder descendants

4974

ƒ

Service: getDescendants for root folder

4975

ƒ

Media Type: application/atom+xml;type=feed

4976

ƒ

Resources: AtomPub Workspace Element in Service Document

4977 4978

3.5 Atom Resources

4979

For all Atom Resources used in this specification, the following MUST be followed:

4980

3.5.1 Feeds

4981

Any feed MUST be a valid Atom Feed document and conform to the guidelines below for cmis objects:

4982 4983



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.

4984



atom:author/atom:name MUST be the CMIS property cmis:createdBy

4985



atom:title MUST be the CMIS property cmis:name

4986 4987 4988



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.

4989 4990



A feed SHOULD contain the element app:collection, describing the appropriate media types supported for creation of new entries in the feed

4991 4992



atom:id SHOULD be derived from cmis:objectId. This id MUST be compliant with atom’s specification and be a valid URI.

4993 4994



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.

4995 4996 4997 4998

Any feed MUST be a valid Atom Feed document and conform to the guidelines below for cmis types: •

atom:updated SHOULD be the latest time type definition was updated. If unknown by the underlying repository, it MUSTbe the current time.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 131 of 226

4999



atom:author/atom:name is repository specific

5000



atom:title MUST be the displayName attribute of the CMIS Type Definition.

5001



The atom:link with relation self MUST be generated to return the URI of the feed

5002 5003



atom:id SHOULD be derived from the id attribute of the CMIS Type Definition. This id MUST be compliant with atom’s specification and be a valid URI.

5004 5005



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.

5006 5007

If on the root type, all fields are repository specific.

5008 5009 5010 5011

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.

5012 5013

Note: Please see feedvalidator.org to validate Atom compliance.

5014

3.5.2 Entries

5015 5016

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:

5017



atom:title MUST be the cmis:name property

5018



app:edited MUST be cmis:lastModifiedDate

5019



atom:updated MUST be cmis:lastModifiedDate

5020



atom:published MUST be cmis:createdDate

5021



atom:author/atom:name MUST be cmis:createdBy

5022 5023



All CMIS properties MUST be exposed in CMIS cmis:properties elements even if they are duplicated in an atom element

5024 5025



atom:id SHOULD be derived from cmis:objectId. This id MUST be compliant with atom’s specification and be a valid URI.

5026 5027 5028



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.

5029 5030 5031 5032 5033 5034

For Documents that support Content Streams: 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.

5035 5036 5037 5038 5039 5040 5041

Other Objects (Folders, Relationships, and other Document Types that do not support Content Streams, etc): 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 POST’ed to a collection or sent to the repository via a PUT.

5042

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 132 of 226

5043 5044

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.

5045 5046 5047

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:

5048



atom:title MUST be the cmis:displayName

5049 5050



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.

5051 5052 5053 5054



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 POST’ed to a collection or sent to the repository via a PUT.

5055 5056 5057

Any atom element that is not specified is repository-specific.

5058

3.5.2.1 Hierarchical Atom Entries

5059 5060

The repository SHOULD NOT provide any links to hierarchical objects if those capabilities are not supported with the exception of getTypeDescendants which is required

5061 5062 5063 5064

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.

5065 5066

The cmisra:children element that MUST be included in an atom entry:

5067

5068 5069 5070

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.

5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093

For Example, here is a minimal Atom Entry with CMIS Children Extension Element: Al Brown urn:uuid:78a66015-ffd3-4233-85d3-39cad56fa091 CMIS Example Folder as Customer type 2009-10-19T10:09:58.906-07:00 78a66015-ffd3-4233-85d3-39cad56fa091 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 133 of 226

5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146

customer CMIS Example Folder as Customer type Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:09:58.906-07:00 urn:uuid:d05a1c90-bb02-42e2-baba-f51366e701c1 Al Brown urn:uuid:78a66015-ffd3-4233-85d3-39cad56fa091 CMIS Example Child of Folder 2009-10-19T10:09:58.906-07:00 78a66015-ffd3-4233-85d339cad56fa091 document

5147

Please also see the example documents included with the schema.

5148

3.6 AtomPub Service Document (Repository)

5149 5150

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.

5151 5152 5153

CMIS Services exposed: GET: getRepositories, getRepositoryInfo cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 134 of 226

5154 5155

Media Type: application/atomsvc+xml

5156 5157 5158

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.

5159 5160 5161 5162

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.

5163 5164 5165 5166

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 attribute with the given value: •

Root Folder Collection: Root folder of the Repository

5167

o

‘root’ for the children collection of the root folder

5168

o

cmisra:collectiontype=’root’

5169



Types Collection: Collection containing all the types in the repository

5170

o

‘types’ for the children collection

5171

o

cmisra:collectiontype=’types’

5172 5173 5174

The workspace element SHOULD contain these collections if the repository supports this functionality: •

CheckedOut collection: collection containing all checked out documents user can see

5175

o

‘checkedout’

5176

o

cmisra:collectiontype=’checkedout’

5177



Query collection: Collection for posting queries to be executed

5178

o

‘query’

5179

o

cmisra:collectiontype=’query’

5180



Unfiled folder: Folder for posting documents to be unfiled; read can be disabled

5181

o

‘unfiled’

5182

o

cmisra:collectiontype=’unfiled’

5183 5184

The repository MUST include the URI templates in the workspace elements.

5185 5186 5187 5188

The workspace element MUST also contain the following link element with the relation: •

http://docs.oasis-open.org/ns/cmis/link/200908/typesdescendants:This link relation points to the types descendants for the base types in the repository.

5189 5190 5191

The workspace element MUST contain the following link relations for those services which are supported by the repository:

5192 5193



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.

5194 5195



http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants: This link relation points to the descendants feed for the root folder.

5196 5197 5198



http://docs.oasis-open.org/ns/cmis/link/200908/changes:This link relation points to the changes feed for the repository.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 135 of 226

5199 5200 5201 5202

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.

5203

3.6.1 URI Templates

5204 5205

CMIS defines the following URI Templates:

5206



objectbyid

5207



objectbypath

5208



query

5209



typebyid

5210 5211

Repositories MUST provide the following URI Templates:

5212



objectbyid

5213



objectbypath

5214



typebyid

5215 5216

Repositories MUST provide the URI Template query if the repository supports query.

5217 5218 5219 5220

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.

5221 5222 5223 5224

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.

5225 5226 5227

For example, if the URI template that supports the variable {id} is http://example.org/rep1/getbyid/{id}

5228 5229 5230

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

5231 5232 5233

Arguments that are substituted for URI template parameters MUST be percent escaped according to RFC3986. Please see that RFC for more information.

5234 5235

All variables MUST be in the template.

5236 5237 5238 5239 5240 5241 5242 5243 5244

Structure of URI Template:

5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263

Example of URI Template element in an AtomPub Workspace Element: http://cmisexample.oasisopen.org/rep1/objectbyid/{id}?filter={filter}&includeAllowableActions={inc ludeAllowableActions}&includePolicyIds={includePolicyIds}&includeRelat ionships={includeRelationships}&includeACL={includeACL} objectbyid application/atom+xml;type=entry

5264 5265

Please also see the example documents included with the schema.

5266 5267

3.6.1.1 Object By Id

5268 5269

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.

5270 5271

Type: objectbyid

5272

Media Type: application/atom+xml;type=entry

5273 5274

Service: getObjectById

5275 5276

Variables that are supported by the template:

5277



{id}: Id of object

5278



{filter}: Property Filter

5279



{includeAllowableActions}

5280 5281

o •

{includePolicyIds}: Include Policy Ids:

5282 5283

o •

o •

o •

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5286 5287

Valid values: true, false

{includeRelationships}: Include relationships

5284 5285

Valid values: true, false

Valid values: true, false

{renditionFilter}

5288

o

Valid values: Please see renditionFilter in CMIS Domain Model

5289 5290 5291

Example: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 137 of 226

5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304

http://cmisexample.oasisopen.org/rep1/objectbyid/{id}?filter={filter}&includeAllowableActions={inc ludeAllowableActions}&includePolicyIds={includePolicyIds}&includeRelat ionships={includeRelationships}&includeACL={includeACL} objectbyid application/atom+xml;type=entry

5305 5306

Please also see the example documents included with the schema.

5307

3.6.1.2 Object By Path

5308 5309

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.

5310 5311

Type: objectbypath

5312

Media Type: application/atom+xml;type=entry

5313 5314

Service: getObjectByPath

5315 5316

Variables that are supported by the template:

5317



{path}: Path of Object

5318



{filter}: Property Filter

5319



{includeAllowableActions}: Boolean for include Allowable Actions

5320 5321

o •

{includePolicyIds}: Include Policy Ids:

5322 5323

o •

o •

o •

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5326 5327

Valid values: true, false

{includeRelationships}: Include relationships

5324 5325

Valid values: true, false

Valid values: true, false

{renditionFilter}

5328

o

Valid values: Please see renditionFilter in CMIS Domain Model

5329 5330 5331 5332 5333 5334 5335 5336 5337

Example:

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 138 of 226

5338 5339 5340 5341 5342 5343 5344 5345 5346

http://cmisexample.oasisopen.org/rep1/objectbypath?p={path}&filter={filter}&includeAllowableAc tions={includeAllowableActions}&includePolicyIds={includePolicyIds}&in cludeRelationships={includeRelationships}&includeACL={includeACL} objectbypath application/atom+xml;type=entry

5347 5348

Please also see the example documents included with the schema.

5349 5350

3.6.1.3 Query

5351

Type: query

5352

Media Type: application/atom+xml;type=feed

5353 5354

Service: query

5355 5356

Variables that are supported by the template:

5357



{q}: CMIS Query Statement

5358



{searchAllVersions}: Boolean, true if to search all versions

5359



{maxItems}: Integer, Max items to return

5360



{skipCount}: Integer, Items to skip

5361



{includeAllowableActions}: Boolean

5362



{includeRelationships}: Boolean

5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380

Example: http://cmisexample.oasisopen.org/rep1/query?q={q}&searchAllVersions={searchAllVersions}&maxIte ms={maxItems}&skipCount={skipCount}&includeAllowableActions={includeAl lowableActions}=&includeRelationships={includeRelationships} query application/atom+xml;type=feed

5381 5382

Please also see the example documents included with the schema.

5383 5384

3.6.1.4 Type By Id

5385

Type: typebyid cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 139 of 226

5386

Media Type: application/atom+xml;type=entry

5387 5388

Service: getTypeDefinition

5389 5390 5391

Variables that are supported by the template: •

{id}: CMIS Type Id

5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405

Example: http://cmisexample.oasisopen.org/rep1/type?id={id} query application/atom+xml;type=entry

5406 5407

Please also see the example documents included with the schema.

5408 5409 5410

3.6.2 HTTP Methods

5411

3.6.2.1 GET

5412 5413

This retrieves the AtomPub Service document for a specified repository. This exposes the capabilities defined in getRepositories and getRepositoryInfo in the Domain Model.

5414 5415 5416

The optional argument MAY be specified: •

repositoryId:

5417 5418

o

This query parameter allows a client to specify a different repository than the one that is referenced by the URI.

5419 5420

o

If specified, the repository MUST return the AtomPub services document for the specified repository if that repository exists.

5421 5422

o

If not specified, the repository MUST return the service document for the repository that is referenced by URI.

5423 5424

3.7 Service Collections

5425

These are the collections that are included on an AtomPub Service document in the workspace element.

5426

3.7.1 Root Folder Collection

5427

This is a collection described in the service document. Please see Folder Children.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 140 of 226

5428

3.7.2 Query Collection

5429 5430 5431 5432

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.

5433 5434

CMIS Services exposed via HTTP verbs:

5435

POST: Query

5436 5437

Media Type: application/atom+xml;type=feed

5438

Accept:

5439



MUST support CMIS Query document,

5440



MAY support other media type

5441 5442 5443 5444

Link Relations on resulting feed from Query Collection: •

5445 5446

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

5447 5448 5449

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

5450 5451 5452

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

5453 5454

3.7.2.1 POST

5455

This collection MUST accept CMIS Query documents (application/cmisquery+xml).

5456 5457 5458 5459 5460

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.

5461 5462

The feed returned MUST contain a set of atom entries representing the result set from the query.

5463 5464 5465 5466

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.

5467 5468 5469

If all the selected properties can be mapped to the same type reference, then the repository MAY include additional information in the atom entry.

5470 5471

Please see http://tools.ietf.org/html/rfc5023#section-5.3. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 141 of 226

5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482

Status Codes: • 201 Success Headers returned: • Location Header • Content-Location Header Link Relations on resulting feed from POST to Query Collection: •

5483 5484

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

5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508

Example client request: POST /Query HTTP/1.1 Host: example.org Content-Length: 756 Content-Type: application/cmisquery+xml

SELECT cmis:objectId FROM cmis:document true false none * 50 0

5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:10:01 -0700 Content-Length: 1830 Content-Type: application/atom+xml;type=feed Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/6e23b7c6e377-4a6b-b21c-7450f28b4b5d Location: http://cmisexample.oasis-open.org/rep1/queryresult/6e23b7c6-e3774a6b-b21c-7450f28b4b5d

CMIS Query Result for SELECT cmis:objectId FROM cmis:document cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 142 of 226

5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561

Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:01.078-07:00 urn:uuid:7fd19974-9597-4eb9-88ca-3a2297cd893c Al Brown urn:uuid:b4519062-6b13-4160-8abe-1c43bfbfe32e Resulting Document 2009-10-19T10:10:01.078-07:00 b4519062-6b13-4160-8abe1c43bfbfe32e

5562 5563

Please also see the example documents included with the schema.

5564 5565

3.7.3 Checked Out Collection

5566

This is a collection described in the service document that contains all the checkedout documents

5567

CMIS Services:

5568

GET: getCheckedOutDocs

5569

POST: checkOut

5570

Media Type: application/atom+xml;type=feed

5571

Accept:

5572



MUST support Atom Entry Documents with CMIS extensions

5573

o

application/atom+xml;type=entry or

5574

o

application/cmisatom+xml

5575



MAY support other media type

5576 5577 5578 5579

Link Relations: •

5580 5581

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® 2009. All Rights Reserved.

23 September 2009 Page 143 of 226

5582 5583 5584

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

5585 5586 5587

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

5588 5589

3.7.3.1 GET

5590

The following arguments may be supplied. Please see the domain model for more information:

5591



filter

5592



folderId

5593



maxItems

5594



skipCount

5595



includeAllowableActions

5596



includeRelationships

5597

3.7.3.2 POST

5598 5599

When an atom entry is POST’ed to this collection, the atom entry will be checked out. A ContentLocation header MUST be returned containing the location of the private working copy.

5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631

Example client request: POST /CheckedOut HTTP/1.1 Host: example.org Content-Length: 1044 Content-Type: application/atom+xml;type=entry

Al Brown urn:uuid:46559af4-db97-471d-b229-d9b27322bf43 CMIS Example Document to checkout 2009-10-19T10:10:01.031-07:00 46559af4-db97-471d-b229-d9b27322bf43

5632 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 144 of 226

5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 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

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:10:01 -0700 Content-Length: 7846 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443cbf6b-e9e30341581f Location: http://cmisexample.oasis-open.org/rep1/64f55634-f2de-443c-bf6be9e30341581f

Al Brown http://www.ibm.com/ [email protected] urn:uuid:64f55634-f2de-443c-bf6b-e9e30341581f CMIS Example Child of Folder 2009-10-19T10:10:01.046-07:00 2009-10-19T10:10:01.046-07:00 HTML summary of Entry 64f55634-f2de-443c-bf6be9e30341581f

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 145 of 226

5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758

64f55634-f2de-443c-bf6b-e9e30341581f customer CMIS Example Child of Folder 2009-10-19T10:10:01.046-07:00 2009-10-19T10:10:01.046-07:00 cmis:document Al Brown Al Brown true true false false false Checkin comment cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 146 of 226

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 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795

0.1 text/plain text.txt 4234 document example sample cmis 64f55634-f2de-443c-bf6b-e9e30341581f Al Brown

5796 5797

Please also see the example documents included with the schema.

5798 5799

3.7.4 Unfiled Collection

5800 5801

This is a collection described in the service document that contains all the unfiled documents in the repository. if unfiling is supported by the repository

5802

CMIS Services:

5803

GET: getUnfiled

5804

POST: removeObjectFromFolder

5805

Media Type: application/atom+xml;type=feed

5806

Accept:

5807



MUST support Atom Entry Documents with CMIS extensions

5808

o

application/atom+xml;type=entry or

5809

o

application/cmisatom+xml

5810



MAY support other media type

5811 5812

Link Relations: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 147 of 226

5813 5814



5815 5816

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

5817 5818 5819

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

5820 5821 5822

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

5823 5824

3.7.4.1 GET

5825

The following arguments may be supplied. Please see the domain model for more information:

5826



filter

5827



folderId

5828



maxItems

5829



skipCount

5830



includeAllowableActions

5831



includeRelationships

5832

3.7.4.2 POST

5833 5834

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.

5835 5836 5837

If the Atom Entry POST’ed, 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.

5838 5839 5840 5841

This adheres to AtomPub model. Please see http://tools.ietf.org/html/rfc5023#section-5.3. • •

HTTP Success: 201 Location Header

5842 5843 5844 5845 5846

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.

5847 5848 5849 5850 5851 5852 5853 5854 5855

Example client request: POST /Unfiled HTTP/1.1 Host: example.org Content-Length: 1043 Content-Type: application/atom+xml;type=entry

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 148 of 226

5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878

Al Brown urn:uuid:1f8ceb22-cc15-4d75-9221-00588cd22bdc CMIS Example Document to unfiled 2009-10-19T10:10:01.078-07:00 1f8ceb22-cc15-4d75-9221-00588cd22bdc

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

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:10:01 -0700 Content-Length: 7234 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/e2d2c9b3dab4-4c65-866a-d8006d1bb16f Location: http://cmisexample.oasis-open.org/rep1/queryresult/e2d2c9b3-dab44c65-866a-d8006d1bb16f

Al Brown http://www.ibm.com/ [email protected] urn:uuid:e2d2c9b3-dab4-4c65-866a-d8006d1bb16f CMIS Example Document to unfiled 2009-10-19T10:10:01.093-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 149 of 226

5918 5919 5920 5921 5922 5923 5924 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

2009-10-19T10:10:01.093-07:00 HTML summary of Entry e2d2c9b3-dab4-4c65-866ad8006d1bb16f e2d2c9b3-dab4-4c65-866a-d8006d1bb16f customer CMIS Example Document to unfiled 2009-10-19T10:10:01.093-07:00 2009-10-19T10:10:01.093-07:00 cmis:document Al Brown Al Brown true cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 150 of 226

5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030

false false false false Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis

6031 6032

Please also see the example documents included with the schema.

6033 6034

3.7.5 Types Children Collection

6035 6036 6037

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.

6038

CMIS Services:

6039

GET: getTypeChildren

6040

Media Type: application/atom+xml;type=feed cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 151 of 226

6041 6042 6043 6044

Link Relations: •

6045

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

6046



via: points to the type definition entry whose children represent this feed

6047 6048



down: points to the atom feed document representing the descendents collection for this same type with media type of application/cmistree+xml

6049



paging link relations as appropriate: first, next, previous, last

6050



up: points to the parent type definition

6051

o

If this is a children feed for a base object type, this link is not present.

6052 6053

This feed contains a set of atom entries for each child type definition.

6054 6055 6056

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

6057 6058 6059

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:type inside atom:entry

6060 6061 6062

3.7.5.1 GET

6063

The following arguments may be supplied. Please see the domain model for more information:

6064



includePropertyDefinitions

6065



maxItems

6066



skipCount

6067



typeId

6068

3.8 Collections

6069

3.8.1 Relationships Collection

6070 6071

This is the set of relationships available (either source or target or both) from a specific item such as a document, folder or policy.

6072

CMIS Services:

6073

GET: getObjectRelationships

6074

POST: createRelationship

6075

Media Type: application/atom+xml;type=feed

6076

Accept:

6077



MUST support Atom Entry Documents with CMIS extensions

6078

o

application/atom+xml;type=entry or

6079

o

application/cmisatom+xml

6080



MAY support other media type

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 152 of 226

6081 6082 6083 6084

Link Relations: •

6085 6086

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

6087 6088 6089

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

6090 6091 6092

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

6093 6094

3.8.1.1 GET

6095

The following arguments may be supplied. Please see the domain model for more information:

6096



typeId

6097



includeSubRelationshipTypes

6098



relationshipDirection

6099



maxItems

6100



skipCount

6101



filter

6102



includeAllowableActions

6103

3.8.1.2 POST

6104 6105

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.

6106 6107

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.

6108

The server MUST return the appropriate status code if the cmis:objectTypeId is not specified.

6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127

Example client request: POST /relationships/source/76a5d5bc-cdfe-42ac-9fde-dd09ad384a71 HTTP/1.1 Host: example.org Content-Length: 1432 Content-Type: application/atom+xml;type=entry

Al Brown cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 153 of 226

6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148

urn:uuid:235d5fdc-6193-4ec0-8a78-c0da832a06d9 New Relationship 2009-10-19T10:09:59.796-07:00 customerRelationships 76a5d5bc-cdfe-42ac-9fde-dd09ad384a71 5f3afe79-1e78-4ff9-a3bf-782c5a492e11

6149 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

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:09:59 -0700 Content-Length: 4684 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c8cd2-30900d7a73a6 Location: http://cmisexample.oasis-open.org/rep1/5f3287a5-7442-4e5c-8cd230900d7a73a6

Al Brown http://www.ibm.com/ [email protected] urn:uuid:5f3287a5-7442-4e5c-8cd2-30900d7a73a6 New Relationship 2009-10-19T10:09:59.812-07:00 2009-10-19T10:09:59.812-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 154 of 226

6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 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

HTML summary of Entry 5f3287a5-7442-4e5c-8cd230900d7a73a6 5f3287a5-7442-4e5c-8cd2-30900d7a73a6 customerRelationships New Relationship 2009-10-19T10:09:59.812-07:00 2009-10-19T10:09:59.812-07:00 cmis:relationship Al Brown Al Brown 36f25b8d-c920-4d1f-86ab-3fb8d7ea5f97 3f4b0e37-a49d-4bf0-b71d-f8ed0c865029

6251 6252

Please also see the example documents included with the schema.

6253 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 155 of 226

6254

3.8.2 Folder Children Collection

6255

This is a collection comprised of all the direct children of a particular folder represented as a feed.

6256

CMIS Services:

6257

GET: getChildren

6258

POST:

6259

createDocument

6260

or createFolder

6261

or createPolicy

6262

or moveObject

6263

or addObjectToFolder

6264 6265

Media Type: application/atom+xml;type=feed

6266 6267

Accept:

6268



MUST support Atom Entry Documents with CMIS extensions

6269



MAY support other media type

6270 6271 6272 6273

Link Relations: •

6274

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

6275



via: points to the atom entry of the folder generating this collection

6276



up: points to the atom entry document for this folder’s parent

6277

o

If the root folder, this link relation MUST NOT be included.

6278

o

Media Type: application/atom+xml;type=entry

6279 6280



6281 6282 6283 6284

o •

6285 6286

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

6287 6288 6289

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

6290 6291

The following CMIS Atom extension element MUST be included inside the atom entries:

6292



cmisra:object inside atom:entry

6293



cmisra:pathSegment inside atom:entry

6294

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 156 of 226

6295

3.8.2.1 GET

6296

HTTP Code:

6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308



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

6309

3.8.2.2 POST

6310 6311

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.

6312 6313

• •

HTTP Success: 201 Location Header

6314 6315 6316 6317

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.

6318

o

If specified moveObject will be performed.

6319

o

If not specified, addObjectToFolder will be performed.

6320 6321 6322



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.

6323 6324

POSTing an Atom Entry document with CMIS markup:

6325

Adding a document to a folder:

6326 6327

If the atom entry has a cmis property cmis:objectId that is valid for the repository, the object will be added to the folder.

6328 6329 6330 6331

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.

6332 6333

If the optional argument sourceFolderId is specified, then the object will be removed from the folder specified.

6334 6335 6336 6337 6338 6339 6340 6341 6342

Example client request: POST /obj/8a7761eb-2a0c-4400-b515-964308d6cb5e?sourceFolderId=0571b0e4-80434e48-8a89-448206c2b365 HTTP/1.1 Host: example.org Content-Length: 1227 Content-Type: application/atom+xml;type=entry

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 157 of 226

6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370

Al Brown urn:uuid:8a7761eb-2a0c-4400-b515-964308d6cb5e Document - To Be Moved 2009-10-19T10:09:59.640-07:00 8a7761eb-2a0c-4400-b515-964308d6cb5e invoice

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 6396 6397 6398 6399 6400 6401 6402

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:09:59 -0700 Content-Length: 7213 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4826b-3aa0a8eb8b15 Location: http://cmisexample.oasis-open.org/rep1/69553581-2311-4aa4-826b3aa0a8eb8b15

Al Brown http://www.ibm.com/ [email protected] urn:uuid:69553581-2311-4aa4-826b-3aa0a8eb8b15 Document - To Be Moved 2009-10-19T10:09:59.671-07:00

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 158 of 226

6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 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

2009-10-19T10:09:59.687-07:00 HTML summary of Entry 69553581-2311-4aa4-826b3aa0a8eb8b15 69553581-2311-4aa4-826b-3aa0a8eb8b15 invoice Document - To Be Moved 2009-10-19T10:09:59.687-07:00 2009-10-19T10:09:59.687-07:00 cmis:document Al Brown cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 159 of 226

6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 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 6520 6521 6522

Al Brown true false false false false Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis

6523 6524

Please also see the example documents included with the schema.

6525 6526

Creating a CMIS Object (in that folder):

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 160 of 226

6527 6528 6529

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.

6530 6531 6532 6533

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.

6534 6535 6536

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)

6537

ƒ

src attribute: Implementers MAY support external references to content

6538 6539

ƒ

If the URI in the src attribute is not reachable, then an appropriate http status code should be returned.

6540

o

ƒ

6541 6542 6543 6544 6545

6548

Please see the AtomPub specification RFC5023 for the processing model of the content element.

o

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)

o

At a later time (AtomPub)



6546 6547

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

6549 6550 6551

The optional argument versioningState MAY specify additional versioning behavior such as checkin.

6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579

Example client request: POST /obj/4f833ce6-f53d-4fb5-a268-7c53705a0807 HTTP/1.1 Host: example.org Content-Length: 1190 Content-Type: application/atom+xml;type=entry

Al Brown urn:uuid:4f833ce6-f53d-4fb5-a268-7c53705a0807 New Invoice 2009-10-19T10:09:59.718-07:00 this is the content of the new document 4f833ce6-f53d-4fb5-a268-7c53705a0807 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 161 of 226

6580 6581 6582 6583 6584 6585 6586 6587

invoice

6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:09:59 -0700 Content-Length: 7191 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae8d72-ea72987af212 Location: http://cmisexample.oasis-open.org/rep1/8f714453-f9cf-40ae-8d72ea72987af212

Al Brown http://www.ibm.com/ [email protected] urn:uuid:8f714453-f9cf-40ae-8d72-ea72987af212 New Invoice 2009-10-19T10:09:59.734-07:00 2009-10-19T10:09:59.734-07:00 HTML summary of Entry 8f714453-f9cf-40ae-8d72ea72987af212 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 162 of 226

6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 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 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704

8f714453-f9cf-40ae-8d72-ea72987af212 invoice New Invoice 2009-10-19T10:09:59.734-07:00 2009-10-19T10:09:59.734-07:00 cmis:document Al Brown Al Brown true false false false

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 163 of 226

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

false Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis

6740 6741

Please also see the example documents included with the schema.

6742 6743

POSTing other document formats: (AtomPub)

6744 6745

The behavior is repository specific when a non Atom entry or an atom document without the CMIS elements is posted to a folder collection.

6746 6747

For example, the repository MAY auto-create a document with a specific type (document) the client could edit.

6748 6749

If the repository does not support this scenario or another exception occurs, then the repository MUST return the appropriate HTTP status code.

6750 6751

Optional arguments:

6752



versioningState (for createDocument)

6753



sourceFolderId (for moveObject)

6754 6755

3.8.3 Policies Collection

6756

This is an atom feed of all the policy objects currently applied to a specific object

6757

CMIS Services:

6758

GET: getAppliedPolicies cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 164 of 226

6759

POST: applyPolicy (to object representing this collection of policies)

6760

Media Type: application/atom+xml;type=feed

6761

Accept:

6762



MUST support Atom Entry Documents with CMIS extensions

6763

o

application/atom+xml;type=entry or

6764

o

application/cmisatom+xml

6765



MAY support other media type

6766 6767 6768 6769

Link Relations: •

6770

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

6771



via: points to the atom entry of the resource generating this collection

6772



paging link relations as appropriate: first, next, previous, last

6773 6774 6775

The policy entries displayed here are specific to the object generating this collection. A DELETE method on those URIs will invoke removePolicy().

6776 6777 6778

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

6779 6780 6781

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

6782 6783

3.8.3.1 GET

6784

The following arguments may be supplied. Please see the domain model for more information:

6785



filter

6786

3.8.3.2 POST

6787 6788

When an Atom Entry representing a Policy is posted to this collection, the policy will be applied to the object.

6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804

Example client request: POST /policies/f6fc3972-ed27-4b49-9412-b4ef2b0f715e HTTP/1.1 Host: example.org Content-Length: 1039 Content-Type: application/atom+xml;type=entry

Al Brown cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 165 of 226

6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821

urn:uuid:f6fc3972-ed27-4b49-9412-b4ef2b0f715e Security Policy for Invoices 2009-10-19T10:09:59.765-07:00 f6fc3972-ed27-4b49-9412-b4ef2b0f715e F

6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865

Example server response: HTTP/1.1 201 Created Date: Mon, 19 Oct 2009 10:09:59 -0700 Content-Length: 4043 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf9bce-b6238caa5616 Location: http://cmisexample.oasis-open.org/rep1/1ee01165-98cf-45bf-9bceb6238caa5616

Al Brown http://www.ibm.com/ [email protected] urn:uuid:1ee01165-98cf-45bf-9bce-b6238caa5616 Security Policy for Invoices 2009-10-19T10:09:59.765-07:00 2009-10-19T10:09:59.781-07:00 HTML summary of Entry 1ee01165-98cf-45bf-9bceb6238caa5616

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 166 of 226

6866 6867 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 6912

1ee01165-98cf-45bf-9bce-b6238caa5616 generalSecurityPolicy Security Policy for Invoices 2009-10-19T10:09:59.781-07:00 2009-10-19T10:09:59.781-07:00 cmis:policy Al Brown Al Brown

6913 6914

Please also see the example documents included with the schema.

6915

3.9 Feeds

6916

3.9.1 Object Parents Feed

6917

This is the set of parents for a specific object.

6918

CMIS Services:

6919

GET: getObjectParents

6920

Media Type: application/atom+xml;type=feed

6921 6922

Link Relations: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 167 of 226

6923 6924



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

6925 6926

o •

Media Type: application/atomsvc+xml

via: points to the atom entry of object who’s parents are represented by this collection

6927 6928

This feed contains a set of atom entries for each parent of the object that MUST contain:

6929



cmisra:object inside atom:entry

6930



cmisra:relativePathSegment inside atom:entry for the name of the object inside the folder

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

Example: Parent Feed for 1b43e592-a780-4feb-a0dcd25de6bf7ab4 Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.562-07:00 urn:uuid:a8fc16cb-d385-4172-b994-da119636d954 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:adb70b59-db45-4da2-81c0-11062fb063bd Customer Folder 2009-10-19T10:10:00.562-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 168 of 226

6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 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

2009-10-19T10:10:00.562-07:00 HTML summary of Entry adb70b59-db45-4da281c0-11062fb063bd adb70b59-db45-4da2-81c011062fb063bd customer Customer Folder 2009-10-19T10:10:00.562-07:00 2009-10-19T10:10:00.562-07:00 cmis:folder cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 169 of 226

7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064

Al Brown Al Brown adb70b59-db45-4da2-81c011062fb063bdup customer1

7065 7066

Please also see the example documents included with the schema.

7067

3.9.1.1 GET

7068

The following arguments may be supplied. Please see the domain model for more information:

7069



filter

7070



includeAllowableActions

7071



includeRelationships

7072



renditionFilter

7073



includeRelativePathSegment

7074

o

If true, then the cmisra:relativePathSegment element will be included in the response.

7075

3.9.2 Changes

7076 7077 7078

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.

7079 7080

CMIS Services:

7081

GET: getContentChanges()

7082

Media Type: application/atom+xml;type=feed

7083

Link Relations:

7084 7085



7086 7087 7088

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 o

ChangeLogToken is incorporated into the URI specified by the next link relation

7089 7090

This feed MUST be ordered from oldest first to newest.

7091

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 170 of 226

7092 7093 7094

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.

7095 7096 7097

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

7098 7099 7100

The following CMIS Atom extension element MUST be included inside the atom entries: •

cmisra:object inside atom:entry

7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149

Example: changelog feed Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:09:59.953-07:00 urn:uuid:04393e94-6888-404e-b9de-765cf769b5de 2 Al Brown http://www.ibm.com/ [email protected] urn:uuid:2ff37143-0d0d-4c1a-948d-bd8311261c1f CMIS Example Folder as Customer Policy type 2009-10-19T10:09:59.953-07:00

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 171 of 226

7150 7151 7152 7153 7154 7155 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 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213

2009-10-19T10:09:59.953-07:00 HTML summary of Entry 2ff37143-0d0d-4c1a948d-bd8311261c1f 2ff37143-0d0d-4c1a-948dbd8311261c1f customerpolicy CMIS Example Folder as Customer Policy type 2009-10-19T10:09:59.953-07:00 2009-10-19T10:09:59.953-07:00 cmis:folder Al Brown cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 172 of 226

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 7273 7274 7275

Al Brown 2ff37143-0d0d-4c1a-948dbd8311261c1fup updated 2009-10-19T10:09:59.95307:00 policy Al Brown http://www.ibm.com/ [email protected] urn:uuid:95715cc8-5f9c-45ce-8c54-4c2d8d7c44fc CMIS Example Document 2009-10-19T10:09:59.968-07:00 2009-10-19T10:09:59.968-07:00 HTML summary of Entry 95715cc8-5f9c-45ce8c54-4c2d8d7c44fc

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 173 of 226

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 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338

95715cc8-5f9c-45ce-8c544c2d8d7c44fc document CMIS Example Document 2009-10-19T10:09:59.968-07:00 2009-10-19T10:09:59.968-07:00 cmis:document Al Brown Al Brown true false false false false

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 174 of 226

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

Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis updated 2009-10-19T10:09:59.96807:00 invoice.pdf

7376 7377

Please also see the example documents included with the schema.

7378

3.9.2.1 GET

7379

The following optional parameters may be supplied:

7380



filter

7381



maxItems

7382



includeACL

7383



includePolicyIds

7384



includeProperties

7385



filter

7386

3.9.3 Folder Descendants

7387 7388 7389

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.

7390 7391 7392

If a repository does not support capabilityGetDescendants, then these resources SHOULD NOT be exposed. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 175 of 226

7393 7394

CMIS Services:

7395

GET: getDescendants

7396

DELETE: deleteTree

7397

Media Type: application/atom+xml;type=feed

7398 7399 7400 7401

Link Relations: •

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

7402

o

Media Type: application/atomsvc+xml

7403



via: points to the atom entry of the folder generating this collection

7404



up: points to the atom entry document for this folder’s parent

7405

o

Media Type: application/atom+xml;type=entry

7406

o

If the root folder, this link relation MUST not be included.

7407



down:

7408 7409

o

points to the atom feed document representing the children feed for this same folder with media type of application/atom+xml;type=entry

7410

o

Since this is the descendants, the descendants link SHOULD NOT be included

7411



paging link relations MAY be included as appropriate: first, next, previous, last

7412 7413 7414

o •

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

7415 7416 7417

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

7418 7419

The following CMIS Atom extension element MUST be included inside the atom entries:

7420



cmisra:object inside atom:entry

7421



cmisra:pathSegment inside atom:entry

7422



cmisra:children inside atom:entry

7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438

Example: Feed for folder1 Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.203-07:00 urn:uuid:83638fc5-90e7-4d03-bd04-1a4cc5c5c98e

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 176 of 226

7439 7440 7441 7442 7443 7444 7445 7446 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 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501

1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:c2e574a0-2d30-4834-b8a3-6333b33181c3 CMIS Example Folder as Customer type 2009-10-19T10:10:00.203-07:00 2009-10-19T10:10:00.203-07:00 HTML summary of Entry c2e574a0-2d30-4834b8a3-6333b33181c3

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 177 of 226

7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 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 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565

c2e574a0-2d30-4834-b8a36333b33181c3 customer CMIS Example Folder as Customer type 2009-10-19T10:10:00.203-07:00 2009-10-19T10:10:00.203-07:00 cmis:folder Al Brown Al Brown c2e574a0-2d30-4834-b8a36333b33181c3up customer CMIS Example Folder as Customer type Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.203-07:00 urn:uuid:9550c57d-64cd-4f00-9ab4-5b44903717e8 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 178 of 226

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 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627

1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:d4bc9b02-f732-49ce-979ada31175a4d50 CMIS Example Doc as Invoice type 2009-10-19T10:10:00.203-07:00 2009-10-19T10:10:00.203-07:00 HTML summary of Entry d4bc9b02f732-49ce-979a-da31175a4d50

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 179 of 226

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 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690

d4bc9b02-f732-49ce-979ada31175a4d50 invoice CMIS Example Doc as Invoice type 2009-10-19T10:10:00.21807:00 2009-10-19T10:10:00.21807:00 cmis:document Al Brown Al Brown true false false false

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 180 of 226

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

false Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis invoice1.pdf

7729 7730

Please also see the example documents included with the schema.

7731

3.9.3.1 GET

7732

The following arguments may be supplied. Please see the domain model for more information:

7733



filter

7734



depth

7735



includeAllowableActions

7736



includeRelationships

7737



renditionFilter

7738



includePathSegment

7739

3.9.3.2 DELETE

7740 7741

This deletes the folder and all sub-folders. The following arguments may be supplied. Please see the domain model for more information:

7742



continueOnFailure

7743



unfileObjects

7744 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 181 of 226

7745

Status Code:

7746



200 OK if successful. Body contains entity describing the status

7747



202 Accepted, if accepted but deletion not yet taking place

7748



204 No Content, if successful with no content

7749



403 Forbidden, if permission is denied

7750



401 Unauthorized, if not authenticated

7751



500 Internal Server Error. The body SHOULD contain an entity describing the status

7752 7753 7754

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.

7755 7756

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.

7757

3.9.4 Folder Tree

7758 7759 7760

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.

7761 7762

CMIS Services:

7763

GET: getFolderTree

7764

DELETE: deleteTree

7765

Media Type: application/atom +xml;type=feed

7766 7767 7768 7769

Link Relations: •

7770

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

7771



via: points to the atom entry of the folder generating this collection

7772



up: points to the atom entry document of this folder’s parent

7773

o

If the root folder, this link relation MUST not be included.

7774

o

Media Type: application/atom+xml;type=entry

7775



down:

7776 7777

o

application/atom+xml : Points to the atom feed document representing the children feed for this same folder

7778 7779 7780

o

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.

7781 7782 7783



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.

7784 7785

This feed contains a set of atom entries for each sub-folder in the folder.

7786 7787

The following CMIS Atom extension element MAY be included inside the atom feed: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 182 of 226

7788



cmisra:numItems

7789 7790

The following CMIS Atom extension element MUST be included inside the atom entries:

7791



cmisra:object inside atom:entry

7792



cmisra:pathSegment inside atom:entry

7793



cmisra:children inside atom:entry

7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846

Example: FolderTree Feed of Folder1 Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.312-07:00 urn:uuid:e8627e01-9b28-4e5b-b7b4-d88c05bae4e9 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:7d9c26a2-ad1e-43e5-b176-247b64e4f4bc Customer Folder 2009-10-19T10:10:00.312-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 183 of 226

7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 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 7907 7908 7909

2009-10-19T10:10:00.312-07:00 HTML summary of Entry 7d9c26a2-ad1e-43e5b176-247b64e4f4bc 7d9c26a2-ad1e-43e5-b176247b64e4f4bc customer Customer Folder 2009-10-19T10:10:00.328-07:00 2009-10-19T10:10:00.328-07:00 cmis:folder Al Brown

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 184 of 226

7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923

Al Brown 7d9c26a2-ad1e-43e5-b176247b64e4f4bcup customer

7924 7925

Please also see the example documents included with the schema.

7926

3.9.4.1 GET

7927

The following arguments may be supplied. Please see the domain model for more information:

7928



filter

7929



depth

7930



includeAllowableActions

7931



includeRelationships

7932



renditionFilter

7933

3.9.4.2 DELETE

7934

This is the same as DELETE on Folder Descendants. Please see that section.

7935

3.9.5 AllVersions Feed

7936

This is a feed comprised of all the versions of the given document.

7937

CMIS Services:

7938

GET: getAllVersions

7939

DELETE: deleteAllVersions

7940

Media Type: application/atom+xml;type=feed

7941 7942

The feed SHOULD contain the newest versions at the beginning of the feed.

7943 7944 7945 7946

Link Relations: •

7947

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

7948



via: points to the atom entry of the resource generating this collection

7949



paging link relations as appropriate: first, next, previous, last

7950 7951

This feed contains a set of atom entries for each version in the version series

7952



cmisra:object inside atom:entry

7953



cmisra:children inside atom:entry if atom:entry represents a CMIS Folder

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 185 of 226

7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 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

Example: AllVersions for Document c3141e18-fb48-4742-a6f8adef86dea79a Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:09:59.828-07:00 urn:uuid:309c322f-1e10-4306-85ba-98f1870c5882 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:9c7860a7-be25-439e-b473-8da032402a6d Invoice (Version1) 2009-10-19T10:09:59.828-07:00 2009-10-19T10:09:59.843-07:00 HTML summary of Entry 9c7860a7-be25-439eb473-8da032402a6d cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 186 of 226

8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041

9c7860a7-be25-439e-b4738da032402a6d

8042 8043

Please also see the example documents included with the schema.

8044

3.9.5.1 GET

8045

The following arguments may be supplied. Please see the domain model for more information:

8046



filter

8047



includeAllowableActions

8048

3.9.5.2 DELETE

8049

This removes the entire version history of the document.

8050 8051

Success HTTP code: 204

8052

3.9.6 Type Descendants Feed

8053 8054 8055 8056

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/typesdescendants.

8057 8058 8059

Types are nested using the CMIS hierarchy extension. Please see section 3.2.3.2 Hierarchy Navigation Internet Draft Link Relations.

8060 8061 8062

CMIS Services: GET: getTypeDescendants

8063 8064

Media Type: application/atom+xml;type=feed

8065 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 187 of 226

8066 8067 8068

Link Relations: •

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

8069

o

Media Type: application/atomsvc+xml

8070 8071



via: points to the type definition whose descendents represent this feed. This link is not present if no parent type is specified.

8072



down: points to the children feed for the same type

8073



up: points to the parent type definition

8074

o

If this is a descendants feed for a base object type, this link is not present.

8075 8076 8077

The following CMIS Atom extension element MAY be included inside the atom feed: •

cmisra:numItems

8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 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

Example: Base Types Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.656-07:00 urn:uuid:e1981abc-a130-4cf0-89f2-0fa26f2801fe 1 Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:document http://cmisexample.oasisopen.org/rep1/type/cmis:document cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 188 of 226

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 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

2009-10-19T10:10:00.656-07:00 HTML summary of Type Definition cmis:document Type Definition - cmis:document 2009-10-19T10:10:00.656-07:00 2009-10-19T10:10:00.671-07:00 dtcmis:document myrepname-cmis:document cmis:document cmis:document Description for type definition cmis:document cmis:document parent true true false false true true true true allowed Children for Document Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.671-07:00 urn:uuid:5657c90b-b07f-4225-832d-28a5302f8424 1 Al Brown http://www.ibm.com/ [email protected] Type Definition for invoicedocument http://cmisexample.oasis-open.org/rep1/type/invoicedocument

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 189 of 226

8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248

2009-10-19T10:10:00.671-07:00 HTML summary of Type Definition invoice-document Type Definition - invoicedocument 2009-10-19T10:10:00.671-07:00 2009-10-19T10:10:00.671-07:00 dtinvoice-document myrepname-invoicedocument invoice-document invoice-document Description for type definition invoicedocument cmis:document parent true true false false true true true true allowed Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:folder http://cmisexample.oasisopen.org/rep1/type/cmis:folder

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 190 of 226

8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 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

2009-10-19T10:10:00.671-07:00 HTML summary of Type Definition cmis:folder Type Definition - cmis:folder 2009-10-19T10:10:00.671-07:00 2009-10-19T10:10:00.671-07:00 dtcmis:folder myrepname-cmis:folder cmis:folder cmis:folder Description for type definition cmis:folder cmis:folder parent true true false false true true true Children for Folder Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.671-07:00 urn:uuid:7b556496-2a09-40ca-b2a5-3e4e5596fb89 1 Al Brown http://www.ibm.com/ [email protected] Type Definition for customerfolder http://cmisexample.oasis-open.org/rep1/type/customerfolder cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 191 of 226

8313 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

2009-10-19T10:10:00.671-07:00 HTML summary of Type Definition customer-folder Type Definition - customerfolder 2009-10-19T10:10:00.671-07:00 2009-10-19T10:10:00.671-07:00 dtcustomer-folder myrepname-customer-folder customer-folder customer-folder Description for type definition customer-folder cmis:folder parent true true false false true true true Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:relationship http://cmisexample.oasisopen.org/rep1/type/cmis:relationship cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 192 of 226

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 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440

2009-10-19T10:10:00.671-07:00 HTML summary of Type Definition cmis:relationship Type Definition cmis:relationship 2009-10-19T10:10:00.687-07:00 2009-10-19T10:10:00.687-07:00 dtcmis:relationship myrepname-cmis:relationship cmis:relationship cmis:relationship Description for type definition cmis:relationship cmis:relationship parent true false false false true true true invoice capitalinvoice customer Children for Relationship Al Brown http://www.ibm.com/ [email protected] 2009-10-19T10:10:00.687-07:00 urn:uuid:1bc33a0d-27ac-4976-9cab-58ea28e3ff6c 1 Al Brown http://www.ibm.com/ [email protected] Type Definition for customerrelationship http://cmisexample.oasis-open.org/rep1/type/customerrelationship cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 193 of 226

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 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504

2009-10-19T10:10:00.687-07:00 HTML summary of Type Definition customer-relationship Type Definition - customerrelationship 2009-10-19T10:10:00.687-07:00 2009-10-19T10:10:00.687-07:00 dtcustomer-relationship myrepname-customerrelationship customer-relationship customer-relationship Description for type definition customer-relationship cmis:relationship parent true false false false true true true invoice capitalinvoice customer Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:policy http://cmisexample.oasisopen.org/rep1/type/cmis:policy cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 194 of 226

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 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542

2009-10-19T10:10:00.687-07:00 HTML summary of Type Definition cmis:policy Type Definition - cmis:policy 2009-10-19T10:10:00.687-07:00 2009-10-19T10:10:00.687-07:00 dtcmis:policy myrepname-cmis:policy cmis:policy cmis:policy Description for type definition cmis:policy cmis:policy parent true false false false true true true

8543 8544

Please also see the example documents included with the schema.

8545

3.9.6.1 GET

8546

The following arguments may be supplied. Please see the domain model for more information:

8547



includePropertyDefinitions

8548



depth

8549

3.10 Resources

8550

3.10.1 Type Entry

8551

This represents a type definition in the repository. This is enclosed as an atom entry

8552 8553 8554 8555

CMIS Services: GET: getTypeDefinition Media Type: application/atom+xml;type=entry

8556 8557

Link Relations: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 195 of 226

8558 8559



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

8560

o

Media Type: application/atomsvc+xml

8561



up: Points to the parent type as atom entry if applicable

8562



down: Points to the children of this type as atom feed if applicable

8563 8564

o

(Children) Media Type: application/atom +xml;type=feed points to the atom feed document representing the children feed for this same type

8565 8566

o

(Descendants) Media Type: application/cmistree+xml points to the atom feed document representing the descendents feed for this same type

8567



describedby: Points to the type definition atom entry of the base type of this type definition.

8568 8569 8570

The following CMIS Atom extension element MUST be included inside the atom entry: •

cmisra:type

8571

3.10.1.1 GET

8572

There are no optional arguments for this resource.

8573 8574 8575 8576 8577

Request: GET /obj/0010d88d-d006-4d50-aad0-c8f61f80f273 HTTP/1.1 Host: example.org

8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:01 -0700 Content-Length: 2995 Content-Type: application/atom+xml;type=entry Location: http://cmisexample.oasis-open.org/rep1/cmis:document

Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:document http://cmisexample.oasisopen.org/rep1/type/cmis:document cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 196 of 226

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

2009-10-19T10:10:01.015-07:00 HTML summary of Type Definition cmis:document Type Definition - cmis:document 2009-10-19T10:10:01.015-07:00 2009-10-19T10:10:01.015-07:00 dtcmis:document myrepname-cmis:document cmis:document cmis:document Description for type definition cmis:document cmis:document parent true true false false true true true true allowed

8645 8646

Please also see the example documents included with the schema.

8647 8648

3.10.2 Document Entry

8649

This is a CMIS Document instance.

8650 8651

CMIS Services:

8652

GET: getObject, getObjectOfLatestVersion (getObject)

8653

PUT: updateProperties

8654

DELETE: deleteObject

8655

Media Type: application/atom+xml;type=entry

8656 8657

Link Relations:

8658 8659



self: Points to an URI that returns the atom entry for this document. Please see Atom for more information.

8660



edit: Points to an URI that accepts PUT of atom entry. Please see AtomPub for more information.

8661 8662



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

8663

o

Media Type: application/atomsvc+xml

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 197 of 226

8664 8665



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.

8666



version-history: Points to atom feed containing the versions of this document

8667 8668

o •

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

8669

o

Uses query parameter ‘returnVersion’ and enumReturnVersion

8670

o

If this version is the current-version, this link relation may not be on the resource

8671



edit-media:

8672

o

Same as setContentStream. Allows updating the content stream on this document

8673

o

Please see AtomPub for more information

8674



working-copy: Points to the private working copy if it exists.

8675



describedby: Points to the type definition as an atom entry for the type of this document entry.

8676 8677



alternate: this is used to identify the renditions available for the specified object. Please see the Renditions section.

8678 8679



http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions document for this object.

8680 8681



http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for this object

8682



http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

8683



http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

8684 8685 8686

The following CMIS Atom extension element MUST be included inside the atom entry: •

cmisra:object

8687 8688

3.10.2.1 GET

8689

The following arguments may be supplied. Please see the domain model for more information:

8690



returnVersion

8691

o

Used to differentiate between getObject() and getObjectOfLatestVersion().

8692

o

valid values are are described by the schema element cmisra:enumReturnVersion

8693

o

If not specified, return the version specified by the URI

8694



includeAllowableActions

8695



includeRelationships

8696



includePolicyIds

8697



includeACL

8698



filter

8699



renditionFilter

8700

o

If not specified, renditions will not be included.

8701 8702 8703 8704 8705 8706

Request: GET /obj/8a7b8f30-3e9f-49b9-acf7-94851ff7ad08?filter=cmis:objectId HTTP/1.1 Host: example.org cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 198 of 226

8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 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

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:00 -0700 Content-Length: 3403 Content-Type: application/atom+xml;type=entry Location: /obj/8a7b8f30-3e9f-49b9-acf7-94851ff7ad08?filter=cmis:objectId

Al Brown http://www.ibm.com/ [email protected] urn:uuid:8a7b8f30-3e9f-49b9-acf7-94851ff7ad08 Invoice 2009-10-19T10:10:00.843-07:00 2009-10-19T10:10:00.843-07:00 HTML summary of Entry 8a7b8f30-3e9f-49b9-acf794851ff7ad08 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 199 of 226

8770 8771 8772 8773 8774 8775 8776 8777 8778 8779

8a7b8f30-3e9f-49b9-acf7-94851ff7ad08

8780 8781

Please also see the example documents included with the schema.

8782 8783

3.10.2.2 PUT

8784 8785

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.

8786 8787

The server SHOULD respond with:

8788



HTTP Status Code 200

8789



Response Body containing the updated atom entry

8790 8791

3.10.2.3 DELETE

8792

This removes the document.

8793

Success HTTP code: 204

8794

3.10.3 Document Private Working Copy (PWC) Entry

8795

This is the private working copy of the document (checkedout version of document)

8796

CMIS Services:

8797

GET: getObject

8798

PUT: updateProperties or checkIn

8799

DELETE: cancelCheckOut

8800

Media Type: application/atom+xml;type=entry

8801 8802

Link relations:

8803



self: Points to the URI to retrieve this atom entry. Please see Atom for more information

8804 8805



edit: Points to the URI to update this atom entry via POST. Please see AtomPub for more information.

8806 8807



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

8808

o

Media Type: application/atomsvc+xml

8809 8810



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.

8811



version-history

8812 8813

o •

Points to an URI that returns the feed associated with the version history

edit-media

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 200 of 226

8814

o

Same as setContentStream. Allows updating the content stream on this document

8815

o

Please see AtomPub for more information

8816



via: atom entry that created this private working copy

8817



describedby: Points to the type definition as an atom entry for the type of this PWC entry.

8818 8819



alternate: this is used to identify the renditions available for the specified object. Please see the Renditions section.

8820 8821



http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions document for this object.

8822 8823



http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for this object

8824



http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

8825



http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

8826 8827 8828

The following element MUST be included inside the atom entry: •

cmisra:object

8829 8830

3.10.3.1 GET

8831

The following arguments may be supplied. Please see the domain model for more information:

8832



filter

8833



includeAllowableActions

8834



includeRelationships

8835



renditionFilter

8836

o

If not specified, renditions will not be included.

8837 8838 8839 8840 8841

Request: GET /obj/3ca7d7d0-1c98-4c38-9141-604d287fb881?filter=cmis:objectId HTTP/1.1 Host: example.org

8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:00 -0700 Content-Length: 3564 Content-Type: application/atom+xml;type=entry Location: /obj/3ca7d7d0-1c98-4c38-9141-604d287fb881?filter=cmis:objectId

Al Brown http://www.ibm.com/ [email protected]

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 201 of 226

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 8909 8910 8911 8912 8913 8914 8915 8916 8917

urn:uuid:3ca7d7d0-1c98-4c38-9141-604d287fb881 Invoice 2009-10-19T10:10:00.968-07:00 2009-10-19T10:10:00.968-07:00 HTML summary of Entry 3ca7d7d0-1c98-4c38-9141604d287fb881 3ca7d7d0-1c98-4c38-9141-604d287fb881

8918 8919

Please also see the example documents included with the schema.

8920

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 202 of 226

8921

3.10.3.2 PUT

8922 8923

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.

8924 8925

The following arguments may be supplied. Please see the domain model for more information:

8926



checkinComment

8927



major

8928



checkin

8929 8930

o

Used to differentiate between updateProperties() or checkin() services. If TRUE, execute checkin service.

8931 8932

The server SHOULD respond with:

8933



HTTP Status Code 200

8934



Location header of the resource (if changed via checkin)

8935



Response Body containing the updated atom entry

8936

3.10.3.3 DELETE

8937

This removes the document entry, in this case, cancels the check out. The PWC will be removed.

8938 8939

Success HTTP code: 204

8940

3.10.4 Folder Entry

8941

This is a CMIS Folder instance. The properties of a folder map onto the feed tag.

8942

CMIS Services:

8943

GET: getObject

8944

PUT: updateProperties

8945

DELETE: deleteObject (this is deletion of the folder only and not any contained objects)

8946

Media Type: application/atom+xml;type=entry

8947 8948 8949 8950 8951 8952

Link Relations: •

self: Points to the URI to retrieve this atom entry. Please see Atom for more information

edit: Points to the URI to update this atom entry via POST. Please see AtomPub for more information. •

8953

service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element. o

Media Type: application/atomsvc+xml

8954



describedby: Points to the type definition as an atom entry for the type of this folder entry.

8955



down: Points to the children of this folder if they exist

8956 8957

o

application/atom+xml : Points to the atom feed document representing the children feed for this same folder

8958

o

application/cmistree+xml: Points to the descendants feed of the same folder

8959 8960



up: Points to the atom entry for the parent o

If the root folder, this link will not be present

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 203 of 226

8961 8962



alternate: this is used to identify the renditions available for the specified object. Please see the Renditions section.

8963 8964



http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions document for this object.

8965 8966



http://docs.oasis-open.org/ns/cmis/link/200908/relationships: Points to the relationships feed for this object

8967



http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

8968



http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

8969



http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: Points to the folder tree for this folder

8970 8971 8972

The following CMIS Atom extension element MUST be included inside the atom entry: •

cmisra:object

8973 8974

3.10.4.1 GET

8975

The following arguments may be supplied. Please see the domain model for more information:

8976



filter

8977



includeAllowableActions

8978



includeRelationships

8979



renditionFilter

8980

o

If not specified, renditions will not be included.

8981 8982 8983 8984 8985

Request: GET /obj/24cbe125-1ffc-4459-8089-0e6f0a500150?filter=cmis:objectId HTTP/1.1 Host: example.org

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

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:00 -0700 Content-Length: 3332 Content-Type: application/atom+xml;type=entry Location: /obj/24cbe125-1ffc-4459-8089-0e6f0a500150?filter=cmis:objectId

Al Brown http://www.ibm.com/ [email protected] urn:uuid:24cbe125-1ffc-4459-8089-0e6f0a500150 Customer Folder 2009-10-19T10:10:00.875-07:00 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 204 of 226

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 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057

2009-10-19T10:10:00.875-07:00 HTML summary of Entry 24cbe125-1ffc-4459-80890e6f0a500150 24cbe125-1ffc-4459-8089-0e6f0a500150

9058 9059

Please also see the example documents included with the schema.

9060 9061

3.10.4.2 PUT

9062 9063

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.

9064 9065

The server SHOULD respond with:

9066



HTTP Status Code 200

9067



Response Body containing the updated atom entry

9068 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 205 of 226

9069

3.10.4.3 DELETE

9070

This removes the object (folder) from the repository.

9071

Success HTTP code: 204

9072

3.10.5 Relationship Entry

9073

This is a CMIS relationship instance. These objects are exposed via ‘relationships’ link type.

9074

CMIS Services:

9075

GET: getObject

9076

PUT: updateProperties

9077

DELETE: deleteObject

9078

Media Type: application/atom+xml;type=entry

9079 9080

Link Relations:

9081



self: Points to the URI to retrieve this atom entry. Please see Atom for more information

9082 9083



edit: Points to the URI to update this atom entry via POST. Please see AtomPub for more information.

9084 9085



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

9086

o

Media Type: application/atomsvc+xml

9087



describedby: Points to the type definition as an atom entry for the type of this relationship entry.

9088



http://docs.oasis-open.org/ns/cmis/link/200908/target

9089



http://docs.oasis-open.org/ns/cmis/link/200908/source

9090 9091



http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions document for this object.

9092



http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9093



http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9094 9095 9096

The following element MUST be included inside the atom entry: •

cmisra:object

9097 9098

3.10.5.1 GET

9099

The following arguments may be supplied. Please see the domain model for more information:

9100



filter

9101



includeAllowableActions

9102 9103 9104 9105 9106

Request: GET /obj/38af30f5-020d-4274-b25c-0821b6db899b?filter=cmis:objectId HTTP/1.1 Host: example.org

9107 9108 9109 9110

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:01 -0700 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 206 of 226

9111 9112 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 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

Content-Length: 2861 Content-Type: application/atom+xml;type=entry Location: /obj/38af30f5-020d-4274-b25c-0821b6db899b?filter=cmis:objectId

Al Brown http://www.ibm.com/ [email protected] urn:uuid:38af30f5-020d-4274-b25c-0821b6db899b Customer Relationship 2009-10-19T10:10:01.000-07:00 2009-10-19T10:10:01.000-07:00 HTML summary of Entry 38af30f5-020d-4274-b25c0821b6db899b 38af30f5-020d-4274-b25c-0821b6db899b

9170 9171

Please also see the example documents included with the schema.

9172 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 207 of 226

9173

3.10.5.2 PUT

9174 9175

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.

9176 9177

The server SHOULD respond with:

9178



HTTP Status Code 200

9179



Response Body containing the updated atom entry

9180 9181

3.10.5.3 DELETE

9182

This removes the relationship entry.

9183

Successful HTTP code: 204

9184

3.10.6 Policy Entry

9185

This is a CMIS policy instance.

9186

CMIS Services:

9187

GET: getObject

9188

PUT: updateProperties

9189

DELETE: deleteObject or removePolicy

9190

Media Type: application/atom+xml;type=entry

9191 9192

Link Relations:

9193



self

9194



edit

9195 9196



service: Points to service document containing the CMIS repository. The service document MUST contain only one workspace element.

9197

o

Media Type: application/atomsvc+xml

9198



describedby: Points to the type definition as an atom entry for the type of this policy entry.

9199 9200



alternate: this is used to identify the renditions available for the specified object. Please see the Renditions section.

9201 9202



http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions: Points to the allowable actions document for this object.

9203



http://docs.oasis-open.org/ns/cmis/link/200908/policies: Points to the policy feed for this object.

9204



http://docs.oasis-open.org/ns/cmis/link/200908/acl: Points to ACL document for this object

9205 9206 9207

The following element MUST be included inside the atom entry: •

cmisra:object

9208 9209

3.10.6.1 GET

9210

The following arguments may be supplied. Please see the domain model for more information:

9211



filter

9212



includeAllowableActions

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 208 of 226

9213



includeRelationships

9214



renditionFilter

9215

o

If not specified, renditions will not be included.

9216 9217 9218 9219 9220

Request: GET /obj/408fb453-4a18-4103-b495-e84a2a2761a0?filter=cmis:objectId HTTP/1.1 Host: example.org

9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 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

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:00 -0700 Content-Length: 2608 Content-Type: application/atom+xml;type=entry Location: /obj/408fb453-4a18-4103-b495-e84a2a2761a0?filter=cmis:objectId

Al Brown http://www.ibm.com/ [email protected] urn:uuid:408fb453-4a18-4103-b495-e84a2a2761a0 Security Policy 2009-10-19T10:10:00.937-07:00 2009-10-19T10:10:00.937-07:00 HTML summary of Entry 408fb453-4a18-4103-b495e84a2a2761a0 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 209 of 226

9273 9274 9275 9276 9277 9278 9279 9280

408fb453-4a18-4103-b495-e84a2a2761a0

9281 9282

Please also see the example documents included with the schema.

9283 9284

3.10.6.2 PUT

9285 9286

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.

9287 9288

The server SHOULD respond with:

9289



HTTP Status Code 200

9290



Response Body containing the updated atom entry

9291 9292

3.10.6.3 DELETE

9293 9294

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.

9295 9296

Success HTTP code: 204

9297

3.10.7 Content Stream

9298

This is the content stream portion of the document object.

9299

CMIS Services:

9300

GET: getContentStream

9301

PUT: setContentStream

9302

DELETE: deleteContentStream

9303

Media Type: Mime/Type of resource (mime type of content stream on document)

9304

3.10.7.1 GET

9305

This returns the content stream.

9306 9307 9308

It is RECOMMENDED that HTTP Range requests are supported on this resource. It is RECOMMENDED that HTTP compression is also supported.

9309 9310

Please see RFC2616 for more information on HTTP Range requests.

9311

3.10.7.2 PUT

9312

This does a replacement of the content stream.

9313 9314

The following optional arguments may be supplied. Please see the domain model for more information: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 210 of 226

9315



overwriteFlag.

9316 9317

o

If not specified, this defaults to ‘true’ in this binding and behaves consistent with AtomPub.

9318 9319

Success HTTP code: 201

9320 9321

Returns headers:

9322



Content-Location: URI for content stream

9323



Location: URI for content stream

9324

3.10.7.3 DELETE

9325

This removes the content stream.

9326

3.10.8 ACL Resource

9327

CMIS Services:

9328

GET: getACL

9329

PUT: applyACL

9330 9331

Media Type: application/cmisacl+xml

9332 9333

3.10.8.1 GET

9334 9335

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.

9336 9337 9338 9339 9340

Request: GET /objacl/59fe373b-0348-493e-baaf-21089b596f0a HTTP/1.1 Host: example.org

9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362

Response: HTTP/1.1 200 Ok Date: Mon, 19 Oct 2009 10:10:00 -0700 Content-Length: 758 Content-Type: application/cmisacl+xml Location: /objacl/59fe373b-0348-493e-baaf-21089b596f0a

Al Brown cmis:read cmis:write cmis:all cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 211 of 226

9363 9364 9365 9366 9367

publish true

9368 9369

Please also see the example documents included with the schema.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 212 of 226

9370

4 Web Services Binding

9371

4.1 Overview

9372 9373

All services and operations defined in part I of the CMIS specification are presented in this Web Services binding.

9374 9375 9376 9377 9378

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 of Part I of the CMIS specification.

9379 9380

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.

9381

4.1.1 WS-I

9382

A CMIS Web Services binding MUST comply with WS-I Basic Profile 1.1 and Basic Security Profile 1.0.

9383

4.1.2 Authentication

9384 9385 9386

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.

9387

4.1.3 Content Transfer

9388 9389

A CMIS Web Services binding SHOULD support MTOM content transfers. It MUST accept content that is base64 encoded.

9390

4.1.4 Reporting Errors

9391 9392 9393

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.

9394

4.2 Web Services Binding Mapping

9395 9396 9397 9398 9399

The Domain Model in Part I of the CMIS specification 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 Part I. All rules and exceptions defined in Part I apply to the Web Services binding. Optional parameters and optional return values are not set if they are missing or their value is NULL.

9400

4.3 Additions to Part I

9401

4.3.1 updateProperties and checkIn Semantics

9402 9403 9404

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.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 213 of 226

9405

4.3.2 Content Ranges

9406 9407

This binding supports the retrieval of content ranges. The operation getContentStream accepts two optional parameters:

9408



Integer offset: The first byte of the content to retrieve. Default value is 0.

9409 9410



Integer length: The length of the range in bytes. Default value is the size of the content minus the offset.

9411 9412 9413

If the offset value is greater than the size of the content the repository SHOULD throw a constraint exception.

9414 9415

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.

9416 9417

4.3.3 Extensions

9418 9419

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.

9420 9421

All of the types referenced by the schema also support xs:any for vendor or repository-specific information.

9422

4.3.4 Web Services Specific Structures

9423

This binding requires specific structures that are not part of the general CMIS schema.

9424

Please also see the example request and response documents included with the schema.

9425

4.3.4.1 cmisFaultType and cmisFault

9426 9427

cmisFaultType and cmisFault SHOULD be used to generate SOAP faults. See 4.1.4 Reporting Errors.

9428

4.3.4.2 cmisRepositoryEntryType

9429 9430

cmisRepositoryEntryType is the return structure of getRepositories. It contains the id and the name of a repository.

9431

4.3.4.3 cmisTypeContainer

9432

cmisTypeContainer is the return structure of getTypeDescendants. It holds a type hierarchy.

9433

4.3.4.4 cmisTypeDefinitionListType

9434 9435

cmisTypeDefinitionListType is the return structure of getTypeChildren. It contains a list of types, the hasMoreItems flag and the numItem element.

9436 9437

4.3.4.5 cmisObjectInFolderType, cmisObjectParentsType and cmisObjectInFolderContainerType

9438 9439 9440 9441

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.

9442

cmisObjectInFolderContainerType contains a folder hierarchy.

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 214 of 226

9443

4.3.4.6 cmisObjectListType and cmisObjectInFolderListType

9444 9445 9446

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.

9447

4.3.4.7 cmisContentStreamType

9448

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.

9449 9450

4.3.4.8 cmisACLType

9451 9452 9453

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.

9454

4.3.4.9 cmisExtensionType

9455

cmisExtensionType is a placeholder for extensions. See 4.3.3 Extensions.

9456

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 215 of 226

9457

5 IANA Considerations

9458

5.1 Content-Type Registration

9459

5.1.1 CMIS Query

9460

A CMIS Query Document, when serialized as XML 1.0, can be identified with the following media type:

9461 9462

MIME media type name: application

9463

MIME subtype name: cmisquery +xml

9464

Mandatory parameters: None

9465

Optional parameters:

9466 9467 9468 9469 9470 9471 9472 9473 9474

"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.

9475

Published specification: This specification.

9476

Applications that use this media type:

9477

No known applications currently use this media type.

9478

Additional information:

9479

Magic number(s):

9480

As specified for "application/xml" in [RFC3023], Section 3.2.

9481

File extension: .cmisquery

9482

Fragment identifiers:

9483 9484 9485

As specified for "application/xml" in [RFC3023], Section 5. Base URI: As specified in [RFC3023], Section 6.

9486

Macintosh File Type code: TEXT

9487

Person and email address to contact for further information:

9488

Al Brown

9489

Intended usage: COMMON

9490

Author/Change controller: IESG

9491

5.1.2 CMIS AllowableActions

9492 9493

A CMIS Allowable Actions Document, when serialized as XML 1.0, can be identified with the following media type:

9494 cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 216 of 226

9495

MIME media type name: application

9496

MIME subtype name: cmisallowableactions +xml

9497

Mandatory parameters: None.

9498

Optional parameters:

9499 9500 9501 9502 9503 9504 9505 9506 9507

"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.

9508

Published specification: This specification.

9509

Applications that use this media type:

9510

No known applications currently use this media type.

9511

Additional information:

9512

Magic number(s):

9513

As specified for "application/xml" in [RFC3023], Section 3.2.

9514

File extension: .cmisallowableactions

9515

Fragment identifiers:

9516 9517 9518

As specified for "application/xml" in [RFC3023], Section 5. Base URI: As specified in [RFC3023], Section 6.

9519

Macintosh File Type code: TEXT

9520

Person and email address to contact for further information:

9521

Al Brown

9522

Intended usage: COMMON

9523

Author/Change controller: IESG

9524 9525

5.1.3 CMIS Tree

9526

A CMIS Tree Document, when serialized as XML 1.0, can be identified with the following media type:

9527 9528

MIME media type name: application

9529

MIME subtype name: cmistree +xml

9530

Mandatory parameters: None.

9531

Optional parameters:

9532 9533 9534 9535 9536

"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. cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 217 of 226

9537 9538 9539 9540

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.

9541

Published specification: This specification.

9542

Applications that use this media type:

9543

No known applications currently use this media type.

9544

Additional information:

9545

Magic number(s):

9546

As specified for "application/xml" in [RFC3023], Section 3.2.

9547

File extension: .cmistree

9548

Fragment identifiers:

9549 9550

As specified for "application/xml" in [RFC3023], Section 5. Base URI:

9551

As specified in [RFC3023], Section 6.

9552

Macintosh File Type code: TEXT

9553

Person and email address to contact for further information:

9554

Al Brown

9555

Intended usage: COMMON

9556

Author/Change controller: IESG

9557 9558

5.1.4 CMIS Atom

9559

A CMIS Atom Document, when serialized as XML 1.0, can be identified with the following media type:

9560 9561

MIME media type name: application

9562

MIME subtype name: cmisatom +xml

9563

Mandatory parameters: None.

9564

Optional parameters:

9565 9566

"charset": This parameter has semantics identical to the charset parameter of the "application/xml" media type as specified in [RFC3023].

9567 9568

“type”: This parameter has semantics identical to the type parameter of the “application/atom+xml” as specified in [RFC4287]

9569 9570 9571 9572 9573 9574 9575

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.

9576

Published specification: This specification.

9577

Applications that use this media type:

9578 9579

No known applications currently use this media type. Additional information: cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 218 of 226

9580 9581

Magic number(s): As specified for "application/xml" in [RFC3023], Section 3.2.

9582

File extension: .cmisatom

9583

Fragment identifiers:

9584 9585

As specified for "application/xml" in [RFC3023], Section 5. Base URI:

9586

As specified in [RFC3023], Section 6.

9587

Macintosh File Type code: TEXT

9588

Person and email address to contact for further information:

9589

Al Brown

9590

Intended usage: COMMON

9591

Author/Change controller: IESG

9592 9593

Please see section 3.1.1 on why this media type is needed above the Atom Media Type.

9594

5.1.5 CMIS ACL

9595

A CMIS ACL Document, when serialized as XML 1.0, can be identified with the following media type:

9596 9597

MIME media type name: application

9598

MIME subtype name: cmisacl +xml

9599

Mandatory parameters: None.

9600

Optional parameters:

9601 9602 9603 9604 9605 9606 9607 9608 9609

"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.

9610

Published specification: This specification.

9611

Applications that use this media type:

9612

No known applications currently use this media type.

9613

Additional information:

9614

Magic number(s):

9615 9616 9617 9618 9619

As specified for "application/xml" in [RFC3023], Section 3.2. File extension: .cmisacl Fragment identifiers: As specified for "application/xml" in [RFC3023], Section 5. Base URI:

9620

As specified in [RFC3023], Section 6.

9621

Macintosh File Type code: TEXT cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 219 of 226

9622 9623

Person and email address to contact for further information: Al Brown

9624

Intended usage: COMMON

9625

Author/Change controller: IESG

9626

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 220 of 226

9627

6 Conformance

9628 9629

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level requirements defined within this specification.

9630

Specification:

9631 9632 9633 9634 9635 9636

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.

9637 9638 9639

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level requirements defined within this specification.

9640 9641 9642

Domain Model:

9643

Normative text within this specification takes precedence over the CMIS Core XML Schema.

9644 9645 9646

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.

9647 9648

Clients:

9649 9650

Client implementations MAY implement either Restful AtomPub Binding or the Web Services Binding.

9651 9652

Repositories:

9653

Repositories MUST implement the following CMIS protocol bindings:

9654

ƒ

Restful AtomPub Binding

9655

ƒ

Web Services Binding

9656 9657

Rest Binding:

9658 9659 9660 9661 9662 9663

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.

9664 9665 9666 9667

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.

9668 9669

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® 2009. All Rights Reserved.

23 September 2009 Page 221 of 226

9670 9671

Web Services Binding:

9672 9673 9674 9675

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.

9676 9677

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® 2009. All Rights Reserved.

23 September 2009 Page 222 of 226

9678

A. Acknowledgements

9679 9680

The following individuals have participated in the creation of this specification and are gratefully acknowledged:

9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730

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 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 Ryan McVeigh, Oracle Corporation Juerg Meier, fme AG Gregory Melahn, IBM Pat Miller, Microsoft Corporation Florian Mueller, Open Text Corporation Thomas Mueller, Day Software John Newton, Alfresco Software David Nuescheler, Day Software Dominique Pfister, Day Software Peeter Piegaze, Day Software David Pitfield, Oracle Corporation Norrie Quinn, EMC Corporation cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 223 of 226

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

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 Mueller, OpenText John Newton, Alfresco Norrie Quinn, EMC Steve Roth, Oracle Craig Randall, EMC

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 224 of 226

9767

B. Non-Normative Text

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 225 of 226

9768

C. Revision History

9769 Revision 1.0

Date

Editor

Changes Made

Al Brown

First specification

9770

cmis-spec-v1.0 Copyright © OASIS® 2009. All Rights Reserved.

23 September 2009 Page 226 of 226