1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <xs:schema xmlns:
xs=
"http://www.w3.org/2001/XMLSchema"
3 xmlns:
gnm=
"http://www.gnumeric.org/v10.dtd"
4 xmlns:
office=
"urn:oasis:names:tc:opendocument:xmlns:office:1.0"
5 targetNamespace=
"http://www.gnumeric.org/v10.dtd"
6 elementFormDefault=
"qualified"
7 attributeFormDefault=
"unqualified">
10 <xs:documentation xml:
lang=
"en">
11 Schema for gnumeric spreadsheet documents
12 Created for Gnumeric
1.2.2,
13 Based on gnumeric source code and sample gnumeric documents
14 Author: Marc Johnson (marc_johnson27591@hotmail.com)
16 updated for
1.4.2 in Feb
2005
17 updated for
1.6.0 in Sept
2005
18 updated for
1.7.1 in Jun
2006
19 updated for
1.7.11 in Jun
2007 jody@gnome.org
20 updated for
1.7.91 in Nov
2007 jody@gnome.org
21 partially updated for
1.10.17 in July
2011 aguelzow@pyrshep.ca
22 partially updated for
1.12.13 in March
2014 terra@gnome.org
23 updated for
1.12.21 in Feb
2015 terra@gnome.org
27 <xs:element name=
"Workbook" type=
"gnm:Workbook"/>
29 <xs:complexType name=
"Version">
30 <xs:attribute name=
"Epoch" type=
"xs:nonNegativeInteger" use=
"required"/>
31 <xs:attribute name=
"Major" type=
"xs:nonNegativeInteger" use=
"required"/>
32 <xs:attribute name=
"Minor" type=
"xs:nonNegativeInteger" use=
"required"/>
33 <xs:attribute name=
"Full" type=
"xs:string" use=
"required"/>
34 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
37 <xs:complexType name=
"Calculation">
38 <xs:attribute name=
"ManualRecalc" type=
"xs:boolean"/>
39 <xs:attribute name=
"EnableIteration" type=
"xs:boolean"/>
40 <xs:attribute name=
"MaxIterations" type=
"xs:nonNegativeInteger"/>
41 <xs:attribute name=
"FloatRadix" type=
"xs:positiveInteger"/>
42 <xs:attribute name=
"FloatDigits" type=
"xs:nonNegativeInteger"/>
43 <xs:attribute name=
"IterationTolerance" type=
"xs:double"/>
44 <xs:attribute name=
"DateConvention" type=
"gnm:DateConvention" use=
"optional" default=
"Lotus:1900"/>
45 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
48 <xs:group name=
"WorkbookContentBlockA">
50 <!-- ancient files lack this, modern files require it -->
51 <xs:element name=
"SheetNameIndex" type=
"gnm:SheetNameIndex" minOccurs=
"0" maxOccurs=
"1"/>
53 <xs:element name=
"Names" type=
"gnm:Names" minOccurs=
"0" maxOccurs=
"1"/>
55 <!-- Deprecated, moved to Calculation and expanded in 1.7.11
56 Valid value == 1904, anything else == Lotus:1900 -->
57 <xs:element name=
"DateConvention" type=
"xs:int" minOccurs=
"0" maxOccurs=
"1"/>
59 <!-- preferred height and width -->
60 <xs:element name=
"Geometry" minOccurs=
"0" maxOccurs=
"1">
62 <xs:attribute name=
"Width" type=
"xs:nonNegativeInteger" use=
"optional"/>
63 <xs:attribute name=
"Height" type=
"xs:nonNegativeInteger" use=
"optional"/>
64 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
67 <xs:element name=
"Sheets" type=
"gnm:Sheets"/>
68 <!-- which sheet was selected when the spreadsheet was saved? -->
69 <xs:element name=
"UIData">
71 <xs:attribute name=
"SelectedTab" type=
"xs:nonNegativeInteger" use=
"required"/>
72 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
75 <xs:element name=
"GODoc" form=
"unqualified" minOccurs=
"0">
80 <xs:complexType name=
"Workbook">
82 <xs:element name=
"Version" type=
"gnm:Version" minOccurs=
"0" maxOccurs=
"1"/>
83 <xs:element name=
"Attributes" type=
"gnm:Attributes"/>
85 <!-- ignore office:document-meta -->
86 <xs:any minOccurs=
"0" maxOccurs=
"unbounded"
87 namespace=
"##other" processContents=
"lax"/>
90 <xs:sequence> <!-- In new files the Calculation element comes first, in old files last -->
91 <xs:element name=
"Calculation" type=
"gnm:Calculation" minOccurs=
"0" maxOccurs=
"1"/>
92 <xs:group ref=
"gnm:WorkbookContentBlockA"/>
95 <xs:group ref=
"gnm:WorkbookContentBlockA"/>
96 <xs:element name=
"Calculation" type=
"gnm:Calculation" minOccurs=
"0" maxOccurs=
"1"/>
100 <!-- version number should be v10 - - >
101 <xs:attribute name="gnm" type="gnm:namespace" use="required"/> -->
102 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
105 <!-- How values are mapped to dates. All date functions are affected -->
106 <xs:simpleType name=
"DateConvention">
107 <xs:restriction base=
"xs:string">
108 <xs:enumeration value=
"Lotus:1900"/>
109 <xs:enumeration value=
"Apple:1904"/>
111 <!-- future values. currently treated as Lotus:1900 -->
112 <xs:enumeration value=
"ODF:1899"/>
116 <xs:simpleType name=
"CellRef">
117 <xs:restriction base=
"xs:string">
118 <xs:pattern value=
"$?[A-Z]+$?\d+"/>
122 <xs:complexType name=
"Names">
124 <xs:element name=
"Name" minOccurs=
"0" maxOccurs=
"unbounded">
127 <!-- an oversight in the sax exporter (fixed in 1.4.3)
128 leaves off the namespace. Handle both formats.
131 <xs:element name=
"name" type=
"xs:string"/>
132 <xs:element name=
"name" type=
"xs:string" form=
"unqualified"/>
135 <xs:element name=
"value" type=
"xs:string"/>
136 <xs:element name=
"value" type=
"xs:string" form=
"unqualified"/>
139 <xs:element name=
"position" type=
"xs:string"/>
140 <xs:element name=
"position" type=
"xs:string" form=
"unqualified"/>
148 <xs:complexType name=
"Attributes">
150 <xs:element name=
"Attribute" minOccurs=
"0" maxOccurs=
"unbounded">
153 <xs:element name=
"type" minOccurs=
"0" maxOccurs=
"1" type=
"gnm:AttributeType"/><!-- must be 4 -->
154 <xs:element name=
"name" minOccurs=
"1" maxOccurs=
"1" type=
"xs:string"/>
155 <xs:element name=
"value" minOccurs=
"1" maxOccurs=
"1" type=
"xs:string"/>
161 <xs:simpleType name=
"AttributeType">
162 <xs:restriction base=
"xs:integer">
163 <xs:minInclusive value=
"4"/>
164 <xs:maxInclusive value=
"4"/>
168 <xs:complexType name=
"SheetNameIndex">
170 <xs:element name=
"SheetName" minOccurs=
"0" maxOccurs=
"unbounded">
173 <xs:extension base=
"xs:string">
174 <xs:attribute name=
"Cols" type=
"xs:positiveInteger" form=
"qualified"/>
175 <xs:attribute name=
"Rows" type=
"xs:positiveInteger" form=
"qualified"/>
183 <xs:complexType name=
"Sheets">
185 <xs:element name=
"Sheet" minOccurs=
"0" maxOccurs=
"unbounded">
188 <!-- name of the sheet -->
189 <xs:element name=
"Name" type=
"xs:string"/>
190 <!-- maximum column used -->
191 <xs:element name=
"MaxCol" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"1"/>
192 <!-- maximum row used -->
193 <xs:element name=
"MaxRow" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"1"/>
194 <!-- most recently used zoom factor -->
195 <xs:element name=
"Zoom" type=
"xs:double"/>
196 <xs:element name=
"Names" type=
"gnm:Names" minOccurs=
"0" maxOccurs=
"1"/>
197 <xs:element name=
"PrintInformation" type=
"gnm:PrintInformation"/>
198 <xs:element name=
"Styles" type=
"gnm:Styles"/>
199 <xs:element name=
"Cols">
202 <xs:element name=
"ColInfo" type=
"gnm:Col_Row" minOccurs=
"0" maxOccurs=
"unbounded"/>
204 <xs:attribute name=
"DefaultSizePts" type=
"xs:double" use=
"required"/>
205 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
208 <xs:element name=
"Rows">
211 <xs:element name=
"RowInfo" type=
"gnm:Col_Row" minOccurs=
"0" maxOccurs=
"unbounded"/>
213 <xs:attribute name=
"DefaultSizePts" type=
"xs:double" use=
"required"/>
214 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
217 <xs:element name=
"Selections" type=
"gnm:Selections"/>
218 <xs:element name=
"Objects" type=
"gnm:Objects" minOccurs=
"0" maxOccurs=
"1"/>
219 <xs:element name=
"Cells" type=
"gnm:Cells"/>
220 <xs:element name=
"MergedRegions" type=
"gnm:MergedRegions" minOccurs=
"0" maxOccurs=
"1"/>
221 <xs:element name=
"SheetLayout" type=
"gnm:SheetLayout" minOccurs=
"0" maxOccurs=
"1"/>
222 <xs:element name=
"Filters" type=
"gnm:Filters" minOccurs=
"0" maxOccurs=
"1"/>
223 <xs:element name=
"Solver" type=
"gnm:Solver" minOccurs=
"0" maxOccurs=
"1"/>
224 <xs:element name=
"Scenarios" type=
"gnm:Scenarios" minOccurs=
"0" maxOccurs=
"1"/>
226 <!-- note: xs:boolean values can be true, false, 1, 0;
227 gnumeric, in this element, always generates 'true' or
228 'false' for its attributes
230 <xs:attribute name=
"DisplayFormulas" type=
"xs:boolean" use=
"optional" default=
"false"/>
231 <xs:attribute name=
"HideZero" type=
"xs:boolean" use=
"optional" default=
"false"/>
232 <xs:attribute name=
"HideGrid" type=
"xs:boolean" use=
"optional" default=
"false"/>
233 <xs:attribute name=
"HideColHeader" type=
"xs:boolean" use=
"optional" default=
"false"/>
234 <xs:attribute name=
"HideRowHeader" type=
"xs:boolean" use=
"optional" default=
"false"/>
235 <xs:attribute name=
"DisplayOutlines" type=
"xs:boolean" use=
"optional" default=
"true"/>
236 <xs:attribute name=
"OutlineSymbolsBelow" type=
"xs:boolean" use=
"optional" default=
"true"/>
237 <xs:attribute name=
"OutlineSymbolsRight" type=
"xs:boolean" use=
"optional" default=
"true"/>
238 <xs:attribute name=
"Visibility" type=
"gnm:SheetVisibility" use=
"optional" default=
"GNM_SHEET_VISIBILITY_VISIBLE"/>
239 <xs:attribute name=
"RTL_Layout" type=
"xs:boolean" use=
"optional" default=
"false"/>
240 <xs:attribute name=
"Protected" type=
"xs:boolean" use=
"optional" default=
"false"/>
241 <xs:attribute name=
"TabColor" type=
"gnm:color" use=
"optional"/>
242 <xs:attribute name=
"TabTextColor" type=
"gnm:color" use=
"optional"/>
243 <xs:attribute name=
"GridColor" type=
"gnm:color" use=
"optional"/>
244 <xs:attribute name=
"ExprConvention" type=
"gnm:ExprConvention" use=
"optional" default=
"gnumeric:A1"/>
245 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
251 <!-- How expressions are _displayed_ no impact on evaluation -->
252 <xs:simpleType name=
"ExprConvention">
253 <xs:restriction base=
"xs:string">
254 <xs:enumeration value=
"gnumeric:A1"/>
255 <xs:enumeration value=
"gnumeric:R1C1"/>
257 <!-- future values, currently displayed as gnumeric:A1 -->
258 <xs:enumeration value=
"ODF:A1"/>
259 <xs:enumeration value=
"Lotus:A1"/>
263 <xs:complexType name=
"PrintInformation">
264 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
265 <xs:element name=
"Margins">
268 <xs:element name=
"top" type=
"gnm:margin"/>
269 <xs:element name=
"bottom" type=
"gnm:margin"/>
270 <xs:element name=
"left" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
271 <xs:element name=
"right" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
272 <xs:element name=
"header" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
273 <xs:element name=
"footer" type=
"gnm:margin" minOccurs=
"0" maxOccurs=
"unbounded"/>
277 <xs:element name=
"Scale">
279 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
280 <xs:attribute name=
"percentage" type=
"xs:double" use=
"optional"/>
281 <xs:attribute name=
"cols" type=
"xs:integer" />
282 <xs:attribute name=
"rows" type=
"xs:integer" />
283 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
286 <!-- center vertically -->
287 <xs:element name=
"vcenter">
289 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
290 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
293 <!-- center horizontally -->
294 <xs:element name=
"hcenter">
296 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
297 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
300 <!-- print grid lines -->
301 <xs:element name=
"grid">
303 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
304 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
307 <!-- print even if only styles -->
308 <xs:element name=
"even_if_only_styles">
310 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
311 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
314 <!-- print in monochrome -->
315 <xs:element name=
"monochrome">
317 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
318 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
321 <!-- print in draft mode -->
322 <xs:element name=
"draft">
324 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
325 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
328 <!-- print titles -->
329 <xs:element name=
"titles">
331 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
332 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
336 <!-- repeat range -->
337 <xs:element name=
"repeat_top" minOccurs=
"0" maxOccurs=
"1">
339 <xs:attribute name=
"value" type=
"xs:string" use=
"required"/>
340 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
343 <!-- repeat range -->
344 <xs:element name=
"repeat_left" minOccurs=
"0" maxOccurs=
"1">
346 <xs:attribute name=
"value" type=
"xs:string" use=
"required"/>
347 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
350 <xs:element name=
"order" type=
"gnm:print_ordering"/>
351 <xs:element name=
"orientation" type=
"gnm:print_orientation"/>
352 <xs:element name=
"Header" type=
"gnm:HeaderFooter"/>
353 <xs:element name=
"Footer" type=
"gnm:HeaderFooter"/>
354 <!-- typical values are A4, US-Letter -->
355 <xs:element name=
"paper" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
356 <xs:element name=
"comments" type=
"gnm:PrintComments"/>
357 <xs:element name=
"errors" type=
"gnm:PrintErrors"/>
358 <!-- do not print this sheet when "all" is selected in the job -->
359 <xs:element name=
"do_not_print" minOccurs=
"0" maxOccurs=
"1">
361 <xs:attribute name=
"value" type=
"xs:boolean" use=
"required"/>
364 <xs:element name=
"print-to-uri" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
365 <xs:element name=
"vPageBreaks" type=
"gnm:PageBreaks" minOccurs=
"0" maxOccurs=
"1"/><!-- between rows -->
366 <xs:element name=
"hPageBreaks" type=
"gnm:PageBreaks" minOccurs=
"0" maxOccurs=
"1"/><!-- between cols -->
367 <xs:element name=
"print_range" minOccurs=
"0" maxOccurs=
"1">
369 <xs:attribute name=
"value" use=
"required">
371 <xs:restriction base=
"xs:string">
372 <xs:enumeration value=
"GNM_PRINT_SAVED_INFO"/>
373 <xs:enumeration value=
"GNM_PRINT_ACTIVE_SHEET"/>
374 <xs:enumeration value=
"GNM_PRINT_ALL_SHEETS"/>
375 <xs:enumeration value=
"GNM_PRINT_ALL_SHEETS_INCLUDING_HIDDEN"/>
376 <xs:enumeration value=
"GNM_PRINT_SHEET_RANGE"/>
377 <xs:enumeration value=
"GNM_PRINT_SHEET_SELECTION"/>
378 <xs:enumeration value=
"GNM_PRINT_IGNORE_PRINTAREA"/>
379 <xs:enumeration value=
"GNM_PRINT_SHEET_SELECTION_IGNORE_PRINTAREA"/>
386 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
389 <xs:complexType name=
"HeaderFooter">
390 <xs:attribute name=
"Left" type=
"xs:string" use=
"optional"/>
391 <xs:attribute name=
"Middle" type=
"xs:string" use=
"optional"/>
392 <xs:attribute name=
"Right" type=
"xs:string" use=
"optional"/>
393 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
396 <xs:complexType name=
"PrintComments">
397 <xs:attribute name=
"placement" type=
"gnm:PrintCommentsPlacement"/>
400 <xs:simpleType name=
"PrintCommentsPlacement">
401 <xs:restriction base=
"xs:string">
402 <xs:enumeration value=
"GNM_PRINT_COMMENTS_NONE"/>
403 <xs:enumeration value=
"GNM_PRINT_COMMENTS_IN_PLACE"/>
404 <xs:enumeration value=
"GNM_PRINT_COMMENTS_AT_END"/>
408 <xs:complexType name=
"PrintErrors">
409 <xs:attribute name=
"PrintErrorsAs" type=
"gnm:PrintErrorsAs"/>
412 <xs:simpleType name=
"PrintErrorsAs">
413 <xs:restriction base=
"xs:string">
414 <xs:enumeration value=
"GNM_PRINT_ERRORS_AS_DISPLAYED"/>
415 <xs:enumeration value=
"GNM_PRINT_ERRORS_AS_BLANK"/>
416 <xs:enumeration value=
"GNM_PRINT_ERRORS_AS_DASHES"/>
417 <xs:enumeration value=
"GNM_PRINT_ERRORS_AS_NA"/>
421 <xs:complexType name=
"PageBreaks">
423 <xs:element name=
"break" minOccurs=
"0" maxOccurs=
"unbounded">
425 <xs:attribute name=
"pos" type=
"xs:nonNegativeInteger" use=
"required"/>
426 <xs:attribute name=
"type" type=
"gnm:PageBreakType" use=
"optional" default=
"auto"/>
430 <xs:attribute name=
"count" type=
"xs:nonNegativeInteger" use=
"optional"/>
431 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
434 <xs:simpleType name=
"PageBreakType">
435 <xs:restriction base=
"xs:string">
436 <xs:enumeration value=
"auto"/>
437 <xs:enumeration value=
"manual"/>
438 <xs:enumeration value=
"data-slice"/>
442 <xs:complexType name=
"margin">
443 <xs:attribute name=
"Points" type=
"xs:double"/>
444 <xs:attribute name=
"PrefUnit" type=
"gnm:print_units"/>
445 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
448 <xs:simpleType name=
"print_units">
449 <xs:restriction base=
"xs:string">
450 <xs:enumeration value=
"mm"/>
451 <xs:enumeration value=
"millimeter"/>
452 <xs:enumeration value=
"cm"/>
453 <xs:enumeration value=
"centimeter"/>
454 <xs:enumeration value=
"in"/>
455 <xs:enumeration value=
"inch"/>
456 <xs:enumeration value=
"inches"/>
457 <xs:enumeration value=
"Pt"/>
458 <xs:enumeration value=
"Pts"/>
459 <xs:enumeration value=
"points"/>
463 <xs:simpleType name=
"print_ordering">
464 <xs:restriction base=
"xs:string">
465 <!-- right, then down -->
466 <xs:enumeration value=
"r_then_d"/>
467 <!-- down, then right -->
468 <xs:enumeration value=
"d_then_r"/>
472 <xs:simpleType name=
"print_orientation">
473 <xs:restriction base=
"xs:string">
474 <xs:enumeration value=
"landscape"/>
475 <xs:enumeration value=
"portrait"/>
479 <xs:complexType name=
"Styles">
481 <xs:element name=
"StyleRegion" minOccurs=
"0" maxOccurs=
"unbounded">
484 <xs:element name=
"Style" type=
"gnm:Style" minOccurs=
"1" maxOccurs=
"1"/>
486 <xs:attribute name=
"startCol" type=
"xs:nonNegativeInteger" use=
"required"/>
487 <xs:attribute name=
"startRow" type=
"xs:nonNegativeInteger" use=
"required"/>
488 <xs:attribute name=
"endCol" type=
"xs:nonNegativeInteger" use=
"required"/>
489 <xs:attribute name=
"endRow" type=
"xs:nonNegativeInteger" use=
"required"/>
490 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
496 <xs:complexType name=
"Style">
498 <xs:element name=
"Font" minOccurs=
"0" maxOccurs=
"1">
500 <xs:simpleContent> <!-- Since these might be conditional styles, the atributes are
502 <xs:extension base=
"xs:string">
503 <xs:attribute name=
"Unit" type=
"xs:double" use=
"optional"/>
504 <xs:attribute name=
"Bold" type=
"xs:boolean" use=
"optional"/>
505 <xs:attribute name=
"Italic" type=
"xs:boolean" use=
"optional"/>
506 <xs:attribute name=
"Underline" type=
"gnm:underline" use=
"optional"/>
507 <xs:attribute name=
"StrikeThrough" type=
"xs:boolean" use=
"optional"/>
508 <xs:attribute name=
"Script" type=
"gnm:script" use=
"optional"/>
509 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
514 <xs:element name=
"HyperLink" minOccurs=
"0" maxOccurs=
"1">
516 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
517 <xs:attribute name=
"target" type=
"xs:string" use=
"optional"/>
518 <xs:attribute name=
"tip" type=
"xs:string" use=
"optional"/>
519 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
522 <xs:element name=
"Condition" minOccurs=
"0" maxOccurs=
"unbounded">
525 <xs:element name=
"Expression0" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
526 <xs:element name=
"Expression1" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
527 <xs:element name=
"Style" type=
"gnm:Style" minOccurs=
"1" maxOccurs=
"1"/>
529 <xs:attribute name=
"Operator" type=
"gnm:CondOp" use=
"required"/>
530 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
533 <xs:element name=
"StyleBorder" minOccurs=
"0" maxOccurs=
"1">
535 <xs:choice minOccurs=
"0" maxOccurs=
"6"> <!-- The order of the last two elements appears to be
537 <xs:element name=
"Top" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
538 <xs:element name=
"Bottom" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
539 <xs:element name=
"Left" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
540 <xs:element name=
"Right" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
541 <xs:element name=
"Diagonal" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
542 <xs:element name=
"Rev-Diagonal" type=
"gnm:StyleBorderElement" minOccurs=
"0" maxOccurs=
"1"/>
546 <xs:element name=
"Validation" minOccurs=
"0" maxOccurs=
"1">
549 <xs:element name=
"Expression0" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
550 <xs:element name=
"Expression1" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
552 <xs:attribute name=
"Style" type=
"gnm:ValidationStyle" use=
"required"/>
553 <xs:attribute name=
"Type" type=
"gnm:ValidationType" use=
"required"/>
554 <xs:attribute name=
"Operator" type=
"gnm:ValidationOperator" use=
"optional"/>
555 <xs:attribute name=
"AllowBlank" type=
"xs:boolean" use=
"optional"/>
556 <xs:attribute name=
"UseDropdown" type=
"xs:boolean" use=
"optional"/>
557 <xs:attribute name=
"Title" type=
"xs:string" use=
"optional"/>
558 <xs:attribute name=
"Message" type=
"xs:string" use=
"optional"/>
559 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
563 <xs:element name=
"InputMessage" minOccurs=
"0" maxOccurs=
"1">
565 <xs:attribute name=
"Title" type=
"xs:string" use=
"optional"/>
566 <xs:attribute name=
"Message" type=
"xs:string" use=
"optional"/>
567 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
571 <xs:attribute name=
"HAlign" type=
"gnm:horizontal_alignment"/>
572 <xs:attribute name=
"VAlign" type=
"gnm:vertical_alignment"/>
573 <xs:attribute name=
"WrapText" type=
"xs:boolean" />
575 <!-- should be bool, but some files have odd truth values -->
576 <xs:attribute name=
"ShrinkToFit" type=
"xs:integer" />
578 <xs:attribute name=
"Rotation" type=
"xs:integer" use=
"optional"/>
579 <xs:attribute name=
"Orient" type=
"xs:integer" use=
"optional"/>
580 <xs:attribute name=
"Shade" type=
"gnm:Stipple" use=
"optional"/>
581 <xs:attribute name=
"Indent" type=
"xs:integer" use=
"optional"/>
582 <xs:attribute name=
"Locked" type=
"xs:boolean" use=
"optional"/>
583 <xs:attribute name=
"Hidden" type=
"xs:boolean" use=
"optional"/>
584 <xs:attribute name=
"Fore" type=
"gnm:color" use=
"optional"/>
585 <xs:attribute name=
"Back" type=
"gnm:color" use=
"optional"/>
586 <xs:attribute name=
"PatternColor" type=
"gnm:color" use=
"optional"/>
587 <xs:attribute name=
"Format" type=
"xs:string" use=
"optional"/>
588 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
591 <xs:complexType name=
"StyleBorderElement">
592 <xs:attribute name=
"Style" type=
"gnm:border_style" use=
"required"/>
593 <!-- Color is present when Style is not 0 -->
594 <xs:attribute name=
"Color" type=
"gnm:color" use=
"optional"/>
595 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
598 <xs:simpleType name=
"border_style">
599 <xs:restriction base=
"xs:integer">
612 12 = MEDIUM_DASH_DOT_DOT
613 13 = SLANTED_DASH_DOT
615 <xs:minInclusive value=
"0"/>
616 <xs:maxInclusive value=
"13"/>
620 <xs:simpleType name=
"ValidationStyle">
621 <xs:restriction base=
"xs:string">
622 <xs:enumeration value=
"GNM_VALIDATION_STYLE_NONE"/>
623 <xs:enumeration value=
"GNM_VALIDATION_STYLE_STOP"/>
624 <xs:enumeration value=
"GNM_VALIDATION_STYLE_WARNING"/>
625 <xs:enumeration value=
"GNM_VALIDATION_STYLE_INFO"/>
626 <xs:enumeration value=
"GNM_VALIDATION_STYLE_PARSE_ERROR"/>
630 <xs:simpleType name=
"ValidationType">
631 <xs:restriction base=
"xs:string">
632 <xs:enumeration value=
"GNM_VALIDATION_TYPE_ANY"/>
633 <xs:enumeration value=
"GNM_VALIDATION_TYPE_AS_INT"/>
634 <xs:enumeration value=
"GNM_VALIDATION_TYPE_AS_NUMBER"/>
635 <xs:enumeration value=
"GNM_VALIDATION_TYPE_IN_LIST"/>
636 <xs:enumeration value=
"GNM_VALIDATION_TYPE_AS_DATE"/>
637 <xs:enumeration value=
"GNM_VALIDATION_TYPE_AS_TIME"/>
638 <xs:enumeration value=
"GNM_VALIDATION_TYPE_TEXT_LENGTH"/>
639 <xs:enumeration value=
"GNM_VALIDATION_TYPE_CUSTOM"/>
643 <xs:simpleType name=
"ValidationOperator">
644 <xs:restriction base=
"xs:string">
645 <xs:enumeration value=
"GNM_VALIDATION_OP_NONE"/>
646 <xs:enumeration value=
"GNM_VALIDATION_OP_BETWEEN"/>
647 <xs:enumeration value=
"GNM_VALIDATION_OP_NOT_BETWEEN"/>
648 <xs:enumeration value=
"GNM_VALIDATION_OP_EQUAL"/>
649 <xs:enumeration value=
"GNM_VALIDATION_OP_NOT_EQUAL"/>
650 <xs:enumeration value=
"GNM_VALIDATION_OP_GT"/>
651 <xs:enumeration value=
"GNM_VALIDATION_OP_LT"/>
652 <xs:enumeration value=
"GNM_VALIDATION_OP_GTE"/>
653 <xs:enumeration value=
"GNM_VALIDATION_OP_LTE"/>
657 <xs:simpleType name=
"underline">
658 <xs:restriction base=
"xs:integer">
665 <xs:minInclusive value=
"0"/>
666 <xs:maxInclusive value=
"4"/>
670 <xs:simpleType name=
"script">
671 <xs:restriction base=
"xs:integer">
672 <!-- GO_FONT_SCRIPT_SUB = -1,
673 GO_FONT_SCRIPT_STANDARD = 0,
674 GO_FONT_SCRIPT_SUPER = 1
676 <xs:minInclusive value=
"-1"/>
677 <xs:maxInclusive value=
"1"/>
681 <xs:simpleType name=
"horizontal_alignment">
682 <xs:restriction base=
"xs:string">
683 <xs:enumeration value=
"GNM_HALIGN_GENERAL"/>
684 <xs:enumeration value=
"GNM_HALIGN_LEFT"/>
685 <xs:enumeration value=
"GNM_HALIGN_RIGHT"/>
686 <xs:enumeration value=
"GNM_HALIGN_CENTER"/>
687 <xs:enumeration value=
"GNM_HALIGN_FILL"/>
688 <xs:enumeration value=
"GNM_HALIGN_JUSTIFY"/>
689 <xs:enumeration value=
"GNM_HALIGN_CENTER_ACROSS_SELECTION"/>
690 <xs:enumeration value=
"GNM_HALIGN_DISTRIBUTED"/>
694 <xs:simpleType name=
"vertical_alignment">
695 <xs:restriction base=
"xs:string">
696 <xs:enumeration value=
"GNM_VALIGN_TOP"/>
697 <xs:enumeration value=
"GNM_VALIGN_BOTTOM"/>
698 <xs:enumeration value=
"GNM_VALIGN_CENTER"/>
699 <xs:enumeration value=
"GNM_VALIGN_JUSTIFY"/>
700 <xs:enumeration value=
"GNM_VALIGN_DISTRIBUTED"/>
704 <xs:simpleType name=
"Stipple">
705 <xs:restriction base=
"xs:integer">
706 <!-- the values are defined as follows:
714 7 = Horizontal Stripe
716 9 = Reverse Diagonal Stripe
718 11 = Diagonal Crosshatch
719 12 = Thick Diagonal Crosshatch
720 13 = Thin Horizontal Stripe
721 14 = Thin Vertical Stripe
722 15 = Thin Reverse Diagonal Stripe
723 16 = Thin Diagonal Stripe
725 18 = Thin Diagonal Crosshatch
726 19 = Applix small circle
727 20 = Applix semicircle
728 21 = Applix small thatch
729 22 = Applix round thatch
734 <xs:minInclusive value=
"0"/>
735 <xs:maxInclusive value=
"25"/>
739 <xs:simpleType name=
"color">
740 <xs:restriction base=
"xs:string">
741 <!-- colors in hex, 16 bits red, green, then blue -->
742 <xs:pattern value=
"[0-9A-F]{1,4}:[0-9A-F]{1,4}:[0-9A-F]{1,4}"/>
746 <xs:complexType name=
"Col_Row">
747 <!-- column/row number -->
748 <xs:attribute name=
"No" type=
"xs:nonNegativeInteger" use=
"required"/>
749 <!-- size in points -->
750 <xs:attribute name=
"Unit" type=
"xs:double" use=
"required"/>
751 <!-- DEPRECATED in 1.7.1 : top/left margin (no unit it does not scale) -->
752 <xs:attribute name=
"MarginA" type=
"gnm:col_row_margin" use=
"optional"/>
753 <!-- DEPRECATED in 1.7.1 : botton/right margin (no unit it does not scale) -->
754 <xs:attribute name=
"MarginB" type=
"gnm:col_row_margin" use=
"optional"/>
755 <!-- true if size is explicitly set -->
756 <xs:attribute name=
"HardSize" type=
"xs:boolean" use=
"optional" default=
"0"/>
757 <xs:attribute name=
"Hidden" type=
"xs:boolean" use=
"optional" default=
"0"/>
758 <xs:attribute name=
"Collapsed" type=
"xs:boolean" use=
"optional" default=
"0"/>
759 <xs:attribute name=
"OutlineLevel" type=
"xs:integer" use=
"optional" default=
"0"/>
760 <!-- The number of consequitive identically sized cols/rows -->
761 <xs:attribute name=
"Count" type=
"xs:integer" use=
"optional" default=
"1"/>
762 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
765 <xs:simpleType name=
"col_row_margin">
766 <xs:restriction base=
"xs:integer">
767 <xs:minInclusive value=
"0"/>
768 <xs:maxInclusive value=
"7"/>
772 <xs:complexType name=
"Selections">
774 <xs:element name=
"Selection" minOccurs=
"0" maxOccurs=
"unbounded">
776 <xs:attribute name=
"startCol" type=
"xs:nonNegativeInteger" use=
"required"/>
777 <xs:attribute name=
"startRow" type=
"xs:nonNegativeInteger" use=
"required"/>
778 <xs:attribute name=
"endCol" type=
"xs:nonNegativeInteger" use=
"required"/>
779 <xs:attribute name=
"endRow" type=
"xs:nonNegativeInteger" use=
"required"/>
780 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
784 <xs:attribute name=
"CursorCol" type=
"xs:nonNegativeInteger" use=
"required"/>
785 <xs:attribute name=
"CursorRow" type=
"xs:nonNegativeInteger" use=
"required"/>
786 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
789 <xs:attributeGroup name=
"ObjectAnchor">
790 <xs:attribute name=
"AnchorMode" type=
"gnm:anchor_mode" use=
"optional"/>
791 <xs:attribute name=
"ObjectBound" type=
"xs:string" use=
"required"/>
792 <xs:attribute name=
"ObjectOffset" type=
"gnm:offsets" use=
"required"/>
793 <xs:attribute name=
"ObjectAnchorType" type=
"gnm:anchor_type" use=
"optional"/>
794 <xs:attribute name=
"Direction" type=
"gnm:direction" use=
"required"/>
795 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
798 <xs:attributeGroup name=
"ObjectProperties">
799 <xs:attribute name=
"Print" type=
"xs:boolean" use=
"optional"/>
800 <xs:attribute name=
"Name" type=
"xs:string" use=
"optional"/>
803 <xs:attributeGroup name=
"ObjectAdjustmentProps">
804 <xs:attribute name=
"Min" type=
"xs:double" use=
"required"/>
805 <xs:attribute name=
"Max" type=
"xs:double" use=
"required"/>
806 <xs:attribute name=
"Inc" type=
"xs:double" use=
"required"/>
807 <xs:attribute name=
"Page" type=
"xs:double" use=
"required"/>
808 <xs:attribute name=
"Value" type=
"xs:double" use=
"required"/>
809 <xs:attribute name=
"Input" type=
"xs:string" use=
"optional"/>
810 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
813 <xs:complexType name=
"Objects">
814 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
815 <xs:element name=
"CellComment">
817 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
818 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
819 <xs:attribute name=
"Author" type=
"xs:string" use=
"optional"/>
820 <xs:attribute name=
"Text" type=
"xs:string" use=
"required"/>
821 <xs:attribute name=
"TextFormat" type=
"xs:string" use=
"optional"/>
822 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
825 <xs:element name=
"SheetObjectFilled">
827 <xs:choice minOccurs=
"0" maxOccurs=
"1">
828 <xs:any namespace=
"##local" processContents=
"lax"/>
830 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
831 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
832 <xs:attribute name=
"OutlineColor" type=
"gnm:color" use=
"optional"/>
833 <xs:attribute name=
"FillColor" type=
"gnm:color" use=
"optional"/>
834 <xs:attribute name=
"Type" type=
"gnm:objectfilled" use=
"required"/>
835 <xs:attribute name=
"Width" type=
"xs:nonNegativeInteger" use=
"optional"/>
836 <xs:attribute name=
"Label" type=
"xs:string" use=
"optional"/>
837 <xs:attribute name=
"LabelFormat" type=
"xs:string" use=
"optional"/>
839 <!-- the arrow shape attributes are only used if the type is
842 <xs:attribute name=
"ArrowShapeA" type=
"xs:double" use=
"optional"/>
843 <xs:attribute name=
"ArrowShapeB" type=
"xs:double" use=
"optional"/>
844 <xs:attribute name=
"ArrowShapeC" type=
"xs:double" use=
"optional"/>
845 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
850 <xs:element name=
"SheetWidgetButton">
852 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
853 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
854 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
855 <xs:attribute name=
"Value" type=
"xs:integer" />
856 <xs:attribute name=
"Input" type=
"xs:string" />
857 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
860 <xs:element name=
"SheetWidgetCheckbox">
862 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
863 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
864 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
865 <xs:attribute name=
"Value" type=
"xs:integer" use=
"required"/>
866 <xs:attribute name=
"Input" type=
"xs:string" />
867 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
870 <xs:element name=
"SheetWidgetRadioButton">
872 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
873 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
874 <xs:attribute name=
"Label" type=
"xs:string" use=
"required"/>
875 <xs:attribute name=
"Value" type=
"xs:string" use=
"required"/>
876 <xs:attribute name=
"ValueType" type=
"gnm:ValueType" use=
"required"/>
877 <xs:attribute name=
"Active" type=
"xs:boolean" use=
"required"/>
878 <xs:attribute name=
"Input" type=
"xs:string" use=
"optional"/>
879 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
883 <xs:element name=
"SheetWidgetScrollbar">
885 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
886 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
887 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
888 <xs:attribute name=
"Horizontal" type=
"xs:boolean" use=
"optional"/>
889 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
892 <xs:element name=
"SheetWidgetSpinbutton">
894 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
895 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
896 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
897 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
900 <xs:element name=
"SheetWidgetSlider" minOccurs=
"0" maxOccurs=
"unbounded">
902 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
903 <xs:attributeGroup ref=
"gnm:ObjectAdjustmentProps"/>
904 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
905 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
909 <xs:element name=
"SheetObjectImage">
912 <xs:element name=
"Content" form=
"unqualified">
913 <xs:complexType mixed=
"true">
914 <xs:attribute name=
"image-type" type=
"xs:string" use=
"required"/>
915 <xs:attribute name=
"name" type=
"xs:string" use=
"optional"/>
916 <xs:attribute name=
"size-bytes" type=
"xs:int" use=
"optional"/>
917 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
921 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
922 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
923 <xs:attribute name=
"crop-top" type=
"xs:double" use=
"required"/>
924 <xs:attribute name=
"crop-bottom" type=
"xs:double" use=
"required"/>
925 <xs:attribute name=
"crop-left" type=
"xs:double" use=
"required"/>
926 <xs:attribute name=
"crop-right" type=
"xs:double" use=
"required"/>
927 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
930 <xs:element name=
"SheetObjectGraph">
932 <xs:choice minOccurs=
"1" maxOccurs=
"1">
933 <xs:element name=
"GogObject" type=
"gnm:GogObject"/>
934 <xs:element name=
"GogObject" type=
"gnm:GogObject" form=
"unqualified"/>
936 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
937 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
938 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
941 <xs:element name=
"SheetWidgetFrame">
943 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
944 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
945 <xs:attribute name=
"Label" type=
"xs:string" use=
"optional"/>
946 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
949 <xs:element name=
"SheetWidgetLabel">
951 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
952 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
953 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
956 <xs:element name=
"SheetWidgetList">
958 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
959 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
960 <xs:attribute name=
"Content" type=
"xs:string" use=
"required"/>
961 <xs:attribute name=
"Output" type=
"xs:string" use=
"required"/>
962 <xs:attribute name=
"OutputAsIndex" type=
"xs:boolean" use=
"required"/>
963 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
966 <xs:element name=
"SheetWidgetCombo">
968 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
969 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
970 <xs:attribute name=
"Content" type=
"xs:string" use=
"required"/>
971 <xs:attribute name=
"Output" type=
"xs:string" use=
"required"/>
972 <xs:attribute name=
"OutputAsIndex" type=
"xs:boolean" use=
"required"/>
973 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
977 <xs:element name=
"SheetObjectGraphic">
980 <xs:element name=
"Style" type=
"gnm:GOStyle" form=
"unqualified"/>
982 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
983 <xs:attributeGroup ref=
"gnm:ObjectProperties"/>
984 <xs:attribute name=
"Type" type=
"xs:integer" use=
"required"/>
985 <xs:attribute name=
"StartArrowType" type=
"xs:string" use=
"optional"/>
986 <xs:attribute name=
"StartArrowShapeA" type=
"xs:double" use=
"optional"/>
987 <xs:attribute name=
"StartArrowShapeB" type=
"xs:double" use=
"optional"/>
988 <xs:attribute name=
"StartArrowShapeC" type=
"xs:double" use=
"optional"/>
989 <xs:attribute name=
"EndArrowType" type=
"xs:string" use=
"optional"/>
990 <xs:attribute name=
"EndArrowShapeA" type=
"xs:double" use=
"optional"/>
991 <xs:attribute name=
"EndArrowShapeB" type=
"xs:double" use=
"optional"/>
992 <xs:attribute name=
"EndArrowShapeC" type=
"xs:double" use=
"optional"/>
993 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
997 <!-- no longer supported -->
998 <xs:element name=
"SheetObjectBonobo">
1000 <xs:attributeGroup ref=
"gnm:ObjectAnchor"/>
1006 <xs:complexType name=
"GOStyle">
1008 <xs:element name=
"line" type=
"gnm:GOLine" form=
"unqualified"/>
1010 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
1013 <xs:complexType name=
"GOLine">
1015 <xs:anyAttribute processContents=
"skip"/>
1018 <xs:complexType name=
"GogObject">
1019 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
1020 <xs:element name=
"property" type=
"gnm:GogProperty"/>
1021 <xs:element name=
"property" type=
"gnm:GogProperty" form=
"unqualified"/>
1022 <xs:element name=
"data" type=
"gnm:GOData"/>
1023 <xs:element name=
"data" type=
"gnm:GOData" form=
"unqualified"/>
1024 <xs:element name=
"GogObject" type=
"gnm:GogObject"/>
1025 <xs:element name=
"GogObject" type=
"gnm:GogObject" form=
"unqualified"/>
1027 <xs:attribute name=
"type" type=
"xs:string" use=
"optional"/>
1028 <xs:attribute name=
"role" type=
"xs:string" use=
"optional"/>
1031 <xs:complexType name=
"GogProperty" mixed=
"true">
1033 <!-- children are unstructured -->
1034 <xs:any minOccurs=
"0" maxOccurs=
"unbounded" processContents=
"lax"/>
1036 <xs:attribute name=
"name" type=
"xs:string" use=
"required"/>
1037 <xs:attribute name=
"type" type=
"xs:string" use=
"optional"/>
1038 <xs:attribute name=
"error_type" type=
"xs:string" use=
"optional"/>
1039 <xs:attribute name=
"width" type=
"xs:integer" use=
"optional"/>
1042 <xs:complexType name=
"GOData">
1043 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
1044 <xs:element name=
"dimension" type=
"gnm:GODimension"/>
1045 <xs:element name=
"dimension" type=
"gnm:GODimension" form=
"unqualified"/>
1048 <xs:complexType name=
"GODimension">
1050 <xs:extension base=
"xs:string">
1051 <xs:attribute name=
"id" type=
"xs:integer" use=
"required"/>
1052 <xs:attribute name=
"type" type=
"xs:string" use=
"required"/>
1057 <xs:simpleType name=
"offsets">
1058 <xs:restriction base=
"xs:string">
1059 <!-- if this seems hard to read, it purportedly describes 4
1060 space-separated doubles
1062 <xs:pattern value=
"[+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)? [+\-]?\d+(.\d+)?([Ee]([+\-])?\d+)?"/>
1066 <!-- As of 1.7.7 this is deprecated -->
1067 <xs:simpleType name=
"anchor_type">
1068 <xs:restriction base=
"xs:string">
1069 <!-- if this seems hard to read, it purportedly describes 4
1070 space-separated positive numbers
1072 each number needs to be one of the following:
1074 16 = PERCENTAGE_FROM_COLROW_START
1075 32 = PTS_FROM_COLROW_START
1076 33 = PTS_FROM_COLROW_END
1079 <xs:pattern value=
"\d+ \d+ \d+ \d+"/>
1083 <xs:simpleType name=
"anchor_mode">
1084 <xs:restriction base=
"xs:string">
1085 <xs:enumeration value=
"GNM_SO_ANCHOR_ABSOLUTE"/>
1086 <xs:enumeration value=
"GNM_SO_ANCHOR_ONE_CELL"/>
1087 <xs:enumeration value=
"GNM_SO_ANCHOR_TWO_CELLS"/>
1091 <xs:simpleType name=
"direction">
1092 <xs:restriction base=
"xs:string">
1093 <xs:enumeration value=
"-1"/> <!-- unknown -->
1094 <xs:enumeration value=
"0"/> <!-- up right -->
1095 <xs:enumeration value=
"1"/> <!-- up left -->
1096 <xs:enumeration value=
"16"/> <!-- down right -->
1097 <xs:enumeration value=
"17"/> <!-- down left -->
1098 <xs:enumeration value=
"255"/> <!-- unknown -->
1102 <xs:simpleType name=
"objectfilled">
1103 <xs:restriction base=
"xs:string">
1104 <xs:enumeration value=
"1"/> <!-- line -->
1105 <xs:enumeration value=
"2"/> <!-- arrow -->
1106 <xs:enumeration value=
"101"/> <!-- box -->
1107 <xs:enumeration value=
"102"/> <!-- oval -->
1111 <xs:complexType name=
"Cells">
1113 <xs:element name=
"Cell" minOccurs=
"0" maxOccurs=
"unbounded">
1114 <!-- expressions are stored as entered, with a leading '='.
1115 Once a shared expression has been defined, subsequent
1116 Cell elements using that same shared expression simply
1117 use the "ExprID" attribute to indicate which shared
1118 expression is used, and no Content element is included
1120 <xs:complexType mixed=
"true">
1121 <!-- Compatibility for ancient 0.x format -->
1123 <xs:element name=
"Content" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
1126 <!-- Col and Row are sufficient for a cell that is an element of
1127 an array of cells as long as it's not the top left cell -->
1128 <xs:attribute name=
"Col" type=
"xs:nonNegativeInteger" use=
"required"/>
1129 <xs:attribute name=
"Row" type=
"xs:nonNegativeInteger" use=
"required"/>
1130 <!-- ExprID is only used to refer to a shared expression -->
1131 <xs:attribute name=
"ExprID" type=
"xs:nonNegativeInteger" use=
"optional"/>
1132 <!-- ValueType is not used if the cell contains an expression -->
1133 <xs:attribute name=
"ValueType" type=
"gnm:ValueType" use=
"optional"/>
1134 <!-- ValueFormat is apparently used only for cell-by-cell format overrides -->
1135 <xs:attribute name=
"ValueFormat" type=
"xs:string" use=
"optional"/>
1136 <!-- Cols and Rows are used to define an array of cells -->
1137 <xs:attribute name=
"Cols" type=
"xs:positiveInteger" use=
"optional"/>
1138 <xs:attribute name=
"Rows" type=
"xs:positiveInteger" use=
"optional"/>
1139 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1145 <xs:simpleType name=
"ValueType">
1146 <xs:restriction base=
"xs:string">
1147 <xs:enumeration value=
"10"/> <!-- empty -->
1148 <xs:enumeration value=
"20"/> <!-- boolean -->
1149 <xs:enumeration value=
"30"/> <!-- integer -->
1150 <xs:enumeration value=
"40"/> <!-- float -->
1151 <xs:enumeration value=
"50"/> <!-- error -->
1152 <xs:enumeration value=
"60"/> <!-- string -->
1153 <xs:enumeration value=
"70"/> <!-- cellrange -->
1154 <xs:enumeration value=
"80"/> <!-- array -->
1158 <xs:simpleType name=
"CondOp">
1159 <xs:restriction base=
"xs:nonNegativeInteger">
1160 <xs:enumeration value=
"0"/> <!-- GNM_STYLE_COND_BETWEEN -->
1161 <xs:enumeration value=
"1"/> <!-- GNM_STYLE_COND_NOT_BETWEEN -->
1162 <xs:enumeration value=
"2"/> <!-- GNM_STYLE_COND_EQUAL -->
1163 <xs:enumeration value=
"3"/> <!-- GNM_STYLE_COND_NOT_EQUAL -->
1164 <xs:enumeration value=
"4"/> <!-- GNM_STYLE_COND_GT -->
1165 <xs:enumeration value=
"5"/> <!-- GNM_STYLE_COND_LT -->
1166 <xs:enumeration value=
"6"/> <!-- GNM_STYLE_COND_GTE -->
1167 <xs:enumeration value=
"7"/> <!-- GNM_STYLE_COND_LTE -->
1169 <!-- Arbitrary expr evaluated at EvalPos -->
1170 <xs:enumeration value=
"8"/> <!-- GNM_STYLE_COND_CUSTOM -->
1172 <!-- New in Gnumeric 1.8 -->
1173 <xs:enumeration value=
"16"/> <!-- GNM_STYLE_COND_CONTAINS_STR -->
1174 <xs:enumeration value=
"17"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_STR -->
1175 <xs:enumeration value=
"18"/> <!-- GNM_STYLE_COND_BEGINS_WITH_STR -->
1176 <xs:enumeration value=
"19"/> <!-- GNM_STYLE_COND_NOT_BEGINS_WITH_STR -->
1177 <xs:enumeration value=
"20"/> <!-- GNM_STYLE_COND_ENDS_WITH_STR -->
1178 <xs:enumeration value=
"21"/> <!-- GNM_STYLE_COND_NOT_ENDS_WITH_STR -->
1180 <xs:enumeration value=
"22"/> <!-- GNM_STYLE_COND_CONTAINS_ERR -->
1181 <xs:enumeration value=
"23"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_ERR -->
1183 <xs:enumeration value=
"24"/> <!-- GNM_STYLE_COND_CONTAINS_BLANKS -->
1184 <xs:enumeration value=
"25"/> <!-- GNM_STYLE_COND_NOT_CONTAINS_BLANK -->
1187 <xs:simpleType name=
"FilterFieldType">
1188 <xs:restriction base=
"xs:string">
1189 <xs:enumeration value=
"expr"/>
1190 <xs:enumeration value=
"blanks"/>
1191 <xs:enumeration value=
"nonblanks"/>
1192 <xs:enumeration value=
"bucket"/>
1195 <xs:simpleType name=
"FilterFieldOp">
1196 <xs:restriction base=
"xs:string">
1197 <xs:enumeration value=
"eq"/>
1198 <xs:enumeration value=
"gt"/>
1199 <xs:enumeration value=
"lt"/>
1200 <xs:enumeration value=
"gte"/>
1201 <xs:enumeration value=
"lte"/>
1202 <xs:enumeration value=
"ne"/>
1206 <xs:complexType name=
"FilterField">
1207 <xs:attribute name=
"Index" type=
"xs:nonNegativeInteger" use=
"required"/>
1208 <xs:attribute name=
"Type" type=
"gnm:FilterFieldType" use=
"required"/>
1210 <!-- WARNING WARNING WARNING
1211 Value and ValueType have their senses
1212 reversed due to an old typo -->
1213 <!-- Only valid for Type=expr -->
1214 <xs:attribute name=
"Value0" type=
"gnm:ValueType" use=
"optional"/>
1215 <xs:attribute name=
"ValueType0" type=
"xs:string" use=
"optional"/>
1216 <xs:attribute name=
"Op0" type=
"gnm:FilterFieldOp" use=
"optional"/>
1217 <xs:attribute name=
"Value1" type=
"gnm:ValueType" use=
"optional"/>
1218 <xs:attribute name=
"ValueType1" type=
"xs:string" use=
"optional"/>
1219 <xs:attribute name=
"Op1" type=
"gnm:FilterFieldOp" use=
"optional"/>
1221 <!-- Only valid for Type=bucket -->
1222 <xs:attribute name=
"top" type=
"xs:boolean" use=
"optional"/> <!-- top vs bottom -->
1223 <xs:attribute name=
"items" type=
"xs:boolean" use=
"optional"/> <!-- top n vs top n% -->
1224 <xs:attribute name=
"count" type=
"xs:double" use=
"optional"/> <!-- top COUNT -->
1226 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1229 <xs:complexType name=
"Filters">
1231 <xs:element name=
"Filter" minOccurs=
"0" maxOccurs=
"unbounded">
1234 <xs:element name=
"Field" type=
"gnm:FilterField" minOccurs=
"0" maxOccurs=
"unbounded"/>
1236 <xs:attribute name=
"Area" type=
"xs:string" use=
"required"/>
1242 <xs:complexType name=
"MergedRegions">
1244 <xs:element name=
"Merge" type=
"xs:string" minOccurs=
"0" maxOccurs=
"unbounded"/>
1246 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1249 <xs:complexType name=
"Solver">
1251 <xs:element name=
"Constr" minOccurs=
"0" maxOccurs=
"unbounded">
1253 <xs:attribute name=
"lhs" type=
"gnm:SolverSide" use=
"required"/>
1254 <xs:attribute name=
"rhs" type=
"gnm:SolverSide" use=
"required"/>
1255 <xs:attribute name=
"Type" type=
"gnm:solver_constraint_t" use=
"required"/>
1259 <xs:attribute name=
"Target" type=
"gnm:CellRef" use=
"optional"/>
1260 <xs:attribute name=
"ProblemType" type=
"gnm:solver_problem_t" use=
"required"/>
1261 <xs:attribute name=
"ModelType" type=
"gnm:model_type_t"/>
1262 <xs:attribute name=
"Inputs" type=
"xs:string"/>
1263 <xs:attribute name=
"MaxTime" type=
"xs:integer" use=
"required"/>
1264 <xs:attribute name=
"MaxIter" type=
"xs:integer" use=
"required"/>
1265 <xs:attribute name=
"NonNeg" type=
"xs:boolean" use=
"required"/>
1266 <xs:attribute name=
"Discr" type=
"xs:boolean" use=
"required"/>
1267 <xs:attribute name=
"AutoScale" type=
"xs:boolean" use=
"required"/>
1268 <xs:attribute name=
"ShowIter" type=
"xs:boolean"/>
1269 <xs:attribute name=
"AnswerR" type=
"xs:boolean"/>
1270 <xs:attribute name=
"SensitivityR" type=
"xs:boolean"/>
1271 <xs:attribute name=
"LimitsR" type=
"xs:boolean"/>
1272 <xs:attribute name=
"PerformR" type=
"xs:boolean"/>
1273 <xs:attribute name=
"ProgramR" type=
"xs:boolean" use=
"required"/>
1274 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>
1277 <xs:simpleType name=
"solver_constraint_t">
1278 <xs:restriction base=
"xs:integer">
1279 <xs:enumeration value=
"0" /> <!-- none -->
1280 <xs:enumeration value=
"1" /> <!-- <= -->
1281 <xs:enumeration value=
"2" /> <!-- >= -->
1282 <xs:enumeration value=
"4" /> <!-- = -->
1283 <xs:enumeration value=
"8" /> <!-- Int -->
1284 <xs:enumeration value=
"16"/> <!-- boolean -->
1288 <xs:simpleType name=
"SolverSide">
1289 <xs:restriction base=
"xs:string">
1290 <xs:pattern value=
"$?[A-Z]+$?\d+"/>
1294 <xs:simpleType name=
"solver_problem_t">
1295 <xs:restriction base=
"xs:integer">
1296 <xs:enumeration value=
"0" /> <!-- SolverMinimize -->
1297 <xs:enumeration value=
"1" /> <!-- SolverMaximize -->
1298 <xs:enumeration value=
"2" /> <!-- SolverEqualTo -->
1301 <xs:simpleType name=
"model_type_t">
1302 <xs:restriction base=
"xs:integer">
1303 <xs:enumeration value=
"0" /> <!-- GNM_SOLVER_LP -->
1304 <xs:enumeration value=
"1" /> <!-- GNM_SOLVER_QP -->
1305 <xs:enumeration value=
"2" /> <!-- GNM_SOLVER_NLP -->
1308 <xs:simpleType name=
"SheetVisibility">
1309 <xs:restriction base=
"xs:string">
1310 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_VISIBLE"/>
1311 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_HIDDEN"/>
1312 <xs:enumeration value=
"GNM_SHEET_VISIBILITY_VERY_HIDDEN"/>
1316 <xs:complexType name=
"Scenarios">
1318 <xs:element name=
"Scenario" minOccurs=
"0" maxOccurs=
"unbounded">
1321 <xs:element name=
"Name" type=
"xs:string"/>
1322 <xs:element name=
"Comment" type=
"xs:string"/>
1323 <xs:element name=
"CellsStr" type=
"xs:string"/>
1330 <xs:complexType name=
"SheetLayout">
1332 <xs:element name=
"FreezePanes" minOccurs=
"0" maxOccurs=
"1">
1334 <xs:attribute name=
"FrozenTopLeft" type=
"xs:string" use=
"required"/>
1335 <xs:attribute name=
"UnfrozenTopLeft" type=
"xs:string" use=
"required"/>
1339 <xs:attribute name=
"TopLeft" type=
"xs:string" use=
"required"/>
1340 <xs:anyAttribute namespace=
"##other" processContents=
"lax"/>