Open Packaging Conventions
Wygląd
Open Packaging Conventions[1] (w skrócie OPC) – część specyfikacji Office Open XML definiująca następujące koncepcje:
- Paczka (czyli cały plik OOXML)
- kontener grupujący elementy różnego rodzaju, np. dokumenty XML, zasoby i metadane. Paczka reprezentuje dokument jako całość i ma strukturę płaską, tj. jej składniki nie są ułożone hierarchicznie.[2]
- Składniki (treść dokumentu, formatowanie, pliki obrazów, dźwięków itp)
- Są to strumienie bajtów zgromadzone w paczce, z którymi skojarzona jest informacja o rodzaju przechowywanej zawartości oraz poprawna nazwa, po której składnik jest identyfikowany wewnątrz paczki.[1] Składniki reprezentują poszczególne elementy dokumentu. Informacja o rodzaju zawartości składnika jest dana w postaci zdefiniowanej w sekcji 3.7 RFC 2616 ↓, np. obrazy JPEG są oznaczane jako
image/jpeg
, zaś pliki XML jakoapplication/xml
. Nazwa składnika składa się z segmentów rozdzielonych znakiem odwróconego ukośnika, np./widgets/widget1.xml
. Ze względu na interoperacyjność i internacjonalizację, w OPC obowiązuje kodowanie dokumentów XML będących składnikami paczek z użyciem zdefiniowanych w standardzie Unicode kodowań UTF-8 lub UTF-16.[1] (Uwaga: można się spotkać z informacją, że typ składnika to typ MIME (RFC 2406 ↓), jednak specyfikacja OPC odnosi się konsekwentnie do sekcji 3.7 RFC 2616 ↓ - definicji 'content-type' ze specyfikacji protokołu HTTP/1.1) - Relacje
- Są to związki między składnikiem paczki i innymi zasobami (niekoniecznie wewnątrz paczki). Każdemu składnikowi będącemu źródłem odniesień towarzyszy składnik nazywany składnikiem relacji, przechowujący informacje o relacjach w formie XML. Nazwa takiego składnika jest tworzona poprzez wstawienie segmentu „_rels” przed ostatnim segmentem nazwy oryginalnego składnika i dodanie na koniec przyrostka „.rels”, np. składnikowi
/widgets/widget1.xml
może towarzyszyć składnik relacji/widgets/_rels/widget1.xml.rels
. Źródłem odniesień może być sama paczka, która może być powiązana np. ze składnikiem przechowującym opisujące ją metadane. Relacje paczki opisane są w składniku relacji paczki o specjalnej, zarezerwowanej nazwie/_rels/.rels
.[1]
Realizacja formatu
[edytuj | edytuj kod]Najczęściej dokumenty Office Open XML mają formę archiwów ZIP, przechowujących pliki XML o zdefiniowanej strukturze oraz inne pliki. W takiej też formie zostały one zaimplementowane w Microsoft Office 2007. Wchodzące w skład archiwum pliki reprezentują poszczególne składniki paczki, zaś pełne ścieżki do tych plików wewnątrz archiwum odpowiadają nazwom składników.
Archiwum ZIP reprezentujące dokument Office Open XML składa się w najprostszej postaci przynajmniej z trzech elementów:
- [Content_Types].xml
- Plik XML, w którym przechowywane są informacje o rodzajach zawartości wszystkich składników, które składają się na dokument. Plik ten nie powinien być traktowany jako składnik paczki, ponieważ zawiera w nazwie znaki „[” i „]”, niedozwolone w nazwach składników.
- _rels/.rels
- Składnik relacji paczki. W pliku tym znajdują się definicje wszystkich relacji paczki, takie jak odwołania do składników przechowujących metadane czy głównego składnika w dokumencie.
- Główny składnik dokumentu
- Składnik XML, z którym paczka związana jest relacją typu
http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument
. W przypadku dokumentów tekstowych jest to plik przechowujący treść dokumentu, w przypadku arkuszy kalkulacyjnych – plik skoroszytu, zaś w przypadku prezentacji multimedialnych – plik reprezentujący prezentację jako całość.
Przypisy
[edytuj | edytuj kod]- ↑ a b c d Ecma International (grudzień 2006). Standard Ecma-376: Office Open XML File Formats (ang.). Link aktywny 12 marca 2007.
- ↑ Tom Ngo (11 grudnia 2006). Office Open XML Overview (ang.). Link aktywny 12 marca 2007.
Linki zewnętrzne
[edytuj | edytuj kod]- S. Kent , R. Atkinson , IP Encapsulating Security Payload (ESP), RFC 2406, IETF, listopad 1998, DOI: 10.17487/RFC2406, ISSN 2070-1721, OCLC 943595667 (ang.).
- R. Fielding i inni, Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, IETF, czerwiec 1999, DOI: 10.17487/RFC2616, ISSN 2070-1721, OCLC 943595667 (ang.).