SOAP Protocol Binding. - EMC

therapistarmyΛογισμικό & κατασκευή λογ/κού

14 Δεκ 2013 (πριν από 4 χρόνια και 17 μέρες)

92 εμφανίσεις






Version 0.5

Content Management
Interoperability
Services

Part II


SOAP protocol bindi ng

© EMC Corporation, IBM Corporation, Microsoft Corporation. All Rights Reserved.

8
/
29
/2008




CONTENTS


Contents

................................
................................
................................
................................
................................
............................

2

Copyri ght Noti ce

................................
................................
................................
................................
................................
..............

5

Introducti on

................................
................................
................................
................................
................................
......................

6

Status

................................
................................
................................
................................
.........

Error! Bookmark not defined.

Notati on (RFC 2119)
................................
................................
................................
................................
................................
....

6

Part I of the CMIS Speci ficati on
................................
................................
................................
................................
.................

6

Si mpl e Object Acc
ess Protocol (SOAP) Bi ndi ng

................................
................................
................................
..........................

7

Overvi ew

................................
................................
................................
................................
................................
.......................

7

Notati onal Conventi ons

................................
................................
................................
................................
.........................

7

Authenti cati on
................................
................................
................................
................................
................................
.........

7

WS
-
I

................................
................................
................................
................................
................................
...........................

7

Content Transfer

................................
................................
................................
................................
................................
.....

7

Reporti ng Errors

................................
................................
................................
................................
................................
......

8

Object Representati on Format

................................
................................
................................
................................
.................

8

Properti es

................................
................................
................................
................................
................................
.................

8

Exampl es
................................
................................
................................
................................
................................
.................
11

Reposi tory Servi ces

................................
................................
................................
................................
................................
...
18

getReposi tori es

................................
................................
................................
................................
................................
.....
18

getReposi toryInfo

................................
................................
................................
................................
................................
.
18

getTypes

................................
................................
................................
................................
................................
.................
19

getTypeDefi ni ti on

................................
................................
................................
................................
................................
.
20

Navi gati on Services

................................
................................
................................
................................
................................
...
20

getDescendants
................................
................................
................................
................................
................................
.....
20

getChi l dren
................................
................................
................................
................................
................................
.............
21

getFol derParent

................................
................................
................................
................................
................................
....
22



getObjectParents

................................
................................
................................
................................
................................
..
23

getCheckedoutDocuments
................................
................................
................................
................................
..................
23

Object Servi ces
................................
................................
................................
................................
................................
...........
24

createDocument

................................
................................
................................
................................
................................
...
24

createFol der
................................
................................
................................
................................
................................
...........
25

createRel ati onshi p
................................
................................
................................
................................
................................
25

createPoli cy
................................
................................
................................
................................
................................
............
26

getAl l owabl eActi ons
................................
................................
................................
................................
.............................
27

getProperti es

................................
................................
................................
................................
................................
.........
27

getContentStream

................................
................................
................................
................................
................................
27

updateProperti es

................................
................................
................................
................................
................................
..
28

moveObject
................................
................................
................................
................................
................................
............
29

del eteObject

................................
................................
................................
................................
................................
..........
29

del eteTree

................................
................................
................................
................................
................................
..............
30

setContentStream
................................
................................
................................
................................
................................
.
30

del e
teContentStream
................................
................................
................................
................................
...........................
31

Mul ti
-
Fili ng Servi ces

................................
................................
................................
................................
................................
..
32

addObjectToFol der

................................
................................
................................
................................
...............................
32

removeObjectFromFol der

................................
................................
................................
................................
...................
32

Discovery Servi ces

................................
................................
................................
................................
................................
.....
33

query

................................
................................
................................
................................
................................
.......................
33

Versi o
ni ng Servi ces

................................
................................
................................
................................
................................
...
33

checkOut
................................
................................
................................
................................
................................
.................
33

cancel CheckOut
................................
................................
................................
................................
................................
.....
34

checkIn

................................
................................
................................
................................
................................
....................
34

getProperti esOfLatestVersi on

................................
................................
................................
................................
............
35

getAl l Versi ons
................................
................................
................................
................................
................................
........
35



del eteAl l Versi ons

................................
................................
................................
................................
................................
..
35

Rel ati onshi p Services

................................
................................
................................
................................
................................
36

getRel ati onshi ps
................................
................................
................................
................................
................................
....
36

POLICY Servi ces

................................
................................
................................
................................
................................
..........
36

appl yPol icy

................................
................................
................................
................................
................................
.............
36

removePol icy

................................
................................
................................
................................
................................
.........
37

getAppl i edPoli ci es
................................
................................
................................
................................
................................
.
37






COPYRIGHT NOTICE

(c) 2006
-
2008 EMC Corporati on (EMC), Internati onal Busi ness Machi nes Corporati on (IBM), and Mi crosoft
Corporati on. Al l ri ghts reserved.

Upon adopti on as a standard, permissi on to copy and di splay the "Content Mana
gement Interoperabili ty Servi ces"
Speci ficati on, i n any medi um wi thout fee or royal ty is hereby granted, provi ded that you i ncl ude the fol l owi ng on
ALL copi es of the "Content Management Interoperabili ty Servi ces" Speci fi cati on, or porti ons thereof, that yo
u
make:

1. A l i nk or URL to the "Content Management Interoperabili ty Servi ces" Speci fi cati on at thi s l ocati on: <tbd>.

2. The copyri ght noti ce as shown i n the "Content Management Interoperabili ty Servi ces" Speci ficati on.

Upon adopti on as a standard, EMC Cor
porati on (EMC), Internati onal Busi ness Machi nes Corporati on (IBM), and
Mi crosoft Corporati on (coll ecti vel y, the "Authors") each agree to grant you a royal ty
-
free l icense, under
reasonabl e, non
-
di scri mi natory terms and condi ti ons to thei r respecti ve patents

to the extent that the Authors
that they deem necessary to i mpl ement the "Content Management Interoperabili ty Services" Speci fi cati on.

THE "CONTENT MANAGEMENT INTEROPERABILITY SERVICES" SPECIFICATION IS PROVIDED "AS IS," AND THE
AUTHORS MAKE NO REPRESENTA
TIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON
-
INFRINGEMENT, OR TITLE; THAT
THE CONTENTS OF THE "CONTENT MANAGEMENT INTEROPERABILITY SERVICES" SPECIFICATION ARE S
UITABLE
FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

THE AUTHORS WILL NOT BE LI ABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
DAMAGES A
RISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE "CONTENT MANAGEMENT
INTEROPERABILITY SERVICES" SPECIFICATION.

The name and trademarks of the Authors may NOT be used i n any manner, i ncl udi ng advertisi ng or publi ci ty
pertai ni ng to the "Content Ma
nagement Interoperabili ty Servi ces" Speci ficati on or i ts contents wi thout speci fic,
wri tten pri or permi ssi on. Ti tl e to copyri ght i n the "Content Management Interoperabili ty Servi ces" Speci fi cati on
wi ll at all ti mes remai n wi th the Authors.




INTRODUCTION

T
he Content Management Interoperabili ty Servi ces (CMIS) standard will defi ne a domai n model and set of
bi ndi ngs, such as Web Servi ce and REST/Atom that can be used by appli cati ons to work wi th one or more Content
Management reposi tori es/systems.

The CMIS i
nterface is desi gned to be l ayered on top of exi sti ng Content Management systems and thei r existi ng
programmati c i nterfaces. It is not i ntended to prescri be how speci fi c features shoul d be i mpl emented wi thi n those
CM systems, nor to exhausti vel y expose all

of the CM system’s capabili ti es through the CMIS i nterfaces. Rather, i t
is i ntended to defi ne a generi c/uni versal set of capabili ti es provi ded by a CM system and a set of services for
worki ng wi th those capabili ti es.

