Specyfikacja techniczna OpenDocument

Z Wikipedii, wolnej encyklopedii

Ten dokument jest specyfikacją techniczną standardu dokumentów biurowych OpenDocument, opracowaną przez konsorcjum OASIS. Standard został opracowany publicznie przez różne organizacje i jest publicznie dostępny, co oznacza, że każdy może go zaimplementować bez ograniczeń. OpenDocument został stworzony jako alternatywa dla własnościowych formatów dokumentów.

Typy plików[edytuj | edytuj kod]

Zalecane rozszerzenia plików i typy MIME są częścią oficjalnego standardu (OASIS, 1 maja 2005).

Dokumenty[edytuj | edytuj kod]

Najpopularniejsze rozszerzenia plików, używane przez dokumenty OpenDocument, to; .odt dla dokumentów tekstowych, .ods dla arkuszy kalkulacyjnych, .odp dla planów prezentacji i .odg dla grafiki. Rozszerzenia są łatwe do zapamiętania, gdyż „.od” jest skrótem od „OpenDocument”, natomiast ostatnia litera wskazuje na konkretny typ, np. t to tekst, a s to arkusz kalkulacyjny (z ang. spreadsheet). Poniżej kompletna lista typów dokumentów wraz z zalecanym rozszerzeniem pliku i MIME.

Typ pliku Rozszerzenie Typ MIME
Tekst .odt application/vnd.oasis.opendocument.text
Arkusz kalkulacyjny .ods application/vnd.oasis.opendocument.spreadsheet
Prezentacja .odp application/vnd.oasis.opendocument.presentation
Grafika wektorowa .odg application/vnd.oasis.opendocument.graphics
Wykresy .odc application/vnd.oasis.opendocument.chart
Wzory matematyczne .odf application/vnd.oasis.opendocument.formula
Obraz .odi application/vnd.oasis.opendocument.image
Dokument główny .odm application/vnd.oasis.opendocument.text-master

Szablony[edytuj | edytuj kod]

OpenDocument umożliwia tworzenie szablonów dokumentów. Szablon stanowi informację o sposobie formatowania dokumentów, w tym o stylach, natomiast nie zawiera treści. Zalecane rozszerzenie pliku zaczyna się od „.ot” (co można traktować jako skrót od „OpenDocument template” – „szablon OpenDocument”). Ostatnia litera określa typ szablonu (np. t dla tekstów). Poniżej typy szablonów:

Typ pliku Rozszerzenie Typ MIME
Tekst .ott application/vnd.oasis.opendocument.text-template
Arkusz kalkulacyjny .ots application/vnd.oasis.opendocument.spreadsheet-template
Prezentacja .otp application/vnd.oasis.opendocument.presentation-template
Grafika wektorowa .otg application/vnd.oasis.opendocument.graphics-template
Wzory matematyczne .otf application/vnd.oasis.opendocument.formula-template
Obraz .oti application/vnd.oasis.opendocument.image-template
Strona WWW .oth application/vnd.oasis.opendocument.text-web

Możliwości[edytuj | edytuj kod]

Jak wspomniano, OpenDocument może opisywać dokumenty tekstowe (zwykle edytowane przez procesory tekstu), arkusze kalkulacyjne, prezentacje, rysunki/ grafiki, obrazy, wykresy, wzory matematyczne i „dokumenty główne” (które mogą zawierać kombinację pozostałych typów). Może również reprezentować szablony dla wielu spośród nich. Oficjalny standard OpenDocument (OASIS, 1 maja 2005) definiuje możliwości OpenDocument. Haumacher (2005) jest autorem formalnej specyfikacji w postaci hiperłączy, wywiedzionej z oficjalnego standardu. Książka Eisenberga (2005) opisuje format bardziej szczegółowo. Tekst poniżej jest skróconym podsumowaniem możliwości formatu.

Metadane[edytuj | edytuj kod]

Format OpenDocument umożliwia przechowywanie metadanych (danych o danych) za pomocą zbioru predefiniowanych elementów oraz definiowanych przez użytkownika. Predefiniowane metadane to: Generator (Generator), Tytuł (Title), Opis (Description), Temat (Subject), Słowa kluczowe (Keywords), Pierwszy autor (Initial Creator), Autor (Creator), Wydrukowany przez (Printed By), Data utworzenia (Creation Date and Time), Data wydruku (Print Date and Time), Szablon dokumentu (Document Template), Automatyczne odświeżanie (Automatic Reload), Zachowanie hiperłączy (Hyperlink Behavior), Język (Language), Cykle edycyjne (Editing Cycles), Czas edycji (Editing Duration) i Statystyki dokumentu (Document Statistics).

Treść[edytuj | edytuj kod]

