# PageSeeder Developer > Reference documentation, installation and configuration guides, the PSML format and the PageSeeder API, for developers building on PageSeeder. Full page content for the entire site: https://dev.pageseeder.com/llms-full.txt ## [Download](https://dev.pageseeder.com/download.md): Central repository for PageSeeder customization resources including tools, sample code, and documentation. Ideal for developers looking to extend PageSeeder functionality. - [Installers](https://dev.pageseeder.com/download/install.md): Provides download links for PageSeeder installers and packages across versions, with guidance on installation and upgrade procedures. Recommends using the latest version for new deployments. - [Documents](https://dev.pageseeder.com/download/documents.md): A collection of quick references, cheat sheets, presentations, and other documentation files organized for easy access and lookup. ## [PSML](https://dev.pageseeder.com/psml.md): PSML is PageSeeder's markup language for representing document content and metadata. It uses structural, presentation, and metadata elements organized in XML format with .psml file extension. - [PSML elements](https://dev.pageseeder.com/psml/elements.md): A comprehensive reference guide listing all PSML v1.4 elements and attributes, organized into categories including structural, metadata, block-level, character-style, and context-specific elements for PageSeeder documents. - [PSML datatypes](https://dev.pageseeder.com/psml/datatypes.md): This document describes the datatypes used for PSML attribute values, including XML schema types and PageSeeder-specific datatypes that extend XML primitives with additional constraints. - [PageSeeder datatypes](https://dev.pageseeder.com/psml/datatypes/pageseeder_datatypes.md): PageSeeder datatypes extend primitive types with patterns or enumerated values for use in XML documents. The guide defines over 30 datatypes including identifiers, alignment options, list types, and cross-reference configurations with their constraints and valid values. - [XML Schema datatypes](https://dev.pageseeder.com/psml/datatypes/xml_schema_datatypes.md): This document summarizes XML Schema datatypes used in PageSeeder, including boolean, dateTime, integer, long, NCName, positiveInteger, and string, with definitions and constraints for each type. - [Universal format](https://dev.pageseeder.com/psml/universal_format.md): The Universal format is a file organization system in PageSeeder designed to improve data portability. It defines three levels: metadata format for non-PSML files, portable format for maximum fidelity, and processed format for output integration. - [Universal Processed Format](https://dev.pageseeder.com/psml/universal_format/universal_processed_format.md): Universal Processed Format is the refined output of processing Universal Portable Format, involving metadata stripping, xref resolution, numbering generation, and image reference handling. It cannot be re-imported into PageSeeder. - [Universal Metadata Format](https://dev.pageseeder.com/psml/universal_format/universal_metadata_format.md): The Universal Metadata Format is a metadata-only XML structure for non-PSML files, featuring a root element with level="metadata", documentinfo, and optional metadata sections without content or TOC elements. - [Universal Portable Format](https://dev.pageseeder.com/psml/universal_format/universal_portable_format.md): Universal Portable Format is a ZIP-based packaging standard for transporting PageSeeder documents and images between servers, using relative paths and a manifest file for standalone, server-independent representation. ## [API](https://dev.pageseeder.com/api.md): PageSeeder's REST API enables external applications to programmatically access functionality equivalent to the user interface. All web services are documented with format support and version information, with standardized output and error handling. - [Services](https://dev.pageseeder.com/api/services.md): PageSeeder Web Service API documentation covering version 5.0+. Explains URL structure with prefixes, patterns, and variables for accessing data and functionality through services using HTTP methods. - [API elements](https://dev.pageseeder.com/api/elements.md): Comprehensive reference guide for XML elements returned by PageSeeder Web services, including details on output format and element structure. - [API Usage](https://dev.pageseeder.com/api/usage.md): Reference guide for Web Service API parameters, output formats, and error codes, including documentation on handling asynchronous processes and webhooks. - [Parameters](https://dev.pageseeder.com/api/usage/parameters.md): Comprehensive guide to PageSeeder service parameters, covering basic and common datatypes, constraints, format requirements, paging mechanisms, and API versioning conventions. - [Output format](https://dev.pageseeder.com/api/usage/output.md): This document explains how PageSeeder services return data in three formats: XML (default), JSON (same data reformatted with camelCase attributes), and CSV (subset of information with simplified dates). - [Error handling](https://dev.pageseeder.com/api/usage/error_codes.md): This document describes error codes and responses returned by PageSeeder services. It covers core error codes (0x01xx through 0x08xx) with their HTTP status codes, XML/JSON response formats, and explanations for scenarios like permission failures, missing parameters, and generator errors. - [Asynchronous process](https://dev.pageseeder.com/api/usage/asynchronous_process.md): Asynchronous processes in PageSeeder services handle large data operations by returning HTTP 202 and creating threads that write results to logs. Thread status progresses through transitory states (initialised, inprogress, error, warning) to final states (completed, failed, cancelled). Multiple APIs manage threads at server or group levels. - [Webhooks](https://dev.pageseeder.com/api/usage/webhooks.md): Webhooks enable PageSeeder to notify client applications via HTTP POST requests when data changes. Configurable by administrators, they support various event types across projects, groups, and servers in XML or JSON format. ## [Guide](https://dev.pageseeder.com/guide.md): A developer's guide to PageSeeder covering installation, configuration, document management, data modeling, and publishing capabilities with the Publish engine. - [Installation](https://dev.pageseeder.com/guide/installation.md): This document outlines the requirements for installing PageSeeder locally, including minimal system specifications, supported operating systems, database options, and browser compatibility. It also covers licensing options and version support timelines. - [New installation](https://dev.pageseeder.com/guide/installation/new_installation.md): This document provides prerequisites and initial setup guidance for installing PageSeeder, including database configuration requirements, critical backup procedures, port usage information, and operating system-specific installation options. - [Upgrading](https://dev.pageseeder.com/guide/installation/upgrading.md): This document provides instructions for upgrading an existing PageSeeder installation, including backup requirements and version-specific upgrade procedures for versions 5.6, 5.x, and 6.x. - [Moving installations](https://dev.pageseeder.com/guide/installation/migrating.md): A guide for moving PageSeeder installations to new servers or cloned virtual machines, covering installation, database restoration, file copying, configuration updates, and domain name changes. - [Configuring MySQL](https://dev.pageseeder.com/guide/installation/mysql.md): Guide for configuring MySQL 8.4 on Rocky 9 for PageSeeder v6+, covering installation, security, JDBC driver setup, performance tuning, and database backup/restore procedures. - [Configuring PostgreSQL](https://dev.pageseeder.com/guide/installation/configuring_postgresql.md): This guide provides step-by-step instructions for configuring PostgreSQL with PageSeeder, including installation, JDBC driver setup, performance tuning, and database backup/restore procedures for both Linux and Windows systems. - [Configuring a proxy](https://dev.pageseeder.com/guide/installation/configuring_a_proxy.md): Guide to configuring NGINX as a reverse proxy for PageSeeder on Linux, including installation steps, non-SSL and SSL configurations, maintenance page setup, and SELinux troubleshooting. - [Configuring SSL](https://dev.pageseeder.com/guide/installation/configuring_ssl.md): This guide explains how to configure SSL encryption for PageSeeder by generating a private key, creating or obtaining an SSL certificate, and installing it on either NGINX or Tomcat servers, including self-signing options and format conversion procedures. - [Monitoring PageSeeder](https://dev.pageseeder.com/guide/installation/monitoring_pageseeder.md): This document explains how to use PageSeeder's dbmonitor health check endpoint to verify that core infrastructure components (servlet container, web server, and database) are functioning and communicating properly. - [Release notes](https://dev.pageseeder.com/guide/installation/release_notes.md): PageSeeder Release Notes index documenting change history across versions from 5.0 (April 2012), including legacy versions and known issues related to Java upgrades. - [Configuration](https://dev.pageseeder.com/guide/configuration.md): Comprehensive guide to configurable PageSeeder components including server properties, publications, document types, media handling, URLs, system messages, organization customization, developer tools, member details, and webhooks. - [Properties](https://dev.pageseeder.com/guide/configuration/properties.md): This document explains system properties in PageSeeder, covering name-value pairs that configure email, database, and network settings. It describes server properties stored in configuration files and warns against modifying system default values. - [Publications](https://dev.pageseeder.com/guide/configuration/publication_types.md): A comprehensive guide to PageSeeder publications, hierarchical collections of PSML documents joined by embed/transclude xrefs. Covers creation, configuration, numbering schemes, table of contents management, versioning, and DOCX export coordination. - [Documents](https://dev.pageseeder.com/guide/configuration/psml.md): Configuration options for PSML documents including validation, styles, templates, creation, editing and publishing - [Media](https://dev.pageseeder.com/guide/configuration/media_types.md): Media types in PageSeeder enable storage and extraction of metadata from non-PSML files including Microsoft Office, PDF, and image formats. Metadata can be edited, bulk-processed, and configured using templates. - [URLs](https://dev.pageseeder.com/guide/configuration/url_types.md): URL types in PageSeeder enable storing and extracting metadata from URLs using PSML properties, with configuration through global template files for domain, media type, and extraction rules. - [Organization](https://dev.pageseeder.com/guide/configuration/organization_customization.md): This document describes how to customize PageSeeder server settings through configuration files, including email formatting, UI appearance, legal agreements, and security restrictions for organizations. - [Tools](https://dev.pageseeder.com/guide/configuration/developer_tools.md): Developer tools in PageSeeder enable administrators and developers to manage template files, document types, and UI customization. Access via Administration menu for project-specific configurations and exports. - [Emails](https://dev.pageseeder.com/guide/configuration/emails.md): PageSeeder emails can be customized using templates - [Member details](https://dev.pageseeder.com/guide/configuration/custom_member_details.md): Custom member details pages allow group managers to capture specific information about members using up to 15 customizable fields per group. Administrators configure these through the project template settings, creating XML files that control how member data is shared or restricted across groups. - [Documents](https://dev.pageseeder.com/guide/documents.md): This document covers customizing document types to control structure, creation, editing, and validation, sharing documents across groups for collaborative comments and cross-references, and using Schematron for content validation. - [Customizing documents](https://dev.pageseeder.com/guide/documents/customizing_documents.md): PageSeeder's PSML format supports customizable document types that define structure, metadata, and content organization. Projects can create custom types with configurable sections, properties, and validation rules for enhanced document management and editing workflows. - [Validating documents](https://dev.pageseeder.com/guide/documents/validating_pageseeder_documents.md): PageSeeder uses Schematron, an ISO standard XML validation technology, to provide clear error messages and prioritize document quality. It supports single-file and batch validation, with configurable schemas and special URLs for accessing additional data during validation. - [Shared documents](https://dev.pageseeder.com/guide/documents/shared_documents.md): Shared documents enable multiple groups to view, comment on, and edit content through folder sharing. Documents belong to an owner group but can be accessed by sharing groups, with changes re-indexed across all groups. - [Document modeling](https://dev.pageseeder.com/guide/document_modeling.md): This document introduces PageSeeder concepts including primitives, objects, and modeling guidance for implementing solutions with document structures, requirements, patterns, and restrictions. - [PageSeeder primitives](https://dev.pageseeder.com/guide/document_modeling/pageseeder_primitives.md): PageSeeder primitives are fundamental building blocks including URIs (addressable entities), XLinks (associations between content and locations), Members (user accounts), Groups (social units), and Locators (anchor points). Each has system and public identifiers with specific attributes for managing documents, workflows, and permissions. - [PageSeeder objects](https://dev.pageseeder.com/guide/document_modeling/pageseeder_objects.md): PageSeeder objects are specialized primitives categorized as URIs (documents, folders, files), Locators (document fragments), XLinks (comments, tasks, versions, workflows), and Groups (projects). The flexible primitives-to-objects architecture has remained stable for 20 years while supporting evolving web environments. - [Requirements](https://dev.pageseeder.com/guide/document_modeling/requirements.md): This document outlines how to capture requirements for PageSeeder modeling, covering semantic data models with entities and relationships, system requirements across business and technical dimensions, and use cases to identify actor interactions. - [Modeling](https://dev.pageseeder.com/guide/document_modeling/data_modeling.md): A guide to translating requirements into PageSeeder solutions using use cases, semantic data models, and system requirements. Covers prototyping strategies, member and group identification, URI organization, document design, and task/comment management. - [Patterns](https://dev.pageseeder.com/guide/document_modeling/patterns.md): Patterns for modeling data in PageSeeder across three main areas: hierarchical content structures like books and reports, entity and relationship modeling for fielded table content, and website architecture abstractions. - [Restrictions](https://dev.pageseeder.com/guide/document_modeling/restrictions.md): This document outlines PageSeeder's PSML document restrictions, including recommended limits on fragment size (800 words), document fragments (500), cross-references (3000), and file organization to optimize performance. - [Publishing](https://dev.pageseeder.com/guide/publishing.md): Publishing explains how PageSeeder outputs to different formats using multi-stage batch processing via the Ant-based Publish Engine, including components, parameters, messages, and Ant tasks for document transformation. - [Using Ant](https://dev.pageseeder.com/guide/publishing/using_ant.md): This guide explains how to use Ant scripts in PageSeeder for upload, process, export, and publish tasks, with detailed setup instructions for Windows and Linux environments, including required dependencies and configuration examples. - [Ant API](https://dev.pageseeder.com/guide/publishing/ant_api.md): The Ant API enables batch processing in PageSeeder through Apache Ant tasks, allowing automation at server, project, group, or document levels. It builds on core PageSeeder tasks, coordination libraries, and optional extensions for specialized functionality. ## [Reference](https://dev.pageseeder.com/reference.md): Comprehensive developer resources section featuring tutorials, cheat sheets, online tools, and sample configuration files. Downloadable PDFs available in the download area. - [Glossary](https://dev.pageseeder.com/reference/glossary.md) - [Folders and files](https://dev.pageseeder.com/reference/folders_and_files.md) - [Config folder](https://dev.pageseeder.com/reference/folders_and_files/config_folder.md) - [State folder](https://dev.pageseeder.com/reference/folders_and_files/state_folder.md) - [Default template folder](https://dev.pageseeder.com/reference/folders_and_files/default_template.md) - [Project template folder](https://dev.pageseeder.com/reference/folders_and_files/project_template.md) - [Documents folder](https://dev.pageseeder.com/reference/folders_and_files/documents_folder.md) - [Other files](https://dev.pageseeder.com/reference/folders_and_files/other_files.md) - [Index](https://dev.pageseeder.com/reference/index.md) - [Index field definitions](https://dev.pageseeder.com/reference/index/field_definitions.md) - [Index fields](https://dev.pageseeder.com/reference/index/index_fields.md) - [Legend & explanations](https://dev.pageseeder.com/reference/index/legend_and_explanations.md) - [Sample Code](https://dev.pageseeder.com/reference/sample_code.md) - [XSLT](https://dev.pageseeder.com/reference/sample_code/xslt.md): This document provides XSLT sample code and resources for running XSLT transformations from Eclipse or command line, including a starter template for creating new pages with PageSeeder layouts. - [PSML](https://dev.pageseeder.com/reference/sample_code/psml.md): This document provides PSML code templates and samples, including basic document structure, tables, properties fragments, cross-references, and fragment templates for PageSeeder document creation and editing. - [Schematron](https://dev.pageseeder.com/reference/sample_code/schematron.md): Schematron sample code and patterns for validating PageSeeder documents, including boilerplate schemas, PSML best practices, cross-reference checks, term usage tracking, document assignment validation, debugging techniques, and quickfix implementation examples. - [ANT](https://dev.pageseeder.com/reference/sample_code/ant.md) - [CSS](https://dev.pageseeder.com/reference/sample_code/css.md) - [Berlioz](https://dev.pageseeder.com/reference/sample_code/berlioz.md) - [Advanced](https://dev.pageseeder.com/reference/advanced.md) - [Schemas](https://dev.pageseeder.com/reference/advanced/schemas.md) - [Website Engine](https://dev.pageseeder.com/reference/advanced/website.md): Berlioz is an open-source web server that dynamically serves PSML and XML as HTML using XSLT, enabling rapid prototyping and experimentation with changing data. ## [Get started](https://dev.pageseeder.com/get_started.md): An introduction for new developers to PageSeeder that encourages exploring tutorials to understand key concepts, terminology, and platform aspects before beginning implementation. - [New developers](https://dev.pageseeder.com/get_started/new_developers.md): A guide for new PageSeeder developers covering essential terminology, setup requirements, project creation, system architecture, PSML document markup, and style guidelines. - [1. Before you start](https://dev.pageseeder.com/get_started/new_developers/1_before_you_start.md): A setup guide for PageSeeder developers covering installation verification, version checking, administrator sign-in, and essential concepts including servers, projects, and groups for content management. - [2. First steps in PageSeeder](https://dev.pageseeder.com/get_started/new_developers/2_first_steps_in_pageseeder.md): A guide for administrators on creating their first PageSeeder project and group, covering dashboard navigation, form completion, and character restrictions. - [3. Overall Architecture](https://dev.pageseeder.com/get_started/new_developers/3_overall_architecture.md): PageSeeder's overall architecture overview covering high-level deployment on one or two physical servers, data representations including relational databases with JDBC, Apache Lucene for full-text indexing, and native file system storage. - [4. PageSeeder markup language](https://dev.pageseeder.com/get_started/new_developers/4_pageseeder_markup_language.md): PSML is PageSeeder's markup language designed as a straightforward, extensible abstraction for expressing documents with semantics and structure. It enables editing, versioning, publishing, indexing and searching without requiring code. - [5. Style Guide](https://dev.pageseeder.com/get_started/new_developers/5_style_guide.md): General guidelines for the writing style for documents to be published on the developer website - [Tutorials](https://dev.pageseeder.com/get_started/tutorials.md): Tutorials is a resource guide that provides practical solutions to common problems through simple, step-by-step examples designed to help users quickly find guidance.