Most of the Network Configuration Manager resources do not exist in a hierarchical fashion, or have only a single level of hierarchy. For example, Network Configuration Manager Workspaces exist directly under Network Configuration Manager Networks.

The notable exception to the hierarchy rule is Network Configuration Manager Sites and Folders. Sites and folders can have an arbitrary tree-like structure. To support this hierarchy at the API level, the notion of a composite name is introduced (the remainder of this section uses sites to illustrate composite name concepts).

A composite name is an array of ResourceIdentityInfo objects. Each element of the array specifies the particular Network Configuration Manager resource that comprises a full, hierarchical name. This approach allows for an arbitrary number of levels.

The following is an example of a composite name. following is a graphical representation of a Network Configuration Manager Network, and several sites/sub-sites contained under the network. Note the name and unique key is shown at each level.

Networks
    o Southwest-Region (key: C0A8572F3468993F953401C7FC000000)
    |____ o Sites
      |_____ o Austin (key: C0A8572F40BFE83FA73801C7FC000000)
      |   |_____ o 100 Congress (key: C0A8572F40EFB981A73801C7FC000000)
      |_____ o Santa Fe (key: C0A8572F40BEF38FA73801C7FC000000)

The Santa Fe Site under the Southwest-Region network would be represented as a composite name by a two-element array of ResourceIdentityInfo objects. The ResourceIdentityInfo object at index 0 of the array would have the following values:

ResourceIdentityInfo.resourceKey = "C0A8572F3468993F953401C7FC000000"
ResourceIdentityInfo.resourceType = "network"
ResourceIdentityInfo.resourceName = "Southwest-Region" 

The ResourceIdentityInfo object at index 1 of the array would have the following values:

ResourceIdentityInfo.resourceKey = "C0A8572F40BEF38FA73801C7FC000000"
ResourceIdentityInfo.resourceType = "site"
ResourceIdentityInfo.resourceName = "Santa Fe"

The following is a pseudo-code representation of the previous example:

. . .
ResourceIdentityInfo [] compositeName = new ResourceIdentityInfo(2);
compositeName[0] =
    new ResourceIdentityInfo(
        "C0A8572F3468993F953401C7FC000000",
"Southwest-Region",
        "network");
compositeName[1] =
    new ResourceIdentityInfo(
        "C0A8572F40BEF38FA73801C7FC000000",
"Santa Fe",
        "site");

To represent the 100 Congress child Site of the top level Austin Site, under the Southwest-Region network, a three-element array of ResourceIdentityInfo objects would be needed. The following pseudo-code illustrates this:

ResourceIdentityInfo [] compositeName = new ResourceIdentityInfo(3);
compositeName[0] =
    new ResourceIdentityInfo(
        "C0A8572F3468993F953401C7FC000000",
"Southwest-Region",
        "network");
compositeName[1] =
    new ResourceIdentityInfo(
        "C0A8572F40BFE83FA73801C7FC000000",
        "Austin",
"site");
compositeName[2] =
    new ResourceIdentityInfo(
        "C0A8572F40EFB981A73801C7FC000000",
        "100 Congress",
"site");

In addition to those methods that deal with Sites and Folders, certain job-related methods require a composite name as a parameter.