2.2.2.2.11 METADICT

A METADICT is a DICT structure used to store a metadictionary of metadata associated with files, directories, and services. For a METADICT, the VALUE-STRING, when decoded, MUST be in a special form specified as a METADICT-VALUE.

 METADICT-VALUE = "T" METADICT-CONSTRAINT-CHAR "|" TIME
 / "V" METADICT-CONSTRAINT-CHAR "|" METADICT-STRING-VECTOR
 / "B" METADICT-CONSTRAINT-CHAR "|" BOOLEAN
  / "I" METADICT-CONSTRAINT-CHAR "|" INT
 / "U" METADICT-CONSTRAINT-CHAR "|" METADICT-INT-VECTOR
 / "D" METADICT-CONSTRAINT-CHAR "|" DOUBLE
 / "S" METADICT-CONSTRAINT-CHAR "|" STRING
  
  

The METADICT-CONSTRAINT-CHAR is no longer significant but is still present for backward compatibility with existing metadata. It can be considered a hint for the client to adopt the following behavior.

 X: The client MUST ignore the value.
 R: The client MAY read the value but MUST NOT write the value.
 W: The client MAY read or write the value.

Constraints on modification of metadata are now the responsibility of the server and are described in section 2.2.4.

 METADICT-INT-VECTOR = "" / INT *(SP INT) 
 METADICT-STRING-VECTOR = "" / METADICT-STRING-ITEM *(SP METADICT-STRING-ITEM)
 METADICT-STRING-ITEM = *METADICT-STRING-ITEM-CHAR
 METADICT-STRING-ITEM-CHAR = %x1-1F / %x21-5b / %x5d-ff ; unescaped
 / %x5c SP; escaped space
 / %x5c %x5c; escaped backslash