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
commandisubTypew kodzie OXML. Przykład:<command text="Frequencies" command="Frequencies"...> <pivotTable text="Gender" label="Gender" subType="Frequencies"...> - Na wartości atrybutów OMS
commandisubTypenie 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ść atrybutusubType„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.
| 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 |
<?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
textbę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
textoraz 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
numberzamiast atrybutustring. Atrybutlabeljest obecny tylko, jeżeli zmienna lub wartości posiadają zdefiniowane etykiety. - Elementy
<cell>, zawierające wartości komórek dla liczb, będą zawierać atrybuttextoraz 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.