OpenDocument umożliwia stosowanie zarówno podstawowych, jak i zaawansowanych możliwości opisu tekstu. Obsługiwane są nagłówki o różnych poziomach, różnego rodzaju listy (numerowane i nienumerowane), numerowane akapity, a także śledzenie zmian. Sposób wyświetlania tekstu może być sterowany za pomocą sekwencji stron i atrybutów sekcji. Obsługiwane są hiperłącza, zakładki, odsyłacze, a także ruby – umożliwiające dodawanie adnotacji i bardzo przydatne w niektórych językach. Ponadto obsługiwane są pola tekstowe (do treści generowanych automatycznie) i mechanizmy automatycznego tworzenia spisów treści, indeksów i bibliografii, określanych ogólnie mianem tablic (table). Przykładem zbioru tablic jest w OpenDocument arkusz kalkulacyjny. Stąd, możliwe jest stosowanie zaawansowanego formatowania tabel i arkuszy. Obsługiwane są zakresy baz danych, filtry i piloty danych (znane użytkownikom Excela jako tabele przestawne). W arkuszach kalkulacyjnych jest możliwe również śledzenie zmian.

Format grafiki jest opisem wektorowym. Obraz składa się z warstw, zawierających poszczególne elementy. Dostępne kształty to: prostokąt, linia, łamana, wielokąt, wielokąt foremny, ścieżka, okrąg, elipsa i łącznik. Ponadto dostępne są kształty trójwymiarowe; format opisuje scenę, oświetlenie, wytłoczenie, obrót, sześciany i kule (format przeznaczony jest do celów biurowych, stąd nie jest wystarczający do zastosowań w filmach lub skomplikowanych scenach 3D). Można również definiować własne kształty.

Format opisuje również prezentacje. Mogą zawierać animacje (z dźwiękiem) – pojawianie się tekstu lub kształtu, ukrywanie tekstu lub kształtu, ściemnienie. Efekty mogą być łączone w grupy. Większość możliwości formatowania jest tych samych, co w formacie tekstowym, co ułatwia implementację. Nie są dostępne natomiast tabele, dlatego mogą być wstawiane do prezentacji tylko jako elementy zagnieżdżone.

Wykresy definiują sposób wyświetlania danych liczbowych. Zawierają tytuł, podpisy, stopkę i legendę opisującą wykres. Format definiuje serie danych, użytych do wyświetlenia wykresu i wiele różnych typów wykresów, takich jak liniowe, kołowe itp.

Dostępne są formularze, oparte na istniejącym standardzie XForms.

Formatowanie[edytuj | edytuj kod]

Jest wiele stylów i opcji formatowania, opisujących sposób, w jaki informacja ma być wyświetlana. Układ strony jest opisany wieloma atrybutami. Należą do nich: rozmiar strony, format liczb, zasobnik papieru, orientacja strony, marginesy, krawędzie (i szerokość linii), odstępy, cień, tło, kolumny, sortowanie wydruku, numer pierwszej strony, skala, wyrównanie tabel, maksymalna wysokość stopki i separator, i wiele innych właściwości. Nagłówki i stopki mogą mieć zdefiniowaną stałą i minimalną wysokość, marginesy, grubość linii obramowania, odstęp, tło, cień i dynamiczne odstępy.

Jest wiele atrybutów dla tekstu, akapitów, rubów, sekcji, tabel, kolumn, list i wypełnień. Poszczególne znaki mogą mieć własną czcionkę, rozmiar i inne właściwości. Akapity mogą mieć własne odstępy pionowe, „wdowy” (pierwsze linie akapitu) i „sieroty” (ostatnie linie), a także inne atrybuty do specjalnego formatowania. Ta lista może być dowolnie rozszerzana (więcej szczegółów w odnośnikach).

Struktura wewnętrzna formatu[edytuj | edytuj kod]

Plik OpenDocument jest skompresowanym archiwum JAR, zawierającym pliki i katalogi. Ten prosty mechanizm kompresji powoduje, że pliki OpenDocument są zwykle znacznie mniejsze niż ich odpowiedniki w formacie Microsoft „.doc” czy „.ppt”. Mniejszy rozmiar jest istotny dla organizacji przechowujących wiele dokumentów przez długi czas, a także organizacji, które muszą wymieniać dokumenty za pomocą łączy o niskiej przepustowości. Zdekompresowane dane są w większości zawarte w tekstowych plikach XML, co umożliwia (po dekompresji) typową dla XML łatwość modyfikacji i przetwarzania. W celu przetwarzania dokumentów, standard umożliwia również utworzenie pojedynczego pliku XML, którego elementem głównym jest <office:document>.

Katalogi mogą być użyte do przechowywania obrazów, animacji (poza SMIL) i innych plików, używanych przez dokument, a nie dających się zapisać w XML.

