---
title: "Element <author>"
source: https://dev.pageseeder.com/api/elements/element_author.html
description: "API Element reference for <author>"
last_updated: 2026-08-07T17:09:54+10:00
tokens: ~842
---

# \<author\>

## Summary

The author of a [comment](../../reference/glossary/comment.md), draft, edit or event which might or might not be a PageSeeder [member](../../reference/glossary/member.md).

There are two possible models for the author element:

- If the author is a PageSeeder member, the model inherits from the basic representation of a member.
- If the author is not a PageSeeder member, the email address and/or full name of the person is included.

## Usage context

| Permitted content | `<fullname>` |
| --- | --- |
| Permitted parent | `<comment> <draft> <edit> <event>` |

## Attributes

This element inherits the following attributes from the [\<member\>](element_member.md) element.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| attachments | `boolean` | no | If the user receives email attachments |
| email | `email` | no | The email address of the member |
| externalid | `xs:string` | no | An external identifier for the member |
| firstname | `xs:string` | if member | The first name of the member |
| id | `xs:long` | if member | The ID of the member in PageSeeder |
| locked | `boolean` | no | If the member account is locked |
| onvacation | `boolean` | no | If the member email option is set to ‘on vacation’ |
| status | `enum` | if member | The current status of the member |
| surname | `xs:string` | if member | The surname of the member |
| username | `xs:string` | if member | The username of the member |

> **Warning:** The attributes are only inherited from the member if the author is a member. When parsing \<author\> elements, it can be safely assumed that if the @id attribute is present then the @firstname, @surname, @username and @status also are.

## Examples

## Schema

### XML Schema

See [XML Schema for element \<member\>](element_member.md) for a complete definition.

```lang-relax

<xs:element name="author" type="author"/>

<xs:complexType name="author">
  <xs:sequence>
    <xs:element name="fullname" type="xs:string" minOccurs="0"/>
  </xs:sequence>
  <xs:attribute name="attachments" type="xs:boolean"/>
  <xs:attribute name="email"       type="member-email"/>
  <xs:attribute name="externalid"  type="member-externalid"/>
  <xs:attribute name="firstname"   type="member-name"/>
  <xs:attribute name="id"          type="id"/>
  <xs:attribute name="locked"      type="xs:boolean"/>
  <xs:attribute name="onvacation"  type="xs:boolean"/>
  <xs:attribute name="status"      type="member-status"/>
  <xs:attribute name="surname"     type="member-name"/>
  <xs:attribute name="username"    type="member-username"/>
</xs:complexType>
```

### Relax Schema

```lang-relax

element member {
   attribute activated   { xs:dateTime }?,
   attribute attachments { xs:boolean }?,
   attribute created     { xs:dateTime }?,
   attribute email       { text { maxLength = "100"} }?,
   attribute externalid  { text { maxLength = "100"} }?,
   attribute firstname   { text { maxLength = "50"}}?,
   attribute id          { xs:long }?,
   attribute locked      { xs:boolean }?,
   attribute onvacation  { xs:boolean }?,
   attribute status      { "activated" | "set-password" | "unactivated" }?,
   attribute surname     { text { maxLength = "50"}}?,
   attribute username    { text { maxLength = "100"}}?,
   element fullname { text }?
}
```

## Compatibility

No change since initial API release.

