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

# \<xref-fragment\>

## Summary

The `<xref-fragment>` element is a specialized fragment which only contains [block-level cross-references](../../reference/glossary/block_xref.md).

It is used to create a collection or hierarchy of [documents](../../reference/glossary/document.md).

Other kinds of fragment elements are the following:

- `<fragment>`
- `<media-fragment>`
- `<properties-fragment>`

## Usage context

| Element category | structure |
| --- | --- |
| PSML level | portable |
| Permitted content | `<blockxref>` |
| Permitted parent | `<section>` |
| HTML equivalent | no direct equivalent but akin to `<nav>` |
| OpenXML equivalent |  |

## Attributes

This element includes the following attributes:

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| id | [fragment-id](../datatypes/pageseeder_datatypes.md) | yes | The fragment ID |
| type | [fragment-type](../datatypes/pageseeder_datatypes.md) | no | The template type |
| labels | [label-list](../datatypes/pageseeder_datatypes.md) | no | A list of fragment labels |

### `@id`

A identifier for this fragment that is unique within the document.

### `@type`

The type of fragment

## Examples

Following is an example that can be uploaded. Once uploaded, PageSeeder adds all the generated attributes and content.

```lang-xml

<xref-fragment id="5">
  <blockxref href="chapter1.psml" frag="default">
     Chapter 1: Down the Rabbit-Hole
  </blockxref>
  <blockxref href="chapter2.psml" frag="default">
     Chapter 2: The Pool of Tears
  </blockxref>
</xref-fragment>
```

## Schema

### XML Schema

```lang-xml

<xs:element name="xref-fragment">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="blockxref"
                  minOccurs="0"
                  maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="fragment-id" use="required"/>
    <xs:attribute name="type" type="fragment-type"/>
    <xs:attribute name="labels" type="label-list"/>
  </xs:complexType>
</xs:element>
```

### Relax Schema

```lang-relax

element xref-fragment {
   attribute id { fragment-id },
   attribute type { fragment-type }?,
   attribute labels { label-list }?, 
   element blockxref*
}
```

## Compatibility

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

