Conformance

The description of conformance is presented in two parts – the mandatory baseline that any implementation of the DMA API must provide, and a detailed definition of each optional capability.

Mandatory Baseline

General

Every DMA object describes itself by providing metadata, as specified in the object model overview.

All the DMA classes are described in the reference sections of this specification. For each DMA class, the specification defines what properties and interfaces must be supported for it, given that the class itself is supported.

In order to support self describing metadata, at least the following DMA classes (referred to as SDM classes below) must be supported:

The DMA classes that must be supported by all implementations vary according to metadata space type.

The following are the metadata space types, and the minimum set of DMA classes that they must support:

System Metadata Spaces

SDM classes

System

Enumeration

Enumeration Of Object

Individual Document Space Metadata Spaces

SDM classes

DocSpace

DocVersion

Individual Document Space Scope Metadata Spaces

SDM classes

Scope

Query

Query Constant

Query Node

Query Nonterminal Node

Query Operand Description

Query Operator

Query Operator Description

Query Order By Node

Query Property

Query Root

Query Searchable Class

Merged Scope Metadata Spaces

(Same as Individual Document Space Metadata Space)

Query Result Metadata Spaces

SDM classes

Enumeration

Query Result Row

Query Result Set

System Object

The system object is a DMA object implemented by software referred to as "middleware". The main functions of the middleware are to provide an implementation of the system object, a means for registering and locating document spaces, and to provide merged scope objects generated from multiple document space scopes, so that cross repository queries can be performed.

Every conformant implementation of the system object must provide:

Document Repository

The main purpose of document repository implementations of the DMA API is to provide an implementation of the Document Space object, and objects generated from it, e.g., scope objects.

Every conformant document space implementation must provide:

Optional Capabilities

Document Space Object

In the subsections of this section, the identifiers for document space capabilities (e.g., DMAC_LEVEL, DMAC_AUTHENTICATE, etc.) appear in the DMA header files as macros that evaluate to unique small, nonnegative integers. The capability identifiers are intended to be used as a list element index of the Doc Space Capabilities property, which is a list of integer32 property native to the document space object (class Doc Space). When the following refers to a capability being "set" or "reset", that means that the value of the corresponding list element is DMA_TRUE or DMA_FALSE, respectively.

General

DMAC_LEVEL

The value indicates the version level number of the capabilities property for the document repository. It is a positive integer equal to 1 for the 1.0 DMA spec. On every subsequent release of the DMA spec. in which additional document repository capabilities are introduced, this number is increased by one.

DMAC_AUTHENTICATE

If set, then the document space object supports the IdmaAuthentication interface.

If reset, the document space object does not support the IdmaAuthentication interface.

DMAC_WRITEABLE_DOCSPACE

If set, then (1) document space objects can be added, and deleted, and modified, and/or (2) document versions can be checked in.

If reset, the document space is read only.

DMAC_CONNECT_VIA_OIID

If set, IdmaDocSpace:: ConnectObject is supported on the document space object to connect to persistent objects given their OIID.

If reset, IdmaDocSpace:: ConnectObject is not supported.

Content

DMAC_CONTENT

This is set if and only if content is supported: At least some documents in the document space can have content. This implies that the Rendition class and at least one of the classes Content Transfer and Content Reference must be supported.

If reset, the document repository merely catalogs external material, e.g., books on a shelf, and no documents have content.

DMAC_CONTENT_MULT_RENDITIONS

If set, then content is supported, and documents can have multiple renditions.

If reset, documents can have at most one rendition.

DMAC_CONTENT_MULT_ELEMENTS

If set, then content is supported, and renditions can have multiple content elements.

If reset, renditions can not have more than one content element.

DMAC_CONTENT_MIME_RENDITIONS

If set, then content is supported, and the document space supports the use of rendition types from the MIME rendition type space. NOTE: The Rendition Type property is a string of the form <rendition_type_space>::<typename>. The only <rendition_type_space> defined in the DMA 1.0 spec. is "MIME" (Multipurpose Internet Mail Extension) as defined by the IANA. Examples are "MIME::application/postscript" and "MIME::text". END NOTE

