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

# \<uri\>

## Summary

A metadata element providing information about the underlying [URI](../../reference/glossary/uri.md) corresponding to the [PSML](../../reference/glossary/psml.md) [document](../../reference/glossary/document.md).

> **Note:** The only attributes used by the upload are the following: - `@docid` (NOT for external URIs) - `@documenttype` - `@title` - `@folder` (only for external URIs) The only elements used by the upload are the following: - `<description>` - `<labels>`

## Usage context

| Element category | metadata |
| --- | --- |
| PSML level | metadata |
| Permitted content | `<displaytitle> <description> <labels>` |
| Permitted parent | `<documentinfo>` |
| HTML equivalent | no equivalent |
| OpenXML equivalent |  |

## Attributes

This element includes the following attributes

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| archived | `boolean` | no | Whether the document is archived |
| created | `xs:dateTime` | no | Date time the document URI was created in ISO 8601 format (for example, `2012-05-23T15:33:52+10:00`) |
| decodedpath | `xs:string` | no | Document URI path not URL encoded (for example `/ps/acme/specs/my product.xml`) |
| docid | `document-id` | no | User entered, unique document identifier in the `<uri>` element within the [\<documentinfo\> element](element-documentinfo.md). Optional. |
| documenttype | `document-type` | no | Document type (aka document config) |
| external | `boolean` | no | If `true`, this is a URL (external URI) |
| folder | `boolean` | no | If `true`, this is a folder (for external URI only). *Deprecated in PageSeeder v5.99.* |
| host | `xs:string` | no | Document URI host (for example, `mycompany.com`) |
| id | [xs:long](../datatypes/xml_schema_datatypes.md) | no | Unique and permanent identifier, which is the same value as the `id` attribute on the `<document>` element. |
| mediatype | `xs:string` | no | Document media type (for example, `text/html`) |
| modified | `xs:dateTime` | no | Date time the document URI was last modified in ISO 8601 format (for example, `2012-05-23T15:33:52+10:00`) |
| path | `xs:string` | no | Document URI path (for example, `/ps/acme/specs/product.xml`) |
| port | `xs:integer` | no | Document URI port number (for example, `80`,` 443`) |
| scheme | `xs:string` | no | Document URI scheme (for example, `http`, `https`) |
| size | `xs:long` |  | The file size in bytes (non-PSML only) |
| source | `enum` | no | Whether the URL is to the PageSeeder UI or is virtual, can be `pageseeder` or `virtual`. |
| title | `document-title` | no | The title of the URI |
| urltype | `document-type` | no | URL type (external URIs only) |

### `@archived`

A boolean flag indicating whether the document is archived. *INFORMATIONAL - ignored by upload.*

*This attribute was introduced in PSML v1.3 in PageSeeder 5.99.*

### `@created`

Date and time the document URI was created in ISO 8601 date time format including the timezone. Uploading documents does not affect this field. *INFORMATIONAL - ignored by upload.*

For example: `2012-05-23T15:33:52+10:00`

### `@decodedpath`

The path of the document URI in its URL-decoded form. *INFORMATIONAL - ignored by upload.*

For example: `/ps/acme/specs/my product.psml`

### `@docid`

The Doc ID of the document (not used for external URIs) .

It can only contain alphanumeric characters, hyphens and underscores.

> **Note:** The Doc ID is a system-wide ID that is guaranteed to be unique within a URI host, but can be used as a public identifier for the document.

### `@documenttype`

The document type of the document, if any. Used by upload if no `document/@type`.

It can only contain alphanumeric characters and underscores.

### `@external`

A boolean flag indicating whether the URI refers to a PageSeeder URL instead of a regular document. *INFORMATIONAL - ignored by upload.*

### `@folder`

A boolean flag indicating whether the URI refers to a folder instead of a regular document  – only used for URLs (external URIs).

> **Deprecated:** This attribute is deprecated as of PageSeeder v5.99.

### `@host`

The document URI host. *INFORMATIONAL - ignored by upload.*

### `@id`

The URI ID of the document. *INFORMATIONAL - ignored by upload.*

