mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10722 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
241 lines
14 KiB
XML
241 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
<!--W3C Schema generated by XMLSpy v2006 sp2 U (http://www.altova.com)-->
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cmis.org/ns/1.0" targetNamespace="http://www.cmis.org/ns/1.0" elementFormDefault="qualified">
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Common Data Structures -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<xs:simpleType name="objectID">
|
|
<xs:restriction base="xs:string"/>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="ID">
|
|
<xs:restriction base="xs:string"/>
|
|
</xs:simpleType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Object Type Structures -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Property definition -->
|
|
<xs:complexType name="propertyAttributesType">
|
|
<xs:sequence>
|
|
<xs:element name="propertyName" type="xs:string"/>
|
|
<xs:element name="displayName" type="xs:string"/>
|
|
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="propertyType" type="xs:string"/>
|
|
<xs:element name="cardinality" type="cardinalityEnum"/>
|
|
<xs:element name="maximumLength" type="xs:integer"/>
|
|
<xs:element name="choice" type="choiceType" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="required" type="xs:boolean"/>
|
|
<xs:element name="defaultValue" type="xs:string" minOccurs="0"/>
|
|
<!-- the type is actually dependent on the propertyType - XSD doesn't support this type of expression -->
|
|
<xs:element name="updatability" type="updatabilityEnum"/>
|
|
<xs:element name="queryable" type="xs:boolean"/>
|
|
<xs:element name="orderable" type="xs:boolean"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Core object definition -->
|
|
<xs:simpleType name="cardinalityEnum">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="singleValued"/>
|
|
<xs:enumeration value="multiValued"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="updatabilityEnum">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="readOnly"/>
|
|
<xs:enumeration value="readWrite"/>
|
|
<xs:enumeration value="readWriteWhenCheckedOut"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:complexType name="choiceType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="index" type="xs:integer" use="required"/>
|
|
<xs:attribute name="key" type="xs:string" use="required"/>
|
|
</xs:extension>
|
|
<!-- the type is actually dependent on the propertyType - XSD doesn't support this type of expression -->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="objectTypeDefinitionType">
|
|
<xs:sequence>
|
|
<xs:element name="objectTypeID" type="ID"/>
|
|
<xs:element name="objectTypeName" type="xs:string"/>
|
|
<xs:element name="displayName" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="parentTypeName" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="rootTypeName" type="xs:string" minOccurs="0"/>
|
|
<!-- TBD - should the two above really be names or should they be IDs? -->
|
|
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="queryable" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="versionable" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="constraints" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:element name="property" type="propertyAttributesType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Object elements -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Folder elements -->
|
|
<xs:element name="parent" type="objectID"/>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Relationship elements -->
|
|
<xs:element name="sourceOID" type="objectID"/>
|
|
<xs:element name="targetOID" type="objectID"/>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- extended properties -->
|
|
<xs:element name="property">
|
|
<xs:complexType mixed="true">
|
|
<xs:attribute name="name" use="required"/>
|
|
<xs:attribute name="index" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Object types and collections -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Base Object (abstract) -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Elements in common with folders and documents -->
|
|
<xs:element name="name" type="xs:string"/>
|
|
<xs:complexType name="objectTypeBase" abstract="true">
|
|
<xs:sequence>
|
|
<!-- base properties -->
|
|
<xs:element name="objectID" type="objectID" minOccurs="0"/>
|
|
<xs:element name="uri" type="xs:anyURI" minOccurs="0"/>
|
|
<xs:element name="objectTypeID" type="ID" minOccurs="0"/>
|
|
<xs:element name="baseObjectType" type="xs:string" minOccurs="0"/>
|
|
<!-- TBD - does baseObjectType remain? Is it a string - enumerated type for "document", "folder", "relationship" -->
|
|
<xs:element name="createdBy" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="creationDate" type="xs:dateTime" minOccurs="0"/>
|
|
<xs:element name="lastModifiedBy" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="lastModificationDate" type="xs:dateTime" minOccurs="0"/>
|
|
<xs:element name="changeToken" type="xs:string" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Document Object -->
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<xs:complexType name="documentObjectType">
|
|
<xs:complexContent>
|
|
<xs:extension base="objectTypeBase">
|
|
<xs:sequence>
|
|
<xs:element name="name" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="isImmutable" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="isLatestVersion" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="isMajorVersion" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="isLatestMajorVersion" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="versionSeriesIsCheckedOut" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="versionSeriesCheckedOutBy" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="versionSeriesCheckedOutOID" type="objectID" minOccurs="0"/>
|
|
<xs:element name="checkinComment" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="contentStreamLength" type="xs:integer" minOccurs="0"/>
|
|
<xs:element name="contentStreamMimeType" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="contentStreamFilename" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="contentStreamURI" type="xs:anyURI" minOccurs="0"/>
|
|
<!-- extension -->
|
|
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
|
|
<!--<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> An alternative for extended properties-->
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Folder Object -->
|
|
<xs:element name="children">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="object" type="documentOrFolderObjectType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="folderObjectType">
|
|
<xs:complexContent>
|
|
<xs:extension base="objectTypeBase">
|
|
<xs:sequence>
|
|
<xs:element name="name" type="xs:string" minOccurs="0"/>
|
|
<xs:element ref="parent" minOccurs="0"/>
|
|
<xs:element ref="children" minOccurs="0"/>
|
|
<!-- extension -->
|
|
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
|
|
<!--<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> An alternative for extended properties-->
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Relationship Object -->
|
|
<xs:complexType name="relationshipObjectType">
|
|
<xs:complexContent>
|
|
<xs:extension base="objectTypeBase">
|
|
<xs:sequence>
|
|
<xs:element ref="sourceOID" minOccurs="0"/>
|
|
<xs:element ref="targetOID" minOccurs="0"/>
|
|
<!-- extension -->
|
|
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
|
|
<!--<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> An alternative for extended properties-->
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Object Type for (Document or Folder) -->
|
|
<!-- Defined by extending Document type with parent and children properties -->
|
|
<xs:complexType name="documentOrFolderObjectType">
|
|
<xs:complexContent>
|
|
<xs:extension base="documentObjectType">
|
|
<xs:sequence>
|
|
<xs:element ref="parent" minOccurs="0"/>
|
|
<xs:element ref="children" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Object Type for (Document, Folder or Relationship) -->
|
|
<!-- Defined by extending (Document or Folder) type with sourceObjectId and targetObjectId properties -->
|
|
<xs:complexType name="documentFolderOrRelationshipObjectType">
|
|
<xs:complexContent>
|
|
<xs:extension base="documentOrFolderObjectType">
|
|
<xs:sequence>
|
|
<xs:element ref="sourceOID" minOccurs="0"/>
|
|
<xs:element ref="targetOID" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Collection of documents and folders - as might be returned from a getChildren invocation -->
|
|
<xs:element name="documentAndFolderCollection">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="object" type="documentOrFolderObjectType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Collection of folders -->
|
|
<xs:element name="folderCollection">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="object" type="folderObjectType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Collection of documents -->
|
|
<xs:element name="documentCollection">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="object" type="documentObjectType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
|
<!-- Collection of relationships -->
|
|
<xs:element name="relationshipCollection">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="object" type="relationshipObjectType" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:schema>
|