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 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 than space, = 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 togther to give a multiple-valued property.
Some concrete examples:
Original Description in XenApp/XenDesktop (plus comment) | Description as returned by StoreFront Services. | Keywords | Properties |
---|---|---|---|
"My description" (Basic desciption without mark-up) |
"My description" | <keywords/> | <properties/> |
"My description KEYWORDS: kw1 kw2 (Description with keyword mark-up) | "My description" | <keywords> <keyword>kw1</keyword> <keyword>kw2</keyword> </keywords> |
<properties/> |
"My description keywords: name1=a name2=b name1="the rain in Spain" (Description with keyword and property mark-up) | "My description" | <keywords/> | <properties> <property propertyId="name1"> <value>a\</value>\<value>The rain in Spain\</value> \</property><property propertyId="name2"> <value>b<value> </property> </properties> |
"My description keywords: name1=a name2=b" (Description with misformatted mark-up - a misspelled KEYWORDS: token) | "My description keywrds: name1=a name2=b " | <keywords/> | <properties/> |
"My description KEYWORDS: kw1 name1=a kw2 name2=b kw3" (Description with interspersed keywords and properties.) | "My description" | <keywords> <keyword>kw1</keyword> <keyword>kw2</keyword> <keyword>kw3</keyword> </keywords> |
<properties> <property propertyId="name1"> <value>a</value> \</property> <property propertyId="name2"> <value>b</value> </property> </properties> |
"My description KEYWORDS: name1=a Name1=b "(Property names are case- sensitive.) | "My description" | <keywords/> | <property propertyId="name1"> <value>a</value> </property> <property propertyId="Name1"> <value>b</value> </property> </properties> |