By using the management agent for Directory Services Markup Language (DSML), you can synchronize data in DSML 2.0 format.

Connected data source support

  • Directory Services Markup Language (DSML) 2.0

Management agent type

  • This is a file-based management agent.


The schema is generated based on the discovery of the data in the template input file. When you refresh the schema for this management agent, Management Agent Designer starts, reads the template input file, and then updates the management agent schema. Then, you can update the management agent configuration based on the new schema.


  • This management agent provides a DSML level 1 consumer and level 1 producer. Although it does not make use of any schema, this management agent can process the following document types:

    • Documents containing no directory schema nor any references to an external schema.

    • Documents containing no directory schema but containing at least one reference to an external schema.

    • Documents containing only a directory schema.

    • Documents containing both a directory schema and entries.

  • When you create a management agent for DSML, the sample file should contain all the object classes that you plan to use. If, during an import from a data file, Microsoft® Forefront Identity Manager (FIM) 2010 encounters an object class that has not been defined, or mapped, it only traverses the object class hierarchy to the level that was defined in the sample file.

    For example, you map the object classes in the following table from the sample file during the creation of the management agent.

    Object class in sample file Mapped to object type in management agent

    top, OrganizationalUnit


    top, person


    top, person, organizationalPerson


    After the management agent is created, if you import a data file that contains an object class that is not defined, or mapped, in the management agent, FIM matches that object against the object class with the longest continuous prefix in the object class hierarchy.

    For example, given the mappings defined above, FIM maps defined and undefined object classes as shown in the following table.

    Object class Object type

    top, organizationalUnit


    top, organizationalUnit, container


    top, person


    top, person, inetOrgPerson


    top, person, organizationalPerson


    top, person, organizationalPerson, inetOrgPerson


The format of a DSML 2.0 input file consists of a set of entries, each containing a distinguished name or globally unique identifier (GUID) of the object and sets of attributes and values. Every DSML 2.0 file must end with a <searchResultDone> tag, or FIM will fail to parse the file. The following is a sample of a DSML 2.0 input file:

- <batchResponse xmlns="urn:oasis:names:tc:DSML:2:0:core" xmlns:xsd="" xmlns:xsi="">

- <searchResponse>

- <searchResultEntry dn="CN=46e25386-32a1-4589-8156-42bb244bcdce">

- <attr name="objectclass">



- <attr name="employeeid">



- <attr name="firstname">



- <attr name="lastname">



- <attr name="email">




- <searchResultDone>

    <resultCode code="0" descr="success" />




  • FIM treats all data as case sensitive.

  • When you select the Code Page type in the DSML management agent, it specifies only what export code page to use, not the import code page.

  • Import and export DSML files are not identical in format and cannot be interchanged. Import DSML file use must use <searchResult> tags, and export DSML files must use <addRequest> tags.


In order to successfully use the management agent for DSML, the connected data source must be able to produce a valid DSML import file. You cannot re-import an export DSML file that has been exported from a management agent run. Without a valid DSML import file, you will be unable to confirm your exports.

  • File-based management agents do not export characters that are not in the destination code page. FIM fails when it attempts to export objects that contain any character that is not in the target connected data source code page. If you try to avoid this behavior by converting the file to Unicode and then doing a best-fit translation, FIM cannot confirm the export. As a workaround, you can do your own file translation during export attribute flow.

  • For file-based management agents, the template input file should contain all the object classes and attributes that will be synchronized, and it should be in a full import format.

  • If you use a template input file that is larger than 200 KB, FIM analyzes only the first 100 objects when discovering the schema. As a result, if there are object classes and attributes that you want to synchronize that do not appear in the first 100 objects, manually add those object classes and attributes as connector space object types and attributes. Depending on the size of the file, a delay might occur when FIM reads the entire file.

  • This management agent supports password management. For more information, see See Also.

See Also