Obtaining a list of available attributes

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.

The following soapUI sample request illustrates how to obtain a list of attributes with PropertyListConfig in the Conversation 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.

The following abbreviated example shows the characteristics of the ProdType managed attribute. Using this output, you can view the values of PDRs and DDRs for the attribute, indicating whether the attribute is searchable, and specifying other characteristics contained in the PDR and DDR for this managed attribute:
<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>

Other list attribute methods

Besides the PropertyListConfig type, you can use two other methods to get a list of the attributes in a data domain.

The listProperties operation of the Configuration Web Service returns all the attributes in the data domain, as in this example:
<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.