2.2.2.2.11 METADICT

The FrontPage Server Extensions: Website Management Protocol format of a metadictionary is a METADICT.

 METADICT = DICT ; default value = empty
 VECTOR-METADICT = OBRACKET STARTLIST 1*(METADICT LISTSEP) CBRACKET
  

For METADICTs, the VALUE-STRING (as specified in DICT (section 2.2.2.2.10), when decoded, MUST be in a format represented as METADICT-VALUE:

  
 METADICT-VALUE = "T" METADICT-CONSTRAINT-CHAR "|" TIME
    / "V" METADICT-CONSTRAINT-CHAR "|" METADICT-STRING-VECTOR
    / "B" METADICT-CONSTRAINT-CHAR "|" BOOLEAN
    / "D" METADICT-CONSTRAINT-CHAR "|" DOUBLE
    / "I" METADICT-CONSTRAINT-CHAR "|" INT
    / "S" METADICT-CONSTRAINT-CHAR "|" STRING
    / "L" METADICT-CONSTRAINT-CHAR "|" STRING  ; more than 255 Unicode chars
    / "F" METADICT-CONSTRAINT-CHAR "|" FILESYSTEMTIME
    / "U" METADICT-CONSTRAINT-CHAR "|" METADICT-INT-VECTOR
  
 METADICT-CONSTRAINT-CHAR = "X" / "R" / "W"

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, which is descriptive, not normative:

X: The client SHOULD NOT display the value to the user.

R: The client can display the value to the user but SHOULD NOT allow the user to change it.

W: The client can display the value and allow the user to change it.

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

  
 METADICT-INT-VECTOR = / METADICT-INT-VECTOR SP INT
  
 METADICT-STRING-VECTOR = / METADICT-STRING-VECTOR 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