Dzięki użyciu otwartego formatu kompresji, użytkownik może zdekompresować plik dokumentu i ręcznie modyfikować zawarte w nim pliki. Umożliwia to naprawę uszkodzonego pliku lub niskopoziomową manipulację zawartością. Wiele programów implementujących OpenDocument nie wykorzystuje wysokiego stopnia kompresji. Możliwa jest zatem optymalizacja rozmiaru plików przez użycie skuteczniejszych programów kompresujących. Można to połączyć z użyciem programów optymalizujących rozmiar zawartych obrazów – uzyskana redukcja rozmiaru może wynieść ponad 40% w porównaniu do pliku zapisanego bezpośrednio przez program kompatybilny z OpenDocument.

Skompresowany zestaw plików i katalogów zawiera:

  • Pliki XML
    • content.xml
    • meta.xml
    • settings.xml
    • styles.xml
  • Inne pliki
    • mimetype
  • Katalogi
    • META-INF
    • Thumbnails

OpenDocument zapewnia silną separację między treścią, układem i metadanymi. Pliki XML zostały później zdefiniowane za pomocą RELAX NG, języka opisu schematów XML. RELAX NG jest opisany specyfikacją OASIS, jak również przez część drugą standardu międzynarodowego ISO/IEC 19757: Document Schema Definition Languages (DSDL).

content.xml[edytuj | edytuj kod]

Najważniejszym plikiem jest content.xml. Jego zawartość to treść dokumentu, z wyjątkiem danych binarnych (np. obrazy). Jego format jest wzorowany na HTML, ale znacznie bardziej skomplikowany. Wciąż jest jednak czytelny dla człowieka:

<text:h text:style-name="Heading_2">To jest tytuł</text:h>
<text:p text:style-name="Text_body"/>
<text:p text:style-name="Text_body">
   To jest akapit. Informacje o formatowaniu zawarte są
   w stylu Text_body. Pusty znacznik text:p powyżej oznacza
   pusty akapit (pustą linię).
</text:p>

styles.xml[edytuj | edytuj kod]

Plik styles.xml zawiera informację o stylach. W OpenDocument wiele informacji o formatowaniu i układzie zawartych jest w stylach. Większość z nich zapisana jest w tym pliku, chociaż niektóre są w content.xml. Dostępne są następujące typy stylów:

  • style akapitu,
  • style strony,
  • style znaku,
  • style ramki,
  • style listy.

OpenDocument jest wyjątkowy pod tym względem, że nie można zapisać informacji formatujących bez użycia stylów. Nawet „ręczne” formatowanie odbywa się za pomocą stylów (aplikacja tworzy nowe style w miarę potrzeby).

meta.xml[edytuj | edytuj kod]

Plik meta.xml zawiera metadane, np. autor, autor ostatniej modyfikacji, data ostatniej modyfikacji itp. Zawartość wygląda np. tak:

<meta:creation-date>2003-09-10T15:31:11</meta:creation-date>
<dc:creator>Daniel Carrera</dc:creator>
<dc:date>2005-06-29T22:02:06</dc:date>
<dc:language>es-ES</dc:language>
<meta:document-statistic
      meta:table-count="6" meta:object-count="0"
      meta:page-count="59" meta:paragraph-count="676"
      meta:image-count="2" meta:word-count="16701"
      meta:character-count="98757"/>

Nazwy znaczników <dc:...> zostały zaczerpnięte ze standardu XML Dublin Core.

settings.xml[edytuj | edytuj kod]

Plik settings.xml zawiera ustawienia, takie jak poziom powiększenia czy aktualne położenie kursora. Ogólnie są to własności, niebędące ani treścią, ani opisem formatowania.

mimetype[edytuj | edytuj kod]

mimetype jest prostym, jednolinijkowym plikiem z typem MIME. Jednym z powodów jego obecności jest to, że rozszerzenie pliku nie ma znaczenia dla formatu. Rozszerzenie pliku jest tylko dla wygody użytkownika.

Wykorzystanie istniejących formatów[edytuj | edytuj kod]

OpenDocument został tak zaprojektowany, aby możliwie często stosował istniejące, otwarte standardy XML, a nowe znaczniki dodawano tylko tam, gdzie żaden standard nie dostarczał wymaganej funkcjonalności. Zatem, OpenDocument używa podzbioru Dublin Core jako metadanych, MathML do wyświetlania formuł matematycznych, SMIL do multimediów, XLink do hiperłączy itd.

Chociaż nie wykorzystano w pełni SVG do grafiki wektorowej, OpenDocument używa formatu kompatybilnego z SVG wewnątrz przestrzeni nazw ODF, jak również grafiki niezgodnej z SVG.

Wersje ODF 1.0 (ISO 26300) oraz 1.1 nie opisują funkcji podpisu elektronicznego. Funkcjonalność ta ma być włączona do ODF 1.2.

Bibliografia[edytuj | edytuj kod]