解析程式服務範例運作方式
解析程式服務範例會具現化解析程式服務,並將您指定的訊息傳遞給它進行處理。 解析程式服務範例用戶端應用程式會使用第一個參數作為 ResolverList.xml 檔案的路徑,其中包含多個解析程式要求,並將這些要求傳送至解析程式服務。 例如,以下是範例中使用的 XPATH 要求。
//XPATH
<Resolver>
<name>XPATHWithFILE</name>
<Content>![CDATA[XPATH:\\TransportLocation=/*[local-name()='OrderDoc'
and namespace-uri()='http://globalbank.esb.dynamicresolution.com/
northamericanservices/']/*[local-name()='ID' and namespace-
uri()='http://globalbank.esb.dynamicresolution.com/
northamericanservices/'];TargetNamespace=;
MessageExchangePattern=;EndpointConfig=;JaxRpcResponse=;TransportType=;
Action=;TransformType=]]
</Content>
<body>
![CDATA[
<ns0:OrderDoc xmlns:ns0="http://globalbank.esb.dynamicresolution.com/northamericanservices/">
<ns0:customerName>Microsoft</ns0:customerName>
<ns0:ID>FILE://C:\Projects\Microsoft.Practices.ESB\Source\Samples
\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml</ns0:ID>
<ns0:requestType>10</ns0:requestType>
</ns0:OrderDoc>
]]
</body>
</Resolver>
注意
Content > 元素的實際內容 <不包含用來在上述清單中換行行的空白字元。
上述清單顯示要求包含Content > 元素內的 <解析程式組態連接字串。 body <>元素包含訊息本文。
Resolver 服務會使用ResolverMgr類別,具現化由連接字串中的解析程式類型所定義之適當解析程式的具體實例。 如果是 XPATH 要求,這是 XPATH 解析程式。
接下來,架構會建立名為 ESB 的 ResolveProvider 類別實例。Resolver.XPath 來處理要求。 用戶端應用程式會將解析程式服務的回應訊息寫入名為 \Source\Samples\ResolverService\Output 的資料夾。 下列清單顯示回應的內容。
//XPATH
Resolver.Action =
Resolver.ActionField =
Resolver.DocumentSpecName =
Resolver.DocumentSpecStrongName =
Resolver.EndpointConfig =
Resolver.EpmRRCorrelationToken =
Resolver.FixJaxRpc = False
Resolver.InboundTransportLocation =
Resolver.InboundTransportType =
Resolver.InterchangeId =
Resolver.IsRequestResponse =
Resolver.MessageExchangePattern =
Resolver.MessageType =
Resolver.MethodName =
Resolver.OutboundTransportCLSID =
Resolver.ReceiveLocationName =
Resolver.ReceivePortName =
Resolver.Success = False
Resolver.TargetNamespace =
Resolver.TransformType =
Resolver.TransportLocation = FILE://C:\Projects\Microsoft.
Practices.ESB\Source\Samples
\DynamicResolution\Test\Filedrop\OUt\%MessageID%.xml
Resolver.TransportNamespace =
Resolver.TransportType = FILE
Resolver.WindowUserField =