OASIS Specification Template - Name

3 downloads 214 Views 2MB Size Report
May 1, 2010 - ... (Authoritative) http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-v1.0.html ... Committee‟s ema
Content Management Interoperability Services (CMIS) Version 1.0 OASIS Standard 1 May 2010 Specification URIs: This Version: http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-v1.0.doc (Authoritative) http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-v1.0.html http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-v1.0.pdf Previous Version: http://docs.oasis-open.org/cmis/CMIS/v1.0/cs01/cmis-spec-v1.0.doc (Authoritative) http://docs.oasis-open.org/cmis/CMIS/v1.0/cs01/cmis-spec-v1.0.html http://docs.oasis-open.org/cmis/CMIS/v1.0/cs01/cmis-spec-v1.0.pdf Latest Version: http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.doc (Authoritative) http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.html http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.pdf Technical Committee: OASIS Content Management Interoperability Services (CMIS) TC Chair(s): David Choy, EMC Editor(s): Al Brown, IBM Ethan Gur-Esh, Microsoft Ryan McVeigh, Oracle Florian Müller, OpenText Related work: N/A Declared XML Namespace(s): http://docs.oasis-open.org/ns/cmis/core/200908/ http://docs.oasis-open.org/ns/cmis/restatom/200908/ http://docs.oasis-open.org/ns/cmis/messaging/200908/ http://docs.oasis-open.org/ns/cmis/ws/200908/ http://docs.oasis-open.org/ns/cmis/link/200908/

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

1 May 2010 Page 1 of 229

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

1 May 2010 Page 2 of 229

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

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

1 May 2010 Page 3 of 229

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

2393

[ "," ] ")"

2394

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

2395

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

2396

::= [ ASC | DESC ]

2397

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

1 May 2010 Page 68 of 229

2398

::=

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

2399

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

2400

or an alias for a scalar output value.

2401

::=

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

2402

::=

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

2403

::=

!! As defined by queryName attribute.

2404

::=

!! As defined by SQL-92 grammar.

2405

::=

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

2406 2407

!! This is full-text search criteria.

2408

::= [ { OR } … ]

2409

::= [ { } … ]

2410

::= ['-']

2411

::= |

2412

::= [ {} … ]

2413

::= [ { } … ]

2414

::= [ {} … ]

2415

::= -

2416

::= ' '

2417

::= !! Any character

2418 2419

::= TIMESTAMP

2420

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

2421

::= TRUE | FALSE | true | false

2422

::= “‟” !! Single-quote only, consistent with SQL-92 string literal

2423

2.1.10.2.2 SELECT Clause

2424

The SELECT clause MUST contain exactly one of the following:

2425



o

2426 2427 2428 2429 2430

A comma separated list of one or more column names.



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.

2431 2432

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.

2433

2.1.10.2.3 FROM Clause

2434 2435

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

2436 2437

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

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

1 May 2010 Page 69 of 229

2438

2.1.10.2.3.1

Join Support

2439 2440

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

2441 2442



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

2443 2444



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

2445 2446



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

2447 2448

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.

2449 2450

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

2451

2.1.10.2.4 WHERE Clause

2452

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

2453 2454

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.

2455 2456

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.

2457

2.1.10.2.4.1

2458 2459 2460

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.

2461 2462 2463

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.

2464 2465

2466

Supported Operators:

2467

Supported Literal:

2468 2469

String (Single)

2470

Supported Operators: =, , [NOT] LIKE

2471

Supported Literal: String

2472 2473

String (IN)

2474

Supported Operators: [NOT] IN

2475

Supported Literal: List of Strings

2476 2477

Decimal

2478

Supported Operators: =, , =

2479

Supported Literal: Decimal

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

1 May 2010 Page 70 of 229

2481

Decimal (IN)

2482

Supported Operators: [NOT] IN

2483

Supported Literal: List of Decimal

2484 2485

Integer

2486

Supported Operators: =, , =

2487

Supported Literal: Integer

2488 2489

Integer (IN)

2490

Supported Operators: [NOT] IN

2491

Supported Literal: List of Integer

2492 2493

Boolean

2494

Supported Operators: =

2495

Supported Literal:

2496 2497

DateTime

2498

Supported Operators: =, , =*

2499

Supported Literal:

2500

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

2501 2502

DateTime (IN)

2503

Supported Operators: [NOT] IN

2504

Supported Literal: List of ‟s

2505 2506

ID

2507

Supported Operators: =,

2508

Supported Literal: String

2509 2510

ID (IN)

2511

Supported Operators: [NOT] IN

2512

Supported Literal: List of strings

2513 2514

URI

2515

Supported Operators: =,

2516

Supported Literal: String

2517 2518

URI (IN)

2519

Supported Operators: [NOT] IN

2520

Supported Literal: List of strings

2521 2522

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

1 May 2010 Page 71 of 229

2523

Supported Operators: [NOT] LIKE

2524

Supported Literal: String

2525 2526

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

2527 2528 2529

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.

2530 2531 2532

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

2533

2.1.10.2.4.2

2534 2535

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.

2536

2.1.10.2.4.2.1 Multi-valued column references

2537

BNF grammar structure: ,

2538 2539 2540



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.

2541

2.1.10.2.4.2.2

2542 2543 2544 2545 2546

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.

2547

The SQL-92 is restricted to ANY only.

2548 2549

The SQL-92 is restricted to a literal only.

is not supported in CMIS-SQL.

2550 2551 2552 2553

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 )

2554

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

2555

2.1.10.2.4.2.3 IN/ANY Predicate

2556

BNF grammar structure:

2557 2558 2559 2560 2561 2562 2563 2564 2565

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

1 May 2010 Page 72 of 229

2566 2567

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

2568

Example:

2569 2570 2571 2572 2573

SELECT * FROM CAR_REVIEW WHERE (MAKE = „buick‟ ) OR ( ANY FEATURES IN („NAVIGATION SYSTEM‟, „SATELLITE RADIO‟, „MP3‟) ) (Note: FEATURES is a multi-valued String property.)

2574

2.1.10.2.4.3

CONTAINS() predicate function (CMIS-SQL Extension)

2575

BNF grammar structure:: CONTAINS ( [ ,] „ „ )

2576 2577

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

2578

Inputs:

2579 2580 2581 2582 2583 2584 2585

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.

2586 2587 2588 2589 2590 2591 2592 2593

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

2594

Terms separated by whitespace are AND‟ed together.

2595

Terms separated by “OR” are OR‟ed together

2596

Implicit “AND” has higher precedence than “OR”

2597 2598

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 (single-)quote must also be escaped by a preceding backslash “\” Return value:

2599

The predicate returns a Boolean value.

2600 2601

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

2602 2603

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

2604 2605 2606 2607 2608 2609

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

1 May 2010 Page 73 of 229

2610

2.1.10.2.4.4

SCORE() predicate function

2611

BNF grammar structure: SCORE ()

2612 2613

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

2614

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

2615

Return value:

2616

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

2617 2618

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.

2619 2620

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.

2621

Constraints:

2622 2623

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

2624 2625

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.

2626 2627

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.

2628 2629 2630

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.

2631

2.1.10.2.4.5

IN_FOLDER() predicate function

2632

BNF grammar structure: IN_FOLDER( [ , ] )

2633 2634

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 .

2635

Inputs:

2636 2637 2638 2639 2640 2641 2642

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.

2643

2644

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

2645 2646 2647 2648 2649

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

1 May 2010 Page 74 of 229

2650

2.1.10.2.4.6

IN_TREE() predicate function

2651

BNF grammar structure: IN_TREE( [ , ] )

2652 2653

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 .

2654

Inputs:

2655 2656 2657 2658 2659 2660 2661

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.

2662

2663

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

2664 2665 2666 2667 2668

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 .

2669

2.1.10.2.5 ORDER BY Clause

2670

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

2671 2672

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.

2673

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

2674

Collation rules for the ORDER BY clause are repository specific.

2675

2.1.10.3 Escaping

2676 2677

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:

2678

1. \‟ will represent a single-quote(„) character

2679

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

2680

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

2681

4. All other instances of a \ are errors.

2682

2.1.11 Change Log

2683 2684 2685 2686 2687

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

2688

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

2689 2690

Note that change events in the change log MUST be returned in ascending order from the time when the change event occurred.

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

1 May 2010 Page 75 of 229

2691

2.1.11.1 Completeness of the Change Log

2692 2693 2694 2695

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

2696 2697 2698 2699

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

2700 2701

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.

2702

2.1.11.2 Change Log Token

2703 2704

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.

2705

2.1.11.2.1 “Latest Change Token” repository information

2706 2707 2708

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.

2709 2710

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.

2711

2.1.11.3 Change Event

2712 2713

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

2714 2715

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

2716



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

2717



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

2718

o

created: The object was created.

2719

o

updated: The object was updated.

2720

o

deleted: The object was deleted

2721

o

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

2722 2723 2724 2725



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.

2726 2727

2.2 Services

2728 2729

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

2730 2731

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.

2732 2733

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

1 May 2010 Page 76 of 229

2734

2.2.1 Common Service Elements

2735

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

2736

2.2.1.1 Paging

2737 2738

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:

2739

Input Parameters:

2740 2741



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

2742 2743



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

2744

Output Parameters:

2745 2746 2747 2748



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

2749 2750 2751 2752



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.

2753 2754 2755

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.

2756

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

2757 2758

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

2759

2.2.1.2 Retrieving additional information on objects in CMIS service calls

2760 2761 2762

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.

2763 2764

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

2765

 Properties (retrieves a subset instead of additional information)

2766

 Relationships

2767

 Renditions

2768

 ACLs

2769

 AllowableActions

2770 2771 2772

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

2773

2.2.1.2.1 Properties

2774 2775 2776

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.

2777

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

1 May 2010 Page 77 of 229

2778



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

2779

o

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

2780 2781

o

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

2782

o

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

2783 2784

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

2785 2786 2787

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

2788

2.2.1.2.2 Relationships

2789

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

2790

Optional Input Parameter:

2791 2792



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

2793

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

2794 2795

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

2796 2797

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

2798 2799

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

2800 2801

Output Parameter for each object: 

Relationships: A collection of the relationship objects.

2802

2.2.1.2.3 Policies

2803

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

2804

Optional Input Parameter:

2805 2806 2807 2808

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

2809

2.2.1.2.4 Renditions

2810

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

2811

Optional Input Parameter:

2812 2813



o

2814 2815 2816

String renditionFilter: The Repository MUST return the set of renditions whose kind matches this filter. See section below for the filter grammar. Defaults to “cmis:none”.

Output Parameter for each object: 

Renditions: The set of renditions.

2817

2.2.1.2.4.1 Rendition Filter Grammar

2818

The Rendition Filter grammar is defined as follows: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 78 of 229

2819

::= | |

2820

::= | ','

2821

::= |

2822

::=

2823

::= '/'

2824

::=

2825

::= |

2826

::= /* any char except whitespace */

2827

::= '*'

2828

::= 'cmis:none'

2829

An inclusion pattern allows:

2830

 Wildcard : include all associated Renditions

2831 2832

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

2833

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

2834

Examples:

2835

 * (include all Renditions)

2836

 cmis:thumbnail (include only Thumbnails)

