The Request type contains a a state describing the records to be selected and how they are viewed and multiple content element configurations to describe what summarizations are to be performed. Both the state and the content element configurations are first transformed by the specified operators, which describe how a request to the MDEX is to differ from the prior request. Typically, a Request is constructed from the Results returned by a previous invocation. The State and ContentElementConfig elements are obtained from the Request element in the prior Results. The Operator sequence will usually be obtained by choosing embedded operators from the ContentElement sequence in the prior Results. The requester may also attach arbitrary XML to the request via the PassThrough element, to be returned unchanged in the response. This type is used to allow unrestricted schema in several places where user-defined XML is valuable. The State type contains inputs that affect the set of records to operate on. Currently it just contains all filters (including selected refinements). Clients should usually not construct this themselves, except for the initial empty state -- instead they should provide operators to be used by the service to transform the state. A selected refinement filter is the result of having applied a named refinement operator. The ContentElementConfig type is a sort of "Abstract Base Class". Types that extend ContentElementConfig are logical representations of a chunk of data. A ContentElementConfig can provide a "projection" of data that is determined by its State. A custom ContentElementConfig must be paired with a handler function written in XQuery to work properly; the ContentElementConfig identifies the handler to call and provides appropriate configuration information for that handler. The actual subtype polymorphism is accomplished in a request by applying xsi:type to the specific ContentElementConfig instance in the request. Schemas that extend the ContentElementConfig are permitted to redeclare Handler with a default. This would look like: Operator is the base type for objects representing actions. Operator selects the refinement with value Spec in the property or dimension named Name. Operators are applied in document order. If Name specifies a single select dimension, this will replace other refinements in the same dimension. If Name specifies a multi-select dimension or a property, this will be added in addition to other refinements in the same dimension or property. Operator removes a previously selected refinement with name Name and spec Spec. Operator that clears all visible parts of the filter state (but does not remove the invisible parts, specifically any record filters). Operator that adds a text search component to the state. If Within is false then the visible parts of the state are cleared first. Operator that adds a record filter component to the state. Record filters are not "visible", so they do not appear in breadcrumbs and are not cleared by any of the general mechanisms for clearing the state. They can only be removed using a PopRecordFilterOperator. Operator that removes a named record filter component from the state. Operator that adds a record kind restriction to the state. The available kinds are: (1) "data" -- records that do not use a recordspec known to the mdex at the system or service level; (2) "properties" -- records that declare properties ("PDR" records); (3) "nondata" -- all records that use a recordspec known to the mdex (PDRs, DDRs, GCRs, groups, precedence rules, semantic entity definitions, etc...). Record kinds are not "visible", so they do not appear in breadcrumbs and are not cleared by any of the general mechanisms for clearing the state. They can only be removed using a PopRecordKindOperator. Operator that removes any RecordKind restriction from the state. Operator that adds a data source filter component to the state. It can only be removed using a PopDataSourceFilterOperator. Operator that removes the data source filter component from the state. Operator that adds a selection filter component to the state. Operator that removes the selection filter component from the state. Operator that adds a range filter component to the state. Range filters can be removed using a PopRangeFilterOperator. Operator that removes a range filter component from the state. Operator that removes a search from the state. Operator that applies a DidYouMean suggestion. Operator types that extend this type are those that control the configuration of a content element, instead of controlling the state. Such operators use the OwnerId attribute to specify the content content element to which they are to be applied. That is, the OwnerId of the operator must match the Id of the content element's configuration. An operator on a record list content element for paging to a specific page. An operator on a record list content element for choosing a specific sort on a specific attribute. An operator on a navigation menu that exposes a specific dimension or property or a subtree thereof. An operator on a navigation menu that hides a specific dimension or property or a subtree thereof. An operator on record details that selects a specific record. Dimension values contain the dimension name and the spec of the dimension value. These two things together uniquely define a dimension value. The string contents of this type is not required, but allowed so that someone could plug an element of type DimensionValueWithName. DimensionValueWithName is basically a DimensionValue type with a required string contents. The string contents is the dimension value name. Convenient pairing between a dimension value and an operator that operates on it. A path to a refinement dimension value from the root of a dimension. A collection of paths from dimensions of interest. A list of refinements, used to represent paths, for a breadcrumb. Each refinement has an embedded operator for removal of that refinement. Details of search for a breadcrumb, with an embedded operator for removing that search. Breadcrumb for a range filter, with an embedded operator for removing the range filter. The RecordListConfig type contains inputs needed to define what is returned in the record list. A RecordList will be returned for each RecordListConfig provided. Column - defines a field to be returned in the RecordList of the Results. RecordsPerPage - defines the maximum number of Record elements to return in the ContentElement of the result; default is 10. A RecordSelector selects a record based on some Key/Value pair that is unique to that record. It's like a RefinementOperator without being subject to multi-select or hierarchy. The RecordDetailsConfig type contains inputs needed to define what is returned for record details. A RecordDetails will be returned for each RecordDetailsConfig provided. Column - defines a field to be returned in the RecordDetails of the Results. If none are specified, the default set (which may not be all) is returned. Operator - a RefinementOperator that selects the record of interest from the current State. It is an error for the resulting filter to select more or fewer than one record. @deprecated As of version 2.3, replaced by {@link #LQLConfig} A content element that allows arbitrary analytics statements to be evaluated. These statements are submitted as a single string. A content element that allows arbitrary lql statements to be evaluated. These statements are submitted either as string or as XML. A very simple content element for counting the records in the state. No configuration is eneded. The NavigationMenuConfig type contains inputs needed to define what is returned in the navigation menu. If ReturnFullPath is set to true, each set of refinements will be accompanied with the path to root for that set of refinements. If ExposeAllRefinements is set to true, it is equivalent to sending a RefinementConfig with Expose="true" for each property and dimension. Controls the behavior of a single value search. Searches all properties if RestrictToProperties is not specified, otherwise just searches values within the properties given. If MaxPerProperty is specified it limits the number of matches returned per property. Note that, if record search is used in the filter, that search cannot use Boolean match mode. There is no such restriction on the match mode for the value search. A simple content element for obtaining descriptive information regarding attribute groups. A group will be returned if and only if the corresponding GDR (that is, a record with spec system-group_Key) is in the given State. List of properties to restrict value search by. If provided only matching values within the given properties will be returned. Controls the behavior of an individual group of refinements in a NavigationMenu. @Name - the name of the refinement group to control @Expose - whether to expose refinements, or just show the head of the group @MaximumCount - if specified, limit the number of refinements returned @OrderByRecordCount - if true, order by record count, otherwise use natural order The BreadcrumbConfig type contains the inputs needed to generate a Breadcrumb result component. If ReturnFullPath is set to true, each selected dimension value will be accompanied by a list of dimension values that represents its path to root. The SearchAdjustmentConfig type contains the inputs needed to generate a SearchAdjustment result component. A simple content element for obtaining all properties and information about them. No configuration is required. The behavior is independent of the state. A simple content element for obtaining all searchable attributes and search interfaces. No configuration is required. The behavior is independent of the state. The Results type contains the Request element that generated it as well as any components that were requested. Each component is only returned if its corresponding config was supplied in the request. The ContentElement type is a sort of "Abstract Base Class". Types that extend ContentElement are the results that correspond to a ContentElementConfig from a request. A ContentElement contains a "projection" of data. List of attribute groups selected by the current State and their constituent attributes. Note that a group is included if and only if its GDR is in the State; it is neither necessary nor sufficient for records with assignments from the attribute to be in the State. Pertinent information about an attribute including its key, display name and other options. The PDR (and DDR, if present) is included for clients that prefer to read descriptor records directly; note that records do not have a fixed schema. List of all available properties in the system. This includes dimensional properties as well as primordial properties. A key used to identify a searchable property. Also packaged with a user friendly display name. The searchable properties and search interfaces available. Presented in a single alphabetically ordered list. This information is independent of the state. A group of NavigationMenuItems, collected by property group. A menu of NavigationMenuItemGroups. Currently, it can also contain NavigationMenuItems for compatibility with pre-grouped applications. The results of a value search. The HasMore attribute specifies whether any results were cut off because of a limit specified in the request. A PropertynMatches element appears only for those properties and dimensions in which matches were found, and contains values for those matches. Details of all the values within a particular property that matched a value search. Details of a single value within a particular property that matched a value search. The FullPath will be present when the matched value is dimension value. Property or dimension value resulting from a value search. A collection of refinements of a particular kind. Defaults to hidden, with an operator to expose it. Has a name, and an indication of whether there are more refinements than are currently shown, and an indication of what kind of multi-select is supported, if any. The multi-select status of a dimension. A path to a refinement dimension value from the root of a dimension. A refinement is a named operator that will somehow "refine" the current State, optionally with some indication of the number of records that match the resulting State. This base type allows additional content beyond just the operator, so that derived types can include arbitrary content. The result data corresponding to a BreadcrumbsConfig request. Breadcrumbs for refinement and search are presented separately. Corresponds to a SearchAdujstmentConfig request. Includes both suggested and auto-applied adjustments. This type contains column data that includes the display name and column key. This type contains column data for a RecordList such as the sort operators, and the spec column flag. The result data corresponding to a RecordListConfig request. It contains information about the overall set of result records submitted to this summarization (NumRecords and TotalPages), the page of records presented (Record and RecordRange) and controls for sorting and pagination. Note that the total number of records is NOT informed by the attributes presented, so a record will be counted even if it appears empty in the results because it has no assignments for the attributes in question. The result data corresponding to a RecordDetailsConfig request. It contains information about the individual record requested from this summarization. This type contains information about an attribute--name, type and hierarchy. A block of records corresponding to a single LQL statement. It has the name given to it in the LQL statement, and is annotated with the number of records returned. @deprecated As of version 2.3, replaced by {@link #LQL} The result data corresponding to an AnalyticsConfig request. It contains one ResultRecords element for each RETURN in the analytics statement sequence. Note that, while no pagination feature is provided by the service, the analytics language itself has a pagination feature. The result data corresponding to an LQLConfig request. The result data corresponding to a RecordCountConfig request. It contains the result of counting records. An indication of where the current page of a record list falls in the ordinal enumeration of the records returned by the filter. A pagination control, used for presenting a possible page to be displayed in a record list. It contains a friendly label, an indication of whether this page is "active" in the sense that it makes sense for the control to be "clicked" and an embedded operator for "moving" to that page. Current exposure status of a dimension together with an embedded Operator for inverting that status. The sort status for an attribute in a record list, and means of changing it. The Active attribute specifies whether this particular sort is active, and the embedded Operator is provided as a means for making it active. Part of a record list response, RecordListEntry includes the Record and any computed properties, like geocode distance or snippets. A subset of attributes from a particular MDEX record, presented with the name of the attribute acting as the element name. A set of properties computed during a query for a particular record. A list of search snippets associated with an attribute. Most of the time this list will only have one snippet in it, but in some cases will return more. For example the user searches for multiple terms and has the two terms match in the same attribute. A substring from an assignment which gives context around a search term match. Sort type paralleling the structure of a MAX Sort element. Key is the property or dimension value to sort by and Direction is an enumeration of "Ascending" or "Descending". A SortDirection should be "Ascending" or "Descending". Used when specifying a Sort on records. An MDEX range filter specification. Range filters bound specification. Specification of a reference point for range filtering of geocode properties. An MDEX record filter specification with a unique Name. An MDEX record kind restriction A SearchFilter type that parallels the structure of a MAX Search element. Key is the search interface to use and the text contents of the element is the search term(s). An applied search adjustment used for AutoCorrect. The SearchFilter is the original query, the AdjustedTerms are the corrected terms. A suggested search adjustment used for DidYouMean. The SearchFilter associates this suggestion with a particular search from the query. The operator is to apply the suggestion. Enumerates the search modes available when performing a text search. Used to force string inputs to be non-empty. Conversation-style web service for building applications