This Serviceis used to request that the Servertranslates one or more browse paths to NodeIds. Each browse path is constructed of a starting Nodeand a RelativePath. The specified starting Nodeidentifies the Nodefrom which the RelativePathis based. The RelativePathcontains a sequence of ReferenceTypesand BrowseNames.

One purpose of this Serviceis to allow programming against type definitions. Since BrowseNamesshall be unique in the context of type definitions, a Clientmay create a browse path that is valid for a type definition and use this path on instances of the type. For example, an ObjectType“Boiler” may have a “HeatSensor” Variableas InstanceDeclaration. A graphical element programmed against the “Boiler” may need to display the Valueof the “HeatSensor”. If the graphical element would be called on “Boiler1”, an instance of “Boiler”, it would need to call this Servicespecifying the NodeIdof “Boiler1” as starting Nodeand the BrowseNameof the “HeatSensor” as browse path. The Servicewould return the NodeIdof the “HeatSensor” of “Boiler1” and the graphical element could subscribe to its Value Attribute.

If a Nodehas multiple targets with the same BrowseName, the Servershall return a list of NodeIds. However, since one of the main purposes of this Serviceis to support programming against type definitions, the NodeIdof the Nodebased on the type definition of the starting Nodeis returned as the first NodeIdin the list.

Table 40defines the parameters for the Service.

Table 40– TranslateBrowsePathsToNodeIds Service Parameters

Name

Type

Description

Request

requestHeader

RequestHeader

Common request parameters (see 7.28for RequestHeaderdefinition).

browsePaths []

BrowsePath

List of browse paths for which NodeIdsare being requested. This structure is defined in-line with the following indented items.

startingNode

NodeId

NodeIdof the starting Nodefor the browse path.

relativePath

RelativePath

The path to follow from the startingNode.

The last element in therelativePathshall always have a targetNamespecified. This further restricts the definition of the RelativePath type. The Servershall return Bad_BrowseNameInvalidif the targetNameis missing.

The RelativePathstructure is defined in 7.26.

Response

responseHeader

ResponseHeader

Common response parameters (see 7.29for ResponseHeaderdefinition).

results []

BrowsePathResult

List of results for the list of browse paths. The size and order of the list matches the size and order of the browsePathsrequest parameter. This structure is defined in-line with the following indented items.

statusCode

StatusCode

StatusCodefor the browse path (see 7.34for StatusCodedefinition).

targets []

BrowsePathTarget

List of targets for the relativePathfrom the startingNode. This structure is defined in-line with the following indented items.

A Servermay encounter a Referenceto a Nodein another Serverwhich it cannot follow while it is processing the RelativePath. If this happens the Serverreturns the NodeIdof the external Nodeand sets the remainingPathIndexparameter to indicate which RelativePathelements still need to be processed. To complete the operation the Clientshall connect to the other Serverand call this service again using the target as the startingNodeand the unprocessed elements as the relativePath.

targetId

ExpandedNodeId

The identifier for a target of the RelativePath.

remainingPathIndex

Index

The index of the first unprocessed element in the RelativePath.

This value shall be equal to the maximum value of Indexdata type if all elements were processed (see 7.13for Indexdefinition).

diagnosticInfos []

DiagnosticInfo

List of diagnostic information for the list of browse paths (see 7.8for DiagnosticInfo definition). The size and order of the list matches the size and order of the browsePathsrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request.

Table 41defines the Serviceresults specific to this Service. Common StatusCodesare defined in 7.34.

Table 41– TranslateBrowsePathsToNodeIds Service Result Codes

Symbolic Id

Description

Bad_NothingToDo

See Table 177for the description of this result code.

Bad_TooManyOperations

See Table 177for the description of this result code.

Table 42defines values for the operation level statusCodeparameters that are specific to this Service. Common StatusCodesare defined in Table 178.

Table 42– TranslateBrowsePathsToNodeIds Operation Level Result Codes

Symbolic Id

Description

Bad_NodeIdInvalid

See Table 178for the description of this result code.

Bad_NodeIdUnknown

See Table 178for the description of this result code.

Bad_NothingToDo

See Table 177for the description of this result code.

This code indicates that the relativePath contained an empty list.

Bad_BrowseNameInvalid

See Table 178for the description of this result code.

This code indicates that a TargetName was missing in a RelativePath.

Uncertain_ReferenceOutOfServer

The path element has targets which are in another server.

Bad_TooManyMatches

The requested operation has too many matches to return.

Users should use queries for large result sets. Serversshould allow at least 10 matches before returning this error code.

Bad_QueryTooComplex

The requested operation requires too many resources in the server.

Bad_NoMatch

The requested relativePath cannot be resolved to a target to return.