3.2. The corresponding FO tree

In the listing below the notation has been shortened; .[n] denotes the nth child, for which the full notation is .children.elementData[n] . A number of static members are not shown.

The root:

 root = "fo:root at line 2:44"

 root = {
    layoutMasterSet: instance of org.apache.fop.fo.pagination.LayoutMasterSet(id=1089)
    pageSequences: instance of java.util.ArrayList(id=1102)
    runningPageNumberCounter: 0
    foTreeControl: instance of org.apache.fop.apps.Document(id=1103)
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1104)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1105)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: instance of java.util.ArrayList(id=1106)
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 2
    org.apache.fop.fo.FObj.column: 44
    org.apache.fop.fo.FONode.parent: null
    org.apache.fop.fo.FONode.name: "fo:root"
}

The root has no properties; the namespace nodes do not result in properties:

 root.propertyList = "{}"

The root has two children:

 root.children = "[
  fo:layout-master-set at line 3:25
  fo:page-sequence at line 12:49
]"

The first child of root is the layout master set:

 root.[0] = "fo:layout-master-set at line 3:25"

 root.[0] = {
    simplePageMasters: instance of java.util.HashMap(id=1111)
    pageSequenceMasters: instance of java.util.HashMap(id=1112)
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1113)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1114)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: instance of java.util.ArrayList(id=1115)
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 3
    org.apache.fop.fo.FObj.column: 25
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.Root(id=1088)
    org.apache.fop.fo.FONode.name: "fo:layout-master-set"
}

 root.[0].propertyList = "{}"

The layout master set contains a simple page master:

 root.[0].children = "[
  fo:simple-page-master at line 8:28
]"

 root.[0].[0] = "fo:simple-page-master at line 8:28"

 root.[0].[0] = {
    regions: instance of java.util.HashMap(id=1120)
    masterName: "simpleA4"
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1122)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1123)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: null
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 8
    org.apache.fop.fo.FObj.column: 28
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.LayoutMasterSet(id=1089)
    org.apache.fop.fo.FONode.name: "fo:simple-page-master"
}

The properties of the simple page master:

 root.[0].[0].propertyList = "{
  master-name=org.apache.fop.fo.StringProperty@1958bf9
  margin-top=org.apache.fop.fo.LengthProperty@118958e
  margin-right=org.apache.fop.fo.LengthProperty@102b2b6
  margin-bottom=org.apache.fop.fo.LengthProperty@22d166
  margin-left=org.apache.fop.fo.LengthProperty@1e1962d
  page-width=org.apache.fop.fo.LengthProperty@14a75bb
  page-height=org.apache.fop.fo.LengthProperty@17779e3
}"

 root.[0].[0].propertyList.get("master-name") = {
    str: "simpleA4"
    org.apache.fop.fo.Property.specVal: null
}

 root.[0].[0].propertyList.get("page-height") = {
    length: instance of org.apache.fop.datatypes.FixedLength(id=1329)
    org.apache.fop.fo.Property.specVal: null
}

 root.[0].[0].propertyList.get("page-height").length = "841889mpt"

The simple page master has only one region, the body:

 root.[0].[0].regions = "{body=fo:region-body at line 9:24}"

The region body:

 root.[0].[0].regions.get("body") = "fo:region-body at line 9:24"

 root.[0].[0].regions.get("body") = {
    backgroundColor: null
    org.apache.fop.fo.pagination.Region.layoutMaster: instance of org.apache.fop.fo.pagination.SimplePageMaster(id=1082)
    org.apache.fop.fo.pagination.Region.regionName: "xsl-region-body"
    org.apache.fop.fo.pagination.Region.overflow: 8
    org.apache.fop.fo.pagination.Region.wm: 49
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1344)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1345)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: null
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 9
    org.apache.fop.fo.FObj.column: 24
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.SimplePageMaster(id=1082)
    org.apache.fop.fo.FONode.name: "fo:region-body"
}

 root.[0].[0].regions.get("body").propertyList = "{}"

The second child of root is the page sequence:

 root.[1] = "fo:page-sequence at line 12:49"

 root.[1] = {
    root: instance of org.apache.fop.fo.pagination.Root(id=1088)
    layoutMasterSet: instance of org.apache.fop.fo.pagination.LayoutMasterSet(id=1089)
    flowMap: instance of java.util.HashMap(id=1090)
    sequenceStarted: true
    ipnValue: "auto"
    currentPageNumber: 1
    explicitFirstNumber: 0
    firstPageNumber: 1
    pageNumberGenerator: instance of org.apache.fop.fo.pagination.PageNumberGenerator(id=1074)
    forcePageCount: 8
    pageCount: 0
    isForcing: false
    pageNumberType: 1
    thisIsFirstPage: true
    simplePageMaster: instance of org.apache.fop.fo.pagination.SimplePageMaster(id=1082)
    pageSequenceMaster: null
    mainFlow: instance of org.apache.fop.fo.pagination.Flow(id=1092)
    titleFO: null
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1096)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1097)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: instance of java.util.ArrayList(id=1098)
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 12
    org.apache.fop.fo.FObj.column: 49
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.Root(id=1088)
    org.apache.fop.fo.FONode.name: "fo:page-sequence"
}

