Full looseleaf publishing

Input leaf comparison

Full looseleaf publishing works by allocating the document content to one or more document leaves. When the document is modified, TopLeaf compares the content of each leaf with the content of the same leaf in the previous release. Any leaf containing changed content is marked for inclusion in the release.

The following rules apply when determining the changed leaf set:

  • The content and rules defined within any associated document schema, or internal and external DTD subset is ignored;

  • Tag attributes, if present, are compared in lexicographic order;

  • Empty elements are compared as a start tag / end tag pair;

  • Whitespace within attribute values is normalized;

  • Character references are normalised;

  • References to ISO 8879 entities are resolved to an equivalent Unicode code point value;

  • Changes within XML content referenced via entities are ignored;

  • Changes within comments and processing instructions are ignored;

  • Whitespace is only regarded as significant when it follows non white space content declared at the same tag level. All other white space is ignored.

[Note] Note

Some aspects of canonicalization may not be applied to tags that declare a namespace.

Page folio format

The page folio format is declared when setting up a partition mainwork. It cannot be redefined in a subsequent update.

For content managed using a partition based numbering scheme, the maximum length of a page folio, including folio level separators, must not exceed 32 characters. For content managed using a section based numbering scheme, the combined length of the section prefix and sequence number, including folio level separators, must not exceed 32 characters.

The following table lists the level style and maximum value for each page folio format:

Folio Format Level Style and Maximum Page (Front)
Primary Level 1 Level 2 Level 3 Level 4
999/9/9 1 – 32000 1 – 999 1 – 999 1 – 999 1 – 999
999(ab) 1 – 32000 a–z, za–zz, zza–zzz,...
9,999/9/9 1 – 32,000 1 – 999 1 – 999 1 – 999 1 – 999
XII/9 I,II,III, ..., CMXCIX, M 1 – 999 1 – 999 1 – 999 1 – 999
xii/9 i,ii,iii, ..., cmxcix, m 1 – 999 1 – 999 1 – 999 1 – 999
[Note] Note

The 999(ab) folio format supports a single point page level. The maximum point page value for this format is 512.

Point page level separators

The point page level separator identifies either a single punctuation character inserted before each point page level or a bracket character pair that encloses each point page level. The separator must be a punctuation character defined within the US-ASCII character set. It is assigned from a TopLeaf stylesheet using the <leaf-settings/> directive.

The following point page level separators identify a bracket pair level separator character:

Code Name
U+0028 LEFT PARENTHESIS
U+0029 RIGHT PARENTHESIS
U+003C LESS-THAN-SIGN
U+003E GREATER-THAN-SIGN
U+005B LEFT SQUARE BRACKET
U+005C RIGHT SQUARE BRACKET
U+007B LEFT CURLY BRACKET
U+007D RIGHT CURLY BRACKET

Processing instructions

The following full looseleaf processing instructions are reserved for use by TopLeaf:

PI name Reason
<?TL ...?>

Looseleaf boundary markers

<?TLeop ... ?>
<?TLeol ... ?>
<?lle ... ?>

Scanned leaf boundary

<?lja ...?>

Legacy leaf header markers

<?ljd ...?>
<?nop ...?>

It is not possible to map a reserved processing instruction.