---
# System prepended metadata

title: '[fo:root](https://www.w3.org/TR/xsl/#fo_root)'
tags: [fop, xsl, fo]

---

[TOC]

# [fo:root](https://www.w3.org/TR/xsl/#fo_root)

```
(layout-master-set,declarations?,bookmark-tree?,(page-sequence|page-sequence-wrapper)+)
```

* 一個`fo:layout-master-set`
* 零或一個`fo:declarations`
* 零或一個`fo:bookmark-tree`
* 一或多個`fo:page-sequence`或`fo:page-sequence-wrapper`

| Property | Value | Initial | Inherited | Percentages | Media |
| - | - | - | - | - | - |
| `source-document` | &#60;uri-specification&#62; &#91;&#60;uri-specification&#62;&#93;&#42;或`none`或`inherit` | `none` | ❌ | N/A | all |
| `role` | &#60;string&#62;或&#60;uri-specification&#62;或`none`或`inherit` | `none` | ❌ | N/A | all |
| `id` | &#60;id&#62; | | ❌ | N/A | all |
| `index-class` | &#60;string&#62; | "" | ❌ | N/A | all |
| `index-key` | &#60;string&#62; | none | ❌ | N/A | all |
| `media-usage` | `auto`或`paginate`或`bounded-in-one-dimension`或`unbounded` | `auto` | ❌ | N/A | visual |

## [fo:layout-master-set](https://www.w3.org/TR/xsl/#fo_layout-master-set)

```
(simple-page-master|page-sequence-master|flow-map)+
```

* 一或多個`fo:simple-page-master`或`fo:page-sequence-master`或`fo:flow-map`

### [fo:simple-page-master](https://www.w3.org/TR/xsl/#fo_simple-page-master)

```
(region-body+,region-before?,region-after?,region-start?,region-end?)
```

| Property | Value | Initial | Inherited | Percentages | Media |
| - | - | - | - | - | - |
| `margin-top` | &#60;margin-width&#62;或`inherit` | `0pt` | ❌ | refer to width of containing block | visual |
| `margin-bottom` | &#60;margin-width&#62;或`inherit` | `0pt` | ❌ | refer to width of containing block | visual |
| `margin-left` | &#60;margin-width&#62;或`inherit` | `0pt` | ❌ | refer to width of containing block | visual |
| `margin-right` | &#60;margin-width&#62;或`inherit` | `0pt` | ❌ | refer to width of containing block | visual |
| `space-before` | &#60;space&#62;或`inherit` | space.minimum=0pt, .optimum=0pt, .maximum=0pt, .conditionality=discard, .precedence=0 | ❌ | N/A | visual |
| `space-after` | &#60;space&#62;或`inherit` | space.minimum=0pt, .optimum=0pt, .maximum=0pt, .conditionality=discard, .precedence=0 | ❌ | N/A | visual |
| `start-indent` | &#60;length&#62;或&#60;percentage&#62;或`inherit` | `0pt` | ✅ | refer to inline-progression-dimension of containing reference-area | visual |
| `end-indent` | &#60;length&#62;或&#60;percentage&#62;或`inherit` | `0pt` | ✅ | refer to inline-progression-dimension of containing reference-area | visual |
| `master-name` | &#60;name&#62; | an empty name | ❌ | N/A | visual |
| `page-height` | `auto`或`indefinite`或&#60;length&#62;或`inherit` | `auto` | ❌ | N/A | visual |
| `page-width` | `auto`或`indefinite`或&#60;length&#62;或`inherit` | `auto` | ❌ | N/A | visual |
| `reference-orientation` | `0`或`90`或`180`或`270`或`-90`或`-180`或`-270`或`inherit` | `0` | ❌ | N/A | visual |
| `writing-mode` | `inherit`或其它 | `lr-tb` | ✅ | N/A | visual |

#### `fo:region-body+`

#### `fo:region-before?`

