Used to describe any person, group, or entity associated with theenclosing data element; the role attribute describes the agent's role: e.g., author,editor, accountant, etc.
<xsd:complexType name="agentType"><xsd:annotation><xsd:documentation>Used to describe any person, group, or entity associated with the
enclosing data element; the role attribute describes the agent's role: e.g., author,
editor, accountant, etc.</xsd:documentation></xsd:annotation><xsd:sequence><xsd:choice><xsd:sequence><xsd:element name="prefix" type="nonnullTokenType" minOccurs="0" maxOccurs="unbounded"/><xsd:element name="first" type="nonnullTokenWithSeparatorType" minOccurs="0"/><xsd:element name="middle" type="nonnullTokenWithSeparatorType" minOccurs="0" maxOccurs="unbounded"/><xsd:element name="surname" type="nonnullTokenWithSeparatorType"/><xsd:element name="suffix" type="nonnullTokenWithSeparatorType" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:sequence><xsd:element name="corporateName" type="simpleRichTextType"/><xsd:element name="corporateSuffix" type="simpleRichTextWithSeparatorType" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:choice><xsd:element name="contactInfo" type="contactInfoType" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute name="role" type="agentRoleType"/><!-- custom-role: used to describe a role not in the predefined list; valid only
when the role attribute = "custom" --><xsd:attribute name="customRole" type="nonnullTokenType"/></xsd:complexType>