If reset, then the document space does not support MIME reference type names.

DMAC_CONTENT_UPDATEABLE

If set, then document content is supported, and document content can be edited. Some or all of the following operations can be performed on existing persistent Doc Version objects: Renditions can be added; renditions can be deleted; renditions can be replaced; content elements can be added; content elements can be deleted; content elements can be replaced. This implies IdmaConnection:: ExecuteChange is supported.

If reset, then document cannot be edited. (Note that checking in a new version of a document does not count as updating content in the sense of this capability. That is viewed as creating a new persistent Doc Version object for purposes of discussion of this capability.)

DMAC_CONTENT_CAPTURE_RESOURCE

If set, then content is supported, and IdmaContentTransfer:: SetCaptureResource supported. This method allows content to be captured from a named resource.

If reset, then IdmaContentTransfer:: SetCaptureResource is not supported.

DMAC_CONTENT_COPY_TO_RESOURCE

If set, then content is supported, and IdmaContentTransfer:: CopyToResource is supported. This method makes a copy of captured content data in a resource of a specified name.

If reset, then IdmaContentTransfer:: CopyToResource is not supported.

Containment

If containment is supported, the following optional classes must be supported:

DMAC_CONTAIN_DIR_REQUIRED

If set, then, any directly containable object (except for root direct containers) must be contained in a container via direct containment. (There are no freestanding directly containable objects except root direct containers.)

If reset, then it is not required that directly containable objects be contained in a container via direct containment.

If containment is not implemented, the value is reset.

DMAC_CONTAIN_REF_REQUIRED

If set, then, any referentially containable object (except for root referential containers) must be contained in a container via referential containment. (There are no freestanding referentially containable objects except root referential containers.)

If reset, then it is not required that referentially containable objects be contained in a container via referential containment.

If containment is not implemented, the value is reset.

If DMAC_CONTAIN_REF_REQUIRED and DMAC_CONTAIN_DIR_REQUIRED are both set, and if there is a class that can be contained both via direct containment and referential containment, then objects of that class must be directly contained, but need not be referentially contained.

DMAC_CONTAIN

If DMAC_CONTAIN is set, then containment is supported. The value of DMAC_CONTAIN is defined to be DMAC_CONTAIN_REF OR DMAC_CONTAIN_DIR .

DMAC_CONTAIN_REF

If set, then referential containment is supported. The value of DMAC_CONTAIN_REF is defined to be DMAC_CONTAIN_REF_CONTAINER OR DMAC_CONTAIN_REF_CFG_HISTORY OR DMAC_CONTAIN_REF_VER_SERIES OR DMAC_CONTAIN_REF_VER_DESC OR DMAC_CONTAIN_REF_DOC_VER OR DMAC_CONTAIN_REF_OTHER .

If DMAC_CONTAIN_REF is set, the following optional classes must be supported:

DMAC_CONTAIN_REF_CONTAINER

If set, then classes of type Container and subclasses of that type may be contained referentially.

If reset, classes of type Container and subclasses of that type may not be referentially contained.

DMAC_CONTAIN_REF_CFG_HISTORY

If set, then classes of type Configuration History and subclasses of that type may be contained referentially.

If reset, then classes of type Configuration History and subclasses of that type may not be referentially contained.

DMAC_CONTAIN_REF_VER_SERIES

If set, then classes of type Version Series and subclasses of that type may be contained referentially.

If reset, then classes of type Version Series and subclasses of that type may not be referentially contained.

DMAC_CONTAIN_REF_VERS_DESC

If set, then classes of type Version Description and subclasses of that type may be contained referentially.

If reset, then classes of type Version Description and subclasses of that type may not be referentially contained.

DMAC_CONTAIN_REF_DOC_VER

If set, then classes of type Doc Version and subclasses of that type may be contained referentially.

If reset, then classes of type Doc Version and subclasses of that type may not be referentially contained.

DMAC_CONTAIN_REF_OTHER

If set, then a class of type other than Doc Version, Configuration History, Version Series, and Version Description and subclasses of those classes may be contained referentially.

