Complex Attributes

A complex attribute may be composed of one or more sub-attributes listed below. To add a complex attribute record to a location, you must include the tag, the Name or ID of the complex attribute, as well as the tag with the Name or ID and the matching value type tag for each sub-attribute.To add multiple records of the same complex attribute, include a separate tag for each record. You may import an unlimited number of records for the same complex attribute.

The different types of sub attributes are as follows:

Text - limited to 255 characters
Memo - for large blocks of text - no limit
Numeric - integer values ranging from -2,147,483,648 to 2147483647
Yes/No - a boolean value represented by true or false
Drop Down - a single selection droplist
Radio Group - a group of values represented by radio buttons allowing one selection
Checkbox Group - a group of values represented by checkboxes allowing multiple selections
Link - a URL and associated display text
Photo - accepts an image URL with file extensions BMP, GIF, JPEG, or PNG
Category - accepts category ID and category name
Location - accepts a Bullseye location
Text Lookup - a single selection droplist
PDF - a URL and associated display text
Video - accepts a title description, url and an optional thumbnail image

The section of the XML Schema for complex attributes is:

<xs:sequence>
  <xs:element name="ComplexAttribute" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Name" type="xs:string" minOccurs="0" />
        <xs:element name="ID" type="xs:int" minOccurs="0" />
        <xs:sequence>
          <xs:element name="SubAttribute" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="Name" type="xs:string" minOccurs="0" />
                <xs:element name="ID" type="xs:int" minOccurs="0" />
                <xs:element name="ValueBoolean" type="xs:boolean" minOccurs="0" />
                <xs:element name="ValueString" type="xs:string" minOccurs="0" />
                <xs:element name="ValueInteger" type="xs:int" minOccurs="0" />
                <xs:element name="ValueOptionID" type="xs:int" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="ValueOptionText" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
                <xs:element name="ValueLinkURL" type="xs:string" minOccurs="0" />
                <xs:element name="ValueLinkDisplayText" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:sequence>

The following tags map to the different types of sub-attributes:

ValueBoolean - Yes/No
ValueString - Photo, Text & Memo
ValueInteger - Numeric & Location
ValueOptionID OR ValueOptionText - Drop Down, Radio Group, Checkbox Group, Text Lookup & Category
ValueLinkURL AND ValueLinkDisplayText - Link, PDF & Video

You should only use the tag(s) which apply to the sub-attribute type for each entry.