spv-file-format: Improve description of structure member format.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 16 Jul 2017 18:21:02 +0000 (11:21 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 16 Jul 2017 18:21:12 +0000 (11:21 -0700)
doc/dev/spv-file-format.texi
doc/dev/spv-structure.eps
doc/dev/spv-structure.gv
doc/dev/spv-structure.pdf

index c325a5dd4d922de117ed3eea1a29f41b6ddb76e5..38059ba889c5878c7a39af61f9e935ce87c0cb0e 100644 (file)
@@ -80,13 +80,18 @@ their exact names do not matter to readers as long as they are unique.
 @node SPV Structure Member Format
 @section Structure Member Format
 
+A structure member lays out the high-level structure for a group of
+output items such as heading, tables, and charts.  Structure members
+do not include the details of tables and charts but instead refer to
+them by their member names.
+
 Structure members' XML files claim conformance with a collection of
 XML Schemas.  These schemas are distributed, under a nonfree license,
 with SPSS binaries.  Fortunately, the schemas are not necessary to
-understand the structure members.  To a degree, the schemas can even
+understand the structure members.  The schemas can even
 be deceptive because they document elements and attributes that are
 not in the corpus and do not document elements and attributes that are
-commonly found there.
+commonly found in the corpus.
 
 Structure members use a different XML namespace for each schema, but
 these namespaces are not entirely consistent.  In some SPV files, for
@@ -98,7 +103,26 @@ not resolvable to obtain the schemas themselves.
 
 One may ignore all of the above in interpreting a structure member.
 The actual XML has a simple and straightforward form that does not
-require a reader to take schemas or namespaces into account.
+require a reader to take schemas or namespaces into account.  A
+structure member's root is @code{heading} element, which contains
+@code{heading} or @code{container} elements (or a mix), forming a
+tree.  In turn, @code{container} holds a single @code{text} or
+@code{table} element.
+
+@ifnottex
+For a diagram illustrating the hierarchy of elements within an SPV
+structure member, please refer to a PDF version of the manual.
+@end ifnottex
+
+@iftex
+The following diagram shows the hierarchy within an SPV structure
+member more precisely.  Oval nodes are elements and <text> and <cdata>
+are plain text and CDATA within elements.  Edges point from parent to
+child.  Unlabeled edges indicate that the child appears exactly once;
+edges labeled with *, zero or more times; edges labeled with ?, zero
+or one times.
+@center @image{dev/spv-structure, 5in}
+@end iftex
 
 The elements found in structure members are documented below.  For
 each element, we note the possible parent elements and the element's
@@ -128,19 +152,45 @@ A choice between @var{a} and @var{b}.
 Zero or more @var{x}.
 @end table
 
-@ifnottex
-For a diagram illustrating the hierarchy of elements within an SPV
-structure member, please refer to a PDF version of the manual.
-@end ifnottex
+The following example shows the contents of a typical structure member
+for a @cmd{DESCRIPTIVES} procedure.  A real structure member is not
+indented.  This example also omits most attributes, all XML namespace
+information, and the CSS from the embedded HTML:
 
-@iftex
-The following diagram shows the hierarchy of elements within an SPV
-structure member.  Edges point from parent to child elements.
-Unlabeled edges indicate that the child appears exactly once; edges
-labeled with *, zero or more times; edges labeled with ?, zero or one
-times.
-@center @image{dev/spv-structure, 5in}
-@end iftex
+@example
+<?xml version="1.0" encoding="utf-8"?>
+<heading>
+  <label>Output</label>
+  <heading commandName="Descriptives">
+    <label>Descriptives</label>
+    <container>
+      <label>Title</label>
+      <text commandName="Descriptives" type="title">
+        <html lang="en">
+<![CDATA[<head><style type="text/css">...</style></head><BR>Descriptives]]>
+        </html>
+      </text>
+    </container>
+    <container visibility="hidden">
+      <label>Notes</label>
+      <table commandName="Descriptives" subType="Notes" type="note">
+        <tableStructure>
+          <dataPath>00000000001_lightNotesData.bin</dataPath>
+        </tableStructure>
+      </table>
+    </container>
+    <container>
+      <label>Descriptive Statistics</label>
+      <table commandName="Descriptives" subType="Descriptive Statistics"
+             type="table">
+        <tableStructure>
+          <dataPath>00000000002_lightTableData.bin</dataPath>
+        </tableStructure>
+      </table>
+    </container>
+  </heading>
+</heading>
+@end example
 
 @menu
 * SPV Structure heading Element::
@@ -166,7 +216,9 @@ Contents: @code{pageSetup}? @code{label} (@code{container} @math{|} @code{headin
 The root of a structure member is a @code{heading}, which represents a
 section of output beginning with a title (the @code{label}) and
 ordinarily followed by content containers or further nested
-(sub)-sections of output.
+(sub)-sections of output.  Unlike heading elements in HTML and other
+common document formats, which precede the content that they head,
+@code{heading} contains the elements that appear below the heading.
 
 The document root heading, only, may also contain a @code{pageSetup}
 element.
@@ -250,7 +302,7 @@ often very generic, especially within a @code{container}, e.g.@:
 according to the output language, e.g.@: in Italian a frequency table
 procedure is labeled ``Frequenze''.
 
-The corpus contains one example of an empty label, one that contains
+The corpus contains a few examples of empty labels, ones that contain
 no text.
 
 This element has no attributes.
@@ -315,7 +367,7 @@ Parent: @code{text} @*
 Contents: CDATA
 
 The CDATA contains an HTML document.  In some cases, the document
-starts with @code{<html>} and ends with @code{</html}; in others the
+starts with @code{<html>} and ends with @code{</html>}; in others the
 @code{html} element is implied.  Generally the HTML includes a
 @code{head} element with a CSS stylesheet.  The HTML body often begins
 with @code{<BR>}.  The actual content ranges from trivial to simple:
@@ -440,7 +492,7 @@ This element has no attributes.
 @node SPV Structure @code{text} Element (Inside @code{pageParagraph})
 @subsection The @code{text} Element (Inside @code{pageParagraph})
 
-Parent: @code{pageParagraph}
+Parent: @code{pageParagraph} @*
 Contents: CDATA?
 
 This @code{text} element is nested inside a @code{pageParagraph}.  There
@@ -451,7 +503,7 @@ The element is either empty, or contains CDATA that holds almost-XHTML
 text: in the corpus, either an @code{html} or @code{p} element.  It is
 @emph{almost}-XHTML because the @code{html} element designates the
 default namespace as
-@code{http://xml.spss.com/spss/viewer/viewer-tree} instead of an XHTML
+@indicateurl{http://xml.spss.com/spss/viewer/viewer-tree} instead of an XHTML
 namespace, and because the CDATA can contain substitution variables:
 @code{&[Page]} for the page number and @code{&[PageTitle]} for the
 page title.
index af2e21e0c491dd9e683a55840ff687a61761e6a6..247d67a26b43057fd7fc405d9a46f50c6f146278 100644 (file)
@@ -2,7 +2,7 @@
 %%Creator: graphviz version 2.38.0 (20140413.2041)
 %%Title: spv_structure
 %%Pages: 1
-%%BoundingBox: 36 36 517 487
+%%BoundingBox: 36 36 518 560
 %%EndComments
 save
 %%BeginProlog
@@ -179,440 +179,542 @@ def
 %%EndSetup
 setupLatin1
 %%Page: 1 1
-%%PageBoundingBox: 36 36 517 487
+%%PageBoundingBox: 36 36 518 560
 %%PageOrientation: Portrait
 0 0 1 beginpage
 gsave
-36 36 481 451 boxprim clip newpath
+36 36 482 524 boxprim clip newpath
 1 1 set_scale 0 rotate 40 40 translate
 % heading
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-253.65 425 38.19 18 ellipse_path stroke
+254.05 498 38.19 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-232.15 421.3 moveto 43 (heading) alignedtext
+232.55 494.3 moveto 43 (heading) alignedtext
 grestore
 % heading->heading
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 288.31 432.87 moveto
-300.31 432.96 309.99 430.33 309.99 425 curveto
-309.99 421.33 305.41 418.95 298.65 417.84 curveto
+newpath 288.71 505.87 moveto
+300.71 505.96 310.39 503.33 310.39 498 curveto
+310.39 494.33 305.81 491.95 299.05 490.84 curveto
 stroke
 0 0 0 edgecolor
-newpath 298.53 414.33 moveto
-288.31 417.13 lineto
-298.04 421.31 lineto
+newpath 298.93 487.33 moveto
+288.71 490.13 lineto
+298.44 494.31 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 298.53 414.33 moveto
-288.31 417.13 lineto
-298.04 421.31 lineto
+newpath 298.93 487.33 moveto
+288.71 490.13 lineto
+298.44 494.31 lineto
 closepath stroke
 0 0 0 edgecolor
 14 /Times-Roman set_font
-309.99 421.3 moveto 7 (*) alignedtext
+310.39 494.3 moveto 7 (*) alignedtext
 grestore
 % pageSetup
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-173.65 338 47.39 18 ellipse_path stroke
+171.05 411 47.39 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-145.15 334.3 moveto 57 (pageSetup) alignedtext
+142.55 407.3 moveto 57 (pageSetup) alignedtext
 grestore
 % heading->pageSetup
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 238.6 408.01 moveto
-226.61 395.27 209.63 377.24 196.04 362.8 curveto
+newpath 238.82 481.41 moveto
+226.23 468.51 208.15 450 193.83 435.34 curveto
 stroke
 0 0 0 edgecolor
-newpath 198.3 360.09 moveto
-188.9 355.21 lineto
-193.2 364.89 lineto
+newpath 196.23 432.78 moveto
+186.74 428.07 lineto
+191.22 437.67 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 198.3 360.09 moveto
-188.9 355.21 lineto
-193.2 364.89 lineto
+newpath 196.23 432.78 moveto
+186.74 428.07 lineto
+191.22 437.67 lineto
 closepath stroke
 0 0 0 edgecolor
 14 /Times-Roman set_font
-218.65 377.8 moveto 7 (?) alignedtext
+217.05 450.8 moveto 7 (?) alignedtext
 grestore
 % label
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-269.65 251 27.9 18 ellipse_path stroke
+270.05 324 27.9 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-256.15 247.3 moveto 27 (label) alignedtext
+256.55 320.3 moveto 27 (label) alignedtext
 grestore
 % heading->label
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 255.24 406.88 moveto
-258.02 377 263.77 315.11 267.11 279.27 curveto
+newpath 255.64 479.88 moveto
+258.42 450 264.17 388.11 267.51 352.27 curveto
 stroke
 0 0 0 edgecolor
-newpath 270.62 279.33 moveto
-268.06 269.05 lineto
-263.65 278.68 lineto
+newpath 271.02 352.33 moveto
+268.46 342.05 lineto
+264.05 351.68 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 270.62 279.33 moveto
-268.06 269.05 lineto
-263.65 278.68 lineto
+newpath 271.02 352.33 moveto
+268.46 342.05 lineto
+264.05 351.68 lineto
 closepath stroke
 grestore
 % container
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-325.65 338 43.59 18 ellipse_path stroke
+326.05 411 43.59 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-300.15 334.3 moveto 51 (container) alignedtext
+300.55 407.3 moveto 51 (container) alignedtext
 grestore
 % heading->container
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 267.19 408.01 moveto
-277.88 395.39 292.97 377.57 305.15 363.2 curveto
+newpath 267.59 481.01 moveto
+278.28 468.39 293.37 450.57 305.55 436.2 curveto
 stroke
 0 0 0 edgecolor
-newpath 308.13 365.1 moveto
-311.92 355.21 lineto
-302.78 360.57 lineto
+newpath 308.53 438.1 moveto
+312.32 428.21 lineto
+303.18 433.57 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 308.13 365.1 moveto
-311.92 355.21 lineto
-302.78 360.57 lineto
+newpath 308.53 438.1 moveto
+312.32 428.21 lineto
+303.18 433.57 lineto
 closepath stroke
 0 0 0 edgecolor
 14 /Times-Roman set_font
-293.65 377.8 moveto 7 (*) alignedtext
+294.05 450.8 moveto 7 (*) alignedtext
 grestore
 % pageHeader
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-52.65 251 52.79 18 ellipse_path stroke
+171.05 324 52.79 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-20.15 247.3 moveto 65 (pageHeader) alignedtext
+138.55 320.3 moveto 65 (pageHeader) alignedtext
 grestore
 % pageSetup->pageHeader
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 152.01 321.8 moveto
-132.89 308.37 104.8 288.63 83.35 273.57 curveto
+newpath 171.05 392.8 moveto
+171.05 381.16 171.05 365.55 171.05 352.24 curveto
 stroke
 0 0 0 edgecolor
-newpath 85.1 270.52 moveto
-74.91 267.64 lineto
-81.08 276.25 lineto
+newpath 174.55 352.18 moveto
+171.05 342.18 lineto
+167.55 352.18 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 85.1 270.52 moveto
-74.91 267.64 lineto
-81.08 276.25 lineto
+newpath 174.55 352.18 moveto
+171.05 342.18 lineto
+167.55 352.18 lineto
 closepath stroke
 grestore
 % pageFooter
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-173.65 251 50.09 18 ellipse_path stroke
+50.05 324 50.09 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-143.15 247.3 moveto 61 (pageFooter) alignedtext
+19.55 320.3 moveto 61 (pageFooter) alignedtext
 grestore
 % pageSetup->pageFooter
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 173.65 319.8 moveto
-173.65 308.16 173.65 292.55 173.65 279.24 curveto
+newpath 149.41 394.8 moveto
+130.18 381.29 101.84 361.39 80.35 346.29 curveto
 stroke
 0 0 0 edgecolor
-newpath 177.15 279.18 moveto
-173.65 269.18 lineto
-170.15 279.18 lineto
+newpath 82.09 343.24 moveto
+71.9 340.35 lineto
+78.07 348.96 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 177.15 279.18 moveto
-173.65 269.18 lineto
-170.15 279.18 lineto
+newpath 82.09 343.24 moveto
+71.9 340.35 lineto
+78.07 348.96 lineto
 closepath stroke
 grestore
+% ptext1
+gsave
+0 0 0 nodecolor
+14 /Times-Roman set_font
+252.55 233.3 moveto 37 (<text>) alignedtext
+grestore
+% label->ptext1
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 270.25 305.8 moveto
+270.38 294.16 270.57 278.55 270.73 265.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 274.23 265.22 moveto
+270.84 255.18 lineto
+267.23 265.13 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 274.23 265.22 moveto
+270.84 255.18 lineto
+267.23 265.13 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+270.05 276.8 moveto 7 (?) alignedtext
+grestore
 % container->label
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 314.58 320.21 moveto
-306.37 307.74 295.05 290.56 285.82 276.56 curveto
+newpath 314.98 393.21 moveto
+306.77 380.74 295.45 363.56 286.22 349.56 curveto
 stroke
 0 0 0 edgecolor
-newpath 288.54 274.32 moveto
-280.12 267.9 lineto
-282.7 278.17 lineto
+newpath 288.94 347.32 moveto
+280.52 340.9 lineto
+283.1 351.17 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 288.54 274.32 moveto
-280.12 267.9 lineto
-282.7 278.17 lineto
+newpath 288.94 347.32 moveto
+280.52 340.9 lineto
+283.1 351.17 lineto
 closepath stroke
 grestore
 % table
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-397.65 251 27.9 18 ellipse_path stroke
+398.05 324 27.9 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-384.15 247.3 moveto 27 (table) alignedtext
+384.55 320.3 moveto 27 (table) alignedtext
 grestore
 % container->table
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 339.53 320.61 moveto
-350.46 307.71 365.83 289.56 378.02 275.17 curveto
+newpath 339.93 393.61 moveto
+350.86 380.71 366.23 362.56 378.42 348.17 curveto
 stroke
 0 0 0 edgecolor
-newpath 380.98 277.09 moveto
-384.77 267.2 lineto
-375.64 272.56 lineto
+newpath 381.38 350.09 moveto
+385.17 340.2 lineto
+376.04 345.56 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 380.98 277.09 moveto
-384.77 267.2 lineto
-375.64 272.56 lineto
+newpath 381.38 350.09 moveto
+385.17 340.2 lineto
+376.04 345.56 lineto
 closepath stroke
 0 0 0 edgecolor
 14 /Times-Roman set_font
-365.65 290.8 moveto 7 (*) alignedtext
+366.05 363.8 moveto 7 (?) alignedtext
 grestore
 % text
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-281.65 91 27 18 ellipse_path stroke
+253.05 164 27 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-271.15 87.3 moveto 21 (text) alignedtext
+242.55 160.3 moveto 21 (text) alignedtext
 grestore
 % container->text
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 322.55 319.77 moveto
-315.01 277.78 295.63 169.86 286.52 119.12 curveto
+newpath 328.04 392.9 moveto
+331.31 358.22 334.93 277.88 307.05 219 curveto
+300.67 205.54 289.49 193.49 278.95 184.21 curveto
 stroke
 0 0 0 edgecolor
-newpath 289.95 118.43 moveto
-284.74 109.21 lineto
-283.06 119.67 lineto
+newpath 281.03 181.38 moveto
+271.1 177.67 lineto
+276.55 186.76 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 289.95 118.43 moveto
-284.74 109.21 lineto
-283.06 119.67 lineto
+newpath 281.03 181.38 moveto
+271.1 177.67 lineto
+276.55 186.76 lineto
 closepath stroke
 0 0 0 edgecolor
 14 /Times-Roman set_font
-302.65 203.8 moveto 7 (*) alignedtext
+326.05 276.8 moveto 7 (?) alignedtext
 grestore
 % tableStructure
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-413.65 164 59.59 18 ellipse_path stroke
+414.05 237 59.59 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-375.65 160.3 moveto 76 (tableStructure) alignedtext
+376.05 233.3 moveto 76 (tableStructure) alignedtext
 grestore
 % table->tableStructure
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 400.88 232.8 moveto
-403.07 221.16 406.01 205.55 408.52 192.24 curveto
+newpath 401.28 305.8 moveto
+403.47 294.16 406.41 278.55 408.92 265.24 curveto
 stroke
 0 0 0 edgecolor
-newpath 412 192.65 moveto
-410.41 182.18 lineto
-405.12 191.36 lineto
+newpath 412.4 265.65 moveto
+410.81 255.18 lineto
+405.52 264.36 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 412 192.65 moveto
-410.41 182.18 lineto
-405.12 191.36 lineto
+newpath 412.4 265.65 moveto
+410.81 255.18 lineto
+405.52 264.36 lineto
 closepath stroke
 grestore
 % html
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-281.65 18 27.1 18 ellipse_path stroke
+304.05 91 27.1 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-268.65 14.3 moveto 26 (html) alignedtext
+291.05 87.3 moveto 26 (html) alignedtext
 grestore
 % text->html
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 281.65 72.81 moveto
-281.65 64.79 281.65 55.05 281.65 46.07 curveto
+newpath 264.36 147.24 moveto
+270.97 138.05 279.43 126.27 286.84 115.95 curveto
+stroke
+0 0 0 edgecolor
+newpath 289.77 117.88 moveto
+292.76 107.71 lineto
+284.08 113.79 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 289.77 117.88 moveto
+292.76 107.71 lineto
+284.08 113.79 lineto
+closepath stroke
+grestore
+% cdata1
+gsave
+0 0 0 nodecolor
+14 /Times-Roman set_font
+205.05 87.3 moveto 46 (<cdata>) alignedtext
+grestore
+% text->cdata1
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 247.12 146.17 moveto
+244.24 137.98 240.7 127.94 237.46 118.73 curveto
+stroke
+0 0 0 edgecolor
+newpath 240.72 117.47 moveto
+234.1 109.2 lineto
+234.12 119.79 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 240.72 117.47 moveto
+234.1 109.2 lineto
+234.12 119.79 lineto
+closepath stroke
+grestore
+% cdata2
+gsave
+0 0 0 nodecolor
+14 /Times-Roman set_font
+281.05 14.3 moveto 46 (<cdata>) alignedtext
+grestore
+% html->cdata2
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 304.05 72.81 moveto
+304.05 64.79 304.05 55.05 304.05 46.07 curveto
 stroke
 0 0 0 edgecolor
-newpath 285.15 46.03 moveto
-281.65 36.03 lineto
-278.15 46.03 lineto
+newpath 307.55 46.03 moveto
+304.05 36.03 lineto
+300.55 46.03 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 285.15 46.03 moveto
-281.65 36.03 lineto
-278.15 46.03 lineto
+newpath 307.55 46.03 moveto
+304.05 36.03 lineto
+300.55 46.03 lineto
 closepath stroke
 grestore
 % dataPath
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-413.65 91 40.89 18 ellipse_path stroke
+414.05 164 40.89 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-390.15 87.3 moveto 47 (dataPath) alignedtext
+390.55 160.3 moveto 47 (dataPath) alignedtext
 grestore
 % tableStructure->dataPath
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 413.65 145.81 moveto
-413.65 137.79 413.65 128.05 413.65 119.07 curveto
+newpath 414.05 218.81 moveto
+414.05 210.79 414.05 201.05 414.05 192.07 curveto
 stroke
 0 0 0 edgecolor
-newpath 417.15 119.03 moveto
-413.65 109.03 lineto
-410.15 119.03 lineto
+newpath 417.55 192.03 moveto
+414.05 182.03 lineto
+410.55 192.03 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 417.15 119.03 moveto
-413.65 109.03 lineto
-410.15 119.03 lineto
+newpath 417.55 192.03 moveto
+414.05 182.03 lineto
+410.55 192.03 lineto
+closepath stroke
+grestore
+% ptext2
+gsave
+0 0 0 nodecolor
+14 /Times-Roman set_font
+395.55 87.3 moveto 37 (<text>) alignedtext
+grestore
+% dataPath->ptext2
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 414.05 145.81 moveto
+414.05 137.79 414.05 128.05 414.05 119.07 curveto
+stroke
+0 0 0 edgecolor
+newpath 417.55 119.03 moveto
+414.05 109.03 lineto
+410.55 119.03 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 417.55 119.03 moveto
+414.05 109.03 lineto
+410.55 119.03 lineto
 closepath stroke
 grestore
 % pageParagraph
 gsave
 1 setlinewidth
 0 0 0 nodecolor
-173.65 164 63.09 18 ellipse_path stroke
+163.05 237 63.09 18 ellipse_path stroke
 0 0 0 nodecolor
 14 /Times-Roman set_font
-133.15 160.3 moveto 81 (pageParagraph) alignedtext
+122.55 233.3 moveto 81 (pageParagraph) alignedtext
 grestore
 % pageHeader->pageParagraph
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 74.56 234.61 moveto
-93.59 221.24 121.37 201.72 142.68 186.75 curveto
+newpath 169.43 305.8 moveto
+168.33 294.16 166.86 278.55 165.61 265.24 curveto
 stroke
 0 0 0 edgecolor
-newpath 144.9 189.47 moveto
-151.08 180.85 lineto
-140.88 183.74 lineto
+newpath 169.08 264.8 moveto
+164.66 255.18 lineto
+162.11 265.46 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 144.9 189.47 moveto
-151.08 180.85 lineto
-140.88 183.74 lineto
+newpath 169.08 264.8 moveto
+164.66 255.18 lineto
+162.11 265.46 lineto
 closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-120.65 203.8 moveto 7 (*) alignedtext
 grestore
 % pageFooter->pageParagraph
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 173.65 232.8 moveto
-173.65 221.16 173.65 205.55 173.65 192.24 curveto
+newpath 70.77 307.41 moveto
+88.39 294.16 113.89 274.98 133.62 260.13 curveto
 stroke
 0 0 0 edgecolor
-newpath 177.15 192.18 moveto
-173.65 182.18 lineto
-170.15 192.18 lineto
+newpath 135.8 262.88 moveto
+141.68 254.07 lineto
+131.59 257.28 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 177.15 192.18 moveto
-173.65 182.18 lineto
-170.15 192.18 lineto
+newpath 135.8 262.88 moveto
+141.68 254.07 lineto
+131.59 257.28 lineto
 closepath stroke
-0 0 0 edgecolor
-14 /Times-Roman set_font
-173.65 203.8 moveto 7 (*) alignedtext
 grestore
 % pageParagraph->text
 gsave
 1 setlinewidth
 0 0 0 edgecolor
-newpath 197.61 147.24 moveto
-214.44 136.18 236.98 121.37 254.47 109.86 curveto
+newpath 183.47 219.89 moveto
+196.82 209.35 214.34 195.54 228.46 184.4 curveto
 stroke
 0 0 0 edgecolor
-newpath 256.67 112.61 moveto
-263.11 104.19 lineto
-252.83 106.76 lineto
+newpath 230.64 187.14 moveto
+236.32 178.2 lineto
+226.3 181.64 lineto
 closepath fill
 1 setlinewidth
 solid
 0 0 0 edgecolor
-newpath 256.67 112.61 moveto
-263.11 104.19 lineto
-252.83 106.76 lineto
+newpath 230.64 187.14 moveto
+236.32 178.2 lineto
+226.3 181.64 lineto
 closepath stroke
 grestore
 endpage
index 7807ab48d22ae9974fe9a97826c6597be25c459c..ac37b698b7746df199180900ab37899a874c0254 100644 (file)
@@ -5,21 +5,33 @@ digraph spv_structure {
    "heading" -> "heading" [label="*"];
 
    "container" -> "label";
-   "container" -> "table" [label="*"];
-   "container" -> "text" [label="*"];
+   "container" -> "table" [label="?"];
+   "container" -> "text" [label="?"];
+
+   "label" -> ptext1 [label="?"];
+   ptext1 [label="<text>", shape=plaintext];
 
    "text" -> "html";
 
+   "text" -> cdata1;
+   cdata1 [label="<cdata>", shape=plaintext];
+
+   "html" -> cdata2;
+   cdata2 [label="<cdata>", shape=plaintext];
+
    "table" -> "tableStructure";
 
    "tableStructure" -> "dataPath";
 
+   "dataPath" -> ptext2;
+   ptext2 [label="<text>", shape=plaintext];
+
    "pageSetup" -> "pageHeader";
    "pageSetup" -> "pageFooter";
 
-   "pageHeader" -> "pageParagraph" [label="*"];
+   "pageHeader" -> "pageParagraph";
 
-   "pageFooter" -> "pageParagraph" [label="*"];
+   "pageFooter" -> "pageParagraph";
 
    "pageParagraph" -> "text";
 }
index b54a268cb930e41e99761431ad41c3fde296d277..520d3bf511ab2dbd716869c4d6d66002d0f73997 100644 (file)
Binary files a/doc/dev/spv-structure.pdf and b/doc/dev/spv-structure.pdf differ