If reset, then no classes of type other than Doc Version, Configuration History, Version Series, and Version Description and subclasses of those classes may be contained referentially.

DMAC_CONTAIN_REF_MAX_DEPTH

This is the maximum number of recursive levels that containers can contain other containers referentially. If a container can not be contained referentially by another container, the value is zero. If there is no limit on the number of levels of referential containment of containers, the value is -1.

If referential containment is not supported, the value is zero.

DMAC_CONTAIN_REF_ORDER

The value of this capability is defined as DMAC_CONTAIN_REF_ORDER_HEAD OR DMAC_CONTAIN_REF_ORDER_TAIL .

DMAC_CONTAIN_REF_ORDER_HEAD

If set, the IdmaRelationshipOrdering interface is supported for Referential Containment Relationship objects, and the SetOrdering method accepts the value DMA_POS_DEFAULT for the value of the ulHeadWhere parameter.

If reset, the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_HEAD_BEFORE

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_BEFORE for the ulHeadWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_BEFORE value for the ulHeadWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_HEAD_AFTER

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_AFTER for the ulHeadWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_AFTER value for the ulHeadWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_HEAD_FIRST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_FIRST for the ulHeadWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_FIRST value for the ulHeadWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_HEAD_LAST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_LAST for the ulHeadWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_LAST value for the ulHeadWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_HEAD_NO_CH

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_NO_CHANGE for the ulHeadWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not implemented for Referential Containment Relationship objects, or the DMA_POS_NO_CHANGE value for the ulHeadWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL

If set, the IdmaRelationshipOrdering interface is supported for Referential Containment Relationship objects, and the SetOrdering method accepts the value DMA_POS_DEFAULT for the value of the ulTailWhere parameter.

If reset, the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL_BEFORE

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_BEFORE for the ulTailWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_BEFORE value for the ulTailWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL_AFTER

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_AFTER for the ulTailWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_AFTER value for the ulTailWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL_FIRST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_FIRST for the ulTailWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_FIRST value for the ulTailWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL_LAST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_LAST for the ulTailWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the DMA_POS_LAST value for the ulTailWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_REF_ORDER_TAIL_NO_CH

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_NO_CHANGE for the ulTailWhere parameter for Referential Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Referential Containment Relationship objects, or the SetOrdering DMA_POS_NO_CHANGE value for the ulTailWhere parameter to SetOrdering is not supported for Referential Containment Relationship objects.

DMAC_CONTAIN_DIR

The value of DMAC_CONTAIN_DIR is defined to be DMAC_CONTAIN_DIR_CONTAINER OR DMAC_CONTAIN_DIR_CFG_HISTORY OR DMAC_CONTAIN_DIR_VER_SERIES OR DMAC_CONTAIN_DIR_VER_DESC OR DMAC_CONTAIN_DIR_DOC_VER OR DMAC_CONTAIN_DIR_OTHER .

If DMAC_CONTAIN_DIR is set, the following optional classes must be supported:

DMAC_CONTAIN_DIR_CONTAINER

If set, then classes of type Container and subclasses of that type may be contained directly.

If reset, then classes of type Container and subclasses of that type may not be directly contained.

DMAC_CONTAIN_DIR_CFG_HISTORY

If set, then classes of type Configuration History and subclasses of that type may be contained directly.

If reset, then classes of type Configuration History and subclasses of that type may not be directly contained.

DMAC_CONTAIN_DIR_VER_SERIES

If set, then classes of type Version Series and subclasses of that type may be contained directly.

If reset, then classes of type Version Series and subclasses of that type may not be directly contained.

DMAC_CONTAIN_DIR_VER_DESC

If set, then classes of type Version Description and subclasses of that type may be contained directly.

If reset, then classes of type Version Description and subclasses of that type may not be directly contained.

DMAC_CONTAIN_DIR_DOC_VER

If set, then classes of type Doc Version and subclasses of that type may be contained directly.

If reset, then classes of type Doc Version and subclasses of that type may not be directly contained.

DMAC_CONTAIN_DIR_OTHER

