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 imposes the following limits on each full looseleaf page folio level:

Folio Format Maximum value
Primary Level 1 Level 2 Level 3 Level 4
999/9/9 1 – 32000 1 – 999 1 – 999 1 – 999 1 – 999
999(a) 1 – 32000 a – z, za – zz, zza – zzz,...
999(abcd) 1 – 32000 a – z a – z a – z a – z
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 page folio format is assigned when you create a full looseleaf mainwork. It cannot be changed in a subsequent update.

The maximum length of a page folio, including the leaf section prefix and folio level separators, must not exceed 32 characters.

The 999(a) page folio format supports the use of a single point page level. If your full looseleaf content requires more than one alpha point page level then you should select the 999(abcd) page folio format when setting up a partition mainwork.

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

The point page level separator must be assigned when you create a full looseleaf mainwork. It cannot be changed in a subsequent update.

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.