NOTATION (RFC 2119)


The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SH
OULD", "SHOULD NOT",
"RECOMMENDED", "MAY", and "OPTIONAL" i n thi s document are to be i nterpreted as descri bed i n
BCP 14
,
[
RFC2119
], as scoped to those conformance targets.

PART I OF THE CMIS S
PECIFICATION

Part I of the CMIS speci ficati on can currentl y be found at thi s URL:

https://sharepoi nt.partners.extranet.mi crosoft.com/si tes/CMIS/revi ew/Speci ficati on/


Part I of the CMIS speci ficati on i ntroduces the CMIS standard, discusses general desi gn concepts, and descri bes the
Data Model and services for CMI
S that are common to all protocol bi ndi ngs.




SIMPLE OBJECT ACCESS

PROTOCOL (SOAP) BIND
ING

OVERVIEW

Al l servi ces and operati ons defi ned i n part I of the CMIS speci fi cati on are presented i n thi s SOAP bi ndi ng. The
WSDL for these SOAP
-
based web servi ces can

be found i n
here:
https://sharepoi nt.partners.extranet.mi crosoft.com/si tes/CMIS/revi ew/Speci ficati on/

.

The WSDL for these servi ces reference two XSD document
s. One defi nes el ements for the pri mary data types of
documents, fol ders, rel ati onshi ps and poli ci es as well as coll ecti ons of these types of objects.
Secti on
3.0 defi nes
the mappi ng between all rel evant pi eces of the domai n model as descri bed i n Part I
of the CMIS speci fi cati on. The
second XSD defi nes the message formats for each of the CMIS services; the messages often refer to the data types
defi ned i n the fi rst XSD schema. The WSDL presents exactl y the abstract servi ces defi ned i n the servi ces secti
on of
Part I of the CMIS speci ficati on.

The normati ve CMIS SOAP bi ndi ng is defi ned by the WSDL and XSD as wel l as the detai ls gi ven here i n this part of
the CMIS speci ficati on except the exampl es.

Notati onal Conventi ons

The el ements i n both XSD schemas are

defi ned i n the CMIS namespace. The XML Namespace URI for CMIS is:

http://www.cmi s.org/ns/cmis1

(Note: Namespace URI to be updated for fi nal versi on.)

In each of the exampl es i n thi s secti on the CMIS namespace i s

the defaul t namespace, hence el ements are shown
wi thout a namespace prefi x.

Many of the servi ces that are retri evi ng objects or sets of objects accept a fil ter that speci fi es the object properti es
that are returned. The exampl es bel ow i ncl ude onl y a l i mi
ted set of properti es for brevi ty. In most cases many
more properti es may be i ncl uded i n the XML that i s returned. When exampl es are presented where onl y a li mi ted
set of properti es are returned the accompanyi ng text wi ll cl earl y state that.

Authenti cat
ion

A CMIS SOAP bi ndi ng
MUST

support WS
-
Securi ty

1.1 and Username Token Profi l e 1.1
.

WS
-
I

A CMIS SOAP bi ndi ng
SHALL

compl y wi th WS
-
I Basi c Profi l e
1.1
and Basi c Securi ty Profi l e

1.0
.

Content Transfer

A CMIS SOAP bi ndi ng
SHOULD

support MTOM content transfer
s.

For exampl es pl ease see secti ons 5.6 and 5.11.



Reporti ng Errors


Servi ces
SHALL

report errors
via

SOAP faul ts.

The cmi sMessageTypes.xsd defi nes a basi c faul t structure that
i ncl udes an error code and an error message and the WSDL for each servi ce defi
ne speci fi c messages that have the
basic faul t format.


OBJECT REPRESENTATIO
N FORMAT

The Domai n Model i n Part I of the CMIS speci ficati on defi nes Document, Fol der, Rel ati onshi p, and Policy object
types. Thi s secti on defi nes a mappi ng between the pi eces of

that domai n model and the el ements of the CMIS
SOAP bi ndi ng XSD.

Properties

Properti es are represented by generi c <cmi s:propertyXX> el ements, where XX i ndi cates a CMIS property type.
There i s one generi c property el ement type for each CMIS property type:



<

cmi s:propertyBool ean>



<

cmi s:propertyDateTi me>



<cmi s:propertyDeci mal >



<

cmi s:propertyHtml >



<

cmi s:propertyId>



<

cmi s:propertyInteger>



<cmi s:propertyStri ng>



<

cmi s:propertyUri >



<

cmi s:propertyXml >

Each property is represented by a <cmi s:propertyXX> el emen
t i n the fol l owi ng form:

<
cmis:propertyXX cmis:name="property_name" cmis:index=”ordinal_number”>



<cmis:value>
property_value
</cmis:value>

</cmis:propertyXX
>

The i ndex attri bute i s used to i ndicate the ordi nal posi ti on of each property val ue among the val u
es of a mul ti
-
val ued property. Speci ficall y, the i ndex attri bute val ues for the set of si bli ng el ements wi th the same name MUST
contai n a sequence of i nteger val ues from 0 (zero) to
n
-
1

where
n

i s the number of val ues that thi s mul ti
-
val ued
property has. T
he i ndex attri bute i s not needed for si ngl e
-
val ued properti es.

The property el ements for an object are nested i nsi de a <cmi s:properti es> el ement. They MAY appear i n any
order.

COMMON PROPERTIES


CMIS Property

Name

XML
Element



ObjectId

<
cmi s:propertyId cm
is:name="ObjectId"
>

Uri

<
cmi s:propertyUri cmis:name="Uri"
>

ObjectTypeId

<
cmi s:propertyId cmis:name="ObjectTypeId"
>

CreatedBy

<
cmi s:propertyStri ng cmis:name="CreatedBy"
>

Creati onDate

<
cmi s:propertyDateTi me cmi s:name="Creati onDate"
>

LastModi fi edBy

<
cmi s
:propertyStri ng cmis:name="LastModi fi edBy"
>

LastModi fi cati onDate

<
cmi s:propertyDateTi me cmi s:name="LastModi fi cati onDate"
>

ChangeToken

<
cmi s:propertyStri ng cmis:name="ChangeToken"
>


DOCUMENT PROPERTIES


CMIS Property

Name

XML
Element

Name

<
cmis:propert
yString cmis:name="Name"
>

IsImmutable

<
cmis:propertyBoolean cmis:name="IsImmutable"
>

IsLatestVersion

<
cmis:propertyBoolean cmis:name="IsLatestVersion"
>

IsMajorVersion

<
cmis:propertyBoolean cmis:name="IsMajorVersion"
>

IsLatestMajorVersion

<
cmis:property
Boolean cmis:name="IsLatestMajorVersion"
>

VersionLabel

<cmis:propertyString cmis:name="VersionLabel">

VersionSeriesId

<cmis:propertyId cmis:name="VersionSeriesId">

IsVersionSeriesCheckedOut

<
cmis:propertyBoolean cmis:name="IsVersionSeriesCheckedOut"
>

V
ersionSeriesCheckedOutBy

<
cmis:propertyString cmis:name="VersionSeriesCheckedOutBy"
>

VersionSeriesCheckedOutId

<
cmis:propertyId cmis:name="VersionSeriesCheckedOutId"
>

CheckinComment

<cmis:propertyString cmis:name="CheckinComment">

ContentStreamAllowed

<
cmis:propertyString cmis:name="
ContentStreamAllowed
">

ContentStreamLength

<
cmis:propertyInteger cmis:name="ContentStreamLength"
>



ContentStreamMi meType

<
cmi s:propertyStri ng cmis:name="ContentStreamMi meType"
>