If set, then a class of type other than Doc Version, Configuration History, Version Series, and Version Description and subclasses of those classes may be contained directly.

If reset, then no classes of type other than Doc Version, Configuration History, Version Series, and Version Description and subclasses of those classes may be contained directly.

DMAC_CONTAIN_DIR_MAX_DEPTH

This is the maximum number of recursive levels that containers can contain other containers via direct containment. If a container can not be contained by another container via direct containment, the value is zero. If there is no limit on the number of levels, the value is -1.

If direct containment is not supported, the value is zero.

DMAC_CONTAIN_DIR_ORDER

This capability is defined as DMAC_CONTAIN_DIR_ORDER_HEAD OR DMAC_CONTAIN_DIR_ORDER_TAIL .

DMAC_CONTAIN_DIR_ORDER_HEAD

If set, the IdmaRelationshipOrdering interface is supported for Direct Containment Relationship objects, and the SetOrdering method accepts the value DMA_POS_DEFAULT for the value of the ulHeadWhere parameter.

If reset, the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_HEAD_BEFORE

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_BEFORE for the ulHeadWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_BEFORE value for the ulHeadWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_HEAD_AFTER

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_AFTER for the ulHeadWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_AFTER value for the ulHeadWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_HEAD_FIRST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_FIRST for the ulHeadWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_FIRST value for the ulHeadWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_HEAD_LAST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_LAST for the ulHeadWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_LAST value for the ulHeadWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_HEAD_NO_CH

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_NO_CHANGE for the ulHeadWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not implemented for Direct Containment Relationship objects, or the DMA_POS_NO_CHANGE value for the ulHeadWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL

If set, the IdmaRelationshipOrdering interface is supported for Direct Containment Relationship objects, and the SetOrdering method accepts the value DMA_POS_DEFAULT for the value of the ulTailWhere parameter.

If reset, the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL_BEFORE

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_BEFORE for the ulTailWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_BEFORE value for the ulTailWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL_AFTER

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_AFTER for the ulTailWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_AFTER value for the ulTailWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL_FIRST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_FIRST for the ulTailWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_FIRST value for the ulTailWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL_LAST

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_LAST for the ulTailWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the DMA_POS_LAST value for the ulTailWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

DMAC_CONTAIN_DIR_ORDER_TAIL_NO_CH

If set, the IdmaRelationshipOrdering:: SetOrdering method allows the value DMA_POS_NO_CHANGE for the ulTailWhere parameter for Direct Containment Relationship objects.

If reset, either the IdmaRelationshipOrdering interface is not supported for Direct Containment Relationship objects, or the SetOrdering DMA_POS_NO_CHANGE value for the ulTailWhere parameter to SetOrdering is not supported for Direct Containment Relationship objects.

Versioning

If versioning is supported, the following optional classes must be supported:

If versioning is supported, the following optional interfaces must be supported by the Doc Version class:

DMAC_VERSION

If set, new document versions can be created via IdmaVersionable:: SetCheckin on the Doc Version object, followed by IdmaConnection:: ExecuteChange on the Doc Version object..

If reset, the checking in of new document versions is not supported.

DMAC_VERSION_REQUIRED

If set, then the versioning related properties are required to have values. Thus, for example, all documents have to be versioned.

If reset, then the versioning related properties are not required to have values. Thus, for example, there can be documents not in a version series.

DMAC_VERSION_OTHER_ENTITIES

If set, then there are classes that are not subclasses of Versionable that have versioning properties, and so may be versioned.

If reset, then only classes that are subclasses of Versionable can have versioning properties.

DMAC_VERSION_CHECKIN_EXISTING

If set, then the document space allows checkin of an object that is already persistent.

If reset, then the document space does not allow checkin of an object that is already persistent.

DMAC_VERSION_THREADED

If set, then a Doc Version can have more than one Version Description as a parent.

If reset, then a Doc Version can have at most one Version Description as a parent.

DMAC_VERSION_CHECKOUT

If set, then the document space supports IdmaVersionSeries:: SetCheckOutNext.

