<?xml version="1.0"?>
<!--
    ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
-->
<record fromfile="true" name="LFO" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <extends>HDFType</extends>
    <description>List Format Override (LFO). &lt;p&gt;Class and fields descriptions are quoted from
        [MS-DOC] --v20110315; Word (.doc) Binary File Format
    </description>
    <author>Sergey Vladimirov; according to [MS-DOC] --v20110315; Word (.doc) Binary File Format;
        Copyright (c) Microsoft Corporation
    </author>
    <fields>
        <field type="int" size="4" name="lsid"
            description="A signed integer that specifies the list identifier of an LSTF. This LFO corresponds to the LSTF in PlfLst.rgLstf that has an lsid whose value is equal to this value."/>
        <field type="int" size="4" name="unused1" description="This field MUST be ignored"/>
        <field type="int" size="4" name="unused2" description="This field MUST be ignored"/>
        <field type="byte" size="1" name="clfolvl"
            description="An unsigned integer that specifies the field that this LFO represents."/>
        <field type="byte" size="1" name="ibstFltAutoNum" description="Used for AUTONUM field emulation"/>
        <field type="Grfhic" size="1" name="grfhic" description="HTML compatibility flags"/>
        <field type="byte" size="1" name="unused3" description="This field MUST be ignored"/>
    </fields>
</record>
