How a namespace works

A namespace contains one or more related procedures. The namespace contains the XML that invokes the functionality of an underlying provider or another procedure. Every namespace procedure has an input schema and (optionally) an output schema. The input schema optionally validates data supplied to the procedure. The output schema defines the format for data returned by the procedure.

All procedures implemented in Microsoft Provisioning System must be part of a namespace registered in Microsoft Provisioning Framework (MPF).

Example of a namespace

In the following example, the namespace, called New Namespace, contains one procedure, New Request.

<namespace name="New Namespace" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <procedure name="New Request" type="write" access="public">
	<execute namespace="Test Namespace" procedure="Write Request">
	<forEach name="organization" root="data" 
		path="organizations/organization"/>
	<before source="organization" destination="executeData">
		<xsl:template match="organization[@type='primary']">
		<primaryOrg>
			<xsl:value-of select="@name"/>
		 </primaryOrg>
		</xsl:template>
		<xsl:template match="organization[@type='secondary']">
		 <secondaryOrg>
			<xsl:value-of select="@name"/>
		</secondaryOrg>
		</xsl:template>
	</before>
	<after source="executeData" destination="data" 
		destinationPath="orgSignup" mode="merge"/>
	</execute>
  </procedure>
</namespace>

In the procedure example:

For more information on namespaces, see What a namespace is and Namespace implementation in Microsoft Provisioning System. For information on requests, see Request architecture. For information on procedures, see Procedure architecture. For information on providers, see Provider architecture. The Microsoft Provisioning Framework Software Development Kit (SDK) contains additional resources to help you implement procedures, requests, and namespaces. This includes the complete XML schema for all elements and information on how to implement providers. For more information on the SDK and how to use it, see Microsoft Provisioning Framework SDK.