---
title: "Element <nlist>"
source: https://dev.pageseeder.com/psml/elements/element-nlist.html
description: "PSML Element reference for <nlist>"
last_updated: 2026-08-07T17:09:54+10:00
tokens: ~671
---

# \<nlist\>

## Summary

Auto-numbered [list](../../reference/glossary/list.md).

Use the [\<list\> element](element-list.md) for unordered lists.

## Usage context

| Element category | block |
| --- | --- |
| PSML level | portable |
| Permitted content | `<item>` |
| Permitted parent |  |
| HTML equivalent | `<ol>` |
| OpenXML equivalent |  |

## Attributes

This element includes the following attributes:

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| start | [xs:positiveInteger](../datatypes/xml_schema_datatypes.md) | no | Number to start the list at |
| type | [list-type](../datatypes/pageseeder_datatypes.md) | no | Type of prefix to display before each item |
| role | [role](../datatypes/pageseeder_datatypes.md) | no | Custom value that can be used for formatting |

### `@start`

This attribute can manually override the first item in the list so the prefix value is not “1”.

### `@type`

Defines the incrementing values that prefix the list items. Possible values are the following:

- `arabic` (default)
- `loweralpha`
- `upperalpha`
- `lowerroman`
- `upperroman`

### `@role`

This attribute can store a semantic or formatting value that can be used for processing, validation or presentation.

## Examples

Nested, numbered lists using the default settings:

```lang-xml

<nlist>
  <item>First</item>
  <item>Second
    <nlist>
      <item>more</item>
      <item>even more</item>
    </nlist>
  </item>
  <item>third</item>
  <item>fourth</item>
</nlist>
```

It renders in HTML as:

1. first
2. second 


  1. more
  2. even more
3. third
4. fourth

## Schema

#### XML Schema

```lang-xml

<xs:element name="nlist">
  <xs:complexType>
    <xs:sequence maxOccurs="unbounded">
      <xs:element ref="item"/>
    </xs:sequence>

    <xs:attribute name="start" type="xs:positiveInteger"/>
    <xs:attribute name="type" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration  value="arabic"/>
          <xs:enumeration value="upperalpha"/>
          <xs:enumeration value="loweralpha"/>
          <xs:enumeration value="upperroman"/>
          <xs:enumeration value="lowerroman"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="role" type="role"/>
  </xs:complexType>
</xs:element>
```

#### Relax Schema

```lang-relax

element nlist {
   attribute type { "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman" }?,
   attribute start { xs:positiveInteger }?,
   attribute role { role }?,
   element item+
}
```

## Compatibility

This element was introduced in the first draft of PSML and is well-supported from PageSeeder 5.1.

