Appendix A: Keywords and properties parsing
The resource enumeration XML return by the resource enumeration service contains keywords and properties elements. For resources derived from XenApp, XenDesktop, or VDI-in-a-box, these values are generated from the mark-up in the description field of the corresponding resource. The description field is then ‘tidied up’ to remove this mark-up.
The keyword/property parser looks for the string KEYWORDS: (case-insensitive). If found, all text after that string is treated as keyword/property mark-up. The mark-up is made up of the following tokens separated by one or more spaces:
<property>=<value><property>="<quoted-value>"<keyword>
Where:
-
<property>,<value>and<keyword>are strings made up of any characters other thanspace,=or". -
<quoted-value>is a string made up of any character other than".
The keywords are collected into a single list.
All property entries with the same property name are collected together to give a multiple-valued property.
Some concrete examples:
| Original description in XenApp and XenDesktop (plus comment) | Description as returned by StoreFront Services | Keywords | Properties | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| “My description” (Basic description without mark-up) | “My description” |
|
|
||||||||||||||||||||
| “My description KEYWORDS: kw1 kw2 (Description with keyword mark-up) | “My description” |
|
|
||||||||||||||||||||
| “My description keywords: name1=a name2=b name1=”the rain in Spain” (Description with keyword and property mark-up) | “My description” |
|
|
“My description keywords: name1=a name2=b name1=”the rain in Spain” (Description with keyword and property mark-up) | “My description” |
|
|
lt;/value> | “My description keywords: name1=a name2=b name1=”the rain in Spain” (Description with keyword and property mark-up) | “My description” |
|
|
lt;value>The rain in Spain | “My description keywords: name1=a name2=b name1=”the rain in Spain” (Description with keyword and property mark-up) | “My description” |
|
|
lt;/value> | “My description keywords: name1=a name2=b name1=”the rain in Spain” (Description with keyword and property mark-up) | “My description” |
|
|
lt;/property> |
| “My description keywords: name1=a name2=b” (Description with misformatted mark-up - a misspelled KEYWORDS: token) | “My description keywords: name1=a name2=b “ |
|
|
||||||||||||||||||||
| “My description KEYWORDS: kw1 name1=a kw2 name2=b kw3” (Description with interspersed keywords and properties.) | “My description” |
|
|
“My description KEYWORDS: kw1 name1=a kw2 name2=b kw3” (Description with interspersed keywords and properties.) | “My description” |
|
|
lt;/property> |
|||||||||||||||
| “My description KEYWORDS: name1=a Name1=b “(Property names are case- sensitive.) | “My description” |
|
</properties> |