#### `fo:region-after?`

#### `fo:region-start?`

#### `fo:region-end?`

### [fo:page-sequence-master](https://www.w3.org/TR/xsl/#fo_page-sequence-master)

#### `fo:single-page-master-reference`

#### `fo:repeatable-page-master-reference`

#### `fo:repeatable-page-master-alternatives`

### ~~`fo:flow-map`~~

* The `fo:flow-map` is used to specify the assignment of flows to regions.
* The `fo:flow-map` formatting object generates no area directly. It is used by the `fo:page-sequence` formatting object to assign flows to regions. Each `fo:flow-assignment` child of the `fo:flow-map` defines a source list and a target list. The source list is a sequence of **flow-names** whose corresponding fo:flow objects (in the referring `fo:page-sequence`) are treated as a single `fo:flow` for composition purposes. The target list is a sequence of **region-names** which identify the region or regions on each page which are used for the source content.
  > Note: This is independent of the actual sequence of pages, which is generated as it has always been generated using the `fo:simple-page-master`, and `fo:page-sequence-master` objects referred to by the `master-reference` property of the `fo:page-sequence`.
* For each `fo:flow-assignment` child of the `fo:flow-map`, having an `fo:flow-source-list` child **S** and an `fo:flow-target-list` child **T**, we say that the `fo:flow-map` assigns each of the flows referenced by the `fo:flow-name-specifier` children of **S** to the regions referenced by the `fo:region-name-specifier` children of **T**.

#### ~~`fo:flow-assignment`~~

* The `fo:flow-assignment` is used to specify the assignment of one sequence of flows to a sequence of regions.
* The `fo:flow-assignment` formatting object generates no area directly. It is used by the fo:page-sequence formatting object to assign flows to regions.
* The children of the `fo:flow-assignment` are a source-list and target-list containing constraints for assigning one sequence of flows to a sequence of regions.

##### ~~`fo:flow-source-list`~~

* The fo:flow-source-list is used to specify the sequence of flows to assign in a particular fo:flow-assignment.
* The fo:flow-source-list formatting object generates no area directly. It is used by the fo:page-sequence formatting object to assign flows to regions.
* The children of the fo:flow-source-list are a sequence of flow-name-specifiers identifying flows of the sequence. These flows must be either all fo:flow formatting objects or all fo:static-content formatting objects. It is an error if they are a mixture.

###### ~~`fo:flow-name-specifier`~~

* The fo:flow-name-specifier is used to specify one flow in a source-list.
* The fo:flow-name-specifier formatting object generates no area directly. It is used by the fo:page-sequence formatting object to assign flows to regions.
* The flow-name-reference property specifies the name of a flow in the source sequence.

##### ~~`fo:flow-target-list`~~

* The `fo:flow-target-list` is used to specify the sequence of regions to which flows are assigned in a particular `fo:flow-assignment`.
* The `fo:flow-target-list` formatting object generates no area directly. It is used by the `fo:page-sequence` formatting object to assign flows to regions.
* The children of the `fo:flow-target-list` are a sequence of `fo:region-name-specifiers` identifying regions in the sequence.

###### ~~`fo:region-name-specifier`~~

* The `fo:region-name-specifier` is used to specify one region in a `target-list`.
* The `fo:region-name-specifier` formatting object generates no area directly. It is used by the `fo:page-sequence` formatting object to assign flows to regions.
* The `region-name-reference` property specifies the name of a region in the target sequence.

## fo:declarations

```
(color-profile)*
```

* 零或多個`fo:color-profile`

### fo:color-profile

| Property | Value | Initial | Inherited | Percentages | Media |
| - | - | - | - | - | - |
| `src` | &#60;uri-specification&#62;或`inherit` | `none` | ❌ | N/A | visual |

## `fo:bookmark-tree`

## `fo:page-sequence`

## `fo:page-sequence-wrapper` 

###### tags: `fop` `xsl` `fo`