ContentStreamFi l ename

<
cmi s:propertyStri ng cmi
s:name="ContentStreamFi l ename"
>

ContentStreamUri

<
cmi s:propertyUri cmis:name="ContentStreamUri"
>


FOLDER PROPERTIES


CMIS Property

Name

XML
Element

Name

<
cmis:propertyString cmis:name="Name"
>

ParentId

<
cmis:propertyId cmis:name= ParentId"
>

AllowedChi
ldObjectTypeIds

<cmis:propertyId cmis:name="
AllowedChildObjectTypeIds
" cmis:index="">


RELATIONSHIP PROPERT
IES


CMIS Property

Name

XML Element

SourceId

<
cmis:propertyId cmis:name="SourceId"
>

TargetId

<
cmis:propertyId cmis:name="TargetId"
>


POLICY PROP
ERTIES


CMIS Property

Name

XML Element

PolicyName

<
cmis:propertyString cmis:name="PolicyName"
>

PolicyText

<
cmis:propertyString cmis:name="PolicyText"
>




Exampl es

The exampl es i n this
Part of the speci ficati on are not normati ve. They

assume a fol der and
document hi erarchy as
foll ows:


-

Fol der X


-

Document A


-

Fol der Y


-

Document B


-

Document C

The fol l owi ng woul d be returned from a
get
Children
()

call agai nst Fol der X. It consists of a list of <object> el ements.

<cmis:
getC
hildrenResponse
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyBoolean
cmis:
name=
"
IsImmutable
"
>





<cmis:value>
false
</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis:
name=
"
IsLatestVersion
"
>





<cmis:value>true</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis:
name=
"
IsMajorVersion
"
>





<cmis:value>
true
</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis:
name=
"
IsLatestMajorVersion
"
>





<cmis:value>
true
</cmis:value>





</cmis:propertyBool
ean>




<cmis:
propertyBoolean cmis:name=
"
Is
VersionSeriesCheckedOut
">





<cmis:value>
false
</cmis:value>





</cmis:
propertyBoolean
>




<cmis:
propertyDateTime cmis:name=
"
CreationDate
">





<cmis:value>
2007
-
06
-
30T12:29:29Z
</cmis:value>





</cmis:
property
Dat
e
Time
>




<cmis:propertyDateTime
cmis:
name=
"
LastModificationDate
"
>





<cmis:value>
2007
-
06
-
30T12:29:29Z
</cmis:value>





</cmis:propertyDateTime>




<cmis:propertyI
d

cmis:
name=
"
ObjectId
"
>





<cmis:value>
DocumentAI
d</cmis:value>





</cmis:propertyI
d
>




<
cmis:propertyI
d

cmis:
name=
"
ObjectTypeId
"
>





<cmis:value>
myDocumentTypeI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyI
d

cmis:
name=
"
VersionSeriesId
"
>





<cmis:value>
DocumentASeriesI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyInteger c
mis:name=
"
ContentStreamLength
">





<cmis:value>
534
</cmis:value>





</cmis:
propertyInteger
>






<cmis:
propertyString cmis:name=
"
CreatedBy
">





<cmis:value>
Cornelia Davis
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
LastModifi
edBy
">





<cmis:value>
Cornelia Davis
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ChangeToken
"
>





<cmis:value>
asfgwihogwgqo
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name=
"
Name
">





<cmis:value>
M
y
d
ocument
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
VersionLabel
"
>





<cmis:value>
1.0
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name=
"
CheckinComment
">





<cmis:value>
First review version
</cmis:
value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
ContentStreamAllowed
">





<cmis:value>
allowed
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
ContentStreamMimeType
">





<cmis:value>
application/msword
</cmis:
value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ContentStreamFilename
"
>





<cmis:value>
myDocument.doc
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name=
"
Keyword
"
cmis:
index="0">





<cmis:value>
XML
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
Keyword
"
cmis:
index="1">





<cmis:value>
standards
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/001
</cmis:value>





</cmis:
propertyU
ri
>




<cmis:propertyU
ri

cmis:
name="
ContentStreamUri
">





<cmis:value>
http
:
//www.acme.com/001/stream
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


</cmis:
object
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyDateTime
cmis:
name=
"
CreationDate
">





<cmis:value>
2007
-
07
-
15T10:31:20Z
</
cmis:value>





</cmis:propertyDateTime>




<cmis:propertyDateTime
cmis:
name="
LastModificationDate
">





<cmis:value>
2007
-
09
-
02T12:12:34Z
</cmis:value>





</cmis:propertyDateTime>




<cmis:propertyI
d

cm
is:
name="
ObjectId
">







<cmis:value>
FolderYI
d
</cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyId cmis:name=
"
ObjectTypeId
"
>





<cmis:value>
myFolderTypeI
d</cmis:value>





</cmis:
property
I
d
>




<cmis:propertyI
d

cmis:
name=
"
ParentId
"
>





<cmis:value>
Fol
derXI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyString cmis:name=
"
CreatedBy
"
>





<cmis:value>
Al Brown
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
LastModifiedBy
"
>





<cmis:value>
Al Brown
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ChangeToken
"
>





<cmis:value>
sdfljpouqegldf
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name=
"
Name
"
>





<cmis:value>
My
f
older
</cmis:value>





</cmis:
propertyString
>




<cmis:pro
pertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/002
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


</
cmis:
object
>


<hasMoreItems>false</hasMoreItems>

</
cmis:
getChildrenResponse
>

The fol l owi ng woul d be returned from a
getDescendant
s
()

call agai nst Fol der X wi th depth of 2 (or more).
Compared to the fi rst exampl e, i t i ncl udes a <chil d> el ement for Document B and a <chil d> el ement for Document
C nested i nsi de the <object> el ement for Fol der Y (shown bel ow i n i talic). There i s no <hasM
oreItems> el ement
si nce pagi ng is not supported.

<
cmis:getDescendantsResponse
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyBoolean
cmis:
name=
"
IsImmutable
"
>





<cmis:value>
false
</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis
:
name=
"
IsLatestVersion
"
>





<cmis:value>true</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis:
name=
"
IsMajorVersion
"
>





<cmis:value>
true
</cmis:value>





</cmis:propertyBoolean>




<cmis:propertyBoolean
cmis:
name=
"
IsLatestMajorVersi
on
"
>





<cmis:value>
true
</cmis:value>





</cmis:propertyBoolean>




<cmis:
propertyBoolean cmis:name=
"
Is
VersionSeriesCheckedOut
">





<cmis:value>
false
</cmis:value>







</cmis:
propertyBoolean
>




<cmis:
propertyDateTime cmis:name=
"
CreationDate
">





<cmis:
value>
2007
-
06
-
30T12:29:29Z
</cmis:value>





</cmis:
property
Date
Time
>




<cmis:propertyDateTime
cmis:
name=
"
LastModificationDate
"
>





<cmis:value>
2007
-
06
-
30T12:29:29Z
</cmis:value>





</cmis:propertyDateTime>




<cmis:propertyI
d

cmis:
name=
"
ObjectId
"
>





<c
mis:value>
DocumentAI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyI
d

cmis:
name=
"
ObjectTypeId
"
>





<cmis:value>
myDocumentTypeI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyI
d

cmis:
name=
"
VersionSeriesId
"
>





<cmis:value>
DocumentASeriesI
d<
/cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyInteger cmis:name=
"
ContentStreamLength
">





<cmis:value>
534
</cmis:value>





</cmis:
propertyInteger
>




<cmis:
propertyString cmis:name=
"
CreatedBy
">





<cmis:value>
Cornelia Davis
</cmis:value>





</cmis
:
propertyString
>




<cmis:
propertyString cmis:name=
"
LastModifiedBy
">





