Files
alfresco-community-repo/source/wsdl/cmisObjectTypes.xsd
David Caruana d2619d5ea9 Merge from SEAMIST3
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10733 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2008-09-04 11:22:17 +00:00

307 lines
15 KiB
XML

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<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">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--CMIS Property Types (data types)-->
<!--(The following XML Schema Datatypes are used directly as property types:-->
<!--xs:string, xs:decimal, xs:integer, xs:boolean, xs:dateTime, xs:anyURI)-->
<xs:simpleType name="ID">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:complexType name="XML">
<xs:sequence>
<xs:any minOccurs="1" maxOccurs="unbounded" processContents="skip" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="HTML">
<xs:sequence>
<xs:any minOccurs="1" maxOccurs="unbounded" processContents="skip" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--Property (one element type per property type)-->
<xs:complexType name="propertyStringType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyDecimalType">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyIntegerType">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyBooleanType">
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyDateTimeType">
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyURIType">
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyIDType">
<xs:simpleContent>
<xs:extension base="ID">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="propertyXMLType">
<xs:complexContent>
<xs:extension base="XML">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="propertyHTMLType">
<xs:complexContent>
<xs:extension base="HTML">
<xs:attribute name="name" type="xs:string" use="required">
<!--This attribute contains the name of the property.-->
</xs:attribute>
<xs:attribute name="index" type="xs:nonNegativeInteger" use="optional">
<!--This attribute conatains an ordinal number for each value of a multi-valued property.-->
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--Properties-->
<xs:complexType name="propertiesType">
<xs:sequence>
<xs:element name="propertyBoolean" type="propertyBooleanType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyDateTime" type="propertyDateTimeType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyDecimal" type="propertyDecimalType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyHTML" type="propertyHTMLType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyID" type="propertyIDType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyInteger" type="propertyIntegerType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyString" type="propertyStringType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyURI" type="propertyURIType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="propertyXML" type="propertyXMLType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--Content Stream-->
<xs:complexType name="contentStreamType">
<xs:sequence>
<xs:element name="length" type="xs:integer" />
<xs:element name="mimeType" type="xs:string" minOccurs="0" />
<xs:element name="filename" type="xs:string" minOccurs="0" />
<xs:element name="uri" type="xs:anyURI" minOccurs="0" />
<xs:element name="stream" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--Allowable actions on an object-->
<xs:simpleType name="allowableActionEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="canGetProperties" />
<xs:enumeration value="canUpdateProperties" />
<xs:enumeration value="canDeleteObject" />
<xs:enumeration value="canGetObjectParents" />
<xs:enumeration value="canGetFolderParent" />
<xs:enumeration value="canMoveObject" />
<xs:enumeration value="canAddObjectToFolder" />
<xs:enumeration value="canRemoveObjectFromFolder" />
<xs:enumeration value="canGetRelationships" />
<xs:enumeration value="canApplyPolicy" />
<xs:enumeration value="canRemovePolicy" />
<xs:enumeration value="canGetAppliedPolicies" />
<xs:enumeration value="canGetContentStream" />
<xs:enumeration value="canSetContentStream" />
<xs:enumeration value="canDeleteContentStream" />
<xs:enumeration value="canCheckOut" />
<xs:enumeration value="canCancelCheckout" />
<xs:enumeration value="canCheckIn" />
<xs:enumeration value="canGetChildren" />
<xs:enumeration value="canGetDescendants" />
<xs:enumeration value="canCreateDocument" />
<xs:enumeration value="canCreateFolder" />
<xs:enumeration value="canCreateRelationship" />
<xs:enumeration value="canCreatePolicy" />
<xs:enumeration value="canDeleteTree" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="allowableActionsType">
<xs:sequence>
<xs:element name="action" type="allowableActionEnum" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--Object-->
<xs:complexType name="objectType">
<xs:sequence>
<xs:element name="properties" type="propertiesType" minOccurs="0" />
<xs:element name="allowableActions" type="allowableActionsType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="objectCollectionType">
<xs:sequence>
<xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!--Folder Tree-->
<xs:complexType name="folderTreeType">
<xs:complexContent>
<xs:extension base="objectType">
<xs:sequence>
<xs:element name="children" type="childrenType" minOccurs="0" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="childrenType">
<xs:sequence>
<xs:element name="child" type="folderTreeType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Property Definition -->
<xs:complexType name="choiceType" mixed="true">
<xs:sequence>
<xs:element name="choice" type="choiceType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="index" type="xs:positiveInteger" use="optional" />
<xs:attribute name="key" type="xs:string" use="optional" />
<!-- the type is actually dependent on the propertyType - XSD doesn't support this type of expression -->
</xs:complexType>
<xs:simpleType name="propertyTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="String" />
<xs:enumeration value="Decimal" />
<xs:enumeration value="Integer" />
<xs:enumeration value="Boolean" />
<xs:enumeration value="DateTime" />
<xs:enumeration value="URI" />
<xs:enumeration value="ID" />
<xs:enumeration value="XML" />
<xs:enumeration value="HTML" />
</xs:restriction>
</xs:simpleType>
<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="propertyAttributesType">
<xs:sequence>
<xs:element name="propertyName" type="xs:string" />
<xs:element name="propertyId" type="ID" />
<xs:element name="displayName" type="xs:string" minOccurs="0" />
<xs:element name="description" type="xs:string" minOccurs="0" />
<xs:element name="isInherited" type="xs:boolean" />
<xs:element name="propertyType" type="propertyTypeEnum" />
<xs:element name="cardinality" type="cardinalityEnum" />
<xs:element name="maximumLength" type="xs:integer" minOccurs="0" />
<xs:element name="schemaURI" type="xs:anyURI" minOccurs="0" />
<xs:element name="encoding" type="xs:string" minOccurs="0" />
<xs:element name="choice" type="choiceType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="openChoice" type="xs:boolean" minOccurs="0" />
<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>
<xs:element name="updatability" type="updatabilityEnum" />
<xs:element name="queryable" type="xs:boolean" />
<xs:element name="orderable" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<!-- Object Type Definition-->
<xs:simpleType name="contentStreamAllowedEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="notAllowed" />
<xs:enumeration value="allowed" />
<xs:enumeration value="required" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="objectTypeDefinitionType">
<xs:sequence>
<xs:element name="objectTypeID" type="ID" />
<xs:element name="objectTypeQueryName" type="xs:string" />
<xs:element name="objectTypeDisplayName" type="xs:string" minOccurs="0" />
<xs:element name="parentTypeID" type="ID" minOccurs="0" />
<xs:element name="rootTypeQueryName" type="xs:string" />
<xs:element name="description" type="xs:string" minOccurs="0" />
<xs:element name="creatable" type="xs:boolean" />
<xs:element name="fileable" type="xs:boolean" />
<xs:element name="queryable" type="xs:boolean" />
<xs:element name="controllable" type="xs:boolean" />
<xs:element name="versionable" type="xs:boolean" />
<xs:element name="contentStreamAllowed" type="contentStreamAllowedEnum" />
<xs:element name="allowedSourceType" type="ID" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="allowedTargetType" type="ID" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="property" type="propertyAttributesType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
</xs:schema>