1*b1cdbd2cSJim Jagielski<!--*********************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski ***********************************************************--> 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski<!ENTITY % chart-class "(line|area|circle|ring|scatter|radar|bar|stock|add-in)"> 26*b1cdbd2cSJim Jagielski<!ENTITY % chart-solid-type "(cuboid|cylinder|cone|pyramid)"> 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski<!-- Chart element --> 29*b1cdbd2cSJim Jagielski<!ELEMENT chart:chart ( chart:title?, chart:subtitle?, chart:legend?, 30*b1cdbd2cSJim Jagielski chart:plot-area, 31*b1cdbd2cSJim Jagielski table:table? )> 32*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart 33*b1cdbd2cSJim Jagielski chart:class %chart-class; #REQUIRED 34*b1cdbd2cSJim Jagielski chart:add-in-name %string; #IMPLIED 35*b1cdbd2cSJim Jagielski chart:table-number-list %string; #IMPLIED 36*b1cdbd2cSJim Jagielski draw:name %string; #IMPLIED 37*b1cdbd2cSJim Jagielski %draw-position; 38*b1cdbd2cSJim Jagielski %draw-size; 39*b1cdbd2cSJim Jagielski %draw-style-name; 40*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED> 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart %presentation-class; > 43*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart %zindex;> 44*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart %draw-end-position; > 45*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart draw:id %draw-shape-id; > 46*b1cdbd2cSJim Jagielski<!ATTLIST chart:chart draw:layer %layerName; #IMPLIED> 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 49*b1cdbd2cSJim Jagielski chart:scale-text %boolean; "true" 50*b1cdbd2cSJim Jagielski chart:stock-updown-bars %boolean; "false" 51*b1cdbd2cSJim Jagielski chart:stock-with-volume %boolean; "false" 52*b1cdbd2cSJim Jagielski chart:three-dimensional %boolean; "false" 53*b1cdbd2cSJim Jagielski chart:deep %boolean; "false" 54*b1cdbd2cSJim Jagielski chart:lines %boolean; "false" 55*b1cdbd2cSJim Jagielski chart:percentage %boolean; "false" 56*b1cdbd2cSJim Jagielski chart:solid-type %chart-solid-type; "cuboid" 57*b1cdbd2cSJim Jagielski chart:splines %nonNegativeInteger; "0" 58*b1cdbd2cSJim Jagielski chart:stacked %boolean; "false" 59*b1cdbd2cSJim Jagielski chart:symbol %integer; "-1" 60*b1cdbd2cSJim Jagielski chart:vertical %boolean; "false" 61*b1cdbd2cSJim Jagielski chart:lines-used %nonNegativeInteger; "0" 62*b1cdbd2cSJim Jagielski chart:connect-bars %boolean; "false"> 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski<!-- Main/Sub Title --> 65*b1cdbd2cSJim Jagielski<!-- the cell-address attribute is currently not supported for titles --> 66*b1cdbd2cSJim Jagielski<!ELEMENT chart:title (text:p)?> 67*b1cdbd2cSJim Jagielski<!ATTLIST chart:title 68*b1cdbd2cSJim Jagielski table:cell-range %cell-address; #IMPLIED 69*b1cdbd2cSJim Jagielski svg:x %coordinate; #IMPLIED 70*b1cdbd2cSJim Jagielski svg:y %coordinate; #IMPLIED 71*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski<!ELEMENT chart:subtitle (text:p)?> 74*b1cdbd2cSJim Jagielski<!ATTLIST chart:subtitle 75*b1cdbd2cSJim Jagielski table:cell-range %cell-address; #IMPLIED 76*b1cdbd2cSJim Jagielski svg:x %coordinate; #IMPLIED 77*b1cdbd2cSJim Jagielski svg:y %coordinate; #IMPLIED 78*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski<!-- you must specify either a legend-position or both, x and y coordinates --> 81*b1cdbd2cSJim Jagielski<!ELEMENT chart:legend EMPTY> 82*b1cdbd2cSJim Jagielski<!ATTLIST chart:legend 83*b1cdbd2cSJim Jagielski chart:legend-position (top|left|bottom|right) "right" 84*b1cdbd2cSJim Jagielski svg:x %coordinate; #IMPLIED 85*b1cdbd2cSJim Jagielski svg:y %coordinate; #IMPLIED 86*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski<!-- Plot-Area specification --> 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski<!ELEMENT chart:plot-area (dr3d:light*, 91*b1cdbd2cSJim Jagielski chart:axis*, 92*b1cdbd2cSJim Jagielski chart:categories?, 93*b1cdbd2cSJim Jagielski chart:series*, 94*b1cdbd2cSJim Jagielski chart:wall?, 95*b1cdbd2cSJim Jagielski chart:floor?) > 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski<!ATTLIST chart:plot-area 98*b1cdbd2cSJim Jagielski svg:x %coordinate; #IMPLIED 99*b1cdbd2cSJim Jagielski svg:y %coordinate; #IMPLIED 100*b1cdbd2cSJim Jagielski svg:width %length; #IMPLIED 101*b1cdbd2cSJim Jagielski svg:height %length; #IMPLIED 102*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED 103*b1cdbd2cSJim Jagielski table:cell-range-address %cell-range-address; #IMPLIED 104*b1cdbd2cSJim Jagielski chart:table-number-list %string; #IMPLIED 105*b1cdbd2cSJim Jagielski chart:data-source-has-labels (none|row|column|both) "none" > 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski<!-- 3d scene attributes on plot-area --> 108*b1cdbd2cSJim Jagielski<!ATTLIST chart:plot-area 109*b1cdbd2cSJim Jagielski dr3d:vrp %vector3D; #IMPLIED 110*b1cdbd2cSJim Jagielski dr3d:vpn %vector3D; #IMPLIED 111*b1cdbd2cSJim Jagielski dr3d:vup %vector3D; #IMPLIED 112*b1cdbd2cSJim Jagielski dr3d:projection (parallel|perspective) #IMPLIED 113*b1cdbd2cSJim Jagielski dr3d:transform CDATA #IMPLIED 114*b1cdbd2cSJim Jagielski dr3d:distance %length; #IMPLIED 115*b1cdbd2cSJim Jagielski dr3d:focal-length %length; #IMPLIED 116*b1cdbd2cSJim Jagielski dr3d:shadow-slant %nonNegativeInteger; #IMPLIED 117*b1cdbd2cSJim Jagielski dr3d:shade-mode (flat|phong|gouraud|draft) #IMPLIED 118*b1cdbd2cSJim Jagielski dr3d:ambient-color %color; #IMPLIED 119*b1cdbd2cSJim Jagielski dr3d:lighting-mode %boolean; #IMPLIED > 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 122*b1cdbd2cSJim Jagielski chart:series-source (columns|rows) "columns" > 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski<!ELEMENT chart:wall EMPTY> 125*b1cdbd2cSJim Jagielski<!ATTLIST chart:wall 126*b1cdbd2cSJim Jagielski svg:width %length; #IMPLIED 127*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski<!ELEMENT chart:floor EMPTY> 130*b1cdbd2cSJim Jagielski<!ATTLIST chart:floor 131*b1cdbd2cSJim Jagielski svg:width %length; #IMPLIED 132*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski<!-- Axis --> 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski<!ELEMENT chart:axis (chart:title?, chart:grid*)> 137*b1cdbd2cSJim Jagielski<!ATTLIST chart:axis 138*b1cdbd2cSJim Jagielski chart:class (category|value|series|domain) #REQUIRED 139*b1cdbd2cSJim Jagielski chart:name %string; #IMPLIED 140*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 143*b1cdbd2cSJim Jagielski chart:tick-marks-major-inner %boolean; "false" 144*b1cdbd2cSJim Jagielski chart:tick-marks-major-outer %boolean; "true" 145*b1cdbd2cSJim Jagielski chart:tick-marks-minor-inner %boolean; "false" 146*b1cdbd2cSJim Jagielski chart:tick-marks-minor-outer %boolean; "false" 147*b1cdbd2cSJim Jagielski chart:logarithmic %boolean; "false" 148*b1cdbd2cSJim Jagielski chart:maximum %float; #IMPLIED 149*b1cdbd2cSJim Jagielski chart:minimum %float; #IMPLIED 150*b1cdbd2cSJim Jagielski chart:origin %float; #IMPLIED 151*b1cdbd2cSJim Jagielski chart:interval-major %float; #IMPLIED 152*b1cdbd2cSJim Jagielski chart:interval-minor %float; #IMPLIED 153*b1cdbd2cSJim Jagielski chart:gap-width %integer; #IMPLIED 154*b1cdbd2cSJim Jagielski chart:overlap %integer; #IMPLIED 155*b1cdbd2cSJim Jagielski text:line-break %boolean; "true" 156*b1cdbd2cSJim Jagielski chart:display-label %boolean; "true" 157*b1cdbd2cSJim Jagielski chart:label-arrangement (side-by-side|stagger-even|stagger-odd) "side-by-side" 158*b1cdbd2cSJim Jagielski chart:visible %boolean; "true" 159*b1cdbd2cSJim Jagielski chart:link-data-style-to-source %boolean; "true" > 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski<!ELEMENT chart:grid EMPTY> 162*b1cdbd2cSJim Jagielski<!ATTLIST chart:grid 163*b1cdbd2cSJim Jagielski chart:class (major|minor) "major" 164*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski<!ELEMENT chart:categories EMPTY> 168*b1cdbd2cSJim Jagielski<!ATTLIST chart:categories 169*b1cdbd2cSJim Jagielski table:cell-range-address %cell-range-address; #REQUIRED > 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski<!-- 172*b1cdbd2cSJim Jagielski each series element must have an cell-range-address element that points 173*b1cdbd2cSJim Jagielski to the underlying table data. 174*b1cdbd2cSJim Jagielski Impl. Note: Internally all href elements are merged to one table range 175*b1cdbd2cSJim Jagielski that represents the data for the whole chart 176*b1cdbd2cSJim Jagielski--> 177*b1cdbd2cSJim Jagielski<!ELEMENT chart:series ( chart:domain*, 178*b1cdbd2cSJim Jagielski chart:data-point* )> 179*b1cdbd2cSJim Jagielski<!ATTLIST chart:series 180*b1cdbd2cSJim Jagielski chart:values-cell-range-address %cell-range-address; #IMPLIED 181*b1cdbd2cSJim Jagielski chart:label-cell-address %cell-address; #IMPLIED 182*b1cdbd2cSJim Jagielski chart:class %chart-class; #IMPLIED 183*b1cdbd2cSJim Jagielski chart:attached-axis %string; #IMPLIED 184*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski<!ELEMENT chart:domain EMPTY> 187*b1cdbd2cSJim Jagielski<!ATTLIST chart:domain 188*b1cdbd2cSJim Jagielski table:cell-range-address %cell-range-address; #IMPLIED > 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski<!ELEMENT chart:data-point EMPTY> 191*b1cdbd2cSJim Jagielski<!ATTLIST chart:data-point 192*b1cdbd2cSJim Jagielski chart:repeated %nonNegativeInteger; #IMPLIED 193*b1cdbd2cSJim Jagielski chart:style-name %styleName; #IMPLIED > 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski<!-- statistical properties --> 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 198*b1cdbd2cSJim Jagielski chart:mean-value %boolean; #IMPLIED 199*b1cdbd2cSJim Jagielski chart:error-category (none|variance|standard-deviation|percentage|error-margin|constant) "none" 200*b1cdbd2cSJim Jagielski chart:error-percentage %float; #IMPLIED 201*b1cdbd2cSJim Jagielski chart:error-margin %float; #IMPLIED 202*b1cdbd2cSJim Jagielski chart:error-lower-limit %float; #IMPLIED 203*b1cdbd2cSJim Jagielski chart:error-upper-limit %float; #IMPLIED 204*b1cdbd2cSJim Jagielski chart:error-upper-indicator %boolean; #IMPLIED 205*b1cdbd2cSJim Jagielski chart:error-lower-indicator %boolean; #IMPLIED 206*b1cdbd2cSJim Jagielski chart:regression-type (none|linear|logarithmic|exponential|power) "none" > 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski<!-- data label properties --> 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 211*b1cdbd2cSJim Jagielski chart:data-label-number (none|value|percentage) "none" 212*b1cdbd2cSJim Jagielski chart:data-label-text %boolean; "false" 213*b1cdbd2cSJim Jagielski chart:data-label-symbol %boolean; "false" > 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski<!-- general text properties --> 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski<!ATTLIST style:properties text:rotation-angle %integer; "0" > 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski<!-- symbol properties --> 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski<!ATTLIST style:properties 222*b1cdbd2cSJim Jagielski chart:symbol-width %nonNegativeLength; #IMPLIED 223*b1cdbd2cSJim Jagielski chart:symbol-height %nonNegativeLength; #IMPLIED 224*b1cdbd2cSJim Jagielski chart:symbol-image-name %string; #IMPLIED > 225