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