2.5.98.101 VirtualPath

VirtualPath is an XLUnicodeString structure (section 2.5.98.102) that specifies a path, workbook, and optionally a sheet. This value MUST be a XLUnicodeString in the following grammar

virt-path = volume / unc-volume / rel-volume / transfer-protocol / startup / alt-startup / library

startup = %x0001 %x0006 file-path

This code specifies that the relative-path is relative to the startup directory.

alt-startup = %x0001 %x0007 file-path

This code specifies that the relative-path is relative to the alternate startup directory.

library = %x0001 %x0008 file-path

This code specifies that the relative-path is relative to the library directory.

transfer-protocol = %x0001 %x0005 count transfer-path

This code specifies that the path is a transfer protocol path. The value of count MUST be equal to the number of characters following count in transfer-path.

transfer-path = transfer-base-path / "[" transfer-base-path "]" sheet-name

transfer-base-path = transfer-type "://" file-path

transfer-type = "ftp" / "http" / "https"

volume = %x0001 %x0001 volume-character file-path

This code specifies that the path is relative to a specific drive volume. The drive volume is specified in volume-character.

rel-volume = %x0001 %x0002 file-path

This code specifies that the path is relative to the drive volume of the workbook that contains the path.

unc-volume = %x0001 %x0001 %x0040 unc-path

This code specifies that the path is relative to a UNC volume. The computer name is specified in computer-name and the shared folder is specified in shared-folder.

unc-path = unc-base-path /  "[" unc-base-path "]" sheet-name

unc-base-path = computer-name %x0003 shared-folder %x0003 relative-path

volume-character = %x0041-%x005A / %0061-%x007A

This code specifies the volume title. The volume specified is a drive volume and volume-character is the character of that drive.

file-path = relative-path / "[" relative-path "]" sheet-name

sheet-name = sheet-start-end-character *sheet-character sheet-start-end-character / sheet-start-end-character

sheet-start-end-character = %x0001-%xFFFF

This code specifies the sheet-start-end-character MUST also not include any character that matches invalid-sheet-start-end-character.

invalid-sheet-start-end-character = %x0003 /  "*" / "?" / "'" / "["  /  "]"  /  "\"  /  ":"  /  "/"

sheet-character = %x0001-%xFFFF

This code specifies a sheet character. A sheet character MUST also not include any character that matches invalid-sheet-character.

invalid-sheet-character = %x0003 /  "*" / "?" / "["  /  "]"  /  "\"  /  ":"  /  "/"

relative-path = directory *(%x0003 directory)

directory = path-string

computer-name = path-string

shared-folder = path-string

path-string = 1*path-character

path-character = %x0020-%x0021 / %x0023-%x0029 / %x002B-%x002E / %x0030-%x0039 / %x003B / %x003D / %x0040-%x005B / %x005D-%x007B / %x007D-%xFFFF

This code specifies a path character.

count = %x00-%xFF

Certain grammar rules have specific meanings, as specified in the following table.

Rule

Meaning

volume

Specifies that the path is relative to a specific drive volume.

Volume-character specifies the drive volume.

unc-volume

Specifies that the path is relative to a UNC volume.

Computer-name specifies the computer.

Shared-folder specifies the shared folder.

transfer-protocol

Specifies that the path is a transfer protocol path.

The count MUST equal the number of characters following count in the XLUnicodeString.

startup

Specifies that the relative-path is relative to the startup directory.

alt-startup

Specifies that the relative-path is relative to the alternate startup directory.

library

Specifies that the relative-path is relative to the library directory.

relative-path

Specifies a sequence of subdirectories that comprise the path from the volume or directory.

sheet-name

The name of the sheet in the workbook.