Τι είναι ένα αρχείο .ONE;
Τα αρχεία που αντιπροσωπεύονται από την επέκταση .ONE δημιουργούνται από την εφαρμογή Microsoft OneNote. Το OneNote σάς επιτρέπει να συλλέγετε πληροφορίες χρησιμοποιώντας την εφαρμογή σαν να χρησιμοποιείτε το πρόχειρο pad για τη λήψη σημειώσεων. Τα αρχεία OneNote μπορεί να περιέχουν διαφορετικά στοιχεία που μπορούν να τοποθετηθούν σε μη σταθερές θέσεις σε σελίδες εγγράφων. Αυτά τα στοιχεία μπορεί να περιέχουν κείμενο, ψηφιοποιημένο χειρόγραφο και αντικείμενα που έχουν αντιγραφεί από άλλες εφαρμογές, συμπεριλαμβανομένων εικόνων, σχεδίων και κλιπ πολυμέσων (ήχου/βίντεο). Η Microsoft προσφέρει τώρα την ηλεκτρονική έκδοση του OneNote ως μέρος του Office365 όπου οι Σημειώσεις μπορούν να κοινοποιηθούν με άλλους χρήστες του OneNote μέσω του Διαδικτύου.
.ONE Προδιαγραφές μορφής αρχείου
Η μορφή αρχείου OneNote παρέχει έναν αποτελεσματικό τρόπο για την αναπαράσταση ψηφιακών σημειώσεων ως ιεραρχικά σύνολα ενοτήτων και σελίδων. Κάθε σελίδα περιέχει περιεχόμενο που ορίζεται από τον χρήστη σε μια συγκεκριμένη δομή για αναπαράσταση με τη μορφή αρχείου Document Object Model (DOM). Το μοντέλο δεδομένων για αυτήν τη μορφή είναι όπως φαίνεται παρακάτω.
Επισκόπηση δομής
Όπως φαίνεται στο μοντέλο δεδομένων για τη μορφή αρχείου OneNote, ένα έγγραφο OneNote αποτελείται από διαφορετικά στοιχεία.
Ενότητα
Μια ενότητα είναι το κορυφαίο κοντέινερ σε ένα αρχείο OneNote που περιέχει επιπλέον διαφορετικά στοιχεία σε αυτό, όπως:
- Σελίδες
- Μεταδεδομένα
- Ιδιότητες
Τα μεταδεδομένα και οι ιδιότητες περιλαμβάνουν το όνομα της ενότητας, την αναγνώριση των σελίδων που περιέχονται στην ενότητα και τη σειρά με την οποία εμφανίζονται αυτές οι σελίδες. Ο όρος “ενότητα” αναφέρεται σε όλες τις σελίδες που βρίσκονται σε μια ενότητα και στην αναπαράσταση αυτών των δεδομένων σε ένα αρχείο καταστήματος αναθεώρησης του OneNote®, το οποίο έχει επέκταση ονόματος αρχείου .one.
Σελίδα
Το περιεχόμενο που ορίζεται από το χρήστη σε ένα έγγραφο του OneNote περιέχεται μέσα σε μια σελίδα. Οι πληροφορίες σελίδας περιλαμβάνουν κείμενο, λίστες, πίνακες, τίτλους σελίδων, εικόνες και ετικέτες σημειώσεων. Μια σελίδα αποτελείται από αντικείμενα περιγράμματος στα οποία προστίθενται τα περισσότερα από τα περιεχόμενα αντικείμενα. Σε κάθε σελίδα μπορεί να εκχωρηθεί ένα όνομα για ουσιαστική αναπαράσταση και αντικείμενα μπορούν να προστεθούν απευθείας στις σελίδες επίσης. Μια σελίδα μπορεί επιπλέον να περιέχει υποσελίδες σε ένα ιεραρχικό σύστημα.
Ιδιότητες και σύνολα ιδιοτήτων
Τα περιεχόμενα του OneNote αποτελούνται από ιδιότητες, σύνολα ιδιοτήτων και αντικείμενα δεδομένων αρχείων. Ένα σύνολο ιδιοτήτων είναι μια συλλογή ιδιοτήτων που αντιπροσωπεύει κάποιο είδος περιεχομένου. Ένα αντικείμενο δεδομένων αρχείου είναι ένα μπλοκ δυαδικών δεδομένων που περιέχει εικόνες, ενσωματωμένα αρχεία ή περιεχόμενο ήχου/βίντεο.
Σημειωματάριο OneNote
Το σημειωματάριο είναι μια συλλογή αρχείων ενοτήτων που αποθηκεύονται στον ίδιο κατάλογο. Μια συλλογή ιδιοτήτων χρησιμοποιείται για τον καθορισμό ρυθμίσεων όπως η σειρά των ενοτήτων μέσα στο σημειωματάριο και το χρώμα του σημειωματάριου.
Δομή αρχείου
Ένα αρχείο αποθήκευσης αναθεωρήσεων ΠΡΕΠΕΙ να ξεκινά με μια δομή Header. Το υπόλοιπο αρχείο χωρίζεται σε μπλοκ byte, όπου το μέγεθος και η δομή κάθε μπλοκ καθορίζονται από το πεδίο που το παραπέμπει. Ένα μπλοκ είναι προσβάσιμο εάν αναφέρεται από τη δομή Header ή εάν αναφέρεται από ένα πεδίο σε άλλο προσβάσιμο μπλοκ. Δεδομένα εκτός της δομής Header και τυχόν προσβάσιμα μπλοκ ΠΡΕΠΕΙ να αγνοηθούν.
Όλες οι δομές είναι ευθυγραμμισμένες σε όρια 1 byte. Όλοι οι ακέραιοι αριθμοί είναι υπογεγραμμένοι εκτός εάν ορίζεται διαφορετικά. Όλα τα πεδία είναι little-endian, εκτός εάν ορίζεται διαφορετικά.
Κεφαλίδα
Η κεφαλίδα του αρχείου .ONE αποτελείται από κομμάτια που περιέχουν διαφορετικά μοναδικά αναγνωριστικά και πεδία για την αναπαράσταση των πληροφοριών αρχείου ως εξής:
guidFileType (16 byte):
Ένα GUID που καθορίζει τον τύπο του αρχείου αποθήκευσης αναθεωρήσεων. ΠΡΕΠΕΙ να είναι μία από τις τιμές από τον παρακάτω πίνακα.
Μορφή αρχείου | Τιμή |
---|---|
.one | {7B5C52E4-D88C-4DA7-AEB1-5378D02996D3} |
.onetoc2 | {43FF2FA1-EFD9-4C76-9EE2-10EA5722765F} |
guidFile (16 byte):
Ένα GUID που καθορίζει την ταυτότητα αυτού του αρχείου αποθήκευσης αναθεώρησης. ΠΡΕΠΕΙ να είναι παγκοσμίως μοναδικό.
guidLegacyFileVersion (16 byte):
ΠΡΕΠΕΙ να είναι “{00000000-0000-0000-0000-000000000000}” και ΠΡΕΠΕΙ να αγνοηθεί.
guidFileFormat (16 byte):
Ένα GUID που προσδιορίζει ότι το αρχείο είναι αρχείο αποθήκευσης αναθεωρήσεων. ΠΡΕΠΕΙ να είναι “{109ADD3F-911B-49F5-A5D0-1791EDC8AED8}”.
ffvLastCodeThatWroteToThisFile (4 byte):
Ένας ακέραιος χωρίς υπογραφή. ΠΡΕΠΕΙ να είναι μία από τις τιμές στον παρακάτω πίνακα, ανάλογα με τον τύπο του αρχείου.
Μορφή αρχείου | Τιμή |
---|---|
.ένα | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatHasWrittenToThisFile (4 byte):
Ένας ακέραιος χωρίς υπογραφή. ΠΡΕΠΕΙ να είναι μία από τις τιμές στον παρακάτω πίνακα, ανάλογα με τη μορφή αρχείου αυτού του αρχείου.
Μορφή αρχείου | Τιμή |
---|---|
.ένα | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvNewestCodeThatHasWrittenToThisFile (4 byte):
Ένας ακέραιος χωρίς υπογραφή. ΠΡΕΠΕΙ να είναι μία από τις τιμές στον παρακάτω πίνακα, ανάλογα με τη μορφή αρχείου αυτού του αρχείου.
Μορφή αρχείου | Τιμή |
---|---|
.ένα | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatMayReadThisFile (4 byte):
Ένας ακέραιος χωρίς υπογραφή. ΠΡΕΠΕΙ να είναι μία από τις τιμές στον παρακάτω πίνακα, ανάλογα με τη μορφή αρχείου αυτού του αρχείου.
Μορφή αρχείου | Τιμή |
---|---|
.ένα | 0x0000002A |
.onetoc2 | 0x0000001B |
fcrLegacyFreeChunkList (8 byte):
Μια δομή FileChunkReference32 που ΠΡΕΠΕΙ να έχει τιμή “fcrZero”.
fcrLegacyTransactionLog (8 byte):
Μια δομή FileChunkReference32 που ΠΡΕΠΕΙ να είναι “fcrNil”.
cTransactionsInLog (4 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει τον αριθμό των συναλλαγών στο αρχείο καταγραφής συναλλαγών. ΔΕΝ ΠΡΕΠΕΙ να είναι μηδέν.
cbLegacyExpectedFileLength (4 byte):
Ένας ανυπόγραφος ακέραιος που ΠΡΕΠΕΙ να είναι μηδέν και ΠΡΕΠΕΙ να αγνοηθεί.
rgbPlaceholder (8 byte):
Ένας ανυπόγραφος ακέραιος που ΠΡΕΠΕΙ να είναι μηδέν και ΠΡΕΠΕΙ να αγνοηθεί.
fcrLegacyFileNodeListRoot (8 byte):
Μια δομή FileChunkReference32 που ΠΡΕΠΕΙ να είναι “fcrNil”.
cbLegacyFreeSpaceInFreeChunkList (4 byte):
Ένας ακέραιος χωρίς υπογραφή που ΠΡΕΠΕΙ να είναι μηδέν και ΠΡΕΠΕΙ να αγνοηθεί.
Το fNeedsDefrag (1 byte):
ΠΡΕΠΕΙ να αγνοηθεί.
Το fRepairedFile (1 byte):
ΠΡΕΠΕΙ να αγνοηθεί.
Το fNeedsGarbageCollect (1 byte):
ΠΡΕΠΕΙ να αγνοηθεί.
fHasNoEmbeddedFileObjects (1 byte):
Ένας ανυπόγραφος ακέραιος που ΠΡΕΠΕΙ να είναι μηδέν και ΠΡΕΠΕΙ να αγνοηθεί.
guidAncestor (16 byte):
Ένα GUID που καθορίζει το πεδίο Header.guidFile του αρχείου πίνακα περιεχομένων, που δίνεται από τον ακόλουθο πίνακα:
Πίνακας περιεχομένων Μορφή αρχείου | Τοποθεσία αρχείου πίνακα περιεχομένων |
---|---|
Αρχείο ενότητας - .One | Το αρχείο του πίνακα περιεχομένων βρίσκεται στον ίδιο κατάλογο με αυτό το αρχείο. |
Πίνακας περιεχομένων Αρχείο - .onetoc2 | Το αρχείο του πίνακα περιεχομένων βρίσκεται στον γονικό κατάλογο αυτού του αρχείου. |
Εάν το GUID είναι {00000000-0000-0000-0000-000000000000}, αυτό το πεδίο δεν αναφέρεται σε αρχείο πίνακα περιεχομένων.
crcName (4 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει την τιμή CRC του ονόματος αυτού του αρχείου αποθήκευσης αναθεώρησης. Το όνομα είναι η αναπαράσταση Unicode του ονόματος αρχείου με την επέκτασή του και έναν επιπλέον μηδενικό χαρακτήρα στο τέλος. Αυτό το CRC υπολογίζεται πάντα χρησιμοποιώντας τον αλγόριθμο CRC για το αρχείο .one, ανεξάρτητα από τη μορφή αρχείου αποθήκευσης αναθεώρησης.
fcrHashedChunkList (12 byte):
Μια δομή FileChunkReference64x32 που καθορίζει μια αναφορά στο πρώτο FileNodeListFragment σε μια κατακερματισμένη λίστα τμημάτων. Εάν η τιμή της δομής FileChunkReference64x32 είναι “fcrZero” ή “fcrNil”, η κατακερματισμένη λίστα τμημάτων δεν υπάρχει.
fcrTransactionLog (12 byte):
Μια δομή FileChunkReference64x32 που καθορίζει μια αναφορά στην πρώτη δομή TransactionLogFragment σε ένα αρχείο καταγραφής συναλλαγών. Η τιμή του πεδίου fcrTransactionLog ΔΕΝ ΠΡΕΠΕΙ να είναι “fcrZero” και ΔΕΝ ΠΡΕΠΕΙ να είναι “fcrNil”.
fcrFileNodeListRoot (12 byte):
Μια δομή FileChunkReference64x32 που καθορίζει μια αναφορά σε μια λίστα κόμβων αρχείου ρίζας. Η τιμή του πεδίου fcrFileNodeListRoot ΔΕΝ ΠΡΕΠΕΙ να είναι “fcrZero” και ΔΕΝ ΠΡΕΠΕΙ να είναι “fcrNil”.
fcrFreeChunkList (12 byte):
Μια δομή FileChunkReference64x32 που καθορίζει μια αναφορά στην πρώτη δομή FreeChunkListFragment. Εάν η τιμή της δομής FileChunkReference64x32 είναι “fcrZero” ή “fcrNil”, τότε η δωρεάν λίστα τμημάτων δεν υπάρχει.
cbExpectedFileLength (8 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει το μέγεθος, σε byte, αυτού του αρχείου αποθήκευσης αναθεώρησης.
cbFreeSpaceInFreeChunkList (8 byte):
Ένας ανυπόγραφος ακέραιος που ΘΑ ΠΡΕΠΕΙ να καθορίζει το μέγεθος, σε byte, του ελεύθερου χώρου που καθορίζεται από τη λίστα ελεύθερων τμημάτων.
guidFileVersion (16 byte):
Ένα GUID. Όταν η τιμή του πεδίου cTransactionsInLog ή το πεδίο guidDenyReadFileVersion αλλάζει, το guidFileVersion ΠΡΕΠΕΙ να αλλάξει σε νέο GUID.
nFileVersionGeneration (8 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει πόσες φορές έχει αλλάξει το αρχείο. ΠΡΕΠΕΙ να αυξάνεται όταν αλλάζει το πεδίο guidFileVersion.
guidDenyReadFileVersion (16 byte):
Ένα GUID. Όταν αλλάζουν τα υπάρχοντα περιεχόμενα του αρχείου, εξαιρουμένης της δομής Header του αρχείου και των αχρησιμοποίητων μπλοκ αποθήκευσης, το guidDenyReadFileVersion ΠΡΕΠΕΙ να αλλάξει σε νέο GUID.
grfDebugLogFlags (4 byte):
ΠΡΕΠΕΙ να είναι μηδέν. ΠΡΕΠΕΙ να αγνοηθεί.
fcrDebugLog (12 byte):
Μια δομή FileChunkReference64x32 που ΠΡΕΠΕΙ να έχει τιμή “fcrZero”. ΠΡΕΠΕΙ να αγνοηθεί.
fcrAllocVerificationFreeChunkList (12 byte):
Μια δομή FileChunkReference64x32 που ΠΡΕΠΕΙ να είναι “fcrZero”. ΠΡΕΠΕΙ να αγνοηθεί.
bnCreated (4 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει τον αριθμό έκδοσης της εφαρμογής που δημιούργησε αυτό το αρχείο αποθήκευσης αναθεώρησης. ΠΡΕΠΕΙ να αγνοηθεί.
bnLastWroteToThisFile (4 byte):
Ένας ανυπόγραφος ακέραιος αριθμός που καθορίζει τον αριθμό έκδοσης της εφαρμογής που έγραψε την τελευταία φορά σε αυτό το αρχείο αποθήκευσης αναθεώρησης. ΠΡΕΠΕΙ να αγνοηθεί.
bnOldestWritten (4 byte):
Ένας ακέραιος χωρίς υπογραφή που καθορίζει τον αριθμό έκδοσης της παλαιότερης εφαρμογής που έγραψε σε αυτό το αρχείο αποθήκευσης αναθεωρήσεων. ΠΡΕΠΕΙ να αγνοηθεί.
bnNewestWritten (4 byte):
Ένας ανυπόγραφος ακέραιος που καθορίζει τον αριθμό έκδοσης της πιο πρόσφατης εφαρμογής που έγραψε σε αυτό το αρχείο αποθήκευσης αναθεωρήσεων. ΠΡΕΠΕΙ να αγνοηθεί.
rgbReserved (728 byte):
ΠΡΕΠΕΙ να είναι μηδέν. ΠΡΕΠΕΙ να αγνοηθεί.