<cmis:value>
Cornelia Davis
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ChangeToken
"
>





<cmis:value>
asfgwihogwgqo
</cmis:value>





</cmis:propertyStrin
g>




<cmis:
propertyString cmis:name=
"
Name
">





<cmis:value>
My
d
ocument
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
VersionLabel
"
>





<cmis:value>
1.0
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name
=
"
CheckinComment
">





<cmis:value>
First review version
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
ContentStreamAllowed
">





<cmis:value>
allowed
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
Con
tentStreamMimeType
">





<cmis:value>
application/msword
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ContentStreamFilename
"
>





<cmis:value>
myDocument.doc
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:n
ame=
"
Keyword
"
cmis:
index="0">





<cmis:value>
XML
</cmis:value>





</cmis:
propertyString
>






<cmis:
propertyString cmis:name=
"
Keyword
"
cmis:
index="1">





<cmis:value>
standards
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/001
</cmis:value>





</cmis:propertyU
ri
>




<cmis:propertyU
ri

cmis:
name="
ContentStreamUri
">





<cmis:value>
http
:
//www.acme.com/001/stream
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


</cmis:
object
>


<cmis:
ob
ject
>



<cmis:properties>




<cmis:propertyDateTime
cmis:
name="
CreationDate
">





<cmis:value>
2007
-
07
-
15T10:31:20Z
</
cmis:value>





</cmis:propertyDateTime>




<cmis:propertyDateTime
cmis:
name="
LastModificationDate
">





<cmis:value>
2007
-
09
-
02T12:12:34Z
</c
mis:value>





</cmis:propertyDateTime>




<cmis:propertyI
d

cmis:
name="
ObjectId
">





<cmis:value>
FolderYI
d
</cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyId cmis:name=
"
ObjectTypeId
"
>





<cmis:value>
myFolderTypeI
d</cmis:value>





</cmis:
property
I
d
>




<cmis:propertyI
d

cmis:
name=
"
ParentId
"
>





<cmis:value>
FolderXI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:
propertyString cmis:name=
"
CreatedBy
"
>





<cmis:value>
Al Brown
</cmis:value>





</cmis:
propertyString
>




<cmis:
propertyString cmis:name=
"
Last
ModifiedBy
"
>





<cmis:value>
Al Brown
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyString
cmis:
name=
"
ChangeToken
"
>





<cmis:value>
sdfljpouqegldf
</cmis:value>





</cmis:propertyString>




<cmis:
propertyString cmis:name=
"
Name
"
>





<cmis:value>
My
f
older
</cmis:value>





</cmis:
propertyString
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/002
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>




<cmis:child>




<cmis:properties>





<cmis:propertyBoolean cmis:na
me="IsImmutable">






<cmis:value>true</cmis:value>






</cmis:propertyBoolean>







<cmis:propertyBoolean cmis:name="IsLatestVersion">






<cmis:value>true</cmis:value>






</cmis:propertyBoolean>





<cmis:propertyBoolean cmis:name="IsMajorVersion">






<cmis:value>false</cmis:value>






</cmis:propertyBoolean>





<cmis:propertyBoolean cmis:name="IsLatestMajorVersion">






<cmis:value>false</cmis:value>






</cmis:propertyBoolean>





<cmis:propertyBoolean cmis:name="IsVersionSeriesCheckedOut">






<cmis:value>false</cmis:value>






</cmis:propertyBoolean>





<cmis:propertyDateTime cmis:name="CreationDate">






<cmis:value>2007
-
05
-
25T10:12:32Z</cmis:value>






</cmis:propertyDateTime>





<cmis:propertyDateTime cmis:name="LastModificationDate"
>






<cmis:value>2007
-
06
-
29T12:36:48Z</cmis:value>






</cmis:propertyDateTime>





<cmis:propertyId cmis:name="ObjectId">






<cmis:value>DocumentBId</cmis:value>






</cmis:propertyId>





<cmis:propertyId cmis:name="ObjectTypeId">






<cmis:value>
docTypeId</cmis:value>






</cmis:propertyId>





<cmis:propertyId cmis:name="VersionSeriesId">






<cmis:value>DocumentBSeriesId</cmis:value>






</cmis:propertyId>





<cmis:propertyInteger cmis:name="ContentStreamLength">






<cmis:value>781</cmis:v
alue>






</cmis:propertyInteger>





<cmis:propertyString cmis:name="CreatedBy">






<cmis:value>David Choy</cmis:value>






</cmis:propertyString>





<cmis:propertyString cmis:name="LastModifiedBy">






<cmis:value>David Choy</cmis:value>






</cmi
s:propertyString>





<cmis:propertyString cmis:name="ChangeToken">






<cmis:value>sdflaksrtlngg</cmis:value>






</cmis:propertyString>





<cmis:propertyString cmis:name="Name">






<cmis:value>Release Notes</cmis:value>






</cmis:propertyString>





<cmis:propertyString cmis:name="VersionLabel">






<cmis:value>Draft</cmis:value>






</cmis:propertyString>





<cmis:propertyString cmis:name="ContentStreamAllowed">






<cmis:value>allowed</cmis:value>






</cmis:propertyString>





<cmis:propert
yString cmis:name="ContentStreamMimeType">






<cmis:value>application/pdf</cmis:value>






</cmis:propertyString>





<cmis:propertyString cmis:name="ContentStreamFilename">






<cmis:value>Version4ReleaseNotes.pdf</cmis:value>






</cmis:propertyStri
ng>







<cmis:propertyUri cmis:name="Uri">






<cmis:value>
http://www.acme.com/003
</cmis:value>






</cmis:propertyUri>





<cmis:propertyUri cmis:name="ContentStreamUri">






<cmis:value>
http://www.acme.com/002/stream
</cmis:value>






</cmis:propertyU
ri>




</cmis:properties>



</cmis:child>



<cmis:child>




<cmis:properties>





<cmis:propertyId cmis:name="ObjectId">






<cmis:value>
DocumentCId
</cmis:value>






</cmis:propertyId>





<cmis:propertyId cmis:name="ObjectTypeId">






<cmis:value>anoth
erDocTypeId</cmis:value>






</cmis:propertyId>





...





<cmis:propertyUri cmis:name="Uri">






<cmis:value>
http://www.acme.com/004
</cmis:value>






</cmis:propertyUri>




</cmis:properties>



</cmis:child>



</
cmis:
object
>

</
cmis:
getDescendantsRespo
nse
>


For other exampl es bel ow, the defaul t namespace is assumed to be "cmi s".




REPOSITORY SERVICES

The Reposi toryServi ce.wsdl, cmisMessageTypes.xsd and CMIS.xsd fil es full y descri be thi s servi ce.


getReposi tories


Description

Returns a list of available
repositories for this CMIS service endpoint.

The output message for this service contains a list of repositories in the following form:

<getRepositoriesResponse>



<repository>




<repositoryID>5001</repositoryID>




<repositoryName>My Repository</reposit
oryName>




<repositoryURI>http://www.acme.com/myRepository</repositoryURI>



</repository>


<repository>



<repositoryID>5008</repositoryID>




<repositoryName>My Archive Repository</repositoryName>




<repositoryURI>http://www.acme.com/myArchive</reposit
oryURI>



</repository>

</getRepositoriesResponse>


getReposi toryInfo


Description

Gets information about a CMIS repository

This service takes a repository ID and produces a message containing a <repositoryInfo> element of the following
form:

<getReposit
oryInfoResponse>


<repositoryId>
5001
</repositoryId>


<repositoryName>
M
y Repository</repositoryName>


<repositoryRelationship>self</repositoryRelationship>


<repositoryDescription>Repository Descripton</repositoryDescription>


