2.2.5.1 Dictionaries
A message with a dictionary stream MUST have the PidTagRoamingDatatypes property (section 2.2.2.1) set. The value of the property MUST be a bitmask that includes the value 0x00000004.
The message MUST have the PidTagRoamingDictionary property (section 2.2.2.2) set. The value of the property is a binary stream that contains a Unicode XML document using UTF-8 encoding. The XML document MUST conform to the following XML schema definition (XSD) in addition to the limitations specified in section 2.2.3.
-
<?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace="dictionary.xsd" xmlns="dictionary.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="UserConfiguration"> <xs:complexType> <xs:sequence> <xs:element name="Info"> <xs:complexType> <xs:sequence /> <xs:attribute name="version" type="VersionString"> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Data"> <xs:complexType> <xs:sequence> <xs:element name="e" minOccurs="0" maxOccurs="unbounded" type="EntryType"> </xs:element> </xs:sequence> </xs:complexType> <xs:unique name="uniqueKey"> <xs:selector xpath="e" /> <xs:field xpath="@k" /> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="VersionString"> <xs:restriction base="xs:string"> <xs:pattern value=".+\.\d+" /> </xs:restriction> </xs:simpleType> <xs:complexType name="EntryType"> <xs:sequence /> <xs:attribute name="k" type="ValueString" /> <xs:attribute name="v" type="ValueString" /> </xs:complexType> <xs:simpleType name="ValueString"> <xs:restriction> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="\d+\-.*" /> </xs:restriction> </xs:simpleType> </xs:restriction> </xs:simpleType> </xs:schema>
UserConfiguration: A top-level element that MUST exist. It contains the Info and Data elements.
Info: An element that MUST exist. It contains information about the application that created the XML document in the version attribute.
version: An attribute on the Info element that specifies the name and version of the application that created the XML document. The type of this attribute MUST be VersionString.
VersionString: A simpleType based on a string. The name and version of the application that created this document is encoded in the version string.<3> The data is not validated; it is provided for future reference. The format of the version string is as follows.
-
<name>.<major version number>
Data: An element that MUST contain all the dictionary name-value pair entries.
e: An element of type EntryType that contains a name-value pair. There can be an unbounded number of e elements inside the top-level Data element.
EntryType: A complexType that represents a name-value pair. This type contains the following attributes:
k: An attribute of the EntryType type that contains the name portion of the name-value pair. The type of this attribute is ValueString. The value of this attribute MUST be unique within the dictionary.
v: An attribute of the EntryType type that contains the value portion of the name-value pair. The type of this attribute is ValueString.
ValueString: A simpleType that is based on a string. Different value types MUST be encoded in this simpleType as a string. The format of the string MUST be as follows.
-
<data type>-<string encoded value>
The data type MUST be an integer type code from the following table.
Type |
Type code |
Encoding |
---|---|---|
Boolean |
3 |
"True" or "False" |
32-bit signed integer |
9 |
Decimal characters, prefixed with an optional "-" to denote a negative number |
String |
18 |
Unicode string |
There is one reserved name-value pair that the client SHOULD include in every dictionary XML document. If the dictionary XML document does not include this name-value pair, the client MUST behave as though the default value were set:
OLPrefsVersion
Name: (string) "OLPrefsVersion"
Value: (32-bit integer) The client uses this setting to determine whether to prefer the settings in the XML document or its own locally stored settings.
"0" or any negative integer: The client MUST prefer its own default or locally stored settings, and it MUST rewrite the XML document with those settings.
"1" or any positive integer: The client MUST prefer the settings in the XML document.
Default: (32-bit integer) "0"