io7m | single-page | multi-page | xstructural 2.2.0-SNAPSHOT
1. Language
Previous
1. Language
Up
1.2. Document
Next

# 1.1. Description

- 1.1.1. Overview
- 1.1.2. Schema
- 1.1.3. Versioning

## 1.1.1. Overview

1
The xstructural package provides an XSLT 2.0 implementation of the structural documentation language.
2
In contrast to other systems such as DocBook, the structural language only defines elements concerning the structure of the document and not the semantics of the elements. The intention is that higher level languages will produce structural documents as output and then use the provided stylesheets to get various services such as table of contents generation, chapter numbering, footnotes, et cetera, without having to re-implement all of those features for each new language.

## 1.1.2. Schema

1
The following sections provide informative descriptions of the available language elements. The actual language is defined as an XSD schema, and this is provided in the Schema section.

## 1.1.3. Versioning

1
The structural language is designed in a manner that is intended to conform to Semantic Versioning 2.0.0. More specifically:

### 1.1.3.2. Versioning Rules

- If a document D was written using schema version (x, y), where x is the schema major version and y is the schema minor version, then if the schema version declaration in D is changed to (x, z) for any existing schema minor version z, then D is guaranteed to validate against the new schema version.
- If a document D was written using schema version (x, y), where x is the schema major version and y is the schema minor version, then if the schema version declaration in D is changed to (a, b) for any existing schema major version a and minor version b such that a ≠ x, then D is NOT guaranteed to validate against the new schema version.

3
Informally: Minor version changes indicate compatible changes; if you update your document to use the latest minor version of the same major version schema, then you will not have to modify your document to get it to validate. Major version changes indicate incompatible changes; if you update your document to use the latest major version schema, then you may have to make changes to your document in order to get it to validate.
1. Language
Previous
1. Language
Up
1.2. Document
Next
io7m | single-page | multi-page | xstructural 2.2.0-SNAPSHOT