Structured editing and validation
Overview
The PageSeeder editing model was a conceived after years of developing, implementing, supporting and using all major SGML and XML editing applications using a range of industry-based open document standards. The design objectives were to support the following:
- Implement any type of document structure and semantics,
- Support user defined validation messages,
- Provide context sensitive help for document types,
- Provide a range of editing models including:
- page-based,
- forms,
- pro-forma templates,
- spreadsheet / grid oriented.
- Support for large documents and complex heading, paragraph and cross-reference numbering schemes.
Developers
All the template, configuration files and validation rules for a custom application can be created and maintained through standard IDE tools and Git clients. Deployment can be done through familiar build and testing tools and CI / CD pipelines.
Most templates and configuration files have XML schema defined and examples are available for a range of applications and document types.
Analysts
The PageSeeder document model means that changes to document types are instantly reflected across the system in the editing, search and publishing interface. This makes PageSeeder well-suited for rapid prototyping and proof-of-concept tasks.
The ability to quickly fork an application on the same or a different server helps to test or experiment.
Users
The ability to immediately comment on and update the online help enables users to support each other and improve the material necessary for getting maximum productivity and quality of content. Easy to add, user definable validation rules for formatting, structure and semantics make it easy to quickly address gaps in knowledge or training.
Semantics
Labels
Provide a way to add semantics to different parts of content. They can be configured for use in only designated areas or can be available anywhere.
- Document
- Link
- Paragraph
- Inline
- Comment / task
Document types
Can be used for different purposes:
- Proforma document – acting as a configuration of structured objects to be filled in by users, similar to a form or legal case report.
- Object collection – predefined semantics to be assembled in any order, like a dictionary entry or a blog post.
Document types can assemble a range of functionality including validation, semantics, formatting, processing and structure.
Placeholders
Is an object that refers to a metadata property on a publication. It allows the reference to be updated at any time and can be resolved into the content for publishing. Placeholders are ideal for documents where some aspect might not be finalized until the end of a workflow, such as the legal name of a party to a contract.
Transclusions
A “transclusion” is a document, or document fragment, that has been embeded in another document that continues to reflect changes to the original object. An example use case for a transclusion is something like a copyright notice that might be used in different documents. Or a procedure that applies to different models of equipment. An update to the source will display in every transcluded instance.
This model makes the re-use of content more accessible and manageable.
Document Templates
Publications
A "publication" is a hierarchical collection of PSML component documents joined by "embed" or "transclude" type XRefs.
The core of the feature is a process that seamlessly resolves the publication components into a single document for presentation or numbering.
Numbering
Both <heading>
and <para>
elements support an attribute of @numbered
that is available through the number icon in the editing interface. Any object where
this attribute has a value of "true"
will be subject to processing by the publication config.
Linking
For writers that create a lot of links, customizing the xref-config
improves consistency and productivity by pre-configuring cross-reference (xrefs)
targets into the user interface. This saves writers from having to set values with
each link.
Schematron Support
Overview
Schematron enables developers to implement multiple validation regimes for any document set. For further information, see the article on Validating documents or the Schematron website.