The page-sequence has one property, the reference to the page master:

 root.[1].propertyList = "{
  master-reference=org.apache.fop.fo.StringProperty@104e28b
}"

 root.[1].propertyList.get("master-reference") = {
    str: "simpleA4"
    org.apache.fop.fo.Property.specVal: null
}

The page-sequence has one child, the flow:

 root.[1].children = "[
  fo:flow at line 13:42
]"

 root.[1].[0] = "fo:flow at line 13:42"

 root.[1].[0] = {
    pageSequence: instance of org.apache.fop.fo.pagination.PageSequence(id=1081)
    markerSnapshot: null
    flowName: "xsl-region-body"
    contentWidth: 0
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1367)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1368)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: instance of java.util.ArrayList(id=1369)
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 13
    org.apache.fop.fo.FObj.column: 42
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.PageSequence(id=1081)
    org.apache.fop.fo.FONode.name: "fo:flow"
}

The flow has one property, the flow name:

 root.[1].[0].propertyList = "{
  flow-name=org.apache.fop.fo.StringProperty@6458a6
}"

 root.[1].[0].propertyList.get("flow-name") = {
    str: "xsl-region-body"
    org.apache.fop.fo.Property.specVal: null
}

The flow has one child, a block:

 root.children.elementData[1].children.elementData[0].children = "[
  fo:block at line 15:28
]"

 root.[1].[0].[0] = "fo:block at line 15:28"

 root.[1].[0].[0] = {
    align: 0
    alignLast: 0
    breakAfter: 0
    lineHeight: 0
    startIndent: 0
    endIndent: 0
    spaceBefore: 0
    spaceAfter: 0
    textIndent: 0
    keepWithNext: 0
    backgroundColor: null
    blockWidows: 0
    blockOrphans: 0
    id: null
    span: 59
    wsTreatment: 41
    lfTreatment: 98
    bWScollapse: true
    anythingLaidOut: false
    firstInlineChild: null
    org.apache.fop.fo.FObjMixed.textInfo: instance of org.apache.fop.fo.TextInfo(id=1377)
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: instance of org.apache.fop.fo.PropertyList(id=1378)
    org.apache.fop.fo.FObj.propMgr: instance of org.apache.fop.fo.PropertyManager(id=1379)
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: instance of java.util.ArrayList(id=1380)
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 15
    org.apache.fop.fo.FObj.column: 28
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.pagination.Flow(id=1092)
    org.apache.fop.fo.FONode.name: "fo:block"
}

 root.[1].[0].[0].propertyList = "{
  font-size=org.apache.fop.fo.LengthProperty@ae4646
  font-weight=org.apache.fop.fo.StringProperty@187b287
  space-after=org.apache.fop.fo.SpaceProperty@1d9e2c7
}"

The block has two children:

 root.[1].[0].[0].children = "[
  fo:text at line 15:35
  fo:text at line 16:7
]"

 root.[1].[0].[0].[0] = "fo:text at line 15:35"

 root.[1].[0].[0].[0] = {
    ca: instance of char[7] (id=1386)
    start: 0
    length: 7
    textInfo: instance of org.apache.fop.fo.TextInfo(id=1377)
    lastFOTextProcessed: instance of org.apache.fop.fo.FOText(id=1387)
    prevFOTextThisBlock: null
    nextFOTextThisBlock: instance of org.apache.fop.fo.FOText(id=1387)
    ancestorBlock: instance of org.apache.fop.fo.flow.Block(id=1375)
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: null
    org.apache.fop.fo.FObj.propMgr: null
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: null
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 15
    org.apache.fop.fo.FObj.column: 35
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.flow.Block(id=1375)
    org.apache.fop.fo.FONode.name: "fo:text"
}

This text node contains the text "Test FO":

 root.[1].[0].[0].[0].ca = {
T, e, s, t,  , F, O
}

 root.[1].[0].[0].[1] = "fo:text at line 16:7"

 root.[1].[0].[0].[1] = {
    ca: instance of char[1] (id=1390)
    start: 0
    length: 1
    textInfo: instance of org.apache.fop.fo.TextInfo(id=1377)
    lastFOTextProcessed: instance of org.apache.fop.fo.FOText(id=1387)
    prevFOTextThisBlock: instance of org.apache.fop.fo.FOText(id=1384)
    nextFOTextThisBlock: null
    ancestorBlock: instance of org.apache.fop.fo.flow.Block(id=1375)
    org.apache.fop.fo.FObj.propertyListTable: instance of org.apache.fop.fo.Property$Maker[248] (id=1094)
    org.apache.fop.fo.FObj.propertyList: null
    org.apache.fop.fo.FObj.propMgr: null
    org.apache.fop.fo.FObj.id: null
    org.apache.fop.fo.FObj.children: null
    org.apache.fop.fo.FObj.markers: null
    org.apache.fop.fo.FObj.systemId: "file:/path/to/fo-file"
    org.apache.fop.fo.FObj.line: 16
    org.apache.fop.fo.FObj.column: 7
    org.apache.fop.fo.FONode.parent: instance of org.apache.fop.fo.flow.Block(id=1375)
    org.apache.fop.fo.FONode.name: "fo:text"
}

This text node contains the text "\n":

 root.[1].[0].[0].[1].ca = {
}