3.1.4.3.5.7 InternalUrl

The InternalUrl attribute is a composite string denoting the path to some structural element of the site that appears in change notification (see section 3.1.4.3). The structural element can be one of the following: site collection, site, list, folder, or list item. The value of InternalUrl is not meant to be used as a URL; any similarity in the name and syntax is purely coincidental. The syntax of the string is specified as follows in Augmented BNF notation [RFC5234] (assuming that the term GUID is implicitly defined):

 SPACE   =   %x20
 ALPHA  =  %x41-7A
 DIGIT  =  %x30-39
 INTEGER = *DIGIT
 UNDERSCORE  =  %x5F ; _ 
 PUNCTUATION = ( "."  /  "," / ";" /  "!" / "-" / "@"
                                      /   "(" / ")"  / "[" / "]" 
                                       / ";" )  ; characters  ~ " # % & * : < > ? / \ { | } are forbidden in names!
 NAME  =  (ALPHA / UNDERSCORE)   *[ SPACE / ALPHA  /  UNDERSCORE 
          / DIGIT / PUNCTUATION]
          ; NAME cannot begin or end with dot "." , or contain consecutive dots ".."
 PATH  = [ NAME / NAME '/’ PATH ]
 GUIDEMBRACED  = '{' GUID '}'
 INTERNALURL  = '/siteurl=' PATH  '/siteid=' GUIDEMBRACED 
         [ '/weburl='  PATH  '/webid=' GUIDEMBRACED 
         [ ( '/listid ='  GUIDEMBRACED 
             ( [ '/folderurl='  PATH 
             [ '/itemid='  INTEGER ] ] / ‘/viewid=’ GUIDEMBRACED ) 
             / '/fpfolder='  PATH [ '/fpitemid='  NAME ] ) 
         ] ]

For folder and file changes that are not in a document library, the InternalUrl contains fpfolder and fpitemid components. For document library items the InternalUrl contains listid, folderurl, and itemid components.

For example, the InternalUrl:

 /siteurl=/siteid={9bd2c245-41d0-4440-a6ad-1f526dcbe116}/weburl=Subsite/webid={6213f860-baea-4167-ac5f-c5830b52f015}/listid={a04db214-c3c6-45d3-a601-dd1e0e14816a}/folderurl=Subfolder/itemid=5

targets list item with ID set to 5, and has the following components:

siteurl: Specifies the URL of the changed site collection responding to this GetChanges operation. The URL is a store-relative URL to the server URL; an empty value means the site collection URL is the same as the server URL. For example, if the site collection URL is: http://servername/sites/site01, then the siteurl will be "sites/site01"; if the site collection URL is: http://servername, the siteurl will be empty.

siteid: Specifies the GUID of the site.

weburl: Specifies the URL of the subsite relative to the site collection URL (included for Webs and child items).

webid: Specifies the GUID of that subsite.

listid: Specifies the GUID of the list (included for lists and child items).

folderurl: Specifies the path to the folder relative to the list itself (an empty value means that the item is contained in the list itself, not in a sub folder).

itemid: Specifies the identifier (integer) of the list item inside of its list (included for list items only).

Another example would be as follows.

 /siteurl=/siteid={fab5349c-eb94-43bd-9792-917c44b75040}/weburl=/webid={45ff402e-c3be-4612-98d6-915b569b742a}/fpfolder=Subfolder/fpitemid=default.aspx

This targets list item with ID set to 5, and has the following components:

siteurl: Specifies the store-relative URL of the structural element responding to this GetChanges operation. An empty value means "this site collection itself".

siteid: Specifies the GUID of the site.

weburl: Specifies the URL of the subsite relative to the site collection URL (included for Webs and child items).

webid: Specifies the GUID of that subsite.

fpfolder: Specifies the path to the folder relative to the subsite (for folders and files that are not in a document library).

fpitemid: Specifies the file name (included for files only).

viewid: A non-empty GUID that identifies the View.