X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fdev%2Fspv-file-format.texi;h=fb2c1eb16494a800b38a14e5e756e3c26176d0de;hb=09d9d1ef8bfb8113e8472405ee46f4dfff838f32;hp=ed7ff510a701341cd69449e5cbe7c5839bbf8ddc;hpb=8d0dbcd6157704b0e6e0b7fb363421e3de6aa36b;p=pspp diff --git a/doc/dev/spv-file-format.texi b/doc/dev/spv-file-format.texi index ed7ff510a7..fb2c1eb164 100644 --- a/doc/dev/spv-file-format.texi +++ b/doc/dev/spv-file-format.texi @@ -38,13 +38,13 @@ e.g.@: as @samp{allowingPivot=false} has no effect.} The rest of the members in an SPV file's Zip archive fall into two categories: @dfn{structure} and @dfn{detail} members. Structure -member names begin with @file{outputViewer@var{nnnnnnnnnn}}, where -each @var{n} is a decimal digit, and end with @file{.xml}, and often -include the string @file{_heading} in between. Each of these members -represents some kind of output item (a table, a heading, a block of -text, etc.) or a group of them. The member whose output goes at the -beginning of the document is numbered 0, the next member in the output -is numbered 1, and so on. +member names take the form with @file{outputViewer@var{number}.xml} or +@file{outputViewer@var{number}_heading.xml}, where @var{number} is an +10-digit decimal number. Each of these members represents some kind +of output item (a table, a heading, a block of text, etc.) or a group +of them. The member whose output goes at the beginning of the +document is numbered 0, the next member in the output is numbered 1, +and so on. Structure members contain XML. This XML is sometimes self-contained, but it often references detail members in the Zip archive, which are @@ -88,8 +88,9 @@ Not yet investigated. The corpus contains few examples. The @file{@var{prefix}} in the names of the detail members is typically an 11-digit decimal number that increases for each item, tending to skip values. Older SPV files use different naming -conventions. Structure member refer to detail members by name, and so -their exact names do not matter to readers as long as they are unique. +conventions for detail members. Structure member refer to detail +members by name, and so their exact names do not matter to readers as +long as they are unique. SPSS tolerates corrupted Zip archives that Zip reader libraries tend to reject. These can be fixed up with @command{zip -FF}. @@ -343,8 +344,15 @@ members in an SPV file are siblings. That is, the root @code{heading} in all of the structure members conceptually represent the same node. The root heading's @code{label} is ignored (see @pxref{SPV Structure label Element}). The root heading in the first structure member in -the Zip file (typically named @file{outputViewer0000000000.xml}) may -contain a @code{pageSetup} element. +the Zip file may contain a @code{pageSetup} element. + +The schema implies that any @code{heading} may contain a sequence of +any number of @code{heading} and @code{container} elements. This does +not work for the root @code{heading} in practice, which must actually +contain exactly one @code{container} or @code{heading} child element. +Furthermore, if the root heading's child is a @code{heading}, then the +structure member's name must end in @file{_heading.xml}; if it is a +@code{container} child, then it must not. The following attributes have been observed on both document root and nested @code{heading} elements. @@ -470,6 +478,14 @@ Alignment of text within the container. Observed with nested The width of the container, e.g.@: @code{1097px}. @end defvr +All of the elements that nest inside @code{container} (except the +@code{label}) have the following optional attribute. + +@defvr {Attribute} @code{commandName} +As on the @code{heading} element. The corpus contains one example +of where @code{commandName} is present but set to the empty string. +@end defvr + @node SPV Structure text Element (Inside @code{container}) @subsection The @code{text} Element (Inside @code{container}) @@ -487,14 +503,13 @@ is a different @code{text} element that is nested inside a This element has the following attributes. -@defvr {Attribute} @code{type} -The semantics of the text. +@defvr {Attribute} @code{commandName} +@xref{SPV Structure container Element}. For output not specific to a +command, this is simply @code{log}. @end defvr -@defvr {Attribute} @code{commandName} -As on the @code{heading} element. For output not specific to a -command, this is simply @code{log}. The corpus contains one example -of where @code{commandName} is present but set to the empty string. +@defvr {Attribute} @code{type} +The semantics of the text. @end defvr @defvr {Attribute} @code{creator-version} @@ -596,7 +611,7 @@ tableStructure => path? dataPath csvPath? This element has the following attributes. @defvr {Attribute} @code{commandName} -As on the @code{heading} element. +@xref{SPV Structure container Element}. @end defvr @defvr {Attribute} @code{type} @@ -694,9 +709,16 @@ name Zip members with @file{.scf} extension. @subsection The @code{object} and @code{image} Elements @example -object :type[object_type]=(unknown)? :uri => EMPTY +object + :commandName? + :type[object_type]=(unknown)? + :uri +=> EMPTY -image :VDPId :commandName => dataPath +image + :commandName? + :VDPId +=> dataPath @end example These two elements represent an image in PNG format. They are @@ -1424,7 +1446,7 @@ X0 => byte*14 Y1 Y2 Y1 => string[command] string[command-local] string[language] string[charset] string[locale] - bool bool bool bool + bool[x10] bool[include-leading-zero] bool[x12] bool[x13] Y0 Y2 => CustomCurrency byte[missing] bool[x17] @end example @@ -1436,10 +1458,15 @@ Tests.'' @code{command-local} is the procedure's name, translated into the output language; it is often empty and, when it is not, sometimes the same as @code{command}. +@code{include-leading-zero} is the @code{LEADZERO} setting for the +table, where false is @code{OFF} (the default) and true is @code{ON}. +@xref{SET LEADZERO,,, pspp, PSPP}. + @code{missing} is the character used to indicate that a cell contains a missing value. It is always observed as @samp{.}. -A writer may safely use false for @code{x17}. +A writer may safely use false for @code{x10} and @code{x17} and true +for @code{x12} and @code{x13}. @subsubheading X1