エンティティ・リクエストのサンプル

ここでは、エンティティのリスト、追加、削除および検証リクエストの例を示します。

エンティティのリスト

次のリクエスト例は、コーパスに存在するすべてのエンティティをリストします。
<listEntities>
   <language>en</language>
</listEntities>
このリクエストのレスポンスは、すでに追加されているエンティティのリストを返します。次のlistEntitiesResponseでは、1つのエンティティのサンプルを示します。
<ns3:listEntitiesResponse xmlns:ns2="http://www.endeca.com/MDEX/eql_parser/types" 
                          xmlns:ns3="http://www.endeca.com/endeca-server/sconfig/3/0">
   <ns3:validatedSemanticEntity isValid="true" key="SalesTrans" displayName="Sales Transaction" isActive="true">
      <ns3:definition>DEFINE SalesTrans AS
      SELECT FactSales_SalesAmount AS SalesAmount,
      DimReseller_ProductLine AS ProductLine</ns3:definition>
      <ns3:description>Sales transaction information</ns3:description>
      <ns3:attributes>
         <ns3:semanticAttribute name="SalesAmount" displayName="Sales Amount" datatype="mdex:double" 
                 isDimension="false" isKeyColumn="true" description="Amounts">
            <ns3:property key="locale">EN</ns3:property>
         </ns3:semanticAttribute>
         <ns3:semanticAttribute name="ProductLine" displayName="Product Line" datatype="mdex:string" 
                 isDimension="true" isKeyColumn="false" description="prod"/>
         <ns3:semanticAttribute name="SaleOrderNumber" displayName="Sale Number" datatype="mdex:string" 
                 isDimension="false" isKeyColumn="false" description="Orders"/>
      </ns3:attributes>
      <ns3:metrics>
         <ns3:metric name="TotalSales" displayName="Total Sales" datatype="mdex:double" description="Totals">
            <ns3:definition>sum(SalesAmount)</ns3:definition>
            <ns3:property key="currency">$</ns3:property>
         </ns3:metric>
         <ns3:metric name="AvgSales" displayName="Average Sales" datatype="mdex:double" description="Averages">
            <ns3:definition>avg(SalesAmount)</ns3:definition>
         </ns3:metric>
      </ns3:metrics>
      <ns3:groups/>
      <ns3:property key="SalesArea">North America</ns3:property>
      <ns3:parsedDefinition>
         <ns2:statements returnTable="false" statementKey="SalesTrans">
            <ns2:selects attributeKey="SalesAmount">
               <ns2:expression xsi:type="ns2:AttributeRefExpression" attributeKey="FactSales_SalesAmount" 
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
            </ns2:selects>
            <ns2:selects attributeKey="ProductLine">
               <ns2:expression xsi:type="ns2:AttributeRefExpression" attributeKey="DimReseller_ProductLine" 
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
            </ns2:selects>
         </ns2:statements>
      </ns3:parsedDefinition>
   </ns3:validatedSemanticEntity>
</ns3:listEntitiesResponse>

validatedSemanticEntity要素のisValid属性は、エンティティが正常に検証されたかどうかを示します。

エンティティに依存関係がある場合は、dependentEntities要素にその依存関係がリストされます。

エンティティの検証

エンティティを追加する前に、エンティティ定義内のEQL文の構文を検証することが有用です。

エンティティを検証するには、validateEntity (単一エンティティを検証)またはvalidateEntities (複数エンティティの検証が可能)のいずれかでリクエストを発行します。どちらの操作でも、semanticEntity要素内でエンティティを指定します。エンティティは、アクティブか非アクティブかにかかわらず、検証されることに注意してください。

次の省略された例でvalidateEntityリクエストを示します。
<validateEntity>
   <semanticEntity key="Sales" displayName="Sales Data" isActive="true">
   ...
   </semanticEntity>
</validateEntity>
リクエストの検証が成功した場合、validateEntityResponseにエラーは含まれません。エンティティの検証が失敗した場合、エンティティ・レコードのisValidフラグが(その前の設定に関係なく)falseに設定されることに注意してください。

エンティティの追加

エンティティを1つ追加するにはputEntity操作を使用し、複数追加するにはputEntitiesを使用します。

次の省略された例の場合、putEntity操作は、1つのエンティティSales (メトリックはTotalSalesAvgSalesの2つ)を追加するリクエストで使用されます。
<putEntity xmlns="http://www.endeca.com/endeca-server/sconfig/3/0">
<semanticEntity key="Sales" displayName="Sales Data" isActive="true">
<definition>
   DEFINE Sales AS SELECT FactSales_SalesAmount 
   AS SalesAmount, DimReseller_ProductLine AS ProductLine, 
   DimSalesTerritory_SalesTerritoryCountry AS SalesTerritoryCountry, 
   DimDate_FiscalYear AS FiscalYear, 
   FactSales_SalesOrderNumber AS SaleOrderNumber
</definition>
<description>Sales territorial information</description>
<attributes>
	<semanticAttribute name="SalesAmount" displayName="Sales Amount" datatype="mdex:double" 
   isDimension="false" isKeyColumn="true"/>
	<semanticAttribute name="ProductLine" displayName="Product Line" datatype="mdex:string" 
 isDimension="true" isKeyColumn="true"/>
	<semanticAttribute name="SalesTerritoryCountry" displayName="Sales Territory Country" 
 datatype="mdex:string" isDimension="true" isKeyColumn="false"/>
	<semanticAttribute name="FiscalYear" displayName="Year" datatype="mdex:int" 
 isDimension="true" isKeyColumn="false"/>
	<semanticAttribute name="SaleOrderNumber" displayName="Sale Order Number" 
 datatype="mdex:string" isDimension="false" isKeyColumn="false"/>
</attributes>
<metrics>
  <metric name="TotalSales" displayName="Total Sale" datatype="mdex:double">
    <definition>sum(SalesAmount)</definition>
  </metric>
  <metric name="AvgSales" displayName="Average Sale" datatype="mdex:double">
    <definition>avg(SalesAmount)</definition>
  </metric>
</metrics>
<groups/
</semanticEntity>
</putEntity>
エンティティおよびコレクション構成Webサービスからのレスポンスの省略された例は、作成または置換されたエンティティの数を通知します。
<putEntityResponse xmlns="http://www.endeca.com/endeca-server/sconfig/3/0">
  <entityAdditionInformation numEntitiesAdded="1" numEntitiesReplaced="0"/>
</putEntityResponse>

エンティティの削除

個々の(1つ以上の)エンティティを削除するには、次の例のように、削除するエンティティのキーを指定するdeleteEntities操作を使用します。
<deleteEntities xmlns="http://www.endeca.com/endeca-server/sconfig/3/0">
   <semanticEntityKey key="SalesInfo"/>
</deleteEntities>
レスポンスは、削除されたエンティティの数を示します。
<deleteEntitiesResponse xmlns="http://www.endeca.com/endeca-server/sconfig/3/0">
   <numEntitiesDeleted>1</numEntitiesDeleted>
</deleteEntitiesResponse>