If the ConnectionConfigurationSet contains PortableRelativePaths, then the Client should perform the following steps (Figure 68 provides an overview of the configuration and actions):
- Resolve the location of the Server and connect to it. This process is required for several of the node configuration options and is described in its own clause (see 13.2).
- Convert PortableRelativePaths to BrowsePaths. This is accomplished by connecting to the Server, reading the NamespaceArray from the Server, and matching all NamespaceUri from the NamespaceArray to the URI’s store in the PortableRelativePaths. PortableRelativePathElements and storing the Index of the URI in the table in the temporary BrowsePath. This will convert the PortableRelativePath to a BrowsePath.
- Call the TranslateBrowsePathsToNodeIds Service with all of the BrowsePaths that are to be converted to NodeId. Cache the resulting list of NodeIds.
- The cache shall also include the NamespaceArray of the target Server. This array can be checked before establishing a Connection to ensure it has not changed. Additionally, the NamespaceMetadata (NamespacePublicationDate) shall be cached. This data can be used to check if the namespace has been updated. If the Namespace has been updated, the process for resolving BrowsePaths shall be repeated.
- Repeat for all Servers.
Figure 68 – PortableRelativePath Client resolution
The process is illustrated in the sequence diagram shown in Figure 69.