<vendorName>XYZ Corporation</v
endorName>


<productName>XYZ ECM Suite</productName>


<productVersion>1.1.0.2</productVersion>


<rootFolderId>01234</rootFolderId>


<capabilities>



<capabilityMultifiling>true</capabilityMultifiling>



<capabilityUnfiling>true</capabilityUnfiling>





<capa
bilityVersionSpecificFiling>false




</capab
i
lityVersionSpecificFiling>



<capabilityPWCUpdat
e
able>true</
capabilityPWCUpdat
e
able
>



<capabilityAllVersionsSearchable>true




</capabilityAllVersionsSearchable>



<capabilityPWCSearchable>false</capabilityPWCS
earchable>



<capabilityJoin>
inneronly
</capabilityJoin>



<capability
FullText
>
fulltextandstructured




</capability
FullText
>


</capabilities>


<cmisVersionsSupported>1.0</cmisVersionsSupported>


<repositorySpecificInformation>...</repositorySpecificInforma
tion>


<relatedRepository>



<repositoryID>5008</repositoryID>



<repositoryName>My Archive Repository</repositoryName>



<repositoryRelationship>archive</repositoryRelationship>


</relatedRepository>

/getRepositoryInfoResponse>


getTypes


Description

Retu
rns the list of all types in the repository.

This service produces an output message containing a <types> element which contains <type> children. If the
service is called with returnPropertyDefinitions set to false, only type attributes will be returned
(without property
definition), as follows:

<getTypesResponse>


<type>



<
t
ypeI
d
>TypeAId</
t
ypeI
d
>



<
query
Name>
TypeNameA
</
query
Name>



<
di
splayName>Type A Display

Name/
d
isplayName>



<baseType>folder</baseType>



<baseTypeQueryName>Folder</baseTypeQueryName
>



<parent
Id
>
P
arentType
Id
</parent
Id
>



<description>
D
escription</description>



<creatable>true</creatable>



<fileable>true</fileable>



<queryable>true</queryable>



<controllable>false</controllable>



<includedInSupertypeQuery>true</includedInSupertyp
eQuery>



<versionable>false</versionable>



<contentStreamAllowed>notAllowed</contentStreamAllowed>



<allowedSourceType
s
></allowedSourceType
s
>



<allowedTargetType
s
></allowedTargetType
s
>


</type>


<type>



<
t
ypeID>TypeBId</
t
ypeID>



<
query
Name>
TypeNameB
<
/
query
Name>



<
d
isplayName>Type
B

Display Name</
d
isplayName>



...




</type>

<hasMoreItems>false</hasMoreItems>

</getTypesResponse>


getTypeDefi ni ti on


Description

Gets the definition for specified type

The service produces an output message containing a <
type> element, which has the same form as a <type>
element returned by the getTypes() service call with returnPropertyDefinitions set to true.


NAVIGATION SERVICES

The Navi gati onServi ce.wsdl, cmisMessageTypes.xsd and CMIS.xsd fil es full y descri be thi s serv
i ce.

getDescendants


Description

Gets the list of objects contained at one or more levels below the specified folder. Only
the selected properties associated with each object are returned. The content stream is
not returned.

The set of properties return
ed for each object is specified in the filter that is input. Below is an example if the filter
selects the
ObjectID
,
ObjectTypeID
, and
Uri

properti es.

<
cmis:getDescendantsResponse
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyI
d

cmis:
name=
"
ObjectId
"
>





<cmis:value>
DocumentAI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyI
d

cmis:
name=
"
ObjectTypeId
"
>





<cmis:value>
myDocumentTypeI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/0
01
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


</cmis:
object
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyI
d

cmis:
name="
ObjectId
">





<cmis:value>
FolderYI
d
</cmis:value>







</cmis:propertyI
d
>




<cmis:
propertyId cmis:name=
"
ObjectTyp
eId
"
>





<cmis:value>
myFolderTypeI
d</cmis:value>





</cmis:
property
I
d
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/002
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>



<cmis:child>




<cmis:properties>





<cmis:p
ropertyId cmis:name="ObjectId">






<cmis:value>DocumentBId</cmis:value>






</cmis:propertyId>





<cmis:propertyId cmis:name="ObjectTypeId">






<cmis:value>docTypeId</cmis:value>






</cmis:propertyId>





<cmis:propertyUri cmis:name="Uri">






<cm
is:value>
http://www.acme.com/003
</cmis:value>






</cmis:propertyUri>




</cmis:properties>



</cmis:child>



<cmis:child>




<cmis:properties>





<cmis:propertyId cmis:name="ObjectId">






<cmis:value>
DocumentCId
</cmis:value>






</cmis:propertyId>





<cmis:propertyId cmis:name="ObjectTypeId">






<cmis:value>anotherDocTypeId</cmis:value>






</cmis:propertyId>





<cmis:propertyUri cmis:name="Uri">






<cmis:value>
http://www.acme.com/004
</cmis:value>






</cmis:propertyUri>




</cmis:properties>



</cmis:child>


</
cmis:
object
>

</
cmis:
getDescendantsResponse
>



getChil dren


Description

Gets the list of objects contained at one level below the specified folder. Only the
selected properties associated with each object are returned. The content strea
m is not
returned.

The set of properties returned for each object is specified in the filter that is input. Below is an example if the filter
selects the
ObjectID
,
ObjectTypeID
, and
Uri

properti es.

<cmis:
getChildrenResponse
>




<cmis:
object
>



<cmis:propert
ies>




<cmis:propertyI
d

cmis:
name=
"
ObjectId
"
>





<cmis:value>
DocumentAI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyI
d

cmis:
name=
"
ObjectTypeId
"
>





<cmis:value>
myDocumentTypeI
d</cmis:value>





</cmis:propertyI
d
>




<cmis:propertyU
ri

cmis:
name
="
Uri
">





<cmis:value>
http://www.acme.com/001
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


</cmis:
object
>


<cmis:
object
>



<cmis:properties>




<cmis:propertyI
d

cmis:
name="
ObjectId
">





<cmis:value>
FolderYI
d
</cmis:value>





</cmis:propert
yI
d
>




<cmis:
propertyId cmis:name=
"
ObjectTypeId
"
>





<cmis:value>
myFolderTypeI
d</cmis:value>





</cmis:
property
I
d
>




<cmis:propertyU
ri

cmis:
name="
Uri
">





<cmis:value>
http://www.acme.com/002
</cmis:value>





</cmis:propertyU
ri
>



</cmis:properties>


<
/
cmis:
object
>


<hasMoreItems>false</hasMoreItems>

</
cmis:
getChildrenResponse
>


getFol derParent


Description

Returns the parent folder object(s) above the specified folder.

Either only the immediate parent of the specified folder is returned or all folders

on the path to the root are
returned. The output message contains a list of one or more <object> elements. The order in which these <object>
elements are returned is repository
-
specific. Repositories SHOULD always return the
ObjectId

and
ParentId

propert
i es for each fol der to all ow constructi on of the path. The format of each <object> el ement i s the same as
that i n the output message for the getChi l dren() servi ce, i ncl udi ng fil ter
-
sel ected properti es.

In the exampl e bel ow, Fol der X i s the root fol der. Th
e
ParentId

property of the root fol der contai ns the root
fol der’s own object ID.

<getFolderParentResponse>


<object>



<properties>




<
propertyId name="ObjectId"
>
<value>
FolderYI
d</value>
</
property
I
d
>






<
propertyId name="ParentId"
>
<value>
FolderXI
d</value>
</
propertyId
>



</properties>


</object>


<object>



<properties>




<
propertyId name="ObjectId"
>
<value>
FolderXI
d</value>
</
property
I
d
>




<
propertyId name="ParentId"
>
<value>
Folder
X
I
d</value>
</
propertyId
>