If rest, then the document space does not support SetCheckOutNext. (SetReserveNext is in the versioning baseline. SetCheckOutNext isn’t.)

DMAC_VERSION_CHANGE_CURRENT

If set, then the document space supports making a version other than the last be the current version. The current version is what gets checked out and leads to the next version when it’s checked in. Changing the current version would be done by changing the Current Version Description property of the Version Series object.

If reset, the current version cannot be modified. This implies that the current version is always the last version. This also implies that the only way to insert a new version is checkout or reserve, followed by checkin.

DMAC_VERSION_DELETE_VERSION_DESCRIPTION

If set, then the document space supports deleting some, but not necessarily all, Version Descriptions in one operation.

If reset, versions can not be deleted selectively.

Query

DMAC_QUERY

If set, then query is supported: IdmaDocSpace:: GetScope is supported, and at least the following query classes are supported: Scope, Query, Query Node, Query Root, Query Property, Query Searchable Class, Query Result Set, Query Result Row. There is at least one searchable class in the Searchable Classes property of scopes generated by the document space, and at least one selectable property in every searchable class in scopes generated by the document space.

If reset, there are no useful queries that are supported. The IdmaDocSpace:: GetScope method is not supported, and none of the query classes are supported. The query classes are: Query, Query Constant, Query Constant Binaries, QueryConstant Binary, Query Constant Boolean, Query Constant Booleans, Query Constant Date Time, Query Constant Date Times, Query Constant Float64, Query Constant Float64s, Query Constant Id, Query Constant Ids, Query Constant Integer32, Query Constant Integer32s, Query Constant String, Query Constant Strings, Query Join Op, Query Node, Query Nonterminal Node, Query Operand Description, Query Operator, Query Operator Description, Query Order By Node, Query Property, Query Result Row, Query Result Set, Query Root, Query Searchable Class, Scope.

DMAC_QUERY_EXPRESSION

If set, then the following is true: DMAC_QUERY is set. The Query Expression property of the Query Root object may be non null. The classes Query Operator Description, Query Operand Description, Query Nonterminal Node, Query Constant, and Query Operator are supported. At least one query operator that is not a join operator is supported. At least one of the following query classes is supported: Query Constant Binaries, Query Constant Binary, Query Constant Boolean, Query Constant Booleans, Query Constant Date Time, Query Constant Date Times, Query Constant Float64, Query Constant Float64s, Query Constant Id, Query Constant Ids, Query Constant Integer32, Query Constant Integer32s, Query Constant String, Query Constant Strings.

If reset, then the Query Expression property of the Query Root object must be null.

DMAC_QUERY_JOINS

If set, then DMAC_QUERY is set, and at least one query join operator is supported.

If reset, then no query join operators are supported.

DMAC_QUERY_ORDERINGS

If set, then DMA_QUERY is set, and the Orderings property of the Query Root object may be non null.

If reset, then the Orderings property of the Query Root object must be null.

DMAC_3V_ELIMINATION

If set, Scope objects created by the current document space object always perform three valued elimination on queries when requested to do so.

If reset, Scope objects created by the current document space object never perform three valued elimination on queries.

DMAC_LOCKING

If this capability is set, locking is supported. The value of DMAC_LOCKING is defined as DMAC_LOCKING_WRITER OR DMAC_LOCKING_READER OR DMAC_LOCKING_EXISTENCE.

Required Interfaces and methods:

DMAC_LOCKING_WRITER

If set, the value DMA_LOCK_WRITE for the lLockType parameter to ApplyLock is supported.

If reset, the value DMA_LOCK_WRITE for the lLockType parameter to ApplyLock is not supported.

DMAC_LOCKING_READER

If set, the value DMA_LOCK_READ for the lLockType parameter to ApplyLock is supported.

If reset, the value DMA_LOCK_READ for the lLockType parameter to ApplyLock is not supported.

DMAC_LOCKING_EXISTENCE

If set, the value DMA_LOCK_EXIST for the lLockType parameter to ApplyLock is supported.

If reset, the value DMA_LOCK_EXIST for the lLockType parameter to ApplyLock is not supported.