The URI is a unique, system-wide, document ID that is meaningful only to the PageSeeder instance that creates it.

### `@mediatype`

The media type of the document. *INFORMATIONAL - ignored by upload.*

All PSML documents have the media type: `application/vnd.pageseeder.psml+xml`

### `@modified`

The last time the document was modified in ISO 8601 date time format. Any edit, note, reverse xref or version updates this field. *INFORMATIONAL - ignored by upload.*

### `@path`

The URL-encoded path of the document URI. *INFORMATIONAL - ignored by upload.*

For example: `/ps/acme/specs/my%20product.psml`

### `@port`

The port for the document URI. *INFORMATIONAL - ignored by upload.*

### `@scheme`

The scheme for the document URI. *INFORMATIONAL - ignored by upload.*

### `@size`

The file size in bytes (non-PSML documents only). *INFORMATIONAL - ignored by upload.*

### `@source`

Whether the URL is to the PageSeeder UI or is virtual, can be pageseeder or virtual.

*This attribute was introduced in PSML v1.3 in PageSeeder 5.99.*

### `@title`

An optional attribute to specify a title for the document URI.

Generally, it is better to use the `<displaytitle>` element, because for documents without a specific title, the system will fall back to the filename.

### `@urltype`

For external URIs only, this optional attribute can specify the URL type of the document. If this value is present, the upload will use it when there is no`document/@type`.

It can only contain alphanumeric characters and underscores.

*This attribute was introduced in PSML v1.3 in PageSeeder 5.99.*

## Examples



## Schema

### XML Schema

```lang-xml

<xs:element name="uri">
  <xs:complexType>
    <xs:all>
      <xs:element name="displaytitle"
                  type="xs:string"
                  minOccurs="0"/>
      <xs:element name="description"
                  type="xs:string"
                  minOccurs="0"/>
      <xs:element ref="labels" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="archived" type="xs:boolean"/>
    <xs:attribute name="id" type="xs:long"/>

    <xs:attribute name="docid" type="document-id" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:maxLength value="100"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>

    <xs:attribute name="scheme" type="xs:string"/>
    <xs:attribute name="host" type="xs:string"/>
    <xs:attribute name="port" type="xs:integer"/>
    <xs:attribute name="path" type="xs:string"/>
    <xs:attribute name="decodedpath" type="xs:string"/>

    <xs:attribute name="title" type="xs:string">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:maxLength value="250"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>

    <xs:attribute name="created" type="xs:string" use="optional"/>
    <xs:attribute name="modified" type="xs:string" use="optional"/>
    <xs:attribute name="documenttype"
                  type="document-type" 
                  use="optional"/>
    <xs:attribute name="mediatype" type="xs:string" use="optional"/>
    <xs:attribute name="external" type="xs:boolean" use="optional"/>
    <xs:attribute name="folder" type="xs:boolean" use="optional"/>
    <xs:attribute name="size" type="xs:long" use="optional"/>
    <xs:attribute name="urltype" type="xs:string"/>
    <xs:attribute name="source">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="pageseeder" />
          <xs:enumeration value="virtual" />
        </xs:restriction>
      <xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>
```

### Relax Schema

```lang-relax

element uri {
   attribute archived { xs:boolean }?,
   attribute id { xs:long } ,
   attribute docid { document-id { maxLength = "100" } }?,
   attribute scheme { text },
   attribute host { text },
   attribute port { xs:integer },
   attribute path { text },
   attribute decodedpath { text },
   attribute title { text { maxLength = "250"} },
   attribute created { xs:dateTime }?,
   attribute modified { xs:dateTime }?,
   attribute documenttype { document-type }?,
   attribute mediatype { text }?,
   attribute external { xs:boolean },
   attribute folder { xs:boolean },
   attribute size { xs:long },
   attribute urltype { text }?,
   attribute source { text }?,
   element displaytitle?,
   element description?,
   element labels?
}
```

## Compatibility

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

This `archived`, `urlsource` and `source` attributes were introduced in PSML v1.3 in PageSeeder 5.99.

The `folder` attribute is deprecated since PageSeeder v5.99.

