XML Schema for Requests
Microsoft® Provisioning Framework (MPF) implements provisioning requests as XML documents. There are two types of requests: simple and trusted. Simple requests can contain data, security context, and the procedure and namespace to call. Trusted requests explicitly define the procedure steps as well as any data or security context. For more information on simple and trusted requests, see Requests and Authorization During Request Submittal.
Schema for Simple Request
The following code fragment illustrates the base schema for a simple request.
<request> <globalData>0..1</globalData> <!-- Queued requests only --> <data>0..1</data> <context>0..1 <transactionContext tipUrl="..." transactionId ="..." >0..1 </transactionContext> <securityContext trustee=".." sensitive=".." trusted=".." impersonate=".."> 0..1 <authentication>0..1 <basic username=".." password=".." domain="..">0..1</basic> <passport puidHigh=".." puidLow="..">0..1</passport> </authentication> </securityContext> <queueContext retryCount=".." retryInterval=".." queueId=".." retryType=".." onFailure=".." retryStopOnFailure="..">0..1 <parentQueue queueID="..">0..unbounded</parentQueue> </queueContext> <clientContext clientTransactionId="..." localeID="..">0..1</clientContext> </context> </request>In the preceding code fragment:
- The root node is request. Data can be passed to a request node by a Web page, script, or another procedure.
- The globalData node (optional) is used only for queued requests. It passes data used by all actions in a queued request. For more information on queued requests, see Provisioning Queue Manager Service.
- The data node (optional) receives free-form XML content received from other sources. This is the data that the request acts on. An untrusted request can only have one data node. (However, a trusted request or queued simple or trusted request can contain multiple data nodes.)
- The context node (optional) passes contextual information to the procedure. MPF will extract from the run-time environment any portion of the context block it needs to process the request.
- In contrast to trusted requests, simple requests do not have a procedure node. IProvEngine::SubmitTrustedRequest and IProvQueue::SubmitTrustedRequest pass the procedure and namespace names as parameters.
Schema for Trusted Requests
The following code fragment illustrates the base schema for a trusted request. It differs from an untrusted request in that:
- There can be multiple data nodes.
- There is always a procedure node to encapsulate either a declaration of a provisioning action executed by a provider or a sequence of calls to other procedures.
<request> <globalData>0..1</globalData> <!-- Queued requests only --> <data>0..unbounded</data> <context>0..1 <transactionContext tipUrl="..." transactionId ="..." >0..1 </transactionContext> <securityContext trustee=".." sensitive=".." trusted=".." impersonate=".."> 0..1 <authentication>0..1 <basic username=".." password=".." domain="..">0..1</basic> <passport puidHigh=".." puidLow="..">0..1</passport> </authentication> </securityContext> <queueContext retryCount=".." retryInterval=".." queueId=".." retryType=".." onFailure=".." retryStopOnFailure="..">0..1 <parentQueue queueID="..">0..unbounded</parentQueue> </queueContext> <clientContext clientTransactionId="..." localeID="..">0..1</clientContext> </context> <procedure>1..1 <!-- See XML Schema for Procedures --> . . . </procedure> </request>When MPF executes a request, it generates an executeXml node internally to pass any request data as XML to the called procedure. The following code fragment illustrates the base schema that MPF uses for this action.
<executeXml> <context>0..1 <transactionContext transactionId=".." />0..1 <executeContext namespace=".." procedure=".." providerSource=".." />0..1 </context> <executeData>0..1</executeData> </executeXml>In the preceding code fragment:
- The root node is executeXml.
- The context node (optional) identifies the transaction (transactionContext) and the provider procedure (executeContext) to receive data.
- The executeData node (optional) contains data to pass to the executeData node of the called procedure.
Schema for Responses to Requests
When a request is completed, MPF returns the results in a response node. The following code fragment illustrates the base schema for a response.
<response> <data>0..1</data> <errorContext code=".." description="..">0..1 <errorSource>1..unbounded</errorSource> </errorContext> </request>In the preceding code fragment:
- The root node is response.
- The data node (optional) contains data returned by procedure.
- The errorContext node (optional) contains a list of errors (represented by one or more errorSource child nodes) that prevented successful completion of the request. Procedures that implement error handling receive these errors into the catch node.
See Also
Authorization During Request Submittal, Request Example
Top of Page
© 1999-2002 Microsoft Corporation. All rights reserved.