When configuring attributes for refinements, it is useful to first obtain a list of available attributes. You can do this, utilizing PropertyListConfig request of the Conversation Web Service, or listProperties and RecordKind requests from the Configuration Web Service.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<Request xmlns="http://www.endeca.com/MDEX/conversation/3/0">
<State/>
<PropertyListConfig Id="MyAttrs"/>
</Request>
</soapenv:Body>
</soapenv:Envelope>
Note that this sample request uses an empty, unnamed state.
<cs:Property Key="ProdType" Type="mdex:string" Dimension="true" DisplayName="Product Type" Refinable="true">
<cs:PropertyRecord>
<cs:attribute name="mdex-property_DisplayName" type="mdex:string">Wine Type</cs:attribute>
<cs:attribute name="mdex-property_IsPropertyValueSearchable" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-property_IsSingleAssign" type="mdex:boolean">false</cs:attribute>
<cs:attribute name="mdex-property_IsTextSearchable" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-property_IsUnique" type="mdex:boolean">false</cs:attribute>
<cs:attribute name="mdex-property_Key" type="mdex:string">ProdType</cs:attribute>
<cs:attribute name="mdex-property_Language" type="mdex:string">unknown</cs:attribute>
<cs:attribute name="mdex-property_TextSearchAllowsWildcards" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-property_Type" type="mdex:string">mdex:string</cs:attribute>
<cs:attribute name="system-navigation_Select" type="mdex:string">single</cs:attribute>
<cs:attribute name="system-navigation_ShowRecordCounts" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="system-navigation_Sorting" type="mdex:string">record-count</cs:attribute>
</cs:PropertyRecord>
<cs:DimensionRecord>
<cs:attribute name="mdex-dimension-value_Parent" type="mdex:string">mdex-dimension_ProdType_Parent</cs:attribute>
<cs:attribute name="mdex-dimension-value_Spec" type="mdex:string">mdex-dimension_ProdType_Spec</cs:attribute>
<cs:attribute name="mdex-dimension_EnableRefinements" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-dimension_IsDimensionSearchHierarchical" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-dimension_IsRecordSearchHierarchical" type="mdex:boolean">true</cs:attribute>
<cs:attribute name="mdex-dimension_Key" type="mdex:string">WineType</cs:attribute>
</cs:DimensionRecord>
</cs:Property>
Besides the PropertyListConfig type, you can use two other methods to get a list of the attributes in a data domain.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://www.endeca.com/MDEX/config/services/types/3/0"
xmlns:ns1="http://www.endeca.com/MDEX/config/XQuery/2009/09">
<soapenv:Header/>
<soapenv:Body>
<ns:configTransaction>
<ns:listProperties/>
</ns:configTransaction>
</soapenv:Body>
</soapenv:Envelope>
Another method is using the RecordKind filter with the nondata value. For usage information, see Filtering data and non-data records.