How Xena performs file format 
identification
Version 1.0
RKS: 2009/4024
Embed pdf into powerpoint - Library application component:C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
www.rasteredge.com
Embed pdf into powerpoint - Library application component:VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
www.rasteredge.com
Document Change Record
Version
Changed By
Description of Changes
Change Date
0.1
Allan Cunliffe
Created
March 2011
0.2
Allan Cunliffe
Post internal review
March 2011
0.3
Allan Cunliffe
Second review
April 2011
1.0
Allan Cunliffe
Released
May 2011
How Xena performs file format identification
Page 2 of 20
Library application component:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
Embed PDF hyperlinks to HTML links. also makes PDF document visible and searchable on the Internet by converting PDF document file into HTML webpage.
www.rasteredge.com
Library application component:C# TIFF: How to Embed, Remove, Add and Update TIFF Color Profile
On the whole, our SDK supports the following manipulations. Empower C# programmers to embed, remove, add and update ICCProfile. Support
www.rasteredge.com
Related Documentation
Title
Author
Date
URL
Dissecting the Digital 
Preservation Software 
Platform
Allan Cunliffe
February 
2011
http://www.naa.gov.au/Image
s/Digital-Preservation-
Software-Platform-v1_tcm2-
34756.pdf
An Approach to the 
Preservation of Digital 
Records
Helen Heslop
Simon Davis
Andrew Wilson
December 
2002
http://www.naa.gov.au/image
s/an-approach-green-
paper_tcm2-888.pdf
The Benefit of Experience: 
the first four years of digital 
archiving at the National 
Archives of Australia
Michael Carden August 
2010
http://michaelcarden.net/blog/
wp-
content/uploads/2010/08/mic
hael-carden-conference-
paper-final.pdf
Xena Help
Allan Cunliffe
August 
2010
http://xena.sourceforge.net/d
ocumentation.php
How Xena performs file format identification
Page 3 of 20
Library application component:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Turn PDF images to HTML images in VB.NET. Embed PDF hyperlinks to HTML links in VB.NET. Available zoom setting (fit page, fit width).
www.rasteredge.com
Library application component:VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Embed PDF to image converter in viewer. Quick evaluation source codes for VB.NET class. Sometimes, to convert PDF document into BMP, GIF, JPEG and PNG
www.rasteredge.com
Table of Contents
1  Introduction..........................................................................................................................5
1.1  Audience......................................................................................................................5
2  Xena architecture................................................................................................................6
3  Plugins.................................................................................................................................7
3.1  Plugin structure............................................................................................................7
4  Guesser...............................................................................................................................9
5  File identification process..................................................................................................10
5.1  Initial identification attempt.........................................................................................10
5.2  Best guess identification............................................................................................12
6  Appendix A – Xena plugins...............................................................................................14
7  Appendix B - Glossary.......................................................................................................16
8  Appendix C – File identification example..........................................................................19
8.1  HTML Guesser...........................................................................................................19
8.2  Plaintext Guesser.......................................................................................................20
8.3  Word Guesser............................................................................................................20
How Xena performs file format identification
Page 4 of 20
Library application component:C# Raster - Image Save Options in C#.NET
NET Read: PDF Image Extract; VB.NET Write: Insert text into PDF; VB.NET How-to, VB.NET PDF, VB.NET Word, VB a zone bit of whether it's need to embed Color profile
www.rasteredge.com
Library application component:C# TIFF: How to Insert & Burn Picture/Image into TIFF Document
Entire C# Code to Embed and Burn Image to TIFF GetPage(0); // load an PNG logo into REImage REImage powerful & profession imaging controls, PDF document, tiff
www.rasteredge.com
1 Introduction
Xena
1
digital preservation software has been developed by the National Archives of 
Australia to aid in the long term preservation of digital records.
The main function of Xena is to determine the file format of digital records and convert them 
to an appropriate preservation file format based on open standards. This paper describes 
how Xena performs file format identification.  
1.1 Audience
This document is intended for anyone interested in the functionality of Xena and how it 
detects input file formats. 
While no technical knowledge is assumed, the document deals with terms that may be 
unfamiliar. For more information about the technical terms used in this document, please 
refer to Appendix B – Glossary.
1
http://xena.sourceforge.net/
How Xena performs file format identification
Page 5 of 20
Library application component:VB.NET TIFF: Rotate TIFF Page by Using RaterEdge .NET TIFF
formats are: JPEG, PNG, GIF, BMP, PDF, Word (Docx Visual Basic .NET class, and then embed "RasterEdge.Imaging splitting huge target TIFF file into multiple and
www.rasteredge.com
Library application component:VB.NET Image: How to Draw and Cutomize Text Annotation on Image
NET text annotation add-on tutorial can be divided into a few on document files in VB.NET, including PDF, TIFF & license and at last you can embed the required
www.rasteredge.com
2 Xena architecture
The main components of the Xena architecture are:
• Xena graphical user interface (GUI)
• Xena command line interface
• Xena object. The Xena object allows the basic functionality of the Xena system to be 
accessed, including:
• loading plugins
• guessing file types
• normalising files
• exporting normalised files
• Plugin Manager. The Plugin Manager loads the plugins and distributes the input 
source file to each of the plugins to determine the file format
• Plugins. Xena plugins consist of one or more components, each having a specific 
role in the conversion process (such as file format detection, file conversion and 
creation of the Xena XML file).
2
2
Icon source: http://oxy-gnome.org/
How Xena performs file format identification
Page 6 of 20
Diagram 1: Xena architecture
Library application component:VB.NET Image: VB.NET Code to Add Rubber Stamp Annotation to Image
Suitable for VB.NET PDF, Word & TIFF document managing & editing project. VB Can be implemented into both Windows and web VB.NET applications; Support single or
www.rasteredge.com
Library application component:VB.NET Image: Creating Hotspot Annotation for Visual Basic .NET
the configuration environment to integrate RasterEdge Visual Basic .NET into your imaging to provide powerful & profession imaging controls, PDF document, tiff
www.rasteredge.com
3 Plugins
Xena uses different plugins to deal with various file types. The Xena plugins are loaded by 
the Plugin Manager when Xena is run. 
3.1 Plugin structure
Each plugin for Xena consists of a number of components. Each component performs a 
specific role.
Typical plugin components are:
• Xena Type –  corresponds to a supported file format
• Guesser – determines the type of a given Xena input file
• Normaliser – takes the Xena input file and transforms it into an XML file
• De-normaliser – takes a normalised file, and transforms it back into a normal file
3
• File Namer – names normalised and denormalised files according to a specific 
naming scheme
• View – displays Xena files. 
For the purpose of file format identification, the most important components of the plugin 
are the Xena Type, Guesser and Normaliser. The main points to note are:
• There is a plugin for each logical grouping of supported file formats (such as email, 
image, audio, office
4
).
• Plugins contain one or more guessers and one or more normalisers.
• Plugins have a guesser for each file type they support.
• A single normaliser may normalise multiple file types. 
• Each file type is normalised by a specific normaliser.
3
For each de-normaliser, there is generally a single output target file format.
4
See Appendix A for a list of the plugins.
How Xena performs file format identification
Page 7 of 20
The relationship between the plugin, normaliser and guesser are shown below, using the 
Office Plugin and office documents as an example:
5
5
Icon source: http://oxy-gnome.org/
How Xena performs file format identification
Page 8 of 20
Diagram 2: An example of plugin functionality
4 Guesser
The guesser component of a Xena plugin is responsible for determining the file type of a 
Xena input file. Each guesser compares certain input file attributes with those stored in the 
guesser and the corresponding Xena Type.
Typical attributes used for comparison and their weightings are given in the following table.
Attribute
Example
Weighting
6
MIME 
type/header
MIME type of html 
files is text/html
• MIME_MATCH_FALSE = -10000
• MIME_MATCH_UNKNOWN = 0
• MIME_MATCH_TRUE = 60
Magic number JPEG image files 
begin with FF D8 
and end with FF D9
• MAGIC_NUMBER_FALSE = -10000
• MAGIC_NUMBER_UNKNOWN = 0
• MAGIC_NUMBER_TRUE = 50
File extension
PDF documents 
commonly have the 
file extension .pdf
• EXTENSION_MATCH_FALSE = 0
• EXTENSION_MATCH_UNKNOWN = 0
• EXTENSION_MATCH_TRUE = 40
Data in body of 
the file
Characters in the file 
are encoded 
according to the 
UTF-8 character set 
• DATA_LIKELY_FALSE = -30
• DATA_LIKELY_UNKNOWN = 0
• DATA_LIKELY_TRUE = 30
Typical file attributes used to determine file formats
To generate a score for each guesser, the scores for each attribute are added together. A 
high, positive score is more indicative of a particular file format than a lower score or a 
negative score.
For example, in the case of the JPEG guesser:
• if the input file has a JPEG magic number but no file extension, the guesser would 
set the file extension to 'unknown' and the magic number to ‘true’. Based on the table 
above, the guesser would give the file a score of 50. 
• if the input file has a JPEG file extension but no JPEG magic number, the guesser 
would set the magic number to 'unknown' and the file extension to ‘true’. Based on 
the table above, the guesser would give the file a score of 40.
The difference between the two results above shows that a file extension match is not as 
important as a magic number match for file identification (as file extensions can be more 
easily altered than magic numbers).
Further examples of guesser functionality are given in Appendix C.
6
Weightings are indicative only - depending on the guesser, other weightings may be applied.
How Xena performs file format identification
Page 9 of 20
5 File identification process
There is a guesser for every file format supported by Xena. Xena identifies the file type of 
an input file by checking it for certain file attributes: 
• Each guesser compares the input file attributes with those stored in the guesser and 
the corresponding Xena Type.
• The result of the comparison is measured to give a likelihood of the input file being a 
certain file type.
• The file type profile that the input file most closely matches is the most probable file 
type. 
The default file identifier is the binary guesser. If matches to other file types can not be 
established, the file is treated as a binary file type and normalised with the binary 
normaliser. 
The following sections describe Xena's two-step approach to file format identification.
5.1 Initial identification attempt
Passing input files to every guesser increases the time it takes to identify and normalise 
input files. To speed file identification, Xena attempts to determine the file type of the input 
file before passing it to every guesser:
1. Xena checks the file for a magic number and file extension.
2. If both a magic number and file extension are detected, Xena compares the input file 
values with a pre-existing set of magic number and file extension pairs.
3. If Xena finds a match, the file is passed to the corresponding guesser to confirm the 
file type.
4. If the guesser confirms the file type of the input file, the file is passed to the 
corresponding normaliser.
5. If any of the above checks are negative, the input file is passed to each guesser in-
turn to establish a “best guess” of the file type (see Section 5.2).
How Xena performs file format identification
Page 10 of 20
Documents you may be interested
Documents you may be interested