Struktura tabeli OXML

Wynikowy format XML (OXML) to format XML zgodny ze schematem wyników SPSS. Więcej informacji można znaleźć w temacie Dane wyjściowe schematu XML .

  • Identyfikatory komend i podtypów OMS są wykorzystywane jako wartości atrybutów command i subType w kodzie OXML. Przykład:
    
    <command text="Frequencies" command="Frequencies"...>
      <pivotTable text="Gender" label="Gender" subType="Frequencies"...>
    
  • Na wartości atrybutów OMS command i subType nie mają wypływu ustawienia języka wyników i wyświetlania nazw zmiennych/etykiet lub wartości/etykiet wartości.
  • W kodzie XML rozróżniana jest wielkość liter. Wartość atrybutu subType „frequencies” nie jest taka sama, jak wartość atrybutu subType „Frequencies”.
  • Wszystkie informacje wyświetlane w tabeli są zawarte w wartościach atrybutów w kodzie OXML. Na poziomie indywidualnej komórki kod OXML składa się z „pustych” elementów, zawierających atrybuty, lecz nie zawierających „zawartości” innej niż zawartość wartości atrybutów.
  • Struktura tabeli w OXML jest reprezentowana wiersz po wierszu. Elementy, reprezentujące kolumny są zagnieżdżone w wierszach, a poszczególne komórki są zagnieżdżone w obrębie elementów kolumn:

<pivotTable...>
 <dimension axis='row'...>
   <dimension axis='column'...>
     <category...>
       <cell text=’...' number='...' decimals='...'/>
     </category>
     <category...>
       <cell text='...' number='...' decimals='...'/>
     </category>
   </dimension>
 </dimension>
    ...
 </pivotTable>

Powyższy przykład to uproszczone odwzorowanie struktury, przedstawiającej relacje element nadrzędny/ podrzędny. Jednakże ten przykład niekoniecznie przedstawia zależności obiektów nadrzędnych/podrzędnych, ponieważ zazwyczaj pomiędzy nimi znajdują się zagnieżdżone poziomy elementów.

Poniższy przykład przedstawia prostą tabelę częstości oraz kompletną reprezentację wyniku XML tej tabeli.

Tabela 1. Prosta tabela częstości
Płeć   Częstość Procent Procent ważnych Procent skumulowany
Ważne Kobieta 216 45.6 45.6 45.6
  Mężczyzna 258 54.4 54.4 100.0
  Suma 474 100.0 100.0  
Wykres 1. Wynikowy kod XML dla tej prostej tabeli częstości

<?xml version="1.0" encoding="UTF-8" ?> 
<outputTreeoutputTree xmlns="http://xml.spss.com/spss/oms" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://xml.spss.com/spss/oms 
  http://xml.spss.com/spss/oms/spss-output-1.0.xsd">
 <command text="Frequencies" command="Frequencies" 
  displayTableValues="label" displayOutlineValues="label" 
  displayTableVariables="label" displayOutlineVariables="label">
  <pivotTable text="Gender" label="Gender" subType="Frequencies" 
   varName="gender" variable="true">
   <dimension axis="row" text="Gender" label="Gender" 
    varName="gender" variable="true">
    <group text="Valid">
     <group hide="true" text="Dummy">
      <category text="Female" label="Female" string="f" 
       varName="gender">
       <dimension axis="column" text="Statistics">
        <category text="Frequency">
         <cell text="216" number="216"/> 
        </category>
        <category text="Percent">
         <cell text="45.6" number="45.569620253165" decimals="1"/> 
        </category>
        <category text="Valid Percent">
         <cell text="45.6" number="45.569620253165" decimals="1"/> 
        </category>
        <category text="Cumulative Percent">
         <cell text="45.6" number="45.569620253165" decimals="1"/> 
        </category>
       </dimension>
      </category>
      <category text="Male" label="Male" string="m" varName="gender">
       <dimension axis="column" text="Statistics">
        <category text="Frequency">
         <cell text="258" number="258"/> 
        </category>
        <category text="Percent">
         <cell text="54.4" number="54.430379746835" decimals="1"/> 
        </category>
        <category text="Valid Percent">
         <cell text="54.4" number="54.430379746835" decimals="1"/> 
        </category>
        <category text="Cumulative Percent">
         <cell text="100.0" number="100" decimals="1"/> 
        </category>
       </dimension>
      </category>
     </group>
     <category text="Total">
      <dimension axis="column" text="Statistics">
       <category text="Frequency">
        <cell text="474" number="474"/> 
       </category>
       <category text="Percent">
        <cell text="100.0" number="100" decimals="1"/> 
       </category>
       <category text="Valid Percent">
        <cell text="100.0" number="100" decimals="1"/> 
       </category>
      </dimension>
     </category>
    </group>
   </dimension>
  </pivotTable>
 </command>
</outputTree>

Jak widać prosta i mała tabela powoduje utworzenie znaczącej ilości kodu XML. Wynika to po części z faktu, że kod XML zawiera pewne informacje, które nie są od razu widoczne w oryginalnej tabeli, niektóre informacje mogą nawet nie być dostępne w oryginalnej tabeli oraz z pewnej ilości nadmiarowości.

  • Zawartość tabeli, która jest (lub byłaby) wyświetlana w tabeli przestawnej w Edytorze raportów jest zawarta w atrybutach tekstowych. Przykład:
    
    <command text="Frequencies" command="Frequencies"...>
    
  • Na atrybuty tekstowe wpływ mogą mieć zarówno język wyników jak i ustawienia, wpływające na wyświetlanie nazw/etykiet zmiennych oraz wartości/etykiet wartości. W tym przykładzie wartość atrybutu text będzie inna, w zależności od języka wyników, natomiast wartość atrybutu command pozostanie taka sama niezależnie od języka wyników.
  • Wszędzie, gdzie w etykietach wierszy lub kolumn wykorzystywane są zmienne lub wartości zmiennych, kod XML będzie zawierać atrybut text oraz jedną lub większą liczbę dodatkowych wartości atrybutów. Przykład:
    
    <dimension axis="row" text="Gender" label="Gender" varName="gender">
        ...<category text="Female" label="Female" string="f" varName="gender">
    
  • W przypadku zmiennej numerycznej będzie występować atrybut number zamiast atrybutu string. Atrybut label jest obecny tylko, jeżeli zmienna lub wartości posiadają zdefiniowane etykiety.
  • Elementy <cell>, zawierające wartości komórek dla liczb, będą zawierać atrybut text oraz jedną lub większą liczbę dodatkowych wartości atrybutów. Przykład:

<cell text="45.6" number="45.569620253165" decimals="1"/>

Atrybut number jest rzeczywistą, niezaokrągloną wartością numeryczną, natomiast atrybut decimals oznacza liczbę miejsc dziesiętnych wyświetlanych w tabeli.

  • Ponieważ kolumny są zagnieżdżone w wierszach, element kategorii, identyfikujący każdą kolumnę, jest powtarzany dla każdego wiersza. Na przykład, ponieważ statystyki są wyświetlane w kolumnach, element <category text="Frequency"> pojawia się trzy razy w pliku XML: raz dla wiersza męskiego, raz dla wiersza żeńskiego, a raz dla wiersza całkowitego.