</properties>


</object>

</getFolderParentResponse
>


getObjectParents


Description

Returns the parent folders for the specified
non
-
folder fileable object.

Only the immediate parent(s) of the specified object are returned. The output message format is the same as that
of the getFolderParent() service, c
ontaining a list of <object> elements. The order in which these <object>
elements are returned is repository
-
specific.

<getObjectParentsResponse>



<object>




<properties>





<
propertyId name="ObjectId"
>
<value>
Folder
1
I
d</value>
</
property
I
d
>





<
propert
yString name="Name"
>
<value>
Folder

1</value>






</
propertyString
>




</properties>



</object>



<object>




<properties>





<
propertyId name="ObjectId"
>
<value>
Folder
2
I
d</value>
</
property
I
d
>





<
propertyString name="Name"
>
<value>
Folder
2</value>






</
propertyString
>




</properties>



</object>



<object>




<properties>





<
propertyId name="ObjectId"
>
<value>
Folder
3
I
d<value>
</
property
I
d
>





<
propertyString name="Name"
>
<value>
Folder
3</value>






</
propertyString
>




</properties>



</object>

</getOb
jectParentsResponse>


getCheckedoutDocuments




Description

Gets the list of documents that are checked out that the user has access to. Most likely
this will be the set of documents checked out by the user.

The output message format is the same as that f
or the getChildren() service, consisting of a list of <object>
elements followed by a <hasMoreItems> element.

<getCheckedoutDocsResponse>


<object>



<properties>




<
propertyId name="ObjectId"
>
<value>
DocumentAI
d</value>
</
property
I
d
>




<
propertyId name="O
bjectTypeId"
>
<value>
docTypeI
d</value>






</
property
I
d
>



</properties>


</object>


<object>



<properties>




<
propertyId name="ObjectId"
>
<value>
DocumentBI
d</value>
</
property
I
d
>




<
propertyId name="ObjectTypeId"
>
<value>
docTypeI
d</value>






</
property
I
d
>



</properties>


</object>


<hasMoreItems>true</hasMoreItems>

</getCheckedoutDocsResponse>



OBJECT SERVICES

T
he ObjectServi ce.wsdl, cmisMessageTypes.xsd and
CMIS
.xsd fil es full y descri be this service.

createDocument


Description

Creates
a

document of t
he specified type

The input message for this service has the following form. If the set of properties includes an
O
bjectTypeId

then
the val ue MUST match the val ue of the typeId el ement of the message. The reposi tory MAY enforce constrai nts on
the object
properti es or the content and i f any of those constrai nts are vi ol ated the object wi l l not be created and
the servi ce wi ll return an error. If present, some opti onal i nput properti es such as
ObjectId
,
Uri
,
ContentStreamLength
,
ContentStreamUri

and
Creatio
nDate

MAY be i gnored by the reposi tory. The content
stream, i f i ncl uded i n the createDocument() request, MUST be transferred via MTOM. For an exampl e of MTOM
based content transfers pl ease see
setContentStream
()

servi ce.

<createDocument>


<repositoryId>T
ravelRepositoryId</repositoryId>


<typeId>
E
xpenseReport
TypeId
</typeId>


<properties>





<propertyDateTime name="TravelStartDate">




<value>2008
-
03
-
02T08:00:00Z</value>



</propertyDateTime>



<propertyDateTime name="TravelEndDate">




<value>2008
-
03
-
05T17:
00:00Z</value>



</propertyDateTime>



<propertyId name="ObjectId">




<value>probably ignored</value>



</propertyId>



<propertyId name="ObjectTypeId">




<value>ExpenseReportTypeID</value>



</propertyId>


</properties>


<folderId>parentFolderId</folder
Id>

<versioningState>checked
o
ut</versioningState>

</createDocument>


createFolder


Description

Creates
a

folder of the specified type

The input message for this service has the following form. If the set of properties includes an
ObjectTypeId

then
the va
l ue MUST match the val ue of the
typeId

el ement of the message. The reposi tory MAY enforce constrai nts on
the object properti es and i f any of those constrai nts are vi olated the object wi ll not be created and the servi ce will
return an error. Some i nput pr
operti es such as
ObjectId
,
Uri

and
CreationDate

MAY be i gnored by the reposi tory.

<createFolder>


<repositoryId>MyRepositoryId</repositoryId>


<typeId>myFolderType
Id
</typeId>


<propert
ies
>



<
propertyId name="ObjectId"
>





<value>
probably ignored
</value>




</
property
I
d
>



<
propertyId name="ObjectTypeId"
>





<value>
myFolderTypeI
d</value>




</
property
I
d
>



<propertyString name="Name">





<value>myFolderName</value>




</propertyString>



<
propertyString name="Project"
>





<value>my project name</value>




</
propertyString
>


</propert
ies
>


<folderId>parentFolderId</folderId>

</createFolder>


createRel ati onshi p




Description

Creates
a

relationship of the specified type

The input message for this service has the following form. If the set of properties inc
ludes an
ObjectTypeId
,
SourceId

or
TargetId

then the val ues MUST match the val ues of the
typeId
,
sourceObjectId

and
targetObjectId

el ements of the message, respecti vel y. The reposi tory MAY enforce constrai nts on the object properti es and i f any
of those c
onstrai nts are vi olated the object wi ll not be created and the servi ce wi ll return an error. Some i nput
properti es such as
ObjectId
,
Uri

and
CreationDate

MAY be i gnored by the reposi tory.

<createRelationship>


<repositoryId>MyRepositoryId</repositoryId>


<typeId>myRelationshipTypeId</typeId>


<properties>



<propertyId name="ObjectId">





<value>probably ignored</value>




</propertyId>



<propertyId name="ObjectTypeId">





<value>myRelationshipTypeId</value>




</propertyId>



<propertyId name="SourceId
">





<value>objectIdA</value>




</propertyId>



<propertyId name="TargetId">





<value>objectIdB</value>




</propertyId>


</properties>


<sourceObjectId>objectIdA</sourceObjectId>


<targetObjectId>objectIdB</targetObjectId>

</createRelationship>


crea
tePoli cy


Description

Creates
a

policy

of the specified type

The input message for this service has the following form. If the set of properties includes an
ObjectTypeId
, then
the val ue MUST match the val ue of the
typeId

el ements of the message. The repo
si tory MAY enforce constrai nts
on the object properti es and i f any of those constrai nts are vi ol ated the object wi l l not be created and the servi ce
wi ll return an error. Some i nput properti es such as
ObjectId
,
Uri

and
CreationDate

MAY be i gnored by the
re
posi tory.

<createPolicy>


<repositoryId>MyRepositoryId</repositoryId>


<typeId>myPolicyTypeId</typeId>


<properties>



<propertyId name="ObjectId">





<value>probably ignored</value>




</propertyId>





<propertyId name="ObjectTypeId">





<value>myPolicyT
ypeId</value>




</propertyId>



<propertyString name="PolicyName">





<value>My Default ACL</value>




</propertyString>



<propertyString name="PolicyText">





<value>...</value>




</propertyString>


</properties>


<folderId>parentFolderId</folderId>

</createPolicy>


getAll owableActi ons


Description

Returns the list of allowable actions for a
n

object based on the current user’s context.

The servi ce produces an output message contai ni ng a <a汬owabl eActi ons> el ement wi th zero or more acti on
permi ssi on s
etti ngs.

<getAllowableActionsResponse>

<allowableActions>



<canGetProperties>true</canGetProperties>



<canViewContent>true</canViewContent>

</allowableActions>

</getAllowableActionsResponse>


getProperties


Description

Returns the properties of an objec
t


The output message contains a single <object> element, which has the same format as that in the output message
for the getChildren() service.


