blob: aa427b1ac08ce42ecffed6348e4fc7e62035e41a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the
License.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/ns/cmis/core/200908/"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.1"
xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" version="1.0">
<!-- enums -->
<xs:simpleType name="enumDecimalPrecision">
<xs:restriction base="xs:integer">
<xs:enumeration value="32" />
<xs:enumeration value="64" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumContentStreamAllowed">
<xs:restriction base="xs:string">
<xs:enumeration value="notallowed" />
<xs:enumeration value="allowed" />
<xs:enumeration value="required" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCardinality">
<xs:restriction base="xs:string">
<xs:enumeration value="single" />
<xs:enumeration value="multi" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumUpdatability">
<xs:restriction base="xs:string">
<xs:enumeration value="readonly" />
<xs:enumeration value="readwrite" />
<xs:enumeration value="whencheckedout" />
<xs:enumeration value="oncreate" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumDateTimeResolution">
<xs:restriction base="xs:string">
<xs:enumeration value="year" />
<xs:enumeration value="date" />
<xs:enumeration value="time" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumPropertyType">
<xs:restriction base="xs:string">
<xs:enumeration value="boolean" />
<xs:enumeration value="id" />
<xs:enumeration value="integer" />
<xs:enumeration value="datetime" />
<xs:enumeration value="decimal" />
<xs:enumeration value="html" />
<xs:enumeration value="string" />
<xs:enumeration value="uri" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumBaseObjectTypeIds">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:document" />
<xs:enumeration value="cmis:folder" />
<xs:enumeration value="cmis:relationship" />
<xs:enumeration value="cmis:policy" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCapabilityQuery">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="metadataonly" />
<xs:enumeration value="fulltextonly" />
<xs:enumeration value="bothseparate" />
<xs:enumeration value="bothcombined" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCapabilityJoin">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="inneronly" />
<xs:enumeration value="innerandouter" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCapabilityContentStreamUpdates">
<xs:restriction base="xs:string">
<xs:enumeration value="anytime" />
<xs:enumeration value="pwconly" />
<xs:enumeration value="none" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumVersioningState">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="checkedout" />
<xs:enumeration value="minor" />
<xs:enumeration value="major" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumUnfileObject">
<xs:restriction base="xs:string">
<xs:enumeration value="unfile" />
<xs:enumeration value="deletesinglefiled" />
<xs:enumeration value="delete" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumRelationshipDirection">
<xs:restriction base="xs:string">
<xs:enumeration value="source" />
<xs:enumeration value="target" />
<xs:enumeration value="either" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumIncludeRelationships">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="source" />
<xs:enumeration value="target" />
<xs:enumeration value="both" />
</xs:restriction>
</xs:simpleType>
<!-- properties in CMIS -->
<xs:simpleType name="enumPropertiesBase">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:name" />
<xs:enumeration value="cmis:objectId" />
<xs:enumeration value="cmis:objectTypeId" />
<xs:enumeration value="cmis:baseTypeId" />
<xs:enumeration value="cmis:createdBy" />
<xs:enumeration value="cmis:creationDate" />
<xs:enumeration value="cmis:lastModifiedBy" />
<xs:enumeration value="cmis:lastModificationDate" />
<xs:enumeration value="cmis:changeToken" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumPropertiesDocument">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:isImmutable" />
<xs:enumeration value="cmis:isLatestVersion" />
<xs:enumeration value="cmis:isMajorVersion" />
<xs:enumeration value="cmis:isLatestMajorVersion" />
<xs:enumeration value="cmis:versionLabel" />
<xs:enumeration value="cmis:versionSeriesId" />
<xs:enumeration value="cmis:isVersionSeriesCheckedOut" />
<xs:enumeration value="cmis:versionSeriesCheckedOutBy" />
<xs:enumeration value="cmis:versionSeriesCheckedOutId" />
<xs:enumeration value="cmis:checkinComment" />
<xs:enumeration value="cmis:contentStreamLength" />
<xs:enumeration value="cmis:contentStreamMimeType" />
<xs:enumeration value="cmis:contentStreamFileName" />
<xs:enumeration value="cmis:contentStreamId" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumPropertiesFolder">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:parentId" />
<xs:enumeration value="cmis:allowedChildObjectTypeIds" />
<xs:enumeration value="cmis:path" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumPropertiesRelationship">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:sourceId" />
<xs:enumeration value="cmis:targetId" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumPropertiesPolicy">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:policyText" />
</xs:restriction>
</xs:simpleType>
<xs:attributeGroup name="cmisUndefinedAttribute">
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:attributeGroup>
<!-- main cmis object -->
<xs:complexType name="cmisObjectType">
<xs:sequence>
<xs:element name="properties" type="cmis:cmisPropertiesType"
minOccurs="0" maxOccurs="1" />
<xs:element name="allowableActions" type="cmis:cmisAllowableActionsType"
minOccurs="0" maxOccurs="1" />
<xs:element name="relationship" type="cmis:cmisObjectType"
minOccurs="0" maxOccurs="unbounded" />
<!-- if change log -->
<xs:element name="changeEventInfo" type="cmis:cmisChangeEventType"
minOccurs="0" maxOccurs="1" />
<!-- ACL -->
<xs:element name="acl" type="cmis:cmisAccessControlListType"
minOccurs="0" maxOccurs="1" />
<xs:element name="exactACL" type="xs:boolean" minOccurs="0"
maxOccurs="1" />
<!-- Applied Policy IDs -->
<xs:element name="policyIds" type="cmis:cmisListOfIdsType"
minOccurs="0" maxOccurs="1" />
<!-- Rendition -->
<xs:element name="rendition" type="cmis:cmisRenditionType"
minOccurs="0" maxOccurs="unbounded" />
<!-- extensions -->
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"
namespace="##other" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- property bag -->
<xs:attribute name="key" type="xs:string" />
<xs:attribute name="index" type="xs:integer" />
<xs:complexType name="cmisPropertiesType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:appinfo>
<jaxb:property name="property" />
</xs:appinfo>
</xs:annotation>
<xs:element name="propertyBoolean" type="cmis:cmisPropertyBoolean"
nillable="true" />
<xs:element name="propertyId" type="cmis:cmisPropertyId"
nillable="true" />
<xs:element name="propertyInteger" type="cmis:cmisPropertyInteger"
nillable="true" />
<xs:element name="propertyDateTime" type="cmis:cmisPropertyDateTime"
nillable="true" />
<xs:element name="propertyDecimal" type="cmis:cmisPropertyDecimal"
nillable="true" />
<xs:element name="propertyHtml" type="cmis:cmisPropertyHtml"
nillable="true" />
<xs:element name="propertyString" type="cmis:cmisPropertyString"
nillable="true" />
<xs:element name="propertyUri" type="cmis:cmisPropertyUri"
nillable="true" />
</xs:choice>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- start the prop definitions -->
<xs:complexType name="cmisProperty">
<xs:attribute name="propertyDefinitionId" use="optional">
<xs:annotation>
<xs:documentation>
This is the property definition id for this
property instance. This is
not required to be set when used as a
default value. This is
required to be set when used for query result
set or returning
properties on an object.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="localName" use="optional">
<xs:annotation>
<xs:documentation>
This is the localname as defined by the property
definition
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="displayName" use="optional">
<xs:annotation>
<xs:documentation>
This is the displayname as defined by the property
definition
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="queryName" use="optional">
<xs:annotation>
<xs:documentation>
This is the queryName. This must be specified if
this is the result of a query. If aliases are used, the alias is to
be specified here instead of the queryName.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<xs:complexType name="cmisPropertyBoolean">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:boolean" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyId">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyInteger">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:integer" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyDateTime">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:dateTime" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyDecimal">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:decimal" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyHtml">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyString">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyUri">
<xs:complexContent>
<xs:extension base="cmis:cmisProperty">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:anyURI" />
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- cmis choice -->
<xs:complexType name="cmisChoice">
<xs:attribute name="displayName" use="required" />
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<xs:complexType name="cmisChoiceBoolean">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:boolean" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceBoolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceId">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceId" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceInteger">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:integer" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceInteger" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceDateTime">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:dateTime" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceDateTime" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceDecimal">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:decimal" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceDecimal" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceHtml">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceHtml" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceString">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceString" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisChoiceUri">
<xs:complexContent>
<xs:extension base="cmis:cmisChoice">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="value"
type="xs:anyURI" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceUri" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- allowable actions -->
<xs:complexType name="cmisAllowableActionsType">
<xs:sequence>
<xs:element name="canDeleteObject" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canUpdateProperties" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetFolderTree" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetProperties" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetObjectRelationships" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetObjectParents" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetFolderParent" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetDescendants" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canMoveObject" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canDeleteContentStream" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCheckOut" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCancelCheckOut" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCheckIn" type="xs:boolean" minOccurs="0"
maxOccurs="1" />
<xs:element name="canSetContentStream" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetAllVersions" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canAddObjectToFolder" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canRemoveObjectFromFolder" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetContentStream" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canApplyPolicy" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetAppliedPolicies" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canRemovePolicy" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canGetChildren" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCreateDocument" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCreateFolder" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canCreateRelationship" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="canDeleteTree" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<!-- renditions -->
<xs:element name="canGetRenditions" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<!-- ACL -->
<xs:element name="canGetACL" type="xs:boolean" minOccurs="0"
maxOccurs="1" />
<xs:element name="canApplyACL" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<xs:complexType name="cmisListOfIdsType">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="1"
maxOccurs="unbounded" />
<!-- extension -->
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- Property Attributes -->
<xs:complexType name="cmisPropertyDefinitionType">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="localName" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="localNamespace" type="xs:anyURI"
minOccurs="0" maxOccurs="1" />
<xs:element name="displayName" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="queryName" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="description" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="propertyType" type="cmis:enumPropertyType"
minOccurs="1" maxOccurs="1" />
<xs:element name="cardinality" type="cmis:enumCardinality"
minOccurs="1" maxOccurs="1" />
<xs:element name="updatability" type="cmis:enumUpdatability"
minOccurs="1" maxOccurs="1" />
<!-- flags -->
<xs:element name="inherited" type="xs:boolean" minOccurs="0"
maxOccurs="1" />
<xs:element name="required" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="queryable" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="orderable" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="openChoice" type="xs:boolean" minOccurs="0"
maxOccurs="1" />
<!-- extension -->
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- type specific definitions -->
<xs:complexType name="cmisPropertyBooleanDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyBoolean" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceBoolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyIdDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyId" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceId" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyIntegerDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyInteger" />
<xs:element name="maxValue" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:element name="minValue" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceInteger" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyDateTimeDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyDateTime" />
<xs:element minOccurs="0" maxOccurs="1" name="resolution"
type="cmis:enumDateTimeResolution" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceDateTime" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyDecimalDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyDecimal" />
<xs:element name="maxValue" type="xs:decimal" minOccurs="0"
maxOccurs="1" />
<xs:element name="minValue" type="xs:decimal" minOccurs="0"
maxOccurs="1" />
<xs:element name="precision" type="cmis:enumDecimalPrecision"
minOccurs="0" maxOccurs="1" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceDecimal" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyHtmlDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyHtml" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceHtml" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyStringDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyString" />
<xs:element name="maxLength" type="xs:integer"
minOccurs="0" maxOccurs="1" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceString" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisPropertyUriDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisPropertyDefinitionType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="defaultValue"
type="cmis:cmisPropertyUri" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="choice"
type="cmis:cmisChoiceUri" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- type definition -->
<xs:complexType name="cmisTypeDefinitionType">
<xs:sequence>
<!-- primary identifying attribute -->
<xs:element name="id" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="localName" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="localNamespace" type="xs:anyURI"
minOccurs="1" maxOccurs="1" nillable="true" />
<xs:element name="displayName" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="queryName" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:element name="description" type="xs:string" minOccurs="0"
maxOccurs="1" />
<!-- base type -->
<xs:element name="baseId" type="cmis:enumBaseObjectTypeIds"
minOccurs="1" maxOccurs="1" />
<!-- parent -->
<xs:element name="parentId" type="xs:string" minOccurs="0"
maxOccurs="1">
<xs:annotation>
<xs:documentation>
This is the id for the parent type definition. If
this is a base type,
this is not present.
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- flags -->
<xs:element name="creatable" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="fileable" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="queryable" type="xs:boolean" minOccurs="1"
maxOccurs="1" />
<xs:element name="fulltextIndexed" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="includedInSupertypeQuery" type="xs:boolean"
minOccurs="1" maxOccurs="1" default="true" />
<!-- controllable -->
<xs:element name="controllablePolicy" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="controllableACL" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<!-- property definitions -->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:appinfo>
<jaxb:property name="propertyDefinition" />
</xs:appinfo>
</xs:annotation>
<xs:element name="propertyBooleanDefinition" type="cmis:cmisPropertyBooleanDefinitionType" />
<xs:element name="propertyDateTimeDefinition"
type="cmis:cmisPropertyDateTimeDefinitionType" />
<xs:element name="propertyDecimalDefinition" type="cmis:cmisPropertyDecimalDefinitionType" />
<xs:element name="propertyIdDefinition" type="cmis:cmisPropertyIdDefinitionType" />
<xs:element name="propertyIntegerDefinition" type="cmis:cmisPropertyIntegerDefinitionType" />
<xs:element name="propertyHtmlDefinition" type="cmis:cmisPropertyHtmlDefinitionType" />
<xs:element name="propertyStringDefinition" type="cmis:cmisPropertyStringDefinitionType" />
<xs:element name="propertyUriDefinition" type="cmis:cmisPropertyUriDefinitionType" />
</xs:choice>
<!-- extension -->
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- type specific typedefs -->
<xs:complexType name="cmisTypeDocumentDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisTypeDefinitionType">
<xs:sequence>
<xs:element name="versionable" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="contentStreamAllowed" type="cmis:enumContentStreamAllowed"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisTypeFolderDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisTypeDefinitionType">
<xs:sequence>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisTypeRelationshipDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisTypeDefinitionType">
<xs:sequence>
<xs:element name="allowedSourceTypes" type="xs:string"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="allowedTargetTypes" type="xs:string"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="cmisTypePolicyDefinitionType">
<xs:complexContent>
<xs:extension base="cmis:cmisTypeDefinitionType">
<xs:sequence>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- query -->
<xs:complexType name="cmisQueryType">
<xs:sequence>
<xs:element name="statement" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="searchAllVersions" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="includeAllowableActions" type="xs:boolean"
minOccurs="0" maxOccurs="1" />
<xs:element name="includeRelationships" type="cmis:enumIncludeRelationships"
minOccurs="0" maxOccurs="1" />
<xs:element name="renditionFilter" type="xs:string"
minOccurs="0" maxOccurs="1" />
<xs:element name="maxItems" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:element name="skipCount" type="xs:integer" minOccurs="0"
maxOccurs="1" />
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other"
processContents="lax" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- repository info -->
<xs:complexType name="cmisRepositoryInfoType">
<xs:sequence minOccurs="1">
<xs:element name="repositoryId" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="repositoryName" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="repositoryDescription" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="vendorName" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="productName" type="xs:string" minOccurs="1"
maxOccurs="1" />
<xs:element name="productVersion" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="rootFolderId" type="xs:string" />
<xs:element name="latestChangeLogToken" type="xs:string"
minOccurs="0" />
<xs:element name="capabilities" type="cmis:cmisRepositoryCapabilitiesType"
minOccurs="1" maxOccurs="1" />
<xs:element name="aclCapability" type="cmis:cmisACLCapabilityType"
minOccurs="0" maxOccurs="1" />
<xs:element name="cmisVersionSupported" type="xs:string"
minOccurs="1" maxOccurs="1" />
<xs:element name="thinClientURI" type="xs:anyURI"
minOccurs="0" maxOccurs="1" />
<xs:element name="changesIncomplete" type="xs:boolean"
maxOccurs="1" minOccurs="0" />
<xs:element name="changesOnType" type="cmis:enumBaseObjectTypeIds"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="principalAnonymous" type="xs:string"
minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
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
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="principalAnyone" type="xs:string"
minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
If set, this field holds the principal who is
used for everyone's access. This principal can then be passed to
the
ACL services to
specify what permissions everyone should
have
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<xs:complexType name="cmisRepositoryCapabilitiesType">
<xs:sequence>
<xs:element name="capabilityACL" type="cmis:enumCapabilityACL"
maxOccurs="1" minOccurs="1" />
<xs:element name="capabilityAllVersionsSearchable" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityChanges" type="cmis:enumCapabilityChanges" />
<xs:element name="capabilityContentStreamUpdatability"
type="cmis:enumCapabilityContentStreamUpdates" minOccurs="1"
maxOccurs="1" />
<xs:element name="capabilityGetDescendants" type="xs:boolean"
maxOccurs="1" minOccurs="1" />
<xs:element name="capabilityGetFolderTree" type="xs:boolean"
maxOccurs="1" minOccurs="1" />
<xs:element name="capabilityMultifiling" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityPWCSearchable" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityPWCUpdatable" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityQuery" type="cmis:enumCapabilityQuery"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityRenditions" type="cmis:enumCapabilityRendition"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityUnfiling" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityVersionSpecificFiling" type="xs:boolean"
minOccurs="1" maxOccurs="1" />
<xs:element name="capabilityJoin" type="cmis:enumCapabilityJoin"
minOccurs="1" maxOccurs="1" />
<!-- extension -->
<xs:any namespace="##other" processContents="skip" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attributeGroup ref="cmis:cmisUndefinedAttribute" />
</xs:complexType>
<!-- Unified Search -->
<xs:simpleType name="enumTypeOfChanges">
<xs:restriction base="xs:string">
<!-- content with a new ID has been created -->
<xs:enumeration value="created" />
<!-- content with an existing ID has been modified -->
<xs:enumeration value="updated" />
<!-- content with an existing ID has been deleted -->
<xs:enumeration value="deleted" />
<!-- content with an existing ID has had its security policy changed-->
<xs:enumeration value="security" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCapabilityChanges">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="objectidsonly" />
<xs:enumeration value="properties" />
<xs:enumeration value="all" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="cmisChangeEventType">
<xs:sequence>
<xs:element name="changeType" type="cmis:enumTypeOfChanges" />
<xs:element name="changeTime" type="xs:dateTime" />
<!-- extension -->
<xs:any processContents="lax" namespace="##other" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- ACL -->
<xs:simpleType name="enumACLPropagation">
<xs:restriction base="xs:string">
<xs:enumeration value="repositorydetermined" />
<xs:enumeration value="objectonly" />
<xs:enumeration value="propagate" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCapabilityACL">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="discover" />
<xs:enumeration value="manage" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumBasicPermissions">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:read" />
<xs:enumeration value="cmis:write" />
<xs:enumeration value="cmis:all" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="cmisPermissionDefinition">
<xs:sequence>
<xs:element name="permission" type="xs:string" />
<xs:element name="description" type="xs:string" minOccurs="0"
maxOccurs="1" />
<xs:any namespace="##other" minOccurs="0" processContents="lax"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="cmisPermissionMapping">
<xs:sequence>
<xs:element name="key" type="cmis:enumAllowableActionsKey"
minOccurs="1" maxOccurs="1" />
<xs:element name="permission" type="xs:string" minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Multiple entries are OR'ed together. Any
permission that specified is
sufficient to provide rights required
in key
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="enumAllowableActionsKey">
<xs:restriction base="xs:string">
<xs:enumeration value="canGetDescendents.Folder" />
<xs:enumeration value="canGetChildren.Folder" />
<xs:enumeration value="canGetParents.Folder" />
<xs:enumeration value="canGetFolderParent.Object" />
<xs:enumeration value="canCreateDocument.Folder" />
<xs:enumeration value="canCreateFolder.Folder" />
<xs:enumeration value="canCreateRelationship.Source" />
<xs:enumeration value="canCreateRelationship.Target" />
<xs:enumeration value="canGetProperties.Object" />
<xs:enumeration value="canViewContent.Object" />
<xs:enumeration value="canUpdateProperties.Object" />
<xs:enumeration value="canMove.Object" />
<xs:enumeration value="canMove.Target" />
<xs:enumeration value="canMove.Source" />
<xs:enumeration value="canDelete.Object" />
<xs:enumeration value="canDeleteTree.Folder" />
<xs:enumeration value="canSetContent.Document" />
<xs:enumeration value="canDeleteContent.Document" />
<xs:enumeration value="canAddToFolder.Object" />
<xs:enumeration value="canAddToFolder.Folder" />
<xs:enumeration value="canRemoveFromFolder.Object" />
<xs:enumeration value="canRemoveFromFolder.Folder" />
<xs:enumeration value="canCheckout.Document" />
<xs:enumeration value="canCancelCheckout.Document" />
<xs:enumeration value="canCheckin.Document" />
<xs:enumeration value="canGetAllVersions.VersionSeries" />
<xs:enumeration value="canGetObjectRelationships.Object" />
<xs:enumeration value="canAddPolicy.Object" />
<xs:enumeration value="canAddPolicy.Policy" />
<xs:enumeration value="canRemovePolicy.Object" />
<xs:enumeration value="canRemovePolicy.Policy" />
<xs:enumeration value="canGetAppliedPolicies.Object" />
<xs:enumeration value="canGetACL.Object" />
<xs:enumeration value="canApplyACL.Object" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumUsers">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:user">
<xs:annotation>
<xs:documentation>
This user can be used on setting ACLs to specify
the permission this
user context should have.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<!-- ACL on objects -->
<xs:complexType name="cmisAccessControlPrincipalType">
<xs:sequence>
<xs:element name="principalId" type="xs:string" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="cmisAccessControlEntryType">
<xs:sequence>
<xs:element name="principal" type="cmis:cmisAccessControlPrincipalType" />
<xs:element name="permission" type="xs:string" minOccurs="1"
maxOccurs="unbounded" />
<xs:element name="direct" type="xs:boolean" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="cmisAccessControlListType">
<xs:sequence>
<xs:element name="permission" type="cmis:cmisAccessControlEntryType"
minOccurs="1" maxOccurs="unbounded" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="cmisACLCapabilityType">
<xs:sequence>
<xs:element name="supportedPermissions" type="cmis:enumSupportedPermissions" />
<xs:element name="propagation" type="cmis:enumACLPropagation" />
<xs:element name="permissions" type="cmis:cmisPermissionDefinition"
minOccurs="1" maxOccurs="unbounded" />
<xs:element name="mapping" type="cmis:cmisPermissionMapping"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="enumSupportedPermissions">
<xs:restriction base="xs:string">
<xs:enumeration value="basic" />
<xs:enumeration value="repository" />
<xs:enumeration value="both" />
</xs:restriction>
</xs:simpleType>
<!-- renditions -->
<xs:simpleType name="enumCapabilityRendition">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="read" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumRenditionKind">
<xs:restriction base="xs:string">
<xs:enumeration value="cmis:thumbnail" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="cmisRenditionType">
<xs:sequence>
<xs:element name="streamId" type="xs:string" />
<xs:element name="mimetype" type="xs:string" />
<xs:element name="length" type="xs:integer" />
<xs:element name="kind" type="xs:string" />
<xs:element name="title" type="xs:string" minOccurs="0" />
<xs:element name="height" type="xs:integer" minOccurs="0" />
<xs:element name="width" type="xs:integer" minOccurs="0" />
<xs:element name="renditionDocumentId" type="xs:string"
minOccurs="0" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
</xs:sequence>
</xs:complexType>
<!-- elements -->
<xs:element name="allowableActions" type="cmis:cmisAllowableActionsType">
<xs:annotation>
<xs:documentation>
This is the root tag for a CMIS AllowableActions
Document Type
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="query" type="cmis:cmisQueryType">
<xs:annotation>
<xs:documentation>
This is the root tag for a CMIS Query Document Type
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="acl" type="cmis:cmisAccessControlListType">
<xs:annotation>
<xs:documentation>
This is the root tag for a CMIS ACL Document Type
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>
<!-- EOF -->