2837

 Image/* (include all image Renditions)

2838

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

2839

 cmis:none (exclude all Renditions)

2840

2.2.1.2.5 ACLs

2841

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

2842

Optional Input Parameter:

2843 2844 2845 2846



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.

2847

2.2.1.2.6 Allowable Actions

2848

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

2849

Optional Input Parameter:

2850 2851 2852 2853



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.

2854

2.2.1.3 Change Tokens

2855 2856 2857

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.

2858 2859

If a Repository provides values for the ChangeToken property for an Object, then all invocations of the “update” methods on that object (updateProperties, setContentStream, deleteContentStream) MUST cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 79 of 229

2860 2861 2862

provide the value of the changeToken property as an input parameter, and the Repository MUST throw an updateConflictException if the value specified for the changeToken does NOT match the changeToken value for the object being updated.

2863

2.2.1.4 Exceptions

2864 2865

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

2866

2.2.1.4.1 General Exceptions

2867

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

2868 2869 2870

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

2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885

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

The service method invoked requires an optional capability not supported by the repository.

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.

2886

2.2.1.4.2 Specific Exceptions

2887 2888

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

2889 2890 2891

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

2892 2893

Intent:

2894

Methods:

2895 2896 2897

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

 Navigation Services: o getObjectParents  Object Services:

2898

o createDocument

2899

o createDocumentFromSource

2900

o createFolder

2901

o createRelationship cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 80 of 229

2902

o createPolicy

2903

o updateProperties

2904

o moveObject

2905

o deleteObject

2906

o setContentStream

2907

o deleteContentStream

2908

 Multi-filing Services:

2909

o addObjectToFolder

2910

 Versioning Services:

2911

o checkOut

2912

o cancelCheckOut

2913

o checkIn

2914

 Policy Services:

2915

o applyPolicy

2916

o removePolicy

2917

 Change Log Services:

2918 2919

o getContentChanges

2920

contentAlreadyExists

2921 2922

Intent:

2923

Methods:

2924 2925 2926 2927

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

2928

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

2929

Methods:

2930

 Navigation Services:

2931

o getDescendants

2932

o getChildren

2933

o getFolderParent

2934

o getObjectParents

2935

o getCheckedOutDocs

2936

 Object Services:

2937

o getProperties

2938

o getRenditions

2939

o getObject

2940

o getObjectByPath

2941

 Versioning Services:

2942

o getPropertiesOfLatestVersion

2943

o getAllVersions cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 81 of 229

2944

 Policy Services: o getAppliedPolicies

2945 2946 2947

nameConstraintViolation

2948 2949

Intent:

2950

Methods:

2951

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

 Object Services:

2952

o createDocument

2953

o createDocumentFromSource

2954

o createFolder

2955

o createRelationship

2956

o createPolicy

2957

o updateProperties

2958 2959

o moveObject

2960

storage

2961 2962

Intent:

2963

Methods:

2964

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

 Object Services:

2965

o createDocument

2966

o createDocumentFromSource

2967

o createFolder

2968

o createRelationship

2969

o createPolicy

2970

o updateProperties

2971

o moveObject

2972

o setContentStream

2973

o deleteContentStream

2974

 Versioning Services:

2975

o checkOut

2976 2977

o checkIn

2978

streamNotSupported

2979 2980

Intent:

2981

Methods:

2982

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:

2983

o createDocument

2984

o createDocumentFromSource

2985

o getContentStream

2986

o setContentStream cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 82 of 229

2987

 Versioning Services: o checkIn

2988 2989 2990

updateConflict

2991 2992

Intent:

2993

Methods:

2994

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

 Object Services:

2995

o updateProperties

2996

o moveObject

2997

o deleteObject

2998

o deleteTree

2999

o setContentStream

3000

o deleteContentStream

3001

 Versioning Services:

3002

o checkOut

3003

o cancelCheckOut

3004

o checkIn

3005 3006

versioning

3007 3008

Intent:

3009

Methods:

3010

The operation is attempting to perform an action on a non-current version of a Document that cannot be performed on a non-current version.

 Object Services:

3011

o updateProperties

3012

o moveObject

3013

o setContentStream

3014

o deleteContentStream

3015

 Versioning Services:

3016

o checkOut

3017

o cancelCheckOut

3018

o checkIn

3019

2.2.1.5 ACLs

3020 3021

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.

3022

2.2.2 Repository Services

3023 3024 3025

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.

3026

2.2.2.1 getRepositories

3027

Description: Returns a list of CMIS repositories available from this CMIS service endpoint. cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 83 of 229

3028

2.2.2.1.1 Inputs

3029

None.

3030

2.2.2.1.2 Outputs

3031

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

3032



ID repositoryId: The identifier for the Repository.

3033



String repositoryName: A display name for the Repository.

3034

2.2.2.1.3 Exceptions Thrown & Conditions

3035

See section 2.2.1.4.1 General Exceptions

3036

2.2.2.2 getRepositoryInfo

3037 3038

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

3039

2.2.2.2.1 Inputs

3040

Required:

3041 3042 3043



ID repositoryId: The identifier for the Repository.

2.2.2.2.2 Outputs 

ID repositoryId: The identifier for the Repository. o

3044

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

3045



String repositoryName: A display name for the Repository.

3046



String repositoryDescription: A display description for the Repository.

3047



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

3048



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

3049 3050



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

3051



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

3052 3053



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

3054 3055



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

3056 3057



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

3058 3059



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

3060 3061 3062 3063



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.

3064

o

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

3065 3066

o

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

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

1 May 2010 Page 84 of 229

3067 3068 3069



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

3070

o

cmis:document

3071

o

cmis:folder

3072

o

cmis:policy

3073

o

cmis:relationship

3074



Enum supportedPermissions: specifies which types of permissions are supported.

3075

o

basic: indicates that the CMIS Basic permissions are supported.

3076

o

repository: Indicates that repository specific permissions are supported.

3077 3078

o

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

3079 3080



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

3081 3082 3083

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.

3084 3085 3086

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.

3087 3088

o

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

3089 3090



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

3091 3092



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

3093 3094 3095



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.

3096 3097 3098



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.

3099 3100

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

3101

2.2.2.2.3 Exceptions Thrown & Conditions

3102

See section 2.2.1.4.1 General Exceptions

3103

2.2.2.3 getTypeChildren

3104 3105

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

3106

2.2.2.3.1 Inputs

3107

Required:

3108



3109

Optional:

String repositoryId: The identifier for the Repository.

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

1 May 2010 Page 85 of 229

3110



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

3111

o

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

3112

o

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

3113 3114



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

3115

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

3116



Integer maxItems: See section 2.2.1.1 Paging.

3117



Integer skipCount: See section 2.2.1.1 Paging.

3118

2.2.2.3.2 Outputs

3119

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

3120

Boolean hasMoreItems: See section 2.2.1.1 Paging.

3121 3122

Optional: Integer numItems: See section 2.2.1.1 Paging.

3123

2.2.2.3.3 Exceptions Thrown & Conditions

3124

See section 2.2.1.4.1 General Exceptions

3125

2.2.2.4 getTypeDescendants

3126 3127

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

3128

Notes:

3129



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

3130



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

3131

2.2.2.4.1 Inputs

3132

Required:

3133



3134

Optional:

3135



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

3136

o

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

3137 3138

o

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

3139 3140



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

3141

o

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

3142 3143

o

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

3144

o

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

3145

o

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

3146 3147 3148



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

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

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

1 May 2010 Page 86 of 229

3149 3150

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

3151

2.2.2.4.3 Exceptions Thrown & Conditions

3152

See section 2.2.1.4.1 General Exceptions

3153 3154



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

3155

2.2.2.5 getTypeDefinition

3156

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

3157

2.2.2.5.1 Inputs

3158

Required:

3159



String repositoryId: The identifier for the Repository.

3160



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

3161 3162 3163

2.2.2.5.2 Outputs 

Object-type including all property definitions. See section 2.1.3.3 (Object-Type Property Definitions) for further details.

3164

2.2.2.5.3 Exceptions Thrown & Conditions

3165

See section 2.2.1.4.1 General Exceptions

3166

2.2.3 Navigation Services

3167 3168 3169

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.

3170

2.2.3.1 getChildren

3171

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

3172

Notes:

3173 3174



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

3175

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

3176

2.2.3.1.1 Inputs

3177

Required:

3178



ID repositoryId: The identifier for the Repository.

3179



ID folderId: The identifier for the folder.

3180

Optional:

3181



Integer maxItems: See section 2.2.1.1 Paging.

3182



Integer skipCount: See section 2.2.1.1 Paging.

3183 3184 3185



String orderBy: The orderBy parameter MUST be a comma-separated list of query names and the ascending modifier “ASC” or the descending modifier “DESC” for each query name. A repository's handling of the orderBy input is repository-specific.

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

1 May 2010 Page 87 of 229

3186 3187



String filter: See section 2.2.1.2.1 Properties. The service will only return the properties in the matched object if they exist on the matched object type definition and in the filter.

3188



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3189



String renditionFilter: See section 2.2.1.2.4 Renditions.

3190



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3191 3192



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

3193 3194 3195

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:

3196

o

Properties: The list of properties for the object.

3197

o

Relationships: See section 2.2.1.2.2 Relationships.

3198

o

Renditions: See section 2.2.1.2.4 Renditions.

3199

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3200

o

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

3201



3202

Optional:

3203 3204

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

3205



See section 2.2.1.4.1 General Exceptions

3206 3207



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

3208



invalidArgument: if the specified folder is not a folder

3209

2.2.3.2 getDescendants

3210 3211

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

3212

Notes:

3213



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

3214



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

3215 3216 3217



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.

3218 3219 3220



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.

3221

2.2.3.2.1 Inputs

3222

Required:

3223



ID repositoryId: The identifier for the Repository.

3224



ID folderId: The identifier for the folder.

3225

Optional: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 88 of 229

3226 3227



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

3228

o

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

3229 3230

o

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

3231

o

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

3232

o

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

3233



String filter: See section 2.2.1.2.1 Properties.

3234



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3235



String renditionFilter: See section 2.2.1.2.4 Renditions.

3236



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3237 3238



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

3239 3240 3241

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:

3242

o

Properties: The list of properties for the object.

3243

o

Relationships: See section 2.2.1.2.2 Relationships.

3244

o

Renditions: See section 2.2.1.2.4 Renditions.

3245

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3246

o

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

3247

2.2.3.2.3 Exceptions Thrown & Conditions

3248

See section 2.2.1.4.1 General Exceptions

3249 3250



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

3251 3252



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

3253



invalidArgument: if the specified folder is not a folder

3254

2.2.3.3 getFolderTree

3255

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

3256 3257

Notes:

3258



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

3259



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

3260

2.2.3.3.1 Inputs

3261

Required: 

ID repositoryId: The identifier for the Repository.

3263



ID folderId: The identifier for the folder.

3264

Optional:

3262

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

1 May 2010 Page 89 of 229

3265 3266



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

3267

o

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

3268 3269

o

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

3270

o

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

3271

o

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

3272



String filter: See section 2.2.1.2.1 Properties.

3273



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3274



String renditionFilter: See section 2.2.1.2.4 Renditions.

3275



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3276 3277



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

3278 3279 3280

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:

3281

o

Properties: The list of properties for the object.

3282

o

Relationships: See section 2.2.1.2.2 Relationships.

3283

o

Renditions: See section 2.2.1.2.4 Renditions.

3284

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3285

o

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

3286

2.2.3.3.3 Exceptions Thrown & Conditions

3287



See section 2.2.1.4.1 General Exceptions

3288 3289



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

3290 3291



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

3292



invalidArgument: if the specified folder is not a folder

3293 3294 3295

2.2.3.4 getFolderParent

3296

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

3297

2.2.3.4.1 Inputs

3298

Required: 

ID repositoryId: The identifier for the Repository.

3300



ID folderId: The identifier for the folder.

3301

Optional:

3302



3299

String filter: See section 2.2.1.2.1 Properties.

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

1 May 2010 Page 90 of 229

3303 3304 3305

2.2.3.4.2 Outputs 

Object: The parent folder object of the specified folder.

2.2.3.4.3 Exceptions Thrown & Conditions

3306



See section 2.2.1.4.1 General Exceptions

3307 3308



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

3309 3310



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

3311

2.2.3.5 getObjectParents

3312

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

3313

2.2.3.5.1 Inputs

3314

Required:

3315



ID repositoryId: The identifier for the Repository.

3316



ID objectId: The identifier for the object.

3317

Optional:

3318



String filter: See section 2.2.1.2.1 Properties

3319



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3320



String renditionFilter: See section 2.2.1.2.4 Renditions.

3321



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3322



Boolean includeRelativePathSegment: See section 2.1.5.3 Paths.

3323 3324 3325 3326

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:

3327

o

Properties: The list of properties for the object.

3328

o

Relationships: See section 2.2.1.2.2 Relationships.

3329

o

Renditions: See section 2.2.1.2.4 Renditions.

3330

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3331 3332

o

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

3333

2.2.3.5.3 Exceptions Thrown & Conditions

3334



See section 2.2.1.4.1 General Exceptions

3335 3336



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.

3337 3338



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

3339

2.2.3.6 getCheckedOutDocs

3340

Description: Gets the list of documents that are checked out that the user has access to. cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 91 of 229

3341

2.2.3.6.1 Inputs

3342

Required:

3343



3344

Optional:

3345



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

3346 3347

o

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

3348 3349

o

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

3350



Integer maxItems: See section 2.2.1.1 Paging.

3351



Integer skipCount: See section 2.2.1.1 Paging.

3352 3353 3354



String orderBy: The orderBy parameter MUST be a comma-separated list of query names and the ascending modifier “ASC” or the descending modifier “DESC” for each query name. A repository's handling of the orderBy input is repository-specific.

3355



String filter: See section 2.2.1.2.1 Properties.

3356



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3357



String renditionFilter: See section 2.2.1.2.4 Renditions.

3358



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3359 3360 3361

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:

3362

o

Properties: The list of properties for the object.

3363

o

Relationships: See section 2.2.1.2.2 Relationships.

3364

o

Renditions: See section 2.2.1.2.4 Renditions.

3365

o

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3366



3367

Optional:

3368



Boolean hasMoreItems: See section 2.2.1.1 Paging. Integer numItems: See section 2.2.1.1 Paging.

3369 3370

2.2.3.6.3 Exceptions Thrown & Conditions

3371



See section 2.2.1.4.1 General Exceptions

3372 3373



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

3374

2.2.4 Object Services

3375

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

3376

2.2.4.1 createDocument

3377 3378

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

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

1 May 2010 Page 92 of 229

3379

2.2.4.1.1 Inputs

3380

Required:

3381



ID repositoryId: The identifier for the Repository.

3382 3383



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

3384

Optional:

3385 3386



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

3387 3388

This parameter MUST be specified if the Repository does NOT support the optional “unfiling” capability.

3389 3390 3391 3392



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.

3393 3394 3395



Enum versioningState: An enumeration specifying what the versioing state of the newly-created object MUST be. If the repository does not support versioning, the repository MUST ignore the versioningState parameter. Valid values are:

3396

o

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

3397

o

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

3398

o

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

3399

o

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

3400 3401



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

3402 3403



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.

3404 3405 3406



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.

3407 3408 3409

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

2.2.4.1.3 Exceptions Thrown & Conditions

3410



See section 2.2.1.4.1 General Exceptions

3411 3412



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

3413 3414

o

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

3415 3416

o

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

3417 3418

o

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

3419 3420 3421

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.

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

1 May 2010 Page 93 of 229

3422 3423 3424

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

3425 3426 3427

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

3428 3429

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.

3430 3431

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.

3432 3433

o

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

3434 3435 3436



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.

3437



storage: See section 2.2.1.4.2 Specific Exceptions.

3438 3439 3440



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.

3441

2.2.4.2 createDocumentFromSource

3442 3443

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

3444

2.2.4.2.1 Inputs

3445

Required:

3446



ID repositoryId: The identifier for the Repository.

3447



ID sourceId: The identifier for the source document.

3448

Optional:

3449 3450



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.

3451 3452



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

3453 3454 3455 3456



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:

3457

o

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

3458

o

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

3459

o

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

3460

o

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

3461 3462



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

3463 3464



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.

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

1 May 2010 Page 94 of 229

3465 3466 3467 3468 3469 3470



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.

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

2.2.4.2.3 Exceptions Thrown & Conditions

3471



See section 2.2.1.4.1 General Exceptions

3472 3473



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

3474

o

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

3475 3476

o

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

3477 3478 3479

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

3480 3481 3482

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

3483 3484

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.

3485 3486

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.

3487 3488

o

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

3489 3490 3491



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.

3492



storage: See section 2.2.1.4.2 Specific Exceptions.

3493 3494 3495



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.

3496

2.2.4.3 createFolder

3497

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

3498

2.2.4.3.1 Inputs

3499

Required:

3500



ID repositoryId: The identifier for the Repository.

3501 3502



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

3503 3504



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

3505

Optional:

3506



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

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

1 May 2010 Page 95 of 229

3507 3508



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.

3509 3510 3511



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.

3512 3513 3514

2.2.4.3.2 Outputs 

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

2.2.4.3.3 Exceptions Thrown & Conditions

3515



See section 2.2.1.4.1 General Exceptions

3516 3517



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

3518

o

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

3519 3520

o

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

3521 3522

o

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

3523 3524

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.

3525 3526

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.

3527 3528

o

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

3529 3530 3531



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.

3532



storage: See section 2.2.1.4.2 Specific Exceptions.

3533

2.2.4.4 createRelationship

3534

Description: Creates a relationship object of the specified type

3535

2.2.4.4.1 Inputs

3536

Required:

3537



ID repositoryId: The identifier for the Repository.

3538 3539



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

3540

Optional:

3541 3542



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

3543 3544 3545 3546 3547



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.

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

1 May 2010 Page 96 of 229

3548 3549 3550

2.2.4.4.2 Outputs 

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

2.2.4.4.3 Exceptions Thrown & Conditions

3551



See section 2.2.1.4.1 General Exceptions

3552 3553



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

3554 3555

o

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

3556 3557

o

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

3558 3559

o

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

3560 3561

o

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

3562 3563

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.

3564 3565

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.

3566 3567

o

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

3568 3569 3570



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.

3571



storage: See section 2.2.1.4.2 Specific Exceptions.

3572

2.2.4.5 createPolicy

3573

Description: Creates a policy object of the specified type

3574

2.2.4.5.1 Inputs

3575

Required:

3576



ID repositoryId: The identifier for the Repository.

3577 3578



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

3579

Optional:

3580 3581



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

3582 3583

This parameter MUST be specified if the Repository does NOT support the optional “unfiling” capability.

3584



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

3585 3586



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.

3587 3588 3589



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.

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

1 May 2010 Page 97 of 229

3590 3591 3592

2.2.4.5.2 Outputs 

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

2.2.4.5.3 Exceptions Thrown & Conditions

3593



See section 2.2.1.4.1 General Exceptions

3594 3595



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

3596

o

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

3597 3598

o

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

3599 3600

o

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

3601 3602

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.

3603 3604

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.

3605 3606

o

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

3607 3608 3609



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.

3610



storage: See section 2.2.1.4.2 Specific Exceptions.

3611

2.2.4.6 getAllowableActions

3612

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

3613

2.2.4.6.1 Inputs

3614

Required:

3615



ID repositoryId: The identifier for the Repository.

3616



ID objectId: The identifier for the object

3617 3618 3619 3620

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

3621

2.2.4.7 getObject

3622

Description: Gets the specified information for the Object.

3623

2.2.4.7.1 Inputs

3624

Required:

3625



ID repositoryId: The identifier for the Repository.

3626



ID objectId: The identifier for the object

3627

Optional: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 98 of 229

3628



String filter: See section 2.2.1.2.1 Properties.

3629



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3630



Boolean includePolicyIds: See section 2.2.1.2.3 Policies.

3631



String renditionFilter: See section 2.2.1.2.4 Renditions.

3632



Boolean includeACL: See section 2.2.1.2.5 ACLs.

3633



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3634

2.2.4.7.2 Outputs

3635

Properties: The list of properties for the object.

3636



3637

Policy Ids: See section 2.2.1.2.3 Policies.

3638

Renditions: See section 2.2.1.2.4 Renditions.

3639



3640

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3641

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

3642

See section 2.2.1.4.1 General Exceptions

3643 3644

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

3645

2.2.4.8 getProperties

3646

Description: Gets the list of properties for an Object.

3647

2.2.4.8.1 Inputs

3648

Required:

3649



ID repositoryId: The identifier for the Repository.

3650



ID objectId: The identifier for the object

3651

Optional:

3652



3653 3654 3655

String filter: See 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

3656

See section 2.2.1.4.1 General Exceptions

3657 3658

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

3659

2.2.4.9 getObjectByPath

3660

Description: Gets the specified object.

3661

2.2.4.9.1 Inputs

3662

Required:

3663



ID repositoryId: The identifier for the Repository.

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

1 May 2010 Page 99 of 229

3664



3665

Optional:

3666



String filter: See section 2.2.1.2.1 Properties.

3667



Boolean includeAllowableActions: See section 2.2.1.2.6 Allowable Actions.

3668



Enum includeRelationships: See section 2.2.1.2.2 Relationships.

3669



String renditionFilter: See section 2.2.1.2.4 Renditions.

3670



Boolean includePolicyIds: See section 2.2.1.2.2 Relationships.

3671



Boolean includeACL: See section 2.2.1.2.5 ACLs.

3672

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

2.2.4.9.2 Outputs

3673

Properties: The list of properties for the object.

3674

AllowableActions: See section 2.2.1.2.6 Allowable Actions.

3675

2.2.4.9.3 Exceptions Thrown & Conditions

3676



3677 3678

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

3679

2.2.4.10 getContentStream

3680 3681

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.

3682 3683

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.

3684

2.2.4.10.1 Inputs

3685

Required:

3686



ID repositoryId: The identifier for the Repository.

3687



ID objectId: The identifier for the object

3688

Optional:

3689 3690 3691



3692 3693 3694

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

3695



3696 3697

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

3698

2.2.4.11 getRenditions

3699 3700

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

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

1 May 2010 Page 100 of 229

3701 3702

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.

3703

2.2.4.11.1 Inputs

3704

Required: 

ID repositoryId: The identifier for the Repository.

3706



ID objectId: The identifier for the object

3707

Optional:

3708



String renditionFilter: See Section 2.2.1.2.4

3709



Integer maxItems: See section 2.2.1.1 Paging.

3710



Integer skipCount: See section 2.2.1.1 Paging.

3705

3711 3712 3713

2.2.4.11.2 Outputs 

Renditions: The set of renditions available on this object

2.2.4.11.3 Exceptions Thrown & Conditions

3714



See section 2.2.1.4.1 General Exceptions

3715 3716



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

3717



filterNotValid : The filter specified is not valid

3718

2.2.4.12 updateProperties

3719

Description: Updates properties of the specified object.

3720

Notes:

3721 3722



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.

3723 3724 3725



Each CMIS protocol bindings MUST specify whether the updateProperties service MUST always include all up encoding="UTF-8" standalone="yes"?> Al Brown urn:uuid:efe0542e-8933-4b3e-93f2-4d1caa3fc2d9 CMIS Example Document 2010-01-25T10:20:58.318-08:00 some text invoice CMIS Example Document

4502

3.3.2 CMIS Query

4503

Media Type: application/cmisquery+xml

4504

Starting tag: cmis:query

4505 4506

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

4507 4508

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

1 May 2010 Page 121 of 229

4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522

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

4523 4524

Please also see the example documents included with the schema.

4525 4526

3.3.3 CMIS Allowable Actions

4527

Media Type: application/cmisallowableactions+xml

4528

Starting tag: cmis:allowableActions

4529 4530 4531

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

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

Example: true true true true true true true true true true true true true true true true true true true

4560 4561

Please also see the example documents included with the schema.

4562

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

1 May 2010 Page 122 of 229

4563

3.3.4 CMIS Tree

4564

Media Type: application/cmistree+xml

4565

Starting tag: atom:feed

4566 4567

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

4568 4569

Please see Section 3.5.2.1 for more information.

4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618

Example: Feed for folder1 Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:58.536-08:00 urn:uuid:4a80905c-f774-4a9e-a57d-bf0dae5a796e Al Brown http://www.ibm.com/ [email protected] urn:uuid:63a9c18c-5e31-4590-8462-86d181e345a4 CMIS Example Folder as Customer type 2010-01-25T10:20:58.536-08:00

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

1 May 2010 Page 123 of 229

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

2010-01-25T10:20:58.536-08:00 HTML summary of Entry 63a9c18c-5e31-45908462-86d181e345a4 63a9c18c-5e31-4590-846286d181e345a4 customer CMIS Example Folder as Customer type Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:58.536-08:00 urn:uuid:51b5c0cd-e473-4492-82b3666fbf913cf0

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

1 May 2010 Page 124 of 229

4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742

Al Brown http://www.ibm.com/ [email protected] urn:uuid:20cb7e68-0a7e-46ea-87e009fb8d85286e CMIS Example Doc as Invoice type 2010-01-25T10:20:58.536-08:00 2010-01-25T10:20:58.53608:00 HTML summary of Entry 20cb7e680a7e-46ea-87e0-09fb8d85286e

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

1 May 2010 Page 125 of 229

4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803

20cb7e68-0a7e-46ea-87e0-09fb8d85286e invoice1.pdf Al Brown http://www.ibm.com/ [email protected] urn:uuid:1de1d476-11fb-47bf-b136-8a8d0b4b030a CMIS Example Doc as Invoice type 2010-01-25T10:20:58.568-08:00 2010-01-25T10:20:58.568-08:00 HTML summary of Entry 1de1d476-11fb-47bfb136-8a8d0b4b030a

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

1 May 2010 Page 126 of 229

4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826

1de1d476-11fb-47bf-b1368a8d0b4b030a invoice3.pdf

4827 4828 4829 4830

Note: This media type is used on links with relation down (see section 3.4.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)

4831 4832

Please also see the example documents included with the schema.

4833 4834

3.3.5 CMIS ACL

4835

Media Type: application/cmisacl+xml

4836

Starting tag: cmis:acl

4837 4838

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

4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857

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

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

1 May 2010 Page 127 of 229

4859

Please also see the example documents included with the schema.

4860 4861

3.4 Atom Extensions for CMIS

4862

3.4.1 Atom Element Extensions

4863

3.4.1.1 AtomPub Workspace

4864

3.4.1.1.1 cmisra:collectionType

4865

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

4866

3.4.1.1.2 cmisra:repositoryInfo

4867 4868

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

4869

3.4.1.1.3 cmis:uritemplate

4870 4871

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

4872

3.4.1.2 Atom Feed

4873

3.4.1.2.1 cmisra:numItems

4874

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

4875

3.4.1.3 Atom Entry

4876

3.4.1.3.1 cmisra:children

4877 4878

This element is included inside the atom:entry element. This includes the children of the atom entry. This element MUST include an atom:feed element.

4879 4880

3.4.1.3.2 cmisra:object

4881 4882

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.

4883 4884

3.4.1.3.3 cmisra:pathSegment

4885 4886

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.

4887 4888

3.4.1.3.4 cmisra:relativePathSegment

4889 4890

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.

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

1 May 2010 Page 128 of 229

4891

3.4.1.3.5 cmisra:type

4892 4893

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

4894

3.4.1.3.6 cmisra:content

4895 4896

This element specifies the content of the atom:entry element. The content is base64 encoded in the base64 element. The elements of a cmisra:content element are:

4897



mediaType: This contains the media type of the content as described by RFC4288.

4898



base64: This contains the base64 content of the file

4899 4900

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

4901 4902

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

4903 4904 4905

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

4906 4907

3.4.2 Attributes

4908

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

4909

3.4.2.1 cmisra:id

4910 4911

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.

4912 4913 4914

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.

4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925

Example:

4926 4927

Please also see the example documents included with the schema.

4928 4929

3.4.2.2 cmisra:renditionKind

4930 4931

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.

4932 4933

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

1 May 2010 Page 129 of 229

4934 4935 4936 4937 4938 4939 4940 4941



4942 4943

Please also see the example documents included with the schema.

4944

3.4.3 CMIS Link Relations

4945 4946 4947

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.

4948 4949 4950 4951 4952

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.

4953 4954 4955 4956 4957

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.

4958 4959

These are the link relation types specified by CMIS:

4960

3.4.3.1 Existing Link Relations

4961 4962

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

4963



self

4964

o

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

4965

o

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

4966

o

Resources: All except AllowableActions, ACL and Content Streams

4967



service

4968 4969 4970

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.

4971

o

Media Type: application/atomsvc+xml

4972

o

Resources: All except AllowableActions, ACL and Content Streams

4973



describedby

4974 4975

o

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

4976

o

Service: getTypeDefinition on specified object

4977

o

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

4978 4979

o

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

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

1 May 2010 Page 130 of 229

4980



via

4981 4982

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.

4983

o

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

4984

o

Resources: All CMIS Feeds and Collections

4985



edit-media

4986 4987 4988

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.

4989

o

Service: setContentStream (PUT) , deleteContentStream (DELETE)

4990

o

Media Type: Specific to resource

4991

o

Resources: CMIS Document

4993 4994

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

4995

o

Service: getObject (GET), updateProperties (PUT)

4996

o

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

4997

o

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

4992

4998





edit

alternate

4999

o

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

5000

o

Service: getContentStream for specified rendition

5001

o

Resources: CMIS Document, CMIS Folder and CMIS Policies

5003

o

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

5004

o

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

5005

o

Resources: All Feeds

5002

5006





first

previous

5007

o

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

5008

o

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

5009

o

Resources: All Feeds

5010



next

5011

o

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

5012

o

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

5013

o

Resources: All Feeds

5015

o

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

5016

o

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

5017

o

Resources: All Feeds

5014



last

5018 5019 5020 5021

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

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

1 May 2010 Page 131 of 229

5022

3.4.3.2 Hierarchy Navigation Internet Draft Link Relations

5023

CMIS leverages the following link relations:

5024



up

5025

o

Service: getFolderParent, getObjectParents, getTypeDefnition, getObject

5026

o

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

5027 5028 5029

o

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

5030 5031 5032



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

down

5033

o

Service: getChildren, getDescendants, getTypeChildren, getTypeDescendants

5034

o

Media Type:

5035



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

5036



For descendants: application/cmistree+xml 

5037 5038 o

5039

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

5040

3.4.3.3 Versioning Internet Draft Link Relations

5041

CMIS leverages the following link relations from the Internet Draft:

5042



version-history

5043

o

Service: getAllVersions

5044

o

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

5045

o

Resources: CMIS Document

5046



current-version

5047

o

Service: getObjectForLatestVersion

5048

o

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

5049

o

Resources: CMIS Document

5050



working-copy

5051 5052

o

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

5053

o

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

5054

o

Resources: CMIS Document

5055 5056 5057

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

5058 5059



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

5060



Service: getAllowableActions

5061



Media Type: application/cmisallowableactions+xml

5062 5063



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

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

1 May 2010 Page 132 of 229

5064

o

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

5065 5066



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

5067



Service: getObjectRelationships

5068



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

5069



Resources: CMIS Documents, CMIS Folders, and CMIS Policies

5070

o

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

5071 5072 5073



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.

5074



Source Link on Relationship

5075



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

5076



Resources: CMIS Relationships

5077

o

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

5078 5079 5080



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.

5081



Target Link on Relationship

5082



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

5083



Resources: CMIS Relationships

5084

o

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

5085 5086



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

5087



Service: getAppliedPolicies

5088



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

5089



Resources: CMIS Documents and CMIS Folders

5090

o

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

5091 5092



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

5093



Service: getACL

5094



Media Type: application/cmisacl+xml

5095 5096



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

5097

o

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

5098



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

5099



Service: getContentChanges

5100



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

5101



Resources: AtomPub Workspace Element in Service Document

5102

o

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

5103 5104



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

5105



Service: getFolderTree

5106



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

5107



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

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

1 May 2010 Page 133 of 229

o

5108

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

5109



Used in AtomPub Service Document to identify the base types descendants

5110



Service: getTypeDescendants

5111



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

5112



Resources: AtomPub Workspace Element in Service Document

o

5113

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

5114



Used in AtomPub Service Document to identify the root folder descendants

5115



Service: getDescendants for root folder

5116



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

5117



Resources: AtomPub Workspace Element in Service Document

5118 5119

3.5 Atom Resources

5120

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

5121

3.5.1 Feeds

5122

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

5123 5124



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.

5125



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

5126



atom:title MUST be the CMIS property cmis:name

5127 5128 5129



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.

5130 5131



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

5132 5133



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

5134 5135



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.

5136 5137

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

5138 5139



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

5140



atom:author/atom:name is repository specific

5141



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

5142



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

5143 5144



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.

5145 5146



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.

5147 5148

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

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

1 May 2010 Page 134 of 229

5150 5151 5152

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.

5153 5154

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

5155

3.5.2 Entries

5156 5157

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:

5158



atom:title MUST be the cmis:name property

5159



app:edited MUST be cmis:lastModifiedDate

5160



atom:updated MUST be cmis:lastModifiedDate

5161



atom:published MUST be cmis:createdDate

5162



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

5163 5164



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

5165 5166



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

5167 5168 5169



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.

5170 5171

For Documents that support Content Streams:

5172 5173 5174 5175

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.

5176 5177 5178

Other Objects (Folders, Relationships, and other Document Types that do not support Content Streams, etc):

5179 5180 5181 5182

The repository MUST comply with the atom specification and have an atom:content element. This is repository specific. Any value in the content field MUST be ignored if the atom entry represents a non-document object by the CMIS repository when the atom entry is POST‟ed to a collection or sent to the repository via a PUT.

5183 5184 5185

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.

5186 5187 5188

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:

5189



atom:title MUST be the cmis:displayName

5190 5191



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.

5192 5193 5194 5195



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.

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

1 May 2010 Page 135 of 229

5196 5197 5198

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

5199

3.5.2.1 Hierarchical Atom Entries

5200 5201

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

5202 5203 5204 5205

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.

5206 5207 5208

The cmisra:children element MUST include an atom:feed element that contains the children entries of this resource.

5209 5210 5211

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.

5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250

For Example, here is a minimal Atom Entry with CMIS Children Extension Element: Al Brown urn:uuid:af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef CMIS Example Folder as Customer type 2010-01-25T10:20:57.818-08:00 af1d8c7f-b554-4dfb-bfe1-1f41e4b34fef customer CMIS Example Folder as Customer type Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:57.818-08:00 urn:uuid:ce2d65af-b246-454b-90ff-0986d9b05178 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 136 of 229

5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291

Al Brown urn:uuid:af1d8c7f-b554-4dfb-bfe11f41e4b34fef CMIS Example Child of Folder 2010-01-25T10:20:57.818-08:00 af1d8c7f-b554-4dfb-bfe11f41e4b34fef document

5292

Please also see the example documents included with the schema.

5293

3.6 AtomPub Service Document (Repository)

5294 5295

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.

5296 5297 5298

CMIS Services exposed: GET: getRepositories, getRepositoryInfo

5299 5300

Media Type: application/atomsvc+xml

5301 5302 5303

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.

5304

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

1 May 2010 Page 137 of 229

5305 5306 5307

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.

5308 5309 5310 5311

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 element with the given value: 

Root Folder Children Collection: Root folder of the Repository

5312

o

„root‟ for the children collection of the root folder

5313

o

cmisra:collectiontype=‟root‟

5314



Types Children Collection: Collection containing the base types in the repository

5315

o

„types‟ for the children collection

5316

o

cmisra:collectiontype=‟types‟

5317 5318 5319

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

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

5320

o

„checkedout‟

5321

o

cmisra:collectiontype=‟checkedout‟

5322



Query collection: Collection for posting queries to be executed

5323

o

„query‟

5324

o

cmisra:collectiontype=‟query‟

5325



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

5326

o

„unfiled‟

5327

o

cmisra:collectiontype=‟unfiled‟

5328 5329

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

5330 5331 5332 5333

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

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

5334 5335 5336

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

5337 5338



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.

5339 5340



http://docs.oasis-open.org/ns/cmis/link/200908/rootdescendants: This link relation points to the Root Folder Descendants Feed for the root folder.

5341 5342 5343



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

5344 5345 5346 5347

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.

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

1 May 2010 Page 138 of 229

5348

3.6.1 URI Templates

5349 5350

CMIS defines the following URI Templates:

5351



objectbyid

5352



objectbypath

5353



query

5354



typebyid

5355 5356

Repositories MUST provide the following URI Templates:

5357



objectbyid

5358



objectbypath

5359



typebyid

5360 5361

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

5362 5363 5364 5365

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.

5366 5367 5368 5369

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.

5370 5371 5372

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

5373 5374 5375

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

5376 5377 5378

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

5379 5380

All variables MUST be in the template.

5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392

Structure of URI Template:

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

1 May 2010 Page 139 of 229

5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408

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

5409 5410

Please also see the example documents included with the schema.

5411 5412

3.6.1.1 Object By Id

5413 5414

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.10 for more information.

5415 5416

Type: objectbyid

5417

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

5418 5419

Service: getObjectById

5420 5421

Variables that are supported by the template:

5422



{id}: Id of object

5423



{filter}: Property Filter

5424



{includeAllowableActions} o

5425 5426



{includePolicyIds}: Include Policy Ids: o

5427 5428



o 

o 

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5431 5432

Valid values: true, false

{includeRelationships}: Include relationships

5429 5430

Valid values: true, false

Valid values: true, false

{renditionFilter} o

5433

Valid values: Please see renditionFilter in CMIS Domain Model

5434 5435 5436 5437 5438 5439 5440 5441

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

1 May 2010 Page 140 of 229

5442 5443 5444 5445 5446 5447 5448 5449

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

5450 5451

Please also see the example documents included with the schema.

5452

3.6.1.2 Object By Path

5453 5454

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.10 for more information.

5455 5456

Type: objectbypath

5457

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

5458 5459

Service: getObjectByPath

5460 5461

Variables that are supported by the template:

5462



{path}: Path of Object

5463



{filter}: Property Filter

5464



{includeAllowableActions}: Boolean for include Allowable Actions o

5465 5466



{includePolicyIds}: Include Policy Ids: o

5467 5468



o 

o 

Valid values: See enumIncludeRelationships

{includeACL}: Include ACLs

5471 5472

Valid values: true, false

{includeRelationships}: Include relationships

5469 5470

Valid values: true, false

Valid values: true, false

{renditionFilter} o

5473

Valid values: Please see renditionFilter in CMIS Domain Model

5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490

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

1 May 2010 Page 141 of 229

5491 5492 5493

Please also see the example documents included with the schema.

5494 5495

3.6.1.3 Query

5496

Type: query

5497

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

5498 5499

Service: query

5500 5501

Variables that are supported by the template:

5502



{q}: CMIS Query Statement

5503



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

5504



{maxItems}: Integer, Max items to return

5505



{skipCount}: Integer, Items to skip

5506



{includeAllowableActions}: Boolean

5507



{includeRelationships}: Boolean

5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525

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

5526 5527

Please also see the example documents included with the schema.

5528 5529

3.6.1.4 Type By Id

5530

Type: typebyid

5531

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

5532 5533

Service: getTypeDefinition

5534 5535 5536

Variables that are supported by the template: 

{id}: CMIS Type Id

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

1 May 2010 Page 142 of 229

5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550

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

5551 5552

Please also see the example documents included with the schema.

5553 5554 5555

3.6.2 HTTP Methods

5556

3.6.2.1 GET

5557 5558

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

5559 5560 5561

The optional argument MAY be specified: 

repositoryId:

5562 5563

o

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

5564 5565

o

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

5566 5567

o

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

5568 5569

3.7 Service Collections

5570

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

5571 5572

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP verb in a repository-specific manner.

5573

3.7.1 Root Folder Collection

5574

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

5575

3.7.2 Query Collection

5576 5577 5578 5579

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.

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

1 May 2010 Page 143 of 229

5581

CMIS Services exposed via HTTP verbs:

5582

POST: Query

5583 5584

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

5585

Accept:

5586



MUST support CMIS Query document,

5587



MAY support other media type

5588 5589 5590 5591

Link Relations on resulting feed from Query Collection: 

o

5592 5593

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



Media Type: application/atomsvc+xml

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

5594 5595 5596

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

cmisra:numItems

5597 5598 5599

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

cmisra:object inside atom:entry

5600 5601

3.7.2.1 POST

5602

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

5603 5604 5605 5606 5607

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.

5608 5609

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

5610 5611 5612 5613

The atom entries should contain the bare minimum necessary for Atom compliance [RFC4287]. The atom entries MUST contain the CMIS extension element (cmisra:object) containing the properties specified by the query in the select clause of the query statement.

5614 5615 5616

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

5617 5618 5619 5620 5621 5622 5623 5624 5625

Please see http://tools.ietf.org/html/rfc5023#section-5.3. Status Codes:  201 Success Headers returned:  Location Header  Content-Location Header cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 144 of 229

5626 5627 5628 5629

Link Relations on resulting feed from POST to Query Collection: 

o

5630 5631

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



Media Type: application/atomsvc+xml

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

5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655

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

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

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 1830 Content-Type: application/atom+xml;type=feed Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/44ce5b47ebc3-4513-86e0-d3f46c77d0a8 Location: http://cmisexample.oasis-open.org/rep1/queryresult/44ce5b47-ebc34513-86e0-d3f46c77d0a8 CMIS Query Result for SELECT cmis:objectId FROM cmis:document Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:21:00.427-08:00 urn:uuid:811b1b9b-80f5-4788-b46c-aa77564e294b

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

1 May 2010 Page 145 of 229

5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708

Al Brown urn:uuid:a3386ea0-0477-4a74-96bd-70d3da1c483a Resulting Document 2010-01-25T10:21:00.427-08:00 a3386ea0-0477-4a74-96bd70d3da1c483a

5709 5710

Please also see the example documents included with the schema.

5711 5712

3.7.3 Checked Out Collection

5713 5714

This is a collection described in the service document that contains the private working copies (PWCs) of the checkedout documents in the repository.

5715

CMIS Services:

5716

GET: getCheckedOutDocs

5717

POST: checkOut

5718

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

5719

Accept:

5720



MUST support Atom Entry Documents with CMIS extensions

5721

o

application/atom+xml;type=entry or

5722

o

application/cmisatom+xml

5723



MAY support other media type

5724 5725 5726 5727

Link Relations: 

o

5728 5729

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



Media Type: application/atomsvc+xml

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

5730 5731 5732

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

cmisra:numItems

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

1 May 2010 Page 146 of 229

5734 5735

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

cmisra:object inside atom:entry

5736 5737

3.7.3.1 GET

5738

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

5739



filter

5740



folderId

5741



maxItems

5742



skipCount

5743



renditionFilter

5744



includeAllowableActions

5745



includeRelationships

5746

3.7.3.2 POST

5747 5748

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.

5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780

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:8d32d716-701b-4491-84e8-ad57c8230940 CMIS Example Document to checkout 2010-01-25T10:21:00.380-08:00 8d32d716-701b-4491-84e8-ad57c8230940

5781 5782 5783 5784 5785

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 7846 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 147 of 229

5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849

Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/6cce57fc-4e31-491c8fab-4aa6e6797dbe Location: http://cmisexample.oasis-open.org/rep1/6cce57fc-4e31-491c-8fab4aa6e6797dbe Al Brown http://www.ibm.com/ [email protected] urn:uuid:6cce57fc-4e31-491c-8fab-4aa6e6797dbe CMIS Example Child of Folder 2010-01-25T10:21:00.396-08:00 2010-01-25T10:21:00.396-08:00 HTML summary of Entry 6cce57fc-4e31-491c-8fab4aa6e6797dbe cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 148 of 229

5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912

6cce57fc-4e31-491c-8fab-4aa6e6797dbe customer CMIS Example Child of Folder 2010-01-25T10:21:00.396-08:00 2010-01-25T10:21:00.396-08:00 cmis:document Al Brown Al Brown true true false false false Checkin comment 0.1

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

1 May 2010 Page 149 of 229

5913 5914 5915 5916 5917 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

text/plain text.txt 4234 document example sample cmis 6cce57fc-4e31-491c-8fab-4aa6e6797dbe Al Brown

5945 5946

Please also see the example documents included with the schema.

5947 5948

3.7.4 Unfiled Collection

5949 5950

This is a collection described in the service document that contains all the unfiled documents in the repository. This collection MUST be available if un-filing or multi-filing is supported by the repository.

5951 5952

A repository that supports un-filing MAY provide read access (GET). If read access is not provided, the repository SHOULD respond to a read attempt with the HTTP status code 405 (notSupported).

5953

CMIS Services:

5954

POST: removeObjectFromFolder

5955

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

5956

Accept:

5957



MUST support Atom Entry Documents with CMIS extensions

5958

o

application/atom+xml;type=entry or

5959

o

application/cmisatom+xml

5960



MAY support other media type

5961 5962 5963 5964 5965

Link Relations: 

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

Media Type: application/atomsvc+xml

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

1 May 2010 Page 150 of 229

5966



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

5967 5968 5969

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

cmisra:numItems

5970 5971 5972

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

cmisra:object inside atom:entry

5973 5974

3.7.4.1 POST

5975 5976

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.

5977 5978 5979 5980

If the Atom Entry POST‟ed, does not have the CMIS extensions with a valid cmis:objectId property, the document does not exist, or the document is not in that folder, the appropriate HTTP status code MUST be returned.

5981 5982 5983 5984

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

HTTP Success: 201 Location Header

5985 5986 5987 5988 5989

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.

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

Example client request: POST /Unfiled HTTP/1.1 Host: example.org Content-Length: 1043 Content-Type: application/atom+xml;type=entry Al Brown urn:uuid:12aa2bec-6f43-47d1-99ef-21797867173c CMIS Example Document to unfiled 2010-01-25T10:21:00.427-08:00 12aa2bec-6f43-47d1-99ef-21797867173c cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 151 of 229

6018 6019 6020 6021



6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 7234 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/queryresult/151183738911-442b-9774-da3b102f224c Location: http://cmisexample.oasis-open.org/rep1/queryresult/15118373-8911442b-9774-da3b102f224c Al Brown http://www.ibm.com/ [email protected] urn:uuid:15118373-8911-442b-9774-da3b102f224c CMIS Example Document to unfiled 2010-01-25T10:21:00.443-08:00 2010-01-25T10:21:00.443-08:00 HTML summary of Entry 15118373-8911-442b-9774da3b102f224c

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

1 May 2010 Page 152 of 229

6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142

15118373-8911-442b-9774-da3b102f224c customer CMIS Example Document to unfiled 2010-01-25T10:21:00.443-08:00 2010-01-25T10:21:00.443-08:00 cmis:document Al Brown Al Brown true false false false false cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 153 of 229

6143 6144 6145 6146 6147 6148 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

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

6174 6175

Please also see the example documents included with the schema.

6176 6177

3.7.5 Types Children Collection

6178 6179 6180

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.

6181

CMIS Services:

6182

GET: getTypeChildren

6183

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

6184 6185 6186 6187

Link Relations: 

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

6188

Media Type: application/atomsvc+xml

6189



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

6190 6191



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

6192



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

6193



up: points to the parent type definition

6194

o

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

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

1 May 2010 Page 154 of 229

6196

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

6197 6198 6199

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

cmisra:numItems

6200 6201 6202

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

cmisra:type inside atom:entry

6203 6204 6205

3.7.5.1 GET

6206

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

6207



includePropertyDefinitions

6208



maxItems

6209



skipCount

6210



typeId

6211

3.8 Collections

6212 6213

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP verb in a repository-specific manner.

6214 6215

3.8.1 Relationships Collection

6216 6217

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

6218

CMIS Services:

6219

GET: getObjectRelationships

6220

POST: createRelationship

6221

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

6222

Accept:

6223



MUST support Atom Entry Documents with CMIS extensions

6224

o

application/atom+xml;type=entry or

6225

o

application/cmisatom+xml

6226



MAY support other media type

6227 6228 6229 6230

Link Relations: 

o

6231 6232

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



Media Type: application/atomsvc+xml

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

6233 6234 6235

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

cmisra:numItems

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

1 May 2010 Page 155 of 229

6236 6237 6238

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

cmisra:object inside atom:entry

6239 6240

3.8.1.1 GET

6241

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

6242



typeId

6243



includeSubRelationshipTypes

6244



relationshipDirection

6245



maxItems

6246



skipCount

6247



filter

6248



includeAllowableActions

6249

3.8.1.2 POST

6250 6251

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.

6252 6253

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.

6254

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

6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286

Example client request: POST /relationships/source/dbf0316c-47b5-47c9-a2fa-f005eb93f0a4 HTTP/1.1 Host: example.org Content-Length: 1432 Content-Type: application/atom+xml;type=entry Al Brown urn:uuid:dab97641-8c94-4a12-a604-7532980f05cb New Relationship 2010-01-25T10:20:58.864-08:00 customerRelationships dbf0316c-47b5-47c9-a2fa-f005eb93f0a4 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 156 of 229

6287 6288 6289 6290 6291 6292 6293 6294

b9baac7d-7584-445e-bcd1-29af9b25bf2f

6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:20:58 -0800 Content-Length: 4684 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/b3006a8f-345b-4c2786df-3f4b157bb495 Location: http://cmisexample.oasis-open.org/rep1/b3006a8f-345b-4c27-86df3f4b157bb495 Al Brown http://www.ibm.com/ [email protected] urn:uuid:b3006a8f-345b-4c27-86df-3f4b157bb495 New Relationship 2010-01-25T10:20:58.880-08:00 2010-01-25T10:20:58.880-08:00 HTML summary of Entry b3006a8f-345b-4c27-86df3f4b157bb495

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

1 May 2010 Page 157 of 229

6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396

b3006a8f-345b-4c27-86df-3f4b157bb495 customerRelationships New Relationship 2010-01-25T10:20:58.880-08:00 2010-01-25T10:20:58.880-08:00 cmis:relationship Al Brown Al Brown d4551c6d-30bd-4fc2-9c84-a55f11559e89 fe7e056f-c4bf-42f1-a03e-3ababcf2491d

6397 6398

Please also see the example documents included with the schema.

6399 6400

3.8.2 Folder Children Collection

6401

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

6402

CMIS Services:

6403

GET: getChildren

6404

POST:

6405

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

1 May 2010 Page 158 of 229

6406

or createFolder

6407

or createPolicy

6408

or moveObject

6409

or addObjectToFolder

6410 6411

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

6412 6413

Accept:

6414



MUST support Atom Entry Documents with CMIS extensions

6415



MAY support other media type

6416 6417 6418 6419

Link Relations: 

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

6420

Media Type: application/atomsvc+xml

6421



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

6422



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

6423

o

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

6424

o

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

6425 6426



o

6427 6428 6429 6430





If a repository does not support capabilityGetDescendants, then this link SHOULD NOT be included.

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

6431 6432

down: points to the atom feed document representing the descendents feed with a media type of application/cmistree+xml

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

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

6433 6434 6435

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

cmisra:numItems

6436 6437

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

6438



cmisra:object inside atom:entry

6439



cmisra:pathSegment inside atom:entry if pathSegment is not false

6440 6441

3.8.2.1 GET

6442

HTTP Code:

6443 6444 6445 6446 6447 6448



200 OK (Success)

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

maxItems skipCount filter

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

1 May 2010 Page 159 of 229

6449 6450 6451 6452 6453 6454

    

includeAllowableActions includeRelationships renditionFilter o If specified, renditions will be returned as links with relation alternate. orderBy includePathSegment

6455

3.8.2.2 POST

6456 6457

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.

6458 6459

 

HTTP Success: 201 Location Header

6460 6461 6462 6463

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.

6464

o

If specified moveObject will be performed.

6465

o

If not specified, addObjectToFolder will be performed.

6466 6467 6468



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.

6469 6470

POSTing an Atom Entry document with CMIS markup:

6471

Adding a document to a folder:

6472 6473

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

6474 6475 6476 6477

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.

6478 6479

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

6480 6481 6482

If atom:content is missing from the request, the repository MUST treat the missing atom:content element as an empty atom:content element.

6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498

Example client request: POST /obj/1cd0d82f-d579-4897-9b0a-ad0917595445?sourceFolderId=313fd58d-2eab41af-9517-06dadb010d49 HTTP/1.1 Host: example.org Content-Length: 1227 Content-Type: application/atom+xml;type=entry Al Brown cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 160 of 229

6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518

urn:uuid:1cd0d82f-d579-4897-9b0a-ad0917595445 Document - To Be Moved 2010-01-25T10:20:58.708-08:00 1cd0d82f-d579-4897-9b0a-ad0917595445 invoice

6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:20:58 -0800 Content-Length: 7213 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/b4423b8a-e46e-49fb8141-4aed91d28b5b Location: http://cmisexample.oasis-open.org/rep1/b4423b8a-e46e-49fb-81414aed91d28b5b Al Brown http://www.ibm.com/ [email protected] urn:uuid:b4423b8a-e46e-49fb-8141-4aed91d28b5b Document - To Be Moved 2010-01-25T10:20:58.786-08:00 2010-01-25T10:20:58.786-08:00 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 161 of 229

6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 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

HTML summary of Entry b4423b8a-e46e-49fb-81414aed91d28b5b b4423b8a-e46e-49fb-8141-4aed91d28b5b invoice Document - To Be Moved 2010-01-25T10:20:58.786-08:00 2010-01-25T10:20:58.786-08:00 cmis:document Al Brown Al Brown true

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

1 May 2010 Page 162 of 229

6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 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

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

6671 6672

Please also see the example documents included with the schema.

6673 6674 6675 6676 6677

Creating a CMIS Object (in that folder): If the cmis:objectId property is missing, the object will be created and then added to the folder. If the cmis:objectId property is present but not a valid object Id, the repository MUST return the appropriate HTTP status code.

6678 6679 6680 6681

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

1 May 2010 Page 163 of 229

6682 6683 6684

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)

6685



src attribute: Implementers MAY support external references to content

6686 6687



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

6688

o



6689 6690 6691 6692 6693

o

6696

o

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

If the cmisra:content is provided by the client inside the atom:entry, the cmisra:content element MUST take precendence over the atom:content element. (CMIS) 

6694 6695

As part of the atom entry inlining via the content element (AtomPub)

This element cmisra:content is base64 encoded

At a later time (AtomPub) 

At a later time by replacing the edit-media link with a new content

6697 6698 6699

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

6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735

Example client request: POST /obj/bb2b208b-3acd-4abe-9788-8078a239f228 HTTP/1.1 Host: example.org Content-Length: 1190 Content-Type: application/atom+xml;type=entry Al Brown urn:uuid:bb2b208b-3acd-4abe-9788-8078a239f228 New Invoice 2010-01-25T10:20:58.818-08:00 this is the content of the new document bb2b208b-3acd-4abe-9788-8078a239f228 invoice

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

1 May 2010 Page 164 of 229

6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:20:58 -0800 Content-Length: 7191 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/13475008-6a20-4454ad0b-10ea94c4b93d Location: http://cmisexample.oasis-open.org/rep1/13475008-6a20-4454-ad0b10ea94c4b93d Al Brown http://www.ibm.com/ [email protected] urn:uuid:13475008-6a20-4454-ad0b-10ea94c4b93d New Invoice 2010-01-25T10:20:58.818-08:00 2010-01-25T10:20:58.833-08:00 HTML summary of Entry 13475008-6a20-4454-ad0b10ea94c4b93d

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

1 May 2010 Page 165 of 229

6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 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

13475008-6a20-4454-ad0b-10ea94c4b93d invoice New Invoice 2010-01-25T10:20:58.833-08:00 2010-01-25T10:20:58.833-08:00 cmis:document Al Brown Al Brown true false false false false Checkin comment cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 166 of 229

6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887

0.1 text/plain text.txt 4234 document example sample cmis

6888 6889

Please also see the example documents included with the schema.

6890 6891

POSTing other document formats: (AtomPub)

6892 6893

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

6894 6895

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

6896 6897

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

6898 6899

Optional arguments:

6900



versioningState (for createDocument)

6901



sourceFolderId (for moveObject)

6902 6903

3.8.3 Policies Collection

6904 6905 6906 6907

This is an atom feed of all the policy objects currently applied to a specific object. This is the only collection where the URI‟s of the objects in the collection MUST be specific to that collection. A DELETE on the policy object in the collection is a removal of the policy from the object NOT a deletion of the policy object itself.

6908 6909

CMIS Services:

6910

GET: getAppliedPolicies

6911

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

6912

DELETE: removePolicy

6913

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

1 May 2010 Page 167 of 229

6914 6915

Accept: 

MUST support Atom Entry Documents with CMIS extensions

6916

o

application/atom+xml;type=entry or

6917

o

application/cmisatom+xml

6918



MAY support other media type

6919 6920 6921 6922

Link Relations: 

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

6923

Media Type: application/atomsvc+xml

6924



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

6925



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

6926 6927 6928

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

6929 6930 6931

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

cmisra:numItems

6932 6933 6934

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

cmisra:object inside atom:entry

6935 6936

3.8.3.1 GET

6937

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

6938



filter

6939

3.8.3.2 POST

6940 6941

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

6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960

Example client request: POST /policies/f3670f66-62ee-487f-b733-999a69237024 HTTP/1.1 Host: example.org Content-Length: 1039 Content-Type: application/atom+xml;type=entry Al Brown cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 168 of 229

6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973

urn:uuid:f3670f66-62ee-487f-b733-999a69237024 Security Policy for Invoices 2010-01-25T10:20:58.849-08:00 f3670f66-62ee-487f-b733-999a69237024

6974 6975 6976 6977 6978 6979 6980 6981 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

Example server response: HTTP/1.1 201 Created Date: Mon, 25 Jan 2010 10:20:58 -0800 Content-Length: 4043 Content-Type: application/atom+xml;type=entry Content-Location: http://cmisexample.oasis-open.org/rep1/55cca51b-6cfa-4354bdfe-690761576116 Location: http://cmisexample.oasis-open.org/rep1/55cca51b-6cfa-4354-bdfe690761576116 Al Brown http://www.ibm.com/ [email protected] urn:uuid:55cca51b-6cfa-4354-bdfe-690761576116 Security Policy for Invoices 2010-01-25T10:20:58.849-08:00 2010-01-25T10:20:58.849-08:00 HTML summary of Entry 55cca51b-6cfa-4354-bdfe690761576116 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 169 of 229

7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064

55cca51b-6cfa-4354-bdfe-690761576116 generalSecurityPolicy Security Policy for Invoices 2010-01-25T10:20:58.849-08:00 2010-01-25T10:20:58.864-08:00 cmis:policy Al Brown Al Brown

7065 7066

Please also see the example documents included with the schema.

7067

3.8.3.3 DELETE

7068 7069 7070

This is the only collection where the URI‟s of the objects in the collection MUST be specific to that collection. A DELETE on the policy object in the collection is a removal of the policy from the object NOT a deletion of the policy object itself.

7071 7072

3.9 Feeds

7073 7074

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP verb in a repository-specific manner.

7075

3.9.1 Object Parents Feed

7076

This is the set of parents for a specific object.

7077

CMIS Services: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 170 of 229

7078 7079

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

7080 7081 7082 7083

Link Relations: 

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

7084 7085



Media Type: application/atomsvc+xml

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

7086 7087

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

7088



cmisra:object inside atom:entry

7089



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

7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 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

Example: Parent Feed for 268d30b5-91a0-47f0-b9856765e178f0bb Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.818-08:00 urn:uuid:6f541940-4abf-471b-99f0-8e6f66d53789 1 Al Brown http://www.ibm.com/ [email protected]

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

1 May 2010 Page 171 of 229

7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 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

urn:uuid:661d6945-8f75-4dea-8799-7ba07b0e510e Customer Folder 2010-01-25T10:20:59.833-08:00 2010-01-25T10:20:59.833-08:00 HTML summary of Entry 661d6945-8f75-4dea8799-7ba07b0e510e 661d6945-8f75-4dea-87997ba07b0e510e customer Customer Folder 2010-01-25T10:20:59.833-08:00 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 172 of 229

7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223

2010-01-25T10:20:59.833-08:00 cmis:folder Al Brown Al Brown 661d6945-8f75-4dea-87997ba07b0e510eup customer1

7224 7225

Please also see the example documents included with the schema.

7226

3.9.1.1 GET

7227

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

7228



filter

7229



includeAllowableActions

7230



includeRelationships

7231



renditionFilter

7232



includeRelativePathSegment o

7233

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

7234

3.9.2 Changes

7235 7236 7237

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.

7238 7239 7240

The ChangeLog Token is specified in the URI specified by the paging link notations. Through this binding it is not possible to retrieve the ChangeLog Token from the URIs.

7241 7242

CMIS Services:

7243

GET: getContentChanges()

7244

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

7245

Link Relations:

7246 7247



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

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

1 May 2010 Page 173 of 229

o

7248 7249



Media Type: application/atomsvc+xml

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

7250

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

7251 7252

This feed MUST be ordered from oldest first to newest.

7253 7254 7255 7256

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.

7257 7258 7259

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

cmisra:numItems

7260 7261 7262

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

cmisra:object inside atom:entry

7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303

Example: changelog feed Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.255-08:00 urn:uuid:0bfc5306-fc76-4cd8-a0c0-7653dd43c0ff 2 Al Brown http://www.ibm.com/ [email protected] urn:uuid:3f724c1d-12c8-43f2-919f-674df52b6ebd CMIS Example Folder as Customer Policy type 2010-01-25T10:20:59.255-08:00 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 174 of 229

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

2010-01-25T10:20:59.255-08:00 HTML summary of Entry 3f724c1d-12c8-43f2919f-674df52b6ebd 3f724c1d-12c8-43f2-919f674df52b6ebd customerpolicy CMIS Example Folder as Customer Policy type 2010-01-25T10:20:59.255-08:00 2010-01-25T10:20:59.255-08:00 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 175 of 229

7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430

cmis:folder Al Brown Al Brown 3f724c1d-12c8-43f2-919f674df52b6ebdup updated 2010-01-25T10:20:59.25508:00 policy Al Brown http://www.ibm.com/ [email protected] urn:uuid:6e27bada-b5a2-4a39-be2c-269806eb0d42 CMIS Example Document 2010-01-25T10:20:59.255-08:00 2010-01-25T10:20:59.255-08:00 HTML summary of Entry 6e27bada-b5a2-4a39be2c-269806eb0d42

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

1 May 2010 Page 176 of 229

7431 7432 7433 7434 7435 7436 7437 7438 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

6e27bada-b5a2-4a39-be2c269806eb0d42 document CMIS Example Document 2010-01-25T10:20:59.271-08:00 2010-01-25T10:20:59.271-08:00 cmis:document Al Brown Al Brown true false false cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 177 of 229

7495 7496 7497 7498 7499 7500 7501 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

false false Checkin comment 0.1 text/plain text.txt 4234 document example sample cmis updated 2010-01-25T10:20:59.27108:00 invoice.pdf

7538 7539

Please also see the example documents included with the schema.

7540

3.9.2.1 GET

7541

The following optional parameters may be supplied:

7542



filter

7543



maxItems

7544



includeACL

7545



includePolicyIds

7546



includeProperties

7547 7548 7549



changeLogToken: If this parameter is specified, start the changes from the specified token. The changeLogToken is embedded in the paging link relations for normal iteration through the change list.

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

1 May 2010 Page 178 of 229

7550

3.9.3 Folder Descendants

7551 7552 7553

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.

7554 7555 7556

If a repository does not support capabilityGetDescendants, then these resources SHOULD NOT be exposed.

7557 7558

CMIS Services:

7559

GET: getDescendants

7560

DELETE: deleteTree

7561

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

7562 7563 7564 7565

Link Relations: 

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

7566

Media Type: application/atomsvc+xml

7567



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

7568



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

7569

o

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

7570

o

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

7571



down:

7572 7573

o

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

7574

o

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

7575



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

7576 7577 7578



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

7579 7580 7581

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

cmisra:numItems

7582 7583

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

7584



cmisra:object inside atom:entry

7585



cmisra:pathSegment inside atom:entry

7586



cmisra:children inside atom:entry

7587 7588 7589 7590 7591 7592 7593 7594

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

1 May 2010 Page 179 of 229

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

Feed for folder1 Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.364-08:00 urn:uuid:cb0a47d4-8d09-46f9-9b09-584acad684af 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:8e5a512c-8f2d-4387-a283-f3f30bbc312f CMIS Example Folder as Customer type 2010-01-25T10:20:59.364-08:00 2010-01-25T10:20:59.380-08:00 HTML summary of Entry 8e5a512c-8f2d-4387a283-f3f30bbc312f

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

1 May 2010 Page 180 of 229

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

8e5a512c-8f2d-4387-a283f3f30bbc312f customer CMIS Example Folder as Customer type 2010-01-25T10:20:59.380-08:00 2010-01-25T10:20:59.380-08:00 cmis:folder Al Brown Al Brown 8e5a512c-8f2d-4387-a283f3f30bbc312fup customer CMIS Example Folder as Customer type cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 181 of 229

7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785

Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.380-08:00 urn:uuid:67ee5e9f-d2e3-457d-9decbe718e780452 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:8c2dbba5-ea33-469f-a0529f01e636c72a CMIS Example Doc as Invoice type 2010-01-25T10:20:59.380-08:00 2010-01-25T10:20:59.38008:00 HTML summary of Entry 8c2dbba5ea33-469f-a052-9f01e636c72a cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 182 of 229

7786 7787 7788 7789 7790 7791 7792 7793 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 7847 7848 7849

8c2dbba5-ea33-469f-a052-9f01e636c72a invoice CMIS Example Doc as Invoice type 2010-01-25T10:20:59.380-08:00 2010-01-25T10:20:59.380-08:00 cmis:document Al Brown Al Brown true false false cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 183 of 229

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

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

7894 7895

Please also see the example documents included with the schema.

7896

3.9.3.1 GET

7897

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

7898



filter

7899



depth

7900



includeAllowableActions

7901



includeRelationships

7902



renditionFilter

7903



includePathSegment

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

1 May 2010 Page 184 of 229

7904

3.9.3.2 DELETE

7905 7906

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

7907



continueOnFailure

7908



unfileObjects

7909 7910

Status Code:

7911



200 OK if successful. Body contains entity describing the status

7912



202 Accepted, if accepted but deletion not yet taking place

7913



204 No Content, if successful with no content

7914



403 Forbidden, if permission is denied

7915



401 Unauthorized, if not authenticated

7916



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

7917 7918 7919

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.

7920 7921

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.

7922

3.9.4 Folder Tree

7923 7924 7925

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.

7926 7927

CMIS Services:

7928

GET: getFolderTree

7929 7930

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

7931 7932 7933 7934

Link Relations: 

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

7935

Media Type: application/atomsvc+xml

7936



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

7937



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

7938

o

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

7939

o

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

7940



down:

7941 7942

o

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

7943 7944 7945

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.

7946



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

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

1 May 2010 Page 185 of 229

o

7947 7948

Repositories may support these paging link relations on a particular cmisra:children element.

7949 7950

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

7951 7952 7953

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

cmisra:numItems

7954 7955

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

7956



cmisra:object inside atom:entry

7957



cmisra:pathSegment inside atom:entry

7958



cmisra:children inside atom:entry

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

Example: FolderTree Feed of Folder1 Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.521-08:00 urn:uuid:f87e5678-dd24-4214-9e71-635f060beb7d 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:c7b5a83e-37b6-4f5a-b646-50892252a180 Customer Folder 2010-01-25T10:20:59.521-08:00 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 186 of 229

8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066

2010-01-25T10:20:59.521-08:00 HTML summary of Entry c7b5a83e-37b6-4f5ab646-50892252a180 c7b5a83e-37b6-4f5a-b64650892252a180 customer Customer Folder 2010-01-25T10:20:59.521-08:00 2010-01-25T10:20:59.521-08:00

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

1 May 2010 Page 187 of 229

8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088

cmis:folder Al Brown Al Brown c7b5a83e-37b6-4f5a-b64650892252a180up customer

8089 8090

Please also see the example documents included with the schema.

8091

3.9.4.1 GET

8092

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

8093



filter

8094



depth

8095



includeAllowableActions

8096



includeRelationships

8097



renditionFilter

8098

3.9.4.2 DELETE

8099

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

8100

3.9.5 AllVersions Feed

8101

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

8102

CMIS Services:

8103

GET: getAllVersions

8104

DELETE: deleteAllVersions

8105

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

8106 8107

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

8108 8109 8110 8111

Link Relations: 

o

8112 8113

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



Media Type: application/atomsvc+xml

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

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

1 May 2010 Page 188 of 229

8114



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

8115 8116

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

8117



cmisra:object inside atom:entry

8118



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

8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173

Example: AllVersions for Document e8abd7cd-b9ec-4dba-9eaa1bce2ae9977f Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:58.896-08:00 urn:uuid:5dc3d1c1-3e85-4720-acf8-cf98c96a5830 1 Al Brown http://www.ibm.com/ [email protected] urn:uuid:197033f2-ac11-4911-b5a3-60781fa5c281 Invoice (Version1) 2010-01-25T10:20:58.896-08:00 2010-01-25T10:20:58.896-08:00 HTML summary of Entry 197033f2-ac11-4911b5a3-60781fa5c281 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 189 of 229

8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206

197033f2-ac11-4911-b5a360781fa5c281

8207 8208

Please also see the example documents included with the schema.

8209

3.9.5.1 GET

8210

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

8211



filter

8212



includeAllowableActions

8213

3.9.5.2 DELETE

8214

This removes the entire version history of the document.

8215 8216

Success HTTP code: 204

8217

3.9.6 Type Descendants Feed

8218 8219 8220 8221

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

8222 8223 8224

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

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

1 May 2010 Page 190 of 229

8226

CMIS Services:

8227

GET: getTypeDescendants

8228 8229

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

8230 8231 8232 8233

Link Relations: 

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

8234

Media Type: application/atomsvc+xml

8235 8236



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

8237



down: points to the children feed for the same type

8238



up: points to the parent type definition o

8239

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

8240 8241 8242

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

cmisra:numItems

8243 8244 8245 8246 8247 8248 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

Example: Base Types Al Brown http://www.ibm.com/ [email protected] 2010-01-25T10:20:59.911-08:00 urn:uuid:c5d3d357-33ec-47c1-8436-563e0d94d2e5 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® 2010. All Rights Reserved.

1 May 2010 Page 191 of 229

8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 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

2010-01-25T10:20:59.927-08:00 HTML summary of Type Definition cmis:document Type Definition - cmis:document 2010-01-25T10:20:59.927-08:00 2010-01-25T10:20:59.927-08: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] 2010-01-25T10:20:59.927-08:00 urn:uuid:6f1cdc44-bd89-41c0-8fad89f3ad0f8f30 1 Al Brown http://www.ibm.com/ cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 192 of 229

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

[email protected] Type Definition for invoicedocument http://cmisexample.oasisopen.org/rep1/type/invoice-document 2010-01-25T10:20:59.92708:00 HTML summary of Type Definition invoice-document Type Definition - invoicedocument 2010-01-25T10:20:59.927-08:00 2010-01-25T10:20:59.927-08:00 dtinvoice-document myrepname-invoicedocument invoice-document invoice-document Description for type definition invoice-document cmis:document parent true true false false true true true true allowed Al Brown http://www.ibm.com/ cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 193 of 229

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

[email protected] Type Definition for cmis:folder http://cmisexample.oasisopen.org/rep1/type/cmis:folder 2010-01-25T10:20:59.927-08:00 HTML summary of Type Definition cmis:folder Type Definition - cmis:folder 2010-01-25T10:20:59.927-08:00 2010-01-25T10:20:59.927-08: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] 2010-01-25T10:20:59.927-08:00 urn:uuid:361a3ac1-f7f7-47cb-b941ae1200213fe0 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 194 of 229

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

1 Al Brown http://www.ibm.com/ [email protected] Type Definition for customerfolder http://cmisexample.oasisopen.org/rep1/type/customer-folder 2010-01-25T10:20:59.92708:00 HTML summary of Type Definition customer-folder Type Definition - customerfolder 2010-01-25T10:20:59.927-08:00 2010-01-25T10:20:59.927-08:00 dtcustomer-folder myrepname-customerfolder customer-folder customer-folder Description for type definition customer-folder cmis:folder parent true true false false true true true cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 195 of 229

8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599

Al Brown http://www.ibm.com/ [email protected] Type Definition for cmis:relationship http://cmisexample.oasisopen.org/rep1/type/cmis:relationship 2010-01-25T10:20:59.943-08:00 HTML summary of Type Definition cmis:relationship Type Definition cmis:relationship 2010-01-25T10:20:59.943-08:00 2010-01-25T10:20:59.943-08: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] 2010-01-25T10:20:59.943-08:00 urn:uuid:9394ff3d-87c4-48c9-a951ba725560faac

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

1 May 2010 Page 196 of 229

8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663

1 Al Brown http://www.ibm.com/ [email protected] Type Definition for customerrelationship http://cmisexample.oasisopen.org/rep1/type/customer-relationship 2010-01-25T10:20:59.94308:00 HTML summary of Type Definition customer-relationship Type Definition - customerrelationship 2010-01-25T10:20:59.943-08:00 2010-01-25T10:20:59.943-08:00 dtcustomer-relationship myrepname-customerrelationship customerrelationship customer-relationship Description for type definition customer-relationship cmis:relationship parent true false false false cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 197 of 229

8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727

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 2010-01-25T10:20:59.943-08:00 HTML summary of Type Definition cmis:policy Type Definition - cmis:policy 2010-01-25T10:20:59.943-08:00 2010-01-25T10:20:59.943-08: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 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 198 of 229

8728

8729 8730

Please also see the example documents included with the schema.

8731

3.9.6.1 GET

8732

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

8733



includePropertyDefinitions

8734



depth

8735

3.10 Resources

8736 8737

For any HTTP verb not specified on a resource,each implementation MAY chose to implement that HTTP verb in a repository-specific manner.

8738

3.10.1 Type Entry

8739

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

8740 8741

CMIS Services:

8742 8743

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

8744 8745 8746 8747

Link Relations: 

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

8748

Media Type: application/atomsvc+xml

8749



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

8750



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

8751 8752

o

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

8753 8754

o

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

8755



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

8756 8757 8758

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

cmisra:type

8759

3.10.1.1 GET

8760

There are no optional arguments for this resource.

8761 8762 8763 8764 8765

Request: GET /obj/5070f89a-6f00-4acf-84e9-d8836a6c7d23 HTTP/1.1 Host: example.org

8766 8767 8768

Response: HTTP/1.1 200 Ok cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 199 of 229

8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832

Date: Mon, 25 Jan 2010 10:21:00 -0800 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 2010-01-25T10:21:00.380-08:00 HTML summary of Type Definition cmis:document Type Definition - cmis:document 2010-01-25T10:21:00.380-08:00 2010-01-25T10:21:00.380-08: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

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

1 May 2010 Page 200 of 229

8833 8834

Please also see the example documents included with the schema.

8835 8836

3.10.2 Document Entry

8837

This is a CMIS Document instance.

8838 8839

CMIS Services:

8840

GET: getObject, getObjectOfLatestVersion (getObject)

8841

PUT: updateProperties

8842

DELETE: deleteObject

8843

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

8844 8845

Link Relations:

8846 8847



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

8848



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

8849 8850



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

8851

Media Type: application/atomsvc+xml

8852 8853



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.

8854



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

8855 8856



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

8857

o

Uses query parameter „returnVersion‟ and enumReturnVersion

8858

o

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

8859



edit-media:

8860

o

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

8861

o

Please see AtomPub for more information

8862



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

8863



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

8864 8865



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

8866 8867



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

8868 8869



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

8870



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

8871



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

8872 8873 8874

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

cmisra:object

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

1 May 2010 Page 201 of 229

8875 8876

3.10.2.1 GET

8877

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

8878



returnVersion

8879

o

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

8880

o

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

8881

o

If not specified, return the version specified by the URI

8882



includeAllowableActions

8883



includeRelationships

8884



includePolicyIds

8885



includeACL

8886



filter

8887



renditionFilter o

8888

If not specified, renditions will not be included.

8889 8890 8891 8892 8893 8894

Request: GET /obj/7c088887-5991-4b3a-9ad3-16379127e647?filter=cmis:objectId HTTP/1.1 Host: example.org

8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 3403 Content-Type: application/atom+xml;type=entry Location: /obj/7c088887-5991-4b3a-9ad3-16379127e647?filter=cmis:objectId Al Brown http://www.ibm.com/ [email protected] urn:uuid:7c088887-5991-4b3a-9ad3-16379127e647 Invoice 2010-01-25T10:21:00.193-08:00

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

1 May 2010 Page 202 of 229

8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967

2010-01-25T10:21:00.193-08:00 HTML summary of Entry 7c088887-5991-4b3a-9ad316379127e647 7c088887-5991-4b3a-9ad3-16379127e647

8968 8969

Please also see the example documents included with the schema.

8970 8971

3.10.2.2 PUT

8972 8973

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.

8974 8975

The server SHOULD respond with:

8976



HTTP Status Code 200

8977



Response Body containing the updated atom entry

8978

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

1 May 2010 Page 203 of 229

8979

3.10.2.3 DELETE

8980

This removes the document.

8981

Success HTTP code: 204

8982

3.10.3 Document Private Working Copy (PWC) Entry

8983

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

8984

CMIS Services:

8985

GET: getObject

8986

PUT: updateProperties or checkIn

8987

DELETE: cancelCheckOut

8988

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

8989 8990

Link relations:

8991



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

8992 8993



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

8994 8995



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

8996

Media Type: application/atomsvc+xml

8997 8998



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.

8999



version-history o

9000 9001



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

edit-media

9002

o

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

9003

o

Please see AtomPub for more information

9004



via: atom entry that created this private working copy

9005



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

9006 9007



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

9008 9009



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

9010 9011



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

9012



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

9013



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

9014 9015 9016

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

cmisra:object

9017 9018

3.10.3.1 GET

9019

The following arguments may be supplied. Please see the domain model for more information: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 204 of 229

9020



filter

9021



includeAllowableActions

9022



includeRelationships

9023



renditionFilter o

9024

If not specified, renditions will not be included.

9025 9026 9027 9028 9029

Request: GET /obj/3240a476-6de6-4ab2-978d-85ca2f4f3206?filter=cmis:objectId HTTP/1.1 Host: example.org

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 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 3564 Content-Type: application/atom+xml;type=entry Location: /obj/3240a476-6de6-4ab2-978d-85ca2f4f3206?filter=cmis:objectId Al Brown http://www.ibm.com/ [email protected] urn:uuid:3240a476-6de6-4ab2-978d-85ca2f4f3206 Invoice 2010-01-25T10:21:00.333-08:00 2010-01-25T10:21:00.333-08:00 HTML summary of Entry 3240a476-6de6-4ab2-978d85ca2f4f3206 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 205 of 229

9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105

3240a476-6de6-4ab2-978d-85ca2f4f3206

9106 9107

Please also see the example documents included with the schema.

9108 9109

3.10.3.2 PUT

9110 9111

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.

9112 9113

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

9114



checkinComment

9115



major

9116



checkin

9117 9118

o

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

9119 9120

o

If this argument is specified as TRUE, then the body to PUT MAY be omitted if there are no modifications to be made during checkin

9121 9122

The server SHOULD respond with:

9123



HTTP Status Code 200

9124



Location header of the resource (if changed via checkin)

9125



Response Body containing the updated atom entry

9126

3.10.3.3 DELETE

9127

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

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

1 May 2010 Page 206 of 229

9129

Success HTTP code: 204

9130

3.10.4 Folder Entry

9131

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

9132

CMIS Services:

9133

GET: getObject

9134

PUT: updateProperties

9135

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

9136

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

9137 9138

Link Relations:

9139 9140



self: Points to the URI to retrieve this atom entry. Please see Atom for more informationedit: Points to the URI to update this atom entry via POST. Please see AtomPub for more information.

9141 9142



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

9143

Media Type: application/atomsvc+xml

9144



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

9145



down: Points to the children of this folder

9146 9147

o

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

9148

o

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

9149



up: Points to the atom entry for the parent o

9150

If the root folder, this link will not be present

9151 9152



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

9153 9154



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

9155 9156



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

9157



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

9158



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

9159



http://docs.oasis-open.org/ns/cmis/link/200908/foldertree: Points to the folder tree for this folder

9160 9161 9162

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

cmisra:object

9163 9164

3.10.4.1 GET

9165

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

9166



filter

9167



includeAllowableActions

9168



includeRelationships

9169



renditionFilter

9170

o

If not specified, renditions will not be included.

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

1 May 2010 Page 207 of 229

9171 9172 9173 9174 9175

Request: GET /obj/cfc03a28-8240-471d-b4ba-6d8756cd5093?filter=cmis:objectId HTTP/1.1 Host: example.org

9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 3332 Content-Type: application/atom+xml;type=entry Location: /obj/cfc03a28-8240-471d-b4ba-6d8756cd5093?filter=cmis:objectId Al Brown http://www.ibm.com/ [email protected] urn:uuid:cfc03a28-8240-471d-b4ba-6d8756cd5093 Customer Folder 2010-01-25T10:21:00.208-08:00 2010-01-25T10:21:00.208-08:00 HTML summary of Entry cfc03a28-8240-471d-b4ba6d8756cd5093 cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 208 of 229

9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247

cfc03a28-8240-471d-b4ba-6d8756cd5093

9248 9249

Please also see the example documents included with the schema.

9250 9251

3.10.4.2 PUT

9252 9253

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.

9254 9255

The server SHOULD respond with:

9256



HTTP Status Code 200

9257



Response Body containing the updated atom entry

9258 9259

3.10.4.3 DELETE

9260

This removes the object (folder) from the repository.

9261

Success HTTP code: 204

9262

3.10.5 Relationship Entry

9263

This is a CMIS relationship instance. These objects are exposed via „relationships‟ link type.

9264

CMIS Services:

9265

GET: getObject

9266

PUT: updateProperties

9267

DELETE: deleteObject

9268

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

9269 9270

Link Relations:

9271



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

9272 9273



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

9274 9275



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

9276 9277



Media Type: application/atomsvc+xml

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

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

1 May 2010 Page 209 of 229

9278



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

9279



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

9280 9281



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

9282



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

9283



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

9284 9285 9286

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

cmisra:object

9287 9288

3.10.5.1 GET

9289

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

9290



filter

9291



includeAllowableActions

9292 9293 9294 9295 9296

Request: GET /obj/ad443afd-aa1a-4071-9735-1a49aac4e439?filter=cmis:objectId HTTP/1.1 Host: example.org

9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 2861 Content-Type: application/atom+xml;type=entry Location: /obj/ad443afd-aa1a-4071-9735-1a49aac4e439?filter=cmis:objectId Al Brown http://www.ibm.com/ [email protected] urn:uuid:ad443afd-aa1a-4071-9735-1a49aac4e439 Customer Relationship 2010-01-25T10:21:00.349-08:00

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

1 May 2010 Page 210 of 229

9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359

2010-01-25T10:21:00.365-08:00 HTML summary of Entry ad443afd-aa1a-4071-97351a49aac4e439 ad443afd-aa1a-4071-9735-1a49aac4e439

9360 9361

Please also see the example documents included with the schema.

9362 9363

3.10.5.2 PUT

9364 9365

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.

9366 9367

The server SHOULD respond with:

9368



HTTP Status Code 200

9369



Response Body containing the updated atom entry

9370 9371

3.10.5.3 DELETE

9372

This removes the relationship entry.

9373

Successful HTTP code: 204

9374

3.10.6 Policy Entry

9375

This is a CMIS policy instance.

9376

CMIS Services:

9377

GET: getObject

9378

PUT: updateProperties

9379

DELETE: deleteObject or removePolicy cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 211 of 229

9380

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

9381 9382

Link Relations:

9383



self

9384



edit

9385 9386



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

9387

Media Type: application/atomsvc+xml

9388



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

9389 9390



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

9391 9392



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

9393



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

9394



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

9395 9396 9397

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

cmisra:object

9398 9399

3.10.6.1 GET

9400

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

9401



filter

9402



includeAllowableActions

9403



includeRelationships

9404



renditionFilter o

9405

If not specified, renditions will not be included.

9406 9407 9408 9409 9410

Request: GET /obj/a09ed524-5f1b-4940-b2f0-4e4cd4631bf0?filter=cmis:objectId HTTP/1.1 Host: example.org

9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 2608 Content-Type: application/atom+xml;type=entry Location: /obj/a09ed524-5f1b-4940-b2f0-4e4cd4631bf0?filter=cmis:objectId Al Brown cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 212 of 229

9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470

http://www.ibm.com/ [email protected] urn:uuid:a09ed524-5f1b-4940-b2f0-4e4cd4631bf0 Security Policy 2010-01-25T10:21:00.318-08:00 2010-01-25T10:21:00.318-08:00 HTML summary of Entry a09ed524-5f1b-4940-b2f04e4cd4631bf0 a09ed524-5f1b-4940-b2f0-4e4cd4631bf0

9471 9472

Please also see the example documents included with the schema.

9473 9474

3.10.6.2 PUT

9475 9476

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.

9477 9478

The server SHOULD respond with:

9479



HTTP Status Code 200

9480



Response Body containing the updated atom entry

9481

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

1 May 2010 Page 213 of 229

9482

3.10.6.3 DELETE

9483 9484

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.

9485 9486

Success HTTP code: 204

9487

3.10.7 Content Stream

9488

This is the content stream portion of the document object.

9489

CMIS Services:

9490

GET: getContentStream

9491

PUT: setContentStream

9492

DELETE: deleteContentStream

9493

Media Type: Mime/Type of resource (mime type of content stream on document)

9494

3.10.7.1 GET

9495

This returns the content stream.

9496 9497 9498

It is RECOMMENDED that HTTP Range requests are supported on this resource. It is RECOMMENDED that HTTP compression is also supported.

9499 9500

Please see RFC2616 for more information on HTTP Range requests.

9501

3.10.7.2 PUT

9502

This does a replacement of the content stream.

9503 9504 9505

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

overwriteFlag. o

9506 9507

If not specified, this defaults to „true‟ in this binding and behaves consistent with AtomPub.

9508 9509 9510

Success HTTP code: 200 (with content), 204 (without content) or 201 if a new resource is created. Please see the HTTP specification for more information.

9511 9512

Returns headers:

9513



Content-Location: URI for content stream

9514



Location: URI for content stream

9515

3.10.7.3 DELETE

9516

This removes the content stream.

9517

3.10.8 ACL Resource

9518

CMIS Services:

9519

GET: getACL

9520

PUT: applyACL cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 214 of 229

9521 9522

Media Type: application/cmisacl+xml

9523 9524

3.10.8.1 GET

9525 9526

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.

9527 9528 9529 9530 9531

Request: GET /objacl/fd79b7bd-2579-4ad1-aea2-eda89527fbef HTTP/1.1 Host: example.org

9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558

Response: HTTP/1.1 200 Ok Date: Mon, 25 Jan 2010 10:21:00 -0800 Content-Length: 758 Content-Type: application/cmisacl+xml Location: /objacl/fd79b7bd-2579-4ad1-aea2-eda89527fbef Al Brown cmis:read cmis:write cmis:all publish true

9559 9560

Please also see the example documents included with the schema.

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

1 May 2010 Page 215 of 229

9561

4 Web Services Binding

9562

4.1 Overview

9563

All services and operations defined in the Domain Model are presented in the Web Services binding.

9564 9565 9566 9567 9568

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.

9569 9570

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.

9571

4.1.1 WS-I

9572

A CMIS Web Services binding MUST comply with WS-I Basic Profile 1.1 and Basic Security Profile 1.0.

9573

4.1.2 Authentication

9574 9575 9576

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.

9577

4.1.3 Content Transfer

9578

All endpoints of the Web Services binding MUST be MTOM enabled.

9579

4.1.4 Reporting Errors

9580 9581 9582

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.

9583

4.2 Web Services Binding Mapping

9584 9585 9586 9587 9588

The Domain Model defines all services, operations, parameters and objects of CMIS. The Web Services binding is an exact one-to-one mapping of this definition with small exceptions that are explained in the next section. Operations and parameters are named exactly after their counterparts in the Services section. All rules and exceptions defined there apply to the Web Services binding. Optional parameters and optional return values are not set if they are missing or their value is NULL.

9589

4.3 Additions to the Services section

9590

4.3.1 updateProperties and checkIn Semantics

9591 9592 9593

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.

9594

4.3.2 Content Ranges

9595 9596

This binding supports the retrieval of content ranges. The operation getContentStream accepts two optional parameters: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 216 of 229

9597



Integer offset: The first byte of the content to retrieve. Default value is 0.

9598 9599



Integer length: The length of the range in bytes. Default value is the size of the content minus the offset.

9600 9601 9602

If the offset value is greater than the size of the content the repository SHOULD throw a constraint exception.

9603 9604

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.

9605 9606

4.3.3 Extensions

9607 9608

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.

9609 9610

All of the types referenced by the schema also support xs:any for vendor or repository-specific information.

9611

4.3.4 Web Services Specific Structures

9612

This binding requires specific structures that are not part of the general CMIS schema.

9613

Please also see the example request and response documents included with the schema.

9614

4.3.4.1 cmisFaultType and cmisFault

9615

cmisFaultType and cmisFault SHOULD be used to generate SOAP faults. See 0

9616

Reporting Errors.

9617

4.3.4.2 cmisRepositoryEntryType

9618 9619

cmisRepositoryEntryType is the return structure of getRepositories. It contains the id and the name of a repository.

9620

4.3.4.3 cmisTypeContainer

9621

cmisTypeContainer is the return structure of getTypeDescendants. It holds a type hierarchy.

9622

4.3.4.4 cmisTypeDefinitionListType

9623 9624

cmisTypeDefinitionListType is the return structure of getTypeChildren. It contains a list of types, the hasMoreItems flag and the numItem element.

9625 9626

4.3.4.5 cmisObjectInFolderType, cmisObjectParentsType and cmisObjectInFolderContainerType

9627 9628 9629 9630

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 section 2.1.5.3 Paths.

9631

cmisObjectInFolderContainerType contains a folder hierarchy.

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

1 May 2010 Page 217 of 229

9632

4.3.4.6 cmisObjectListType and cmisObjectInFolderListType

9633 9634 9635

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.

9636

4.3.4.7 cmisContentStreamType

9637

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.

9638 9639

4.3.4.8 cmisACLType

9640 9641 9642

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.

9643

4.3.4.9 cmisExtensionType

9644

cmisExtensionType is a placeholder for extensions. See 4.3.3 Extensions.

9645

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

1 May 2010 Page 218 of 229

9646

5 IANA Considerations

9647

5.1 Content-Type Registration

9648

5.1.1 CMIS Query

9649

A CMIS Query Document, when serialized as XML 1.0, can be identified with the following media type:

9650 9651

MIME media type name: application

9652

MIME subtype name: cmisquery +xml

9653

Mandatory parameters: None

9654

Optional parameters:

9655 9656 9657 9658 9659 9660 9661 9662 9663

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

9664

Published specification: This specification.

9665

Applications that use this media type:

9666

No known applications currently use this media type.

9667

Additional information:

9668

Magic number(s):

9669

As specified for "application/xml" in [RFC3023], Section 3.2.

9670

File extension: .cmisquery

9671

Fragment identifiers:

9672 9673 9674 9675 9676 9677

As specified for "application/xml" in [RFC3023], Section 5. Base URI: As specified in [RFC3023], Section 6. Macintosh File Type code: TEXT Person and email address to contact for further information: OASIS CMIS TC

9678

Intended usage: COMMON

9679

Author/Change controller: IESG

9680

5.1.2 CMIS AllowableActions

9681 9682

A CMIS Allowable Actions Document, when serialized as XML 1.0, can be identified with the following media type:

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

1 May 2010 Page 219 of 229

9684

MIME media type name: application

9685

MIME subtype name: cmisallowableactions +xml

9686

Mandatory parameters: None.

9687

Optional parameters:

9688 9689 9690 9691 9692 9693 9694 9695 9696

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

9697

Published specification: This specification.

9698

Applications that use this media type:

9699

No known applications currently use this media type.

9700

Additional information:

9701

Magic number(s):

9702

As specified for "application/xml" in [RFC3023], Section 3.2.

9703

File extension: .cmisallowableactions

9704

Fragment identifiers:

9705 9706 9707

As specified for "application/xml" in [RFC3023], Section 5. Base URI: As specified in [RFC3023], Section 6.

9708

Macintosh File Type code: TEXT

9709

Person and email address to contact for further information:

9710

OASIS CMIS TC

9711

Intended usage: COMMON

9712

Author/Change controller: IESG

9713 9714

5.1.3 CMIS Tree

9715

A CMIS Tree Document, when serialized as XML 1.0, can be identified with the following media type:

9716 9717

MIME media type name: application

9718

MIME subtype name: cmistree +xml

9719

Mandatory parameters: None.

9720

Optional parameters:

9721 9722 9723 9724 9725

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

1 May 2010 Page 220 of 229

9726 9727 9728 9729

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.

9730

Published specification: This specification.

9731

Applications that use this media type:

9732

No known applications currently use this media type.

9733

Additional information:

9734

Magic number(s):

9735

As specified for "application/xml" in [RFC3023], Section 3.2.

9736

File extension: .cmistree

9737

Fragment identifiers:

9738 9739

As specified for "application/xml" in [RFC3023], Section 5. Base URI:

9740

As specified in [RFC3023], Section 6.

9741

Macintosh File Type code: TEXT

9742

Person and email address to contact for further information:

9743

OASIS CMIS TC

9744

Intended usage: COMMON

9745

Author/Change controller: IESG

9746 9747

5.1.4 CMIS Atom

9748

A CMIS Atom Document, when serialized as XML 1.0, can be identified with the following media type:

9749 9750

MIME media type name: application

9751

MIME subtype name: cmisatom +xml

9752

Mandatory parameters: None.

9753

Optional parameters:

9754 9755

"charset": This parameter has semantics identical to the charset parameter of the "application/xml" media type as specified in [RFC3023].

9756 9757

“type”: This parameter has semantics identical to the type parameter of the “application/atom+xml” as specified in [RFC4287]

9758 9759 9760 9761 9762 9763 9764

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.

9765

Published specification: This specification.

9766

Applications that use this media type:

9767 9768

No known applications currently use this media type. Additional information: cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 221 of 229

9769 9770

Magic number(s): As specified for "application/xml" in [RFC3023], Section 3.2.

9771

File extension: .cmisatom

9772

Fragment identifiers:

9773 9774

As specified for "application/xml" in [RFC3023], Section 5. Base URI:

9775

As specified in [RFC3023], Section 6.

9776

Macintosh File Type code: TEXT

9777

Person and email address to contact for further information:

9778

OASIS CMIS TC

9779

Intended usage: COMMON

9780

Author/Change controller: IESG

9781 9782

Please see section 3.1.1 on why this media type is needed above the Atom Media Type.

9783

5.1.5 CMIS ACL

9784

A CMIS ACL Document, when serialized as XML 1.0, can be identified with the following media type:

9785 9786

MIME media type name: application

9787

MIME subtype name: cmisacl +xml

9788

Mandatory parameters: None.

9789

Optional parameters:

9790 9791 9792 9793 9794 9795 9796 9797 9798

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

9799

Published specification: This specification.

9800

Applications that use this media type:

9801

No known applications currently use this media type.

9802

Additional information:

9803

Magic number(s):

9804 9805 9806 9807 9808

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:

9809

As specified in [RFC3023], Section 6.

9810

Macintosh File Type code: TEXT cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 222 of 229

9811 9812

Person and email address to contact for further information: OASIS CMIS TC

9813

Intended usage: COMMON

9814

Author/Change controller: IESG

9815

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

1 May 2010 Page 223 of 229

9816

6 Conformance

9817 9818

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level requirements defined within this specification.

9819

Specification:

9820 9821 9822 9823 9824 9825

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.

9826 9827 9828

An implementation conforms to this specification if it satisfies all of the MUST or REQUIRED level requirements defined within this specification.

9829 9830 9831

Domain Model:

9832

Normative text within this specification takes precedence over the CMIS Core XML Schema.

9833 9834 9835

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.

9836 9837

Clients:

9838 9839

Client implementations MAY implement either Restful AtomPub Binding or the Web Services Binding.

9840 9841

Repositories:

9842

Repositories MUST implement the following CMIS protocol bindings:

9843



Restful AtomPub Binding

9844



Web Services Binding

9845 9846

Rest Binding:

9847 9848 9849 9850 9851 9852

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.

9853 9854 9855 9856

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.

9857 9858

The CMIS RestAtom XML takes precedence over any examples or non-normative outlines included either in this document or as standalone examples. cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 224 of 229

9859 9860

Web Services Binding:

9861 9862 9863 9864

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.

9865 9866

The CMIS Messaging XML and CMIS WSDL takes precedence over any examples or nonnormative outlines included either in this document or as standalone examples.

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

1 May 2010 Page 225 of 229

9867

A. Acknowledgements

9868 9869

The following individuals have participated in the creation of this specification and are gratefully acknowledged:

9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919

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 Derek Chow, Genus Technologies, LLC David Choy, EMC Corporation Scott Conroy, Individual Cornelia Davis, EMC Corporation Doug Domeny, Ektron Kevin Dorr, Flatirons Solutions Corporation Jason Dubreuil, Fidelity Investments Michael Duerig, Day Software Randy Dufault, Genus Technologies, LLC Will Ezell, dotCMS Betsy Fanning, AIIM Steffen Frederiksen, Content Technologies ApS Stephan Friedl, Quark Dustin Friesenhahn, Microsoft Corporation Gary Gershon, Individual Paul Goetz, SAP AG Jens Goldhammer, fme AG Gregory Grefenstette, Exalead, Inc. Florent Guillaume, Nuxeo Ethan Gur-esh, Microsoft Corporation Alexander Haag, WeWebU Software AG Dennis Hamilton, Individual Martin Hermes, SAP AG Jens Huebel, Open Text Corporation David Izatt, Structured Software Systems Limited (3SL) Gershon Janssen, Individual Raphael Jean, Entropysoft Volker John, Saperion AG Shane Johnson, Citytech, Inc. Christophe Kijewska, Adullact Ijonas Kisselbach, Vamosa Mark Klamerus, Individual Stephan Klevenz, SAP AG Boris Kraft, Magnolia International AG Alison Macmillan, Oracle Corporation Michael Marth, Day Software Mary McRae, OASIS Ryan McVeigh, Oracle Corporation cmis-spec-v1.0 Copyright © OASIS® 2010. All Rights Reserved.

1 May 2010 Page 226 of 229

9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974

Juerg Meier, fme AG Gregory Melahn, IBM Pat Miller, Microsoft Corporation Florian Müller, Open Text Corporation Thomas Mueller, Day Software John Newton, Alfresco Software David Nuescheler, Day Software Conleth O'Connell, Vignette Corporation Marc Pallot, ESoCE-NET Rainer Pausch, WeWebU Software AG Dominique Pfister, Day Software Peeter Piegaze, Day Software David Pitfield, Oracle Corporation Thomas Pole, Harris Corp Norrie Quinn, EMC Corporation Craig Randall, Adobe Corporation Julian Reschke, Greenbytes GmbH 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 Dmitri Tcherevik, FatWire Jason Tesser, dotCMS David Torres, dotCMS 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 Müller, OpenText John Newton, Alfresco Norrie Quinn, EMC Steve Roth, Oracle Craig Randall, EMC

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

1 May 2010 Page 227 of 229

9975

B. Non-Normative Text

9976

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

1 May 2010 Page 228 of 229

9977

C. Revision History

9978 Revision

Date

Editor

Changes Made

1.0

01/11/2010

Al Brown

First specification

9979

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

1 May 2010 Page 229 of 229