getContentStream


Description

Returns the content stream for the document



The servi ce produces an HTTP respo
nse that is mul ti
-
part, the fi rst part contai ni ng the SOAP envel ope contai ni ng
the <getContentStreamResponse> el ement whi ch contai ns an <xop:Incl ude> el ement wi th a val ue that is the ID of
the associated second part to the response. The second part wi ll c
ontai n the bi nary stream. The HTTP response
wi ll have the fol l owi ng form:

200 OK

Content
-
Type: Multipart/Related; type="application/xop+xml"; boundary="
----
=_Part_0_14615608.1167536350647"; start
-
info="text/xml"

Date: 23 Aug 2006 23:54:12 GMT

Connection:
Close


------
=_Part_0_14615608.1167536350647

Content
-
Type: application/xop+xml; type="text/xml"; charset=utf
-
8


<?xml version="1.0" ?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"


xmlns:xsd="http://www.w3.org/2001/XMLSchema"


xmlns:ns1=
http://catalog.mtom.company.com/book"


xmlns:xop=”
http://www.w3.org/2004/08/xop/include
">


<soapenv:Body>



<getContentStreamResponse>




<stream>





<xop:Include>






xmlns:xop=
http://www.w3.org/2004/08/xop/include






href="cid:1d0353b6
-
0ec7
-
4264
-
b4f4
-
16c1e6a0812c@www.acme.com">





</xop:Include>




</stream>



</getContentStreamResponse>


</soapenv:Body>

</soapenv:Envelope>

-----
-
=_Part_0_14615608.1167536350647

Content
-
Type: application/octet
-
stream

Content
-
ID: <1d0353b6
-
0ec7
-
4264
-
b4f4
-
16c1e6a0812c@www.acme.com>

Content
-
transfer
-
encoding: binary


......(binary stream omitted)

------
=_Part_0_14615608.1167536350647


updateProperti es


Description

Updates properties of the specified object

The message input to the service includes a <properties> element containing a set of properties that are to be set
for the specified item.

<updateProperties>

<repositoryId>MyRepositoryId</repository
Id>

<objectId>2468</objectId>

<changeToken>
gsfhdhdhdhfg
</changeToken>



<properties>



<propertyDateTime name="TravelEndDate">





<value>2008
-
03
-
06T19:00:00Z</value>




</propertyDateTime>



<propertyString name="Name">





<value>New Object Name</value>




</propertyString>


</properties>

</updateProperties>

The output message for thi s servi ce contai ns one el ement, <object
Id>
, the Id correspondi ng to the updated
Document (whi ch MAY be the same ID provi ded i n the i nput message).

<updatePropertiesResponse>


<
objectId>
I
d</objectId>

</updatePropertiesResponse>


moveObj ect


Description

Moves specified
fileable object from a source folder

to
a target folder

If the repository does not support multi
-
filing then the input message takes the following form:

<moveObjec
t>


<repositoryId>MyRepositoryId</repositoryId>


<objectId>DocumentAId</objectId>


<targetFolderId>newFolderId</targetFolderId>

</moveObject>

If the reposi tory does support mul ti
-
fili ng then the i nput message may take the fol l owi ng form:

<moveObject>


<rep
ositoryId>MyRepositoryId</repositoryId>


<objectId>DocumentAId</objectId>


<targetFolderId>newFolderId</targetFolderId>


<source
FolderId>
oldFolderId</source
FolderId>

</moveObject>

del eteObject


Description

Deletes the specified object

The input message ta
kes the following form:

<deleteObject>


<repositoryId>MyRepositoryId</repositoryId>


<objectId>ToBeDeletedObjectId</objectId>



</deleteObject>


del eteTree


Description

Deletes specified folder and the entire sub
-
tree

The input message contains a folder Id
identifying the sub
-
tree to delete.

<deleteTree>


<repositoryId>MyRepositoryId</repositoryId>


<folderId>FolderId</folderId>


<unfileNonfolderObjects>unfile</unfileNonfolderObjects>


<continueOnFailure>true</continueOnFailure>

</deleteTree>

The output mess
age i ncl udes a <fai l edToDel ete> el ement. In the event that the servi ce fails to del ete the enti re
tree thi s el ement wi ll contai n a set of object Ids i n the fol l owi ng form.

<deleteTreeResponse>


<failedToDelete>



<objectId>objectAId</objectId>



<objectI
d>objectBId</objectId>


</failedToDelete>

</deleteTreeResponse>

If all objects were del eted then the <fai l edToDel ete> el ement wi ll be empty.

<deleteTreeResponse>


<failedToDelete/>

</deleteTreeResponse>


setContentStream


Description

Sets (creates or repla
ces) the content stream for the specified document object.

The HTTP request is multi
-
part, the first part containing the SOAP envelope containing the <setContentStream>
element which contains two parameters as well as an <xop:Include> element with a value

that is the ID of the
associated second part to the response. The second part will contain the binary stream. The HTTP request will
have the following form:

POST /CMIS/SOAP HTTP/1.1

Content
-
Length: 8345

SOAPAction: ""



Content
-
Type: Multipart/Related; ty
pe="application/xop+xml"; boundary="
----
=_Part_0_14615608.1167536350647"; start
-
info="text/xml"

