18.01.2015 Views

Content Management Interoperability Services (CMIS) Version 1.1

Content Management Interoperability Services (CMIS) Version 1.1

Content Management Interoperability Services (CMIS) Version 1.1

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Additionally, an object-type definition's includedInSupertypeQuery specifies whether objects of that<br />

object-type MUST be included in the virtual table for any of its ancestor types. If the includedInSupertypeQuery<br />

attribute of the object-type is FALSE, then objects of that object-type MUST NOT be included<br />

in the virtual table for any of its ancestor types.<br />

In each virtual table, a virtual column is implicitly defined for each property defined in the object-type definition.<br />

In addition, a virtual column is also implicitly defined for each property defined on ANY ancestor-type<br />

of this object-type but NOT defined in this object-type definition. In addition, the virtual table for a secondary<br />

object type has one more virtual column for the cmis:objectId property defined by each object's primary<br />

type. If a secondary object type does not define any property, then its virtual table will have cmis:objectId<br />

as the only column, identifying the objects to which the secondary type has been applied. Virtual columns<br />

for properties defined on ancestor-types of the object-type but NOT defined (inherited) in the object-type<br />

definition MUST contain the SQL NULL value. Virtual columns for properties whose value is "not set" MUST<br />

contain the SQL NULL value. The rows of a virtual table corresponding to a queryable primary type represent<br />

the objects of that type. The rows of a virtual table corresponding to a queryable secondary type<br />

represent objects of various primary types (which may or may not be queryable) that the secondary type is<br />

applied to. To query on both an object's primary type properties and its secondary type properties, a SQL<br />

JOIN of the respective tables on the cmis:objectId column may be performed. Explicit JOIN support,<br />

as defined in 2.<strong>1.1</strong>.1 Optional Capabilities, is not required for a repository to provide join between a primary<br />

type and secondary type tables based on cmis:objectId.<br />

Implicit Virtual Table for<br />

Queryable Primary Object Type P<br />

PK<br />

Implicit Virtual Table for<br />

Queryable Secondary<br />

Object Type S1<br />

PK<br />

Implicit Virtual Table for<br />

Queryable Secondary<br />

Object Type S2<br />

PK<br />

Properties defined by P<br />

Properties<br />

defined by<br />

S1<br />

Properties<br />

defined by<br />

S2<br />

PK = cmis:objectId in every Virtual Table<br />

An object of Primary Type P, and<br />

with Secondary Types S1 and S2<br />

applied to it<br />

Figure 2.5: Virtual Tables<br />

<strong>CMIS</strong>-v<strong>1.1</strong>-csprd01<br />

Standards Track Work Product<br />

Copyright © OASIS Open 2012. All Rights Reserved.<br />

18 August 2012<br />

Page 102 of 331

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!