92 | | [wiki:CmdiMetadataServices#InterfaceDefinition MDService] will provide three main methods/operations: |
93 | | |
94 | | `getCollections()`:: |
95 | | provides information the hierarchical structure the md-records are grouped in. |
96 | | `queryModel()`:: |
97 | | provides information about the metadata (meta-model?), ie which components/elements/values are used in the repository. As query-parameter it only needs to accept/understand `cmdIndex`. |
98 | | `searchRetrieve()` :: |
99 | | is the core operation to retrieve the actual MDRecords. In the `query`-parameter it has to accept any query on metadata. It probably shouldn't ignore even the content-part (`ccs.`) of the query, where it should check for the availability of indices used in the query in given collections. |
| 93 | There was a longer development of the interface specification for MDRepository/MDService. See for more details under [wiki:CmdiMetadataServices#InterfaceDefinition MDService#Interface definition]. |
| 94 | |
| 95 | And although at the moment MDService can’t claim conformance with SRU/CQL standard, the core parts conform to the specification: MDService accepts the query in CQL-format (even parsing it, ensuring the syntactic validity) and returns a `<searchRetrieveResponse>` result as defined by the protocol. |
| 96 | |
| 97 | Following describes the specific usage of CQL for formulating MD-queries: |