Protocol clients SHOULD use GetList as the first message sent as part of the sync process. The purpose of GetList is to obtain the schema and version of the protocol server. Additional useful information can be obtained, but the protocol client can choose to ignore all of it.
If the protocol server supports GetListItemChangesSinceToken and the protocol client is going to call that method, then protocol clients SHOULD remember the information from the first GetList and rely on GetListItemChangesSinceToken to inform them of any changes. Remembering information from GetList instead of using GetList again will help the protocol server perform better.
Schema for each item type is specified in section 126.96.36.199.
The details of GetList are specified in [MS-LISTSWS]. This document only covers the usage of particular elements and attributes of GetList for this protocol.