Skip to main content

 PSML

A complete reference of PageSeeder's markup language PSML

<uri>

Summary

A metadata element providing information about the underlying URI corresponding to the PSML document.

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 categorymetadata
PSML levelmetadata
Permitted content<displaytitle> <description> <labels>
Permitted parent<documentinfo>
HTML equivalentno equivalent
OpenXML equivalent

Attributes

This element includes the following attributes

NameTypeRequiredDescription
archivedbooleannoWhether the document is archived
createdxs:dateTimenoDate time the document URI was created in ISO 8601 format (for example, 2012-05-23T15:33:52+10:00)
decodedpathxs:stringnoDocument URI path not URL encoded (for example /ps/acme/specs/my product.xml)
dociddocument-idnoUser entered, unique document identifier in the <uri> element within the <documentinfo> element. Optional.
documenttypedocument-typenoDocument type (aka document config)
externalbooleannoIf true, this is a URL (external URI)
folderbooleannoIf true, this is a folder (for external URI only). Deprecated in PageSeeder v5.99.
hostxs:stringnoDocument URI host (for example, mycompany.com)
idxs:longnoUnique and permanent identifier, which is the same value as the id attribute on the <document> element.
mediatypexs:stringnoDocument media type (for example, text/html)
modifiedxs:dateTimenoDate time the document URI was last modified in ISO 8601 format (for example, 2012-05-23T15:33:52+10:00)
pathxs:stringnoDocument URI path (for example, /ps/acme/specs/product.xml)
portxs:integernoDocument URI port number (for example, 80, 443)
schemexs:stringnoDocument URI scheme (for example, http, https)
sizexs:longThe file size in bytes (non-PSML only)
sourceenumnoWhether the URL is to the PageSeeder UI or is virtual, can be pageseeder or virtual.
titledocument-titlenoThe title of the URI
urltypedocument-typenoURL 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.

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).

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 nodocument/@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

<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

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.

Created on , last edited on