<?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 id="0x1002" name="Chart" excel-record-id="CHART"
    package="org.apache.poi.hssf.record">
    <suffix>Record</suffix>
    <extends>Record</extends>
    <description>The chart record is used to define the location and size of a chart.</description>
    <author>Glen Stampoultzis (glens at apache.org)</author>
    <fields>
        <field type="int" size="4" name="x" description="x position of top-left corner (specified on 1/72 of an inch, two bytes are a whole and two are a fraction)"/>
        <field type="int" size="4" name="y" description="y position of top-left corner (specified on 1/72 of an inch, two bytes are a whole and two are a fraction)"/>
        <field type="int" size="4" name="width" description="width of chart (specified on 1/72 of an inch), two bytes are a whole and two are a fraction"/>
        <field type="int" size="4" name="height" description="height of chart (specified on 1/72 of an inch), two bytes are a whole and two are a fraction"/>
    </fields>
</record>
