If attributes were requested, the link will be followed by lines that specify the values of the requested attributes. The form of the response will depend on whether the attribute is associated with the link, or with the actual object. If the attribute is associated with the link, the applies-to token indicates whether it applies to the LINK or the object, and if the object whether it is a CACHED attribute, a REPLACEMENT attribute, or an ADDITIONAL attribute. In case of conflicts between attributes associated with the link and those associated with the object, a cached attribute is superseded, a replacement attribute takes precedence, and an additional attributes leaves both intact.
Attributes may sometimes be returned even if they were not explicitly requested. As a case of this, the ACCESS-METHOD attribute is always returned for EXTERNAL links.
( ATTRIBUTE applies-to
ATTRIBUTE applies-to ( APPLICATION or INTRINSIC ) attribute-name attribute-value-type value-tuple-element )
Attributes may have multiple values, in which case one ATTRIBUTE line is returned for each value. In the case of multiple values, the order in which attributes is returned may be significant to the application. The Prospero server will maintain the order of attributes.
attribute-value-types are SEQUENCE, LINK, and FILTER. SEQUENCE is the most general attribute-value-type. It is a sequence of zero or more ASCII strings, and all other attribute value types are subtypes of it. Since application attributes are, by definition, application-specific, we are not constraining the form of a sequence. However, if an application wishes to use application-specific subtypes of SEQUENCE, we encourage application authors to use the first element of the attribute's value as a keyword describing the particular subtype of SEQUENCE.
One possible attribute-value-type is LINK. The value-tuple-element tokens returned in this case are the same as the LINK response to the LIST command. In that case, the name-component token will be ignored, and will usually be a zero-length string ('').) The return format would be:
ATTRIBUTE applies-to APPLICATION attribute-name LINK ( L or U) target name-component host-type host-name hsoname-type hsoname object-version DEST-EXP dest-expiration
If the value of an attribute is a link, the link might itself have attributes. When such sub-attributes are returned, the word ATTRIBUTE is immediately followed by > signs to the appropriate nexting level. If a link attribute has sub-attributes, they will all be sent with the link.
All available ID fields will always be returned with every LIST operation, using the ID return format.