Accept: text/xml, application/xop+xml, text/html, image/gif, image/jpeg, *;
q=.2, */*; q=.2

User
-
Agent: Java/1.5.0_09

Host: localhost:8989

Connection: keep
-
aliv
e


------
=_Part_0_14615608.1167536350647

Content
-
Type: application/xop+xml; type="text/xml"; charset=utf
-
8


<?xml version="1.0" ?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"


xmlns:xsd="http://www.w3.org/2001/XMLSchema"


xm
lns:ns1="http://catalog.mtom.company.com/book"


xmlns:xop=”http://www.w3.org/2004/08/xop/include">


<soapenv:Body>



<setContentStream>




<repositoryId>MyRepositoryID</repositoryId>




<documentId>documentAId</documentId>




<overwriteFlag>true</overwrite
Flag>




<contentStream>





<length>234567</length>





<mimeType>application/msword</mimeType>





<filename>myExpenseReport.doc</filename>





<stream>






<xop:Include>



xmlns:xop=
http://www.w3.org/2
004/08/xop/include



href="cid:1d0353b6
-
0ec7
-
4264
-
b4f4
-
16c1e6a0812c@www.acme.com">






</xop:Include>





</stream>




</contentStream>



</setContentStream>


</soapenv:Body>

</soapenv:Envelope>

------
=_Part_0_14615608.1167536350647

Content
-
Type: applica
tion/octet
-
stream

Content
-
ID: <1d0353b6
-
0ec7
-
4264
-
b4f4
-
16c1e6a0812c@www.acme.com>

Content
-
transfer
-
encoding: binary


......(binary stream omitted)

------
=_Part_0_14615608.1167536350647

The output message for thi s servi ce contai ns one el ements, <d
ocumentId>
, the Id correspondi ng to the updated
Document (whi ch MAY be the same ID provi ded i n the i nput message).

<setContentStreamResponse>



<documentId>
ID
</documentId>

</setContentStreamResponse>


del eteContentStream




Description

Deletes the content stream of th
e specified document. This does not delete the
document object or its properties.

This does not change the ID of the document.

The input message for this service is as below. The output message will be empty.

<deleteContentStream>


<repositoryId>MyRepo
sitoryId</repositoryId>


<documentId>
documentAId
</documentId>

</deleteContentStream>



MULTI
-
FILING SERVICES

The Mul ti Fili ngServi ce.wsdl, cmi sMessageTypes.xsd and CMIS.xsd fil es full y descri be this service.

addObj ectToFolder


Description

Adds an existing
,

fileable

object to a folder. This may fail based on repository rules such as
multi
-
filing not being supported, documents only being allowed
to

be filed once in any
folder, etc.

The input message for this service is as below. The output message will be e
mpty

<addObjectToFolder>


<repositoryId>MyRepositoryId</repositoryId>


<objectId>documentAId</objectId>


<folderId>folderXId</folderId>

</addObjectToFolder>


removeObjectFromFol der


Description

Removes
a child object

from a folder. This does not delete th
e
object

and does not
change
its

ID.

The input message for this service contains at least an <objectId> element and optionally a <folderId> element.
The output message will be empty.

<removeObjectFromFolder>




<repositoryId>MyRepositoryId</repositoryId>


<objectId>ObjectId</objectId>


<folderId>Folder
Id
</folderId>

</remove
Object
FromFolder>



DISCOVERY SERVICES

The Di scoveryServi ce.wsdl, cmi sMessageTypes.xsd and CMIS.xsd fil es full y descri be thi s service.

query


Description

Queries the repository for
querya
ble objects

based on properties
and/
or
using
full
-
text
search
. Query returns
objects

that matches the
qualification
.
C
ontent stream
s

are

not
returned as part of query.

This service accepts an input message containing a query statement and produces an out
put message containing a
list of <object> elements followed by a <hasMoreItems> element, which is the same format as that for the
getChildren() service. The result set may contain objects of any queryable type.

The result set is always a flat list of <obj
ect> elements. The set of properties returned for each object is specified
in the SELECT clause of the Statement that is input.


VERSIONING SERVICES

The VersioningService.wsdl, cmisMessageTypes.xsd and CMIS.xsd files fully describe this service.

checkOut


Description

Create a private working copy of the
document
, copies the metadata and optionally
content. It is up to the repository to determine if updates to the current version (not PWC)
and prior versions are allowed if
the document is
checked
-
out.

The
input message for this service is as below.

<checkOut>


<repositoryId>MyRepositoryI
d
</repositoryId>


<documentId>DocumentAI
d
</documentId>

</checkOut>



The output message for thi s servi ce contai ns the document ID of the pri vate worki ng copy, and i ndi cates wh
ether
content
-
stream i s copi ed to the PWC.

<checkOutResponse>


<documentId>
PrivateWorkingCopyAI
d</documentId>


<contentCopied>true</contentCopied>

</checkOutResponse>


cancel CheckOut


Description

Deletes

the private working copy of the
checked
-
out
document

object, allowing other
documents in the version series to be checked out again.

The input message for this service is as below. The output message will be empty.

<cancelCheckOut>


<repositoryId>MyRepositoryId</repositoryId>


<documentId>
PrivateWorkingCo
pyAI
d</documentId>

</cancelCheckOut>


checkIn


Description

Makes the private working copy the current version of the content.

The input message for this service has the following form. The repository MAY enforce constraints on the object
properties or
the content and if any of those constraints are violated the object will not be checked in and the
service will return an error. Some input properties, if provided, such as
ObjectId
,
Uri

and
CreationDate

MAY be
i gnored by the reposi tory. The exampl e show
n here does not i ncl ude a content stream. For an exampl e how to
i ncl ude the content stream as an i nput, see the <setContentStream> method descri pti on.

<checkIn>


<repositoryId>MyRepositoryI
d
</repositoryId>


<documentId>documentAId</documentId>


<major>tru
e</major>


<properties>



<propertyDateTime name="TravelEndDate">





<value>2008
-
03
-
06T17:00:00Z</value>




</propertyDateTime>



<propertyId name="ObjectId">





<value>probably ignored</value>




</propertyId>



<propertyId name="ObjectTypeId">





<val
ue>ExpenseReportTypeId</value>




</propertyId>




</properties>


<checkinComment>Draft</checkinComment>

</checkIn>

The output message contai ns a si ngl e <documentId> el ement.

<checkInResponse>


<documentId>document
B
Id</documentId>

</checkInResponse>


getProp
ertiesOfLatestVersi on


Description

Returns the properties of
the latest version, or the latest major version, of the specified
version series

The input message for this service is as below.

<getPropertiesOfLatestVersion>


<repositoryId>MyRepositoryId</rep
ositoryId>


<versionSeriesId>VersionSeriesAI
d
</
versionSeriesId
>


<majorVersion>true</majorVersion>



<filter>...</filter>

</getPropertiesOfLatestVersion>

The output message i s the same as that for the getProperti es() service, contai ni ng a si ngl e <object> e
l ement.


getAll Versi ons


Description

Returns the list of all members of the version series for the specified document, sorted by
CREATION_DATE descending.

The format of the output message for this service is the same as that for getDescendants() service,
containing a list
of <object> elements. The order in which these <object> elements are returned is repository
-
specific.


del eteAllVersi ons


Description

Deletes all documents in the
specified
version series
.

The input message for this service is as below.

The output message will be empty.



<deleteAllVersions>


<repositoryId>MyRepositoryId</repositoryId>


<versionSeriesId>VersionSeriesId</versionSeriesId>

</deleteAllVersions>



RELATIONSHIP SERVICE
S

The Rel ati onshi pServi ce.wsdl, cmisMessageTypes.xsd and CMI
S.xsd fil es full y descri be thi s servi ce.

getRel ati onshi ps


Description

Returns a list of relationships associated with the object.

The input message for this service has the following form.

<getRelationships>


<repositoryId>MyRepositoryId</repositoryId>


<objectId>objectAId</objectId>


<direction>source</direction>


<typeId>relationshipTypeId</typeId>


<includeSubRelationshipTypes>true</includeSubRelationshipTypes>


<filter>ObjectId, Uri, ObjectTypeId, ...</filter>

</getRelationships>

The format of the out
put message for this servi ce is the same as that for the getChi l dren() servi ce, contai ni ng a list
of <object> el ements foll owed by a <hasMoreItems> el ement. The order i n whi ch the <object> el ements are
returned i s reposi tory
-
speci fi c. The set of properti
es returned for each relati onshi p object is speci fi ed i n the fil ter
that i s i nput and the reposi tory MAY return more properti es than those requested.


POLICY SERVICES

The Pol i cyServi ce.wsdl, cmisMessageTypes.xsd and CMIS.xsd fil es full y descri be this servi
ce.

applyPol i cy


Description

Applies a policy to a controllable object.

The input message for this service is as below. The output message will be empty

<applyPolicy>


<repositoryId>MyRepositoryId</repositoryId>




<policyId>PolicyXId</policyId>


<objectId
>ObjectAId</objectId>

</applyPolicy>


removePol i cy


Description

Removes
a previously applied policy from an object
. Th
e policy object is not deleted, and
may still be applied to other objects.

The input message for this service is as below. The output m
essage will be empty.

<removePolicy>


<repositoryId>MyRepositoryId</repositoryId>


<
policy
Id>
PolicyXId
</
policy
Id>


<objectId>ObjectAId</objectId>

</remove
Policy
>


getAppl iedPol i ci es


Description

Returns
the

list of
policy objects currently applied to
the
s
pecified
object.

The input message for this service is as below.

<getAppliedPolicies>


<repositoryId>MyRepositoryId</repositoryId>


<objectId>ObjectAId</objectId>


<filter>ObjectId,ObjectTypeId,PolicyName</filter>

</getAppliedPolicies>

The format of the o
utput message for this servi ce is the same as that for the getDescendants() servi ce, consisti ng
of a list of <object> el ements. The order i n whi ch these <object> el ements are returned i s reposi tory
-
speci fi c. The
set of properti es returned for each pol icy

object i s speci fi ed i n the fil ter that i s i nput and the reposi tory MAY return
more properti es than those requested.