You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ma...@apache.org on 2013/07/04 03:40:46 UTC

svn commit: r1499614 [3/7] - in /tika/site: publish/ publish/0.10/ publish/0.5/ publish/0.6/ publish/0.7/ publish/0.8/ publish/0.9/ publish/1.0/ publish/1.1/ publish/1.2/ publish/1.3/ publish/1.4/ src/site/ src/site/apt/ src/site/apt/1.3/ src/site/apt/...

Modified: tika/site/publish/1.3/detection.html
URL: http://svn.apache.org/viewvc/tika/site/publish/1.3/detection.html?rev=1499614&r1=1499613&r2=1499614&view=diff
==============================================================================
--- tika/site/publish/1.3/detection.html (original)
+++ tika/site/publish/1.3/detection.html Thu Jul  4 01:40:44 2013
@@ -85,7 +85,7 @@
       </div>
       <div id="content">
         <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Content Detection<a name="Content_Detection"></a></h2><p>This page gives you information on how conte
 nt and language detection works with Apache Tika, and how to tune the behaviour of Tika.</p><ul><li><a href="#Content_Detection">Content Detection</a><ul><li><a href="#The_Detector_Interface">The Detector Interface</a></li><li><a href="#Mime_Magic_Detction">Mime Magic Detction</a></li><li><a href="#Resource_Name_Based_Detection">Resource Name Based Detection</a></li><li><a href="#Known_Content_Type_Detection">Known Content Type &quot;Detection</a></li><li><a href="#The_default_Mime_Types_Detector">The default Mime Types Detector</a></li><li><a href="#Container_Aware_Detection">Container Aware Detection</a></li><li><a href="#Language_Detection">Language Detection</a></li></ul></li></ul><div class="section"><h3><a name="The_Detector_Interface">The Detector Interface</a></h3><p>The <a href="./api/org/apache/tika/detect/Detector.html">org.apache.tika.detect.Detector</a> interface is the basis for most of the content type detection in Apache Tika. All the different ways of detecting cont
 ent all implement the same common method:</p><div><pre>MediaType detect(java.io.InputStream input,
-                 Metadata metadata) throws java.io.IOException</pre></div><p>The <tt>detect</tt> method takes the stream to inspect, and a <tt>Metadata</tt> object that holds any additional information on the content. The detector will return a <a href="./api/org/apache/tika/mime/MediaType.html">MediaType</a> object describing its best guess as to the type of the file.</p><p>In general, only two keys on the Metadata object are used by Detectors. These are <tt>Metadata.RESOURCE_NAME_KEY</tt> which should hold the name of the file (where known), and <tt>Metadata.CONTENT_TYPE</tt> which should hold the advertised content type of the file (eg from a webserver or a content repository).</p></div><div class="section"><h3><a name="Mime_Magic_Detction">Mime Magic Detction</a></h3><p>By looking for special (&quot;magic&quot;) patterns of bytes near the start of the file, it is often possible to detect the type of the file. For some file types, this is a simple process. For others, typically c
 ontainer based formats, the magic detection may not be enough. (More detail on detecting container formats below)</p><p>Tika is able to make use of a a mime magic info file, in the <a class="externalLink" href="http://www.freedesktop.org/standards/shared-mime-info">Freedesktop MIME-info</a> format to peform mime magic detection.</p><p>This is provided within Tika by <a href="./api/org/apache/tika/detect/MagicDetector.html">org.apache.tika.detect.MagicDetector</a>. It is most commonly access via <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>, normally sourced from the <tt>tika-mimetypes.xml</tt> file.</p></div><div class="section"><h3><a name="Resource_Name_Based_Detection">Resource Name Based Detection</a></h3><p>Where the name of the file is known, it is sometimes possible to guess the file type from the name or extension. Within the <tt>tika-mimetypes.xml</tt> file is a list of patterns which are used to identify the type from the filename.<
 /p><p>However, because files may be renamed, this method of detection is quick but not always as accurate.</p><p>This is provided within Tika by <a href="./api/org/apache/tika/detect/NameDetector.html">org.apache.tika.detect.NameDetector</a>.</p></div><div class="section"><h3><a name="Known_Content_Type_Detection">Known Content Type &quot;Detection</a></h3><p>Sometimes, the mime type for a file is already known, such as when downloading from a webserver, or when retrieving from a content store. This information can be used by detectors, such as <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>,</p></div><div class="section"><h3><a name="The_default_Mime_Types_Detector">The default Mime Types Detector</a></h3><p>By default, the mime type detection in Tika is provided by <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>. This detector makes use of <tt>tika-mimetypes.xml</tt> to power magic based and filename bas
 ed detection.</p><p>Firstly, magic based detection is used on the start of the file. If the file is an XML file, then the start of the XML is processed to look for root elements. Next, if available, the filename (from <tt>Metadata.RESOURCE_NAME_KEY</tt>) is then used to improve the detail of the detection, such as when magic detects a text file, and the filename hints it's really a CSV. Finally, if available, the supplied content type (from <tt>Metadata.CONTENT_TYPE</tt>) is used to further refine the type.</p></div><div class="section"><h3><a name="Container_Aware_Detection">Container Aware Detection</a></h3><p>Several common file formats are actually held within a common container format. One example is the PowerPoint .ppt and Word .doc formats, which are both held within an OLE2 container. Another is Apple iWork formats, which are actually a series of XML files within a Zip file.</p><p>Using magic detection, it is easy to spot that a given file is an OLE2 document, or a Zip file.
  Using magic detection alone, it is very difficult (and often impossible) to tell what kind of file lives inside the container.</p><p>For some use cases, speed is important, so having a quick way to know the container type is sufficient. For other cases however, you don't mind spending a bit of time (and memory!) processing the container to get a more accurate answer on its contents. For these cases, container aware detectors should be used.</p><p>Tika provides a number of container aware detectors, which cover the main container formats (OLE2, Zip etc). It is possible to call these detectors individually, but it is more common to use <a href="./api/org/apache/tika/detect/DefaultDetector.html">org.apache.tika.detect.DefaultDetector</a> to handle this for you. DefaultDetector works like DefaultParser, and locates available Detectors using the Services Loader, and then tries each in turn to identify the file. If the file isn't a known container, and no specific Detector identifies it,
  the default <tt>MimeTypes</tt> detector will be used to perform Magic Based Detection.</p><p>Because the container aware detectors needs to read the whole file in order to process the surrounding container, they must be used with a <a href="./api/org/apache/tika/io/TikaInputStream.html">org.apache.tika.io.TikaInputStream</a>. If called with a regular <tt>InputStream</tt>, then all work will be done by the <tt>MimeTypes</tt> detector.</p><p>For more information on container formats and Tika, see <a class="externalLink" href="http://wiki.apache.org/tika/MetadataDiscussion"></a></p></div><div class="section"><h3><a name="Language_Detection">Language Detection</a></h3><p>Tika is able to help identify the language of a piece of text, which is useful when extracting text from document formats which do not include language information in their metadata.</p><p>The language detection is provided by <a href="./api/org/apache/tika/language/LanguageIdentifier.html">org.apache.tika.language.Lan
 guageIdentifier</a></p></div></div>
+                 Metadata metadata) throws java.io.IOException</pre></div><p>The <tt>detect</tt> method takes the stream to inspect, and a <tt>Metadata</tt> object that holds any additional information on the content. The detector will return a <a href="./api/org/apache/tika/mime/MediaType.html">MediaType</a> object describing its best guess as to the type of the file.</p><p>In general, only two keys on the Metadata object are used by Detectors. These are <tt>Metadata.RESOURCE_NAME_KEY</tt> which should hold the name of the file (where known), and <tt>Metadata.CONTENT_TYPE</tt> which should hold the advertised content type of the file (eg from a webserver or a content repository).</p></div><div class="section"><h3><a name="Mime_Magic_Detction">Mime Magic Detction</a></h3><p>By looking for special (&quot;magic&quot;) patterns of bytes near the start of the file, it is often possible to detect the type of the file. For some file types, this is a simple process. For others, typically c
 ontainer based formats, the magic detection may not be enough. (More detail on detecting container formats below)</p><p>Tika is able to make use of a a mime magic info file, in the <a class="externalLink" href="http://www.freedesktop.org/standards/shared-mime-info">Freedesktop MIME-info</a> format to peform mime magic detection.</p><p>This is provided within Tika by <a href="./api/org/apache/tika/detect/MagicDetector.html">org.apache.tika.detect.MagicDetector</a>. It is most commonly access via <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>, normally sourced from the <tt>tika-mimetypes.xml</tt> file.</p></div><div class="section"><h3><a name="Resource_Name_Based_Detection">Resource Name Based Detection</a></h3><p>Where the name of the file is known, it is sometimes possible to guess the file type from the name or extension. Within the <tt>tika-mimetypes.xml</tt> file is a list of patterns which are used to identify the type from the filename.<
 /p><p>However, because files may be renamed, this method of detection is quick but not always as accurate.</p><p>This is provided within Tika by <a href="./api/org/apache/tika/detect/NameDetector.html">org.apache.tika.detect.NameDetector</a>.</p></div><div class="section"><h3><a name="Known_Content_Type_Detection">Known Content Type &quot;Detection</a></h3><p>Sometimes, the mime type for a file is already known, such as when downloading from a webserver, or when retrieving from a content store. This information can be used by detectors, such as <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>,</p></div><div class="section"><h3><a name="The_default_Mime_Types_Detector">The default Mime Types Detector</a></h3><p>By default, the mime type detection in Tika is provided by <a href="./api/org/apache/tika/mime/MimeTypes.html">org.apache.tika.mime.MimeTypes</a>. This detector makes use of <tt>tika-mimetypes.xml</tt> to power magic based and filename bas
 ed detection.</p><p>Firstly, magic based detection is used on the start of the file. If the file is an XML file, then the start of the XML is processed to look for root elements. Next, if available, the filename (from <tt>Metadata.RESOURCE_NAME_KEY</tt>) is then used to improve the detail of the detection, such as when magic detects a text file, and the filename hints it's really a CSV. Finally, if available, the supplied content type (from <tt>Metadata.CONTENT_TYPE</tt>) is used to further refine the type.</p></div><div class="section"><h3><a name="Container_Aware_Detection">Container Aware Detection</a></h3><p>Several common file formats are actually held within a common container format. One example is the PowerPoint .ppt and Word .doc formats, which are both held within an OLE2 container. Another is Apple iWork formats, which are actually a series of XML files within a Zip file.</p><p>Using magic detection, it is easy to spot that a given file is an OLE2 document, or a Zip file.
  Using magic detection alone, it is very difficult (and often impossible) to tell what kind of file lives inside the container.</p><p>For some use cases, speed is important, so having a quick way to know the container type is sufficient. For other cases however, you don't mind spending a bit of time (and memory!) processing the container to get a more accurate answer on its contents. For these cases, a container aware detector should be used.</p><p>Tika provides a wrapping detector in the parsers bundle, of <a href="./api/org/apache/tika/detect/ContainerAwareDetector.html">org.apache.tika.detect.ContainerAwareDetector</a>. This detector will check for certain known containers, and if found, will open them and detect the appropriate type based on the contents. If the file isn't a known container, it will fall back to another detector for the answer (most commonly the default <tt>MimeTypes</tt> detector)</p><p>Because this detector needs to read the whole file to process the container
 , it must be used with a <a href="./api/org/apache/tika/io/TikaInputStream.html">org.apache.tika.io.TikaInputStream</a>. If called with a regular <tt>InputStream</tt>, then all work will be done by the fallback detector.</p><p>For more information on container formats and Tika, see <a class="externalLink" href="http://wiki.apache.org/tika/MetadataDiscussion"></a></p></div><div class="section"><h3><a name="Language_Detection">Language Detection</a></h3><p>Tika is able to help identify the language of a piece of text, which is useful when extracting text from document formats which do not include language information in their metadata.</p><p>The language detection is provided by <a href="./api/org/apache/tika/language/LanguageIdentifier.html">org.apache.tika.language.LanguageIdentifier</a></p></div></div>
       </div>
       <div id="sidebar">
         <div id="navigation">
@@ -120,6 +120,44 @@
                   
                   
                   
+                  
+                  
+              
+        <li class="expanded">
+                    <a href="../1.4/index.html">Apache Tika 1.4</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../1.4/gettingstarted.html">Getting Started</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/formats.html">Supported Formats</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser.html">Parser API</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser_guide.html">Parser 5min Quick Start Guide</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/detection.html">Content and Language Detection</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/api/">API Documentation</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+                    
+                  
+                  
+                  
                         
                   
               
@@ -188,18 +226,6 @@
         <li class="collapsed">
                     <a href="../1.0/index.html">Apache Tika 1.0</a>
                 </li>
-              
-                
-                    
-                  
-                  
-                  
-                  
-                  
-              
-        <li class="collapsed">
-                    <a href="../0.10/index.html">Apache Tika 0.10</a>
-                </li>
           </ul>
               <h5>The Apache Software Foundation</h5>
             <ul>

Modified: tika/site/publish/1.3/formats.html
URL: http://svn.apache.org/viewvc/tika/site/publish/1.3/formats.html?rev=1499614&r1=1499613&r2=1499614&view=diff
==============================================================================
--- tika/site/publish/1.3/formats.html (original)
+++ tika/site/publish/1.3/formats.html Thu Jul  4 01:40:44 2013
@@ -84,7 +84,7 @@
                 width="387" height="100"/></a>
       </div>
       <div id="content">
-        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Supported Document Formats<a name="Supported_Document_Formats"></a></h2><p>This page lists all the do
 cument formats supported by Apache Tika 0.6. Follow the links to the various parser class javadocs for more detailed information about each document format and how it is parsed by Tika.</p><ul><li><a href="#Supported_Document_Formats">Supported Document Formats</a><ul><li><a href="#HyperText_Markup_Language">HyperText Markup Language</a></li><li><a href="#XML_and_derived_formats">XML and derived formats</a></li><li><a href="#Microsoft_Office_document_formats">Microsoft Office document formats</a></li><li><a href="#OpenDocument_Format">OpenDocument Format</a></li><li><a href="#Portable_Document_Format">Portable Document Format</a></li><li><a href="#Electronic_Publication_Format">Electronic Publication Format</a></li><li><a href="#Rich_Text_Format">Rich Text Format</a></li><li><a href="#Compression_and_packaging_formats">Compression and packaging formats</a></li><li><a href="#Text_formats">Text formats</a></li><li><a href="#Audio_formats">Audio formats</a></li><li><a href="#Image_form
 ats">Image formats</a></li><li><a href="#Video_formats">Video formats</a></li><li><a href="#Java_class_files_and_archives">Java class files and archives</a></li><li><a href="#The_mbox_format">The mbox format</a></li></ul></li></ul><div class="section"><h3><a name="HyperText_Markup_Language">HyperText Markup Language</a></h3><p>The HyperText Markup Language (HTML) is the lingua franca of the web. Tika uses the <a class="externalLink" href="http://home.ccil.org/~cowan/XML/tagsoup/">TagSoup</a> library to support virtually any kind of HTML found on the web. The output from the <a href="./api/org/apache/tika/parser/html/HtmlParser.html">HtmlParser</a> class is guaranteed to be well-formed and valid XHTML, and various heuristics are used to prevent things like inline scripts from cluttering the extracted text content.</p></div><div class="section"><h3><a name="XML_and_derived_formats">XML and derived formats</a></h3><p>The Extensible Markup Language (XML) format is a generic format that 
 can be used for all kinds of content. Tika has custom parsers for some widely used XML vocabularies like XHTML, OOXML and ODF, but the default <a href="./api/org/apache/tika/parser/xml/DcXMLParser.html">DcXMLParser</a> class simply extracts the text content of the document and ignores any XML structure. The only exception to this rule are Dublin Core metadata elements that are used for the document metadata.</p></div><div class="section"><h3><a name="Microsoft_Office_document_formats">Microsoft Office document formats</a></h3><p>Microsoft Office and some related applications produce documents in the generic OLE 2 Compound Document and Office Open XML (OOXML) formats. The older OLE 2 format was introduced in Microsoft Office version 97 and was the default format until Office version 2007 and the new XML-based OOXML format. The <a href="./api/org/apache/tika/parser/microsoft/OfficeParser.html">OfficeParser</a> and <a href="./api/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.html"
 >OOXMLParser</a> classes use <a class="externalLink" href="http://poi.apache.org/">Apache POI</a> libraries to support text and metadata extraction from both OLE2 and OOXML documents.</p></div><div class="section"><h3><a name="OpenDocument_Format">OpenDocument Format</a></h3><p>The OpenDocument format (ODF) is used most notably as the default format of the OpenOffice.org office suite. The <a href="./api/org/apache/tika/parser/odf/OpenDocumentParser.html">OpenDocumentParser</a> class supports this format and the earlier OpenOffice 1.0 format on which ODF is based.</p></div><div class="section"><h3><a name="Portable_Document_Format">Portable Document Format</a></h3><p>The <a href="./api/org/apache/tika/parser/pdf/PDFParser.html">PDFParser</a> class parsers Portable Document Format (PDF) documents using the <a class="externalLink" href="http://pdfbox.apache.org/">Apache PDFBox</a> library.</p></div><div class="section"><h3><a name="Electronic_Publication_Format">Electronic Publication 
 Format</a></h3><p>The <a href="./api/org/apache/tika/parser/epub/EpubParser.html">EpubParser</a> class supports the Electronic Publication Format (EPUB) used for many digital books.</p></div><div class="section"><h3><a name="Rich_Text_Format">Rich Text Format</a></h3><p>The <a href="./api/org/apache/tika/parser/rtf/RTFParser.html">RTFParser</a> class uses the standard javax.swing.text.rtf feature to extract text content from Rich Text Format (RTF) documents.</p></div><div class="section"><h3><a name="Compression_and_packaging_formats">Compression and packaging formats</a></h3><p>Tika uses the <a class="externalLink" href="http://commons.apache.org/compress/">Commons Compress</a> library to support various compression and packaging formats. The <a href="./api/org/apache/tika/parser/pkg/PackageParser.html">PackageParser</a> class and its subclasses first parse the top level compression or packaging format and then pass the unpacked document streams to a second parsing stage using the 
 parser instance specified in the parse context.</p></div><div class="section"><h3><a name="Text_formats">Text formats</a></h3><p>Extracting text content from plain text files seems like a simple task until you start thinking of all the possible character encodings. The <a href="./api/org/apache/tika/parser/txt/TXTParser.html">TXTParser</a> class uses encoding detection code from the <a class="externalLink" href="http://site.icu-project.org/">ICU</a> project to automatically detect the character encoding of a text document.</p></div><div class="section"><h3><a name="Audio_formats">Audio formats</a></h3><p>Tika can detect several common audio formats and extract metadata from them. Even text extraction is supported for some audio files that contain lyrics or other textual content. The <a href="./api/org/apache/tika/parser/audio/AudioParser.html">AudioParser</a> and <a href="./api/org/apache/tika/parser/audio/MidiParser.html">MidiParser</a> classes use standard javax.sound features to 
 process simple audio formats, and the <a href="./api/org/apache/tika/parser/mp3/Mp3Parser.html">Mp3Parser</a> class adds support for the widely used MP3 format.</p></div><div class="section"><h3><a name="Image_formats">Image formats</a></h3><p>The <a href="./api/org/apache/tika/parser/image/ImageParser.html">ImageParser</a> class uses the standard javax.imageio feature to extract simple metadata from image formats supported by the Java platform. More complex image metadata is available through the <a href="./api/org/apache/tika/parser/jpeg/JpegParser.html">JpegParser</a> class that uses the metadata-extractor library to supports Exif metadata extraction from Jpeg images.</p></div><div class="section"><h3><a name="Video_formats">Video formats</a></h3><p>Currently Tika only supports the Flash video format using a simple parsing algorithm implemented in the <a href="./api/org/apache/tika/parser/flv/FLVParser">FLVParser</a> class.</p></div><div class="section"><h3><a name="Java_class_fi
 les_and_archives">Java class files and archives</a></h3><p>The <a href="./api/org/apache/tika/parser/asm/ClassParser">ClassParser</a> class extracts class names and method signatures from Java class files, and the <a href="./api/org/apache/tika/parser/pkg/ZipParser.html">ZipParser</a> class supports also jar archives.</p></div><div class="section"><h3><a name="The_mbox_format">The mbox format</a></h3><p>The <a href="./api/org/apache/tika/parser/mbox/MboxParser.html">MboxParser</a> can extract email messages from the mbox format used by many email archives and Unix-style mailboxes.</p></div></div>
+        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Supported Document Formats<a name="Supported_Document_Formats"></a></h2><p>This page lists all the do
 cument formats supported by Apache Tika 0.6. Follow the links to the various parser class javadocs for more detailed information about each document format and how it is parsed by Tika.</p><ul><li><a href="#Supported_Document_Formats">Supported Document Formats</a><ul><li><a href="#HyperText_Markup_Language">HyperText Markup Language</a></li><li><a href="#XML_and_derived_formats">XML and derived formats</a></li><li><a href="#Microsoft_Office_document_formats">Microsoft Office document formats</a></li><li><a href="#OpenDocument_Format">OpenDocument Format</a></li><li><a href="#Portable_Document_Format">Portable Document Format</a></li><li><a href="#Electronic_Publication_Format">Electronic Publication Format</a></li><li><a href="#Rich_Text_Format">Rich Text Format</a></li><li><a href="#Compression_and_packaging_formats">Compression and packaging formats</a></li><li><a href="#Text_formats">Text formats</a></li><li><a href="#Audio_formats">Audio formats</a></li><li><a href="#Image_form
 ats">Image formats</a></li><li><a href="#Video_formats">Video formats</a></li><li><a href="#Java_class_files_and_archives">Java class files and archives</a></li><li><a href="#The_mbox_format">The mbox format</a></li></ul></li></ul><div class="section"><h3><a name="HyperText_Markup_Language">HyperText Markup Language</a></h3><p>The HyperText Markup Language (HTML) is the lingua franca of the web. Tika uses the <a class="externalLink" href="http://home.ccil.org/~cowan/XML/tagsoup/">TagSoup</a> library to support virtually any kind of HTML found on the web. The output from the <a href="#apiorgapachetikaparserhtmlHtmlParser.html">HtmlParser</a> class is guaranteed to be well-formed and valid XHTML, and various heuristics are used to prevent things like inline scripts from cluttering the extracted text content.</p></div><div class="section"><h3><a name="XML_and_derived_formats">XML and derived formats</a></h3><p>The Extensible Markup Language (XML) format is a generic format that can be 
 used for all kinds of content. Tika has custom parsers for some widely used XML vocabularies like XHTML, OOXML and ODF, but the default <a href="#apiorgapachetikaparserxmlDcXMLParser.html">DcXMLParser</a> class simply extracts the text content of the document and ignores any XML structure. The only exception to this rule are Dublin Core metadata elements that are used for the document metadata.</p></div><div class="section"><h3><a name="Microsoft_Office_document_formats">Microsoft Office document formats</a></h3><p>Microsoft Office and some related applications produce documents in the generic OLE 2 Compound Document and Office Open XML (OOXML) formats. The older OLE 2 format was introduced in Microsoft Office version 97 and was the default format until Office version 2007 and the new XML-based OOXML format. The <a href="#apiorgapachetikaparsermicrosoftOfficeParser.html">OfficeParser</a> and <a href="#apiorgapachetikaparsermicrosoftooxmlOOXMLParser.html">OOXMLParser</a> classes use 
 <a class="externalLink" href="http://poi.apache.org/">Apache POI</a> libraries to support text and metadata extraction from both OLE2 and OOXML documents.</p></div><div class="section"><h3><a name="OpenDocument_Format">OpenDocument Format</a></h3><p>The OpenDocument format (ODF) is used most notably as the default format of the OpenOffice.org office suite. The <a href="#apiorgapachetikaparserodfOpenDocumentParser.html">OpenDocumentParser</a> class supports this format and the earlier OpenOffice 1.0 format on which ODF is based.</p></div><div class="section"><h3><a name="Portable_Document_Format">Portable Document Format</a></h3><p>The <a href="#apiorgapachetikaparserpdfPDFParser.html">PDFParser</a> class parsers Portable Document Format (PDF) documents using the <a class="externalLink" href="http://pdfbox.apache.org/">Apache PDFBox</a> library.</p></div><div class="section"><h3><a name="Electronic_Publication_Format">Electronic Publication Format</a></h3><p>The <a href="#apiorgapach
 etikaparserepubEpubParser.html">EpubParser</a> class supports the Electronic Publication Format (EPUB) used for many digital books.</p></div><div class="section"><h3><a name="Rich_Text_Format">Rich Text Format</a></h3><p>The <a href="#apiorgapachetikaparserrtfRTFParser.html">RTFParser</a> class uses the standard javax.swing.text.rtf feature to extract text content from Rich Text Format (RTF) documents.</p></div><div class="section"><h3><a name="Compression_and_packaging_formats">Compression and packaging formats</a></h3><p>Tika uses the <a class="externalLink" href="http://commons.apache.org/compress/">Commons Compress</a> library to support various compression and packaging formats. The <a href="#apiorgapachetikaparserpkgPackageParser.html">PackageParser</a> class and its subclasses first parse the top level compression or packaging format and then pass the unpacked document streams to a second parsing stage using the parser instance specified in the parse context.</p></div><div cl
 ass="section"><h3><a name="Text_formats">Text formats</a></h3><p>Extracting text content from plain text files seems like a simple task until you start thinking of all the possible character encodings. The <a href="#apiorgapachetikaparsertxtTXTParser.html">TXTParser</a> class uses encoding detection code from the <a class="externalLink" href="http://site.icu-project.org/">ICU</a> project to automatically detect the character encoding of a text document.</p></div><div class="section"><h3><a name="Audio_formats">Audio formats</a></h3><p>Tika can detect several common audio formats and extract metadata from them. Even text extraction is supported for some audio files that contain lyrics or other textual content. The <a href="#apiorgapachetikaparseraudioAudioParser.html">AudioParser</a> and <a href="#apiorgapachetikaparseraudioMidiParser.html">MidiParser</a> classes use standard javax.sound features to process simple audio formats, and the <a href="#apiorgapachetikaparsermp3Mp3Parser.ht
 ml">Mp3Parser</a> class adds support for the widely used MP3 format.</p></div><div class="section"><h3><a name="Image_formats">Image formats</a></h3><p>The <a href="#apiorgapachetikaparserimageImageParser.html">ImageParser</a> class uses the standard javax.imageio feature to extract simple metadata from image formats supported by the Java platform. More complex image metadata is available through the <a href="#apiorgapachetikaparserjpegJpegParser.html">JpegParser</a> class that uses the metadata-extractor library to supports Exif metadata extraction from Jpeg images.</p></div><div class="section"><h3><a name="Video_formats">Video formats</a></h3><p>Currently Tika only supports the Flash video format using a simple parsing algorithm implemented in the <a href="#apiorgapachetikaparserflvFLVParser">FLVParser</a> class.</p></div><div class="section"><h3><a name="Java_class_files_and_archives">Java class files and archives</a></h3><p>The <a href="#apiorgapachetikaparserasmClassParser">Cl
 assParser</a> class extracts class names and method signatures from Java class files, and the <a href="#apiorgapachetikaparserpkgZipParser.html">ZipParser</a> class supports also jar archives.</p></div><div class="section"><h3><a name="The_mbox_format">The mbox format</a></h3><p>The <a href="#apiorgapachetikaparsermboxMboxParser.html">MboxParser</a> can extract email messages from the mbox format used by many email archives and Unix-style mailboxes.</p></div></div>
       </div>
       <div id="sidebar">
         <div id="navigation">
@@ -116,6 +116,44 @@
               
           
                     
+                  
+                  
+                  
+                  
+                  
+              
+        <li class="expanded">
+                    <a href="../1.4/index.html">Apache Tika 1.4</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../1.4/gettingstarted.html">Getting Started</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/formats.html">Supported Formats</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser.html">Parser API</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser_guide.html">Parser 5min Quick Start Guide</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/detection.html">Content and Language Detection</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/api/">API Documentation</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+                    
                         
                   
                   
@@ -187,18 +225,6 @@
         <li class="collapsed">
                     <a href="../1.0/index.html">Apache Tika 1.0</a>
                 </li>
-              
-                
-                    
-                  
-                  
-                  
-                  
-                  
-              
-        <li class="collapsed">
-                    <a href="../0.10/index.html">Apache Tika 0.10</a>
-                </li>
           </ul>
               <h5>The Apache Software Foundation</h5>
             <ul>

Modified: tika/site/publish/1.3/gettingstarted.html
URL: http://svn.apache.org/viewvc/tika/site/publish/1.3/gettingstarted.html?rev=1499614&r1=1499613&r2=1499614&view=diff
==============================================================================
--- tika/site/publish/1.3/gettingstarted.html (original)
+++ tika/site/publish/1.3/gettingstarted.html Thu Jul  4 01:40:44 2013
@@ -84,51 +84,15 @@
                 width="387" height="100"/></a>
       </div>
       <div id="content">
-        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Getting Started with Apache Tika<a name="Getting_Started_with_Apache_Tika"></a></h2><p>This document 
 describes how to build Apache Tika from sources and how to start using Tika in an application.</p></div><div class="section"><h2>Getting and building the sources<a name="Getting_and_building_the_sources"></a></h2><p>To build Tika from sources you first need to either <a href="../download.html">download</a> a source release or <a href="../source-repository.html">checkout</a> the latest sources from version control.</p><p>Once you have the sources, you can build them using the <a class="externalLink" href="http://maven.apache.org/">Maven 2</a> build system. Executing the following command in the base directory will build the sources and install the resulting artifacts in your local Maven repository.</p><div><pre>mvn install</pre></div><p>See the Maven documentation for more information about the available build options.</p><p>Note that you need Java 5 or higher to build Tika.</p></div><div class="section"><h2>Build artifacts<a name="Build_artifacts"></a></h2><p>The Tika 1.3 build cons
 ists of a number of components and produces the following main binaries:</p><dl><dt>tika-core/target/tika-core-1.3.jar</dt><dd> Tika core library. Contains the core interfaces and classes of Tika, but none of the parser implementations. Depends only on Java 5.</dd><dt>tika-parsers/target/tika-parsers-1.3.jar</dt><dd> Tika parsers. Collection of classes that implement the Tika Parser interface based on various external parser libraries.</dd><dt>tika-app/target/tika-app-1.3.jar</dt><dd> Tika application. Combines the above libraries and all the external parser libraries into a single runnable jar with a GUI and a command line interface.</dd><dt>tika-bundle/target/tika-bundle-1.3.jar</dt><dd> Tika bundle. An OSGi bundle that combines tika-parsers with non-OSGified parser libraries to make them easy to deploy in an OSGi environment.</dd></dl></div><div class="section"><h2>Using Tika as a Maven dependency<a name="Using_Tika_as_a_Maven_dependency"></a></h2><p>The core library, tika-core, 
 contains the key interfaces and classes of Tika and can be used by itself if you don't need the full set of parsers from the tika-parsers component. The tika-core dependency looks like this:</p><div><pre>  &lt;dependency&gt;
+        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Getting Started with Apache Tika<a name="Getting_Started_with_Apache_Tika"></a></h2><p>This document 
 describes how to build Apache Tika from sources and how to start using Tika in an application.</p></div><div class="section"><h2>Getting and building the sources<a name="Getting_and_building_the_sources"></a></h2><p>To build Tika from sources you first need to either <a href="../download.html">download</a> a source release or <a href="../source-repository.html">checkout</a> the latest sources from version control.</p><p>Once you have the sources, you can build them using the <a class="externalLink" href="http://maven.apache.org/">Maven 2</a> build system. Executing the following command in the base directory will build the sources and install the resulting artifacts in your local Maven repository.</p><div><pre>mvn install</pre></div><p>See the Maven documentation for more information about the available build options.</p><p>Note that you need Java 5 or higher to build Tika.</p></div><div class="section"><h2>Build artifacts<a name="Build_artifacts"></a></h2><p>The Tika build consists
  of a number of components and produces the following main binaries:</p><dl><dt>tika-core/target/tika-core-*.jar</dt><dd> Tika core library. Contains the core interfaces and classes of Tika, but none of the parser implementations. Depends only on Java 5.</dd><dt>tika-parsers/target/tika-parsers-*.jar</dt><dd> Tika parsers. Collection of classes that implement the Tika Parser interface based on various external parser libraries.</dd><dt>tika-app/target/tika-app-*.jar</dt><dd> Tika application. Combines the above components and all the external parser libraries into a single runnable jar with a GUI and a command line interface.</dd><dt>tika-bundle/target/tika-bundle-*.jar</dt><dd> Tika bundle. An OSGi bundle that combines tika-parsers with non-OSGified parser libraries to make them easy to deploy in an OSGi environment.</dd></dl></div><div class="section"><h2>Using Tika as a Maven dependency<a name="Using_Tika_as_a_Maven_dependency"></a></h2><p>The core library, tika-core, contains th
 e key interfaces and classes of Tika and can be used by itself if you don't need the full set of parsers from the tika-parsers component. The tika-core dependency looks like this:</p><div><pre>  &lt;dependency&gt;
     &lt;groupId&gt;org.apache.tika&lt;/groupId&gt;
     &lt;artifactId&gt;tika-core&lt;/artifactId&gt;
-    &lt;version&gt;1.3&lt;/version&gt;
+    &lt;version&gt;...&lt;/version&gt;
   &lt;/dependency&gt;</pre></div><p>If you want to use Tika to parse documents (instead of simply detecting document types, etc.), you'll want to depend on tika-parsers instead: </p><div><pre>  &lt;dependency&gt;
     &lt;groupId&gt;org.apache.tika&lt;/groupId&gt;
     &lt;artifactId&gt;tika-parsers&lt;/artifactId&gt;
-    &lt;version&gt;1.3&lt;/version&gt;
-  &lt;/dependency&gt;</pre></div><p>Note that adding this dependency will introduce a number of transitive dependencies to your project, including one on tika-core. You need to make sure that these dependencies won't conflict with your existing project dependencies. The listing below shows all the compile-scope dependencies of tika-parsers in the Tika 1.3 release.</p><div><pre>+- org.apache.tika:tika-core:jar:1.4-SNAPSHOT:compile
-+- org.gagravarr:vorbis-java-tika:jar:0.1:compile
-|  \- org.gagravarr:vorbis-java-core:jar:tests:0.1:runtime
-+- org.apache.felix:org.apache.felix.scr.annotations:jar:1.6.0:provided
-+- edu.ucar:netcdf:jar:4.2-min:compile
-|  \- org.slf4j:slf4j-api:jar:1.5.6:compile
-+- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
-+- org.apache.james:apache-mime4j-dom:jar:0.7.2:compile
-+- org.apache.commons:commons-compress:jar:1.4.1:compile
-|  \- org.tukaani:xz:jar:1.0:compile
-+- commons-codec:commons-codec:jar:1.5:compile
-+- org.apache.pdfbox:pdfbox:jar:1.7.1:compile
-|  +- org.apache.pdfbox:fontbox:jar:1.7.1:compile
-|  +- org.apache.pdfbox:jempbox:jar:1.7.1:compile
-|  \- commons-logging:commons-logging:jar:1.1.1:compile
-+- org.bouncycastle:bcmail-jdk15:jar:1.45:compile
-+- org.bouncycastle:bcprov-jdk15:jar:1.45:compile
-+- org.apache.poi:poi:jar:3.8:compile
-+- org.apache.poi:poi-scratchpad:jar:3.8:compile
-+- org.apache.poi:poi-ooxml:jar:3.8:compile
-|  +- org.apache.poi:poi-ooxml-schemas:jar:3.8:compile
-|  |  \- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
-|  \- dom4j:dom4j:jar:1.6.1:compile
-+- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
-+- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:compile
-+- asm:asm:jar:3.1:compile
-+- com.googlecode.mp4parser:isoparser:jar:1.0-RC-1:compile
-|  \- org.aspectj:aspectjrt:jar:1.6.11:compile
-+- com.drewnoakes:metadata-extractor:jar:2.6.2:compile
-|  +- com.adobe.xmp:xmpcore:jar:5.1.2:compile
-|  \- xerces:xercesImpl:jar:2.8.1:compile
-|     \- xml-apis:xml-apis:jar:1.3.03:compile
-+- de.l3s.boilerpipe:boilerpipe:jar:1.1.0:compile
-+- rome:rome:jar:0.9:compile
-|  \- jdom:jdom:jar:1.0:compile
-+- org.gagravarr:vorbis-java-core:jar:0.1:compile
-+- com.googlecode.juniversalchardet:juniversalchardet:jar:1.0.3:compile</pre></div></div><div class="section"><h2>Using Tika in an Ant project<a name="Using_Tika_in_an_Ant_project"></a></h2><p>Unless you use a dependency manager tool like <a class="externalLink" href="http://ant.apache.org/ivy/">Apache Ivy</a>, the easiest way to use Tika is to include either the tika-core or the tika-app jar in your classpath, depending on whether you want just the core functionality or also all the parser implementations.</p><div><pre>&lt;classpath&gt;
+    &lt;version&gt;...&lt;/version&gt;
+  &lt;/dependency&gt;</pre></div><p>Note that adding this dependency will introduce a number of transitive dependencies to your project, including one on tika-core. You need to make sure that these dependencies won't conflict with your existing project dependencies. You can use the following command in the tika-parsers directory to get a full listing of all the dependencies.</p><div><pre>$ mvn dependency:tree | grep :compile</pre></div></div><div class="section"><h2>Using Tika in an Ant project<a name="Using_Tika_in_an_Ant_project"></a></h2><p>Unless you use a dependency manager tool like <a class="externalLink" href="http://ant.apache.org/ivy/">Apache Ivy</a>, the easiest way to use Tika is to include either the tika-core or the tika-app jar in your classpath, depending on whether you want just the core functionality or also all the parser implementations.</p><div><pre>&lt;classpath&gt;
   ... &lt;!-- your other classpath entries --&gt;
 
   &lt;!-- either: --&gt;
@@ -136,7 +100,9 @@
   &lt;!-- or: --&gt;
   &lt;pathelement location=&quot;path/to/tika-app-${tika.version}.jar&quot;/&gt;
 
-&lt;/classpath&gt;</pre></div></div><div class="section"><h2>Using Tika as a command line utility<a name="Using_Tika_as_a_command_line_utility"></a></h2><p>The Tika application jar (tika-app-1.3.jar) can be used as a command line utility for extracting text content and metadata from all sorts of files. This runnable jar contains all the dependencies it needs, so you don't need to worry about classpath settings to run it.</p><p>The usage instructions are shown below.</p><div><pre>Options:
+&lt;/classpath&gt;</pre></div></div><div class="section"><h2>Using Tika as a command line utility<a name="Using_Tika_as_a_command_line_utility"></a></h2><p>The Tika application jar (tika-app-*.jar) can be used as a command line utility for extracting text content and metadata from all sorts of files. This runnable jar contains all the dependencies it needs, so you don't need to worry about classpath settings to run it.</p><p>The usage instructions are shown below.</p><div><pre>usage: java -jar tika-app.jar [option...] [file|port...]
+
+Options:
     -?  or --help          Print this usage message
     -v  or --verbose       Print debug level messages
     -V  or --version       Print the Apache Tika version number
@@ -200,7 +166,7 @@ Description:
     Apache Tika server. The server will listen to the
     ports you specify as one or more arguments.</pre></div><p>You can also use the jar as a component in a Unix pipeline or as an external tool in many scripting languages.</p><div><pre># Check if an Internet resource contains a specific keyword
 curl http://.../document.doc \
-  | java -jar tika-app-1.3.jar --text \
+  | java -jar tika-app.jar --text \
   | grep -q keyword</pre></div></div>
       </div>
       <div id="sidebar">
@@ -232,6 +198,44 @@ curl http://.../document.doc \
             <ul>
               
           
+                    
+                  
+                  
+                  
+                  
+                  
+              
+        <li class="expanded">
+                    <a href="../1.4/index.html">Apache Tika 1.4</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../1.4/gettingstarted.html">Getting Started</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/formats.html">Supported Formats</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser.html">Parser API</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser_guide.html">Parser 5min Quick Start Guide</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/detection.html">Content and Language Detection</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/api/">API Documentation</a>
+          </li>
+              </ul>
+        </li>
+              
+                
                           
                   
                   
@@ -304,18 +308,6 @@ curl http://.../document.doc \
         <li class="collapsed">
                     <a href="../1.0/index.html">Apache Tika 1.0</a>
                 </li>
-              
-                
-                    
-                  
-                  
-                  
-                  
-                  
-              
-        <li class="collapsed">
-                    <a href="../0.10/index.html">Apache Tika 0.10</a>
-                </li>
           </ul>
               <h5>The Apache Software Foundation</h5>
             <ul>

Modified: tika/site/publish/1.3/index.html
URL: http://svn.apache.org/viewvc/tika/site/publish/1.3/index.html?rev=1499614&r1=1499613&r2=1499614&view=diff
==============================================================================
--- tika/site/publish/1.3/index.html (original)
+++ tika/site/publish/1.3/index.html Thu Jul  4 01:40:44 2013
@@ -84,7 +84,7 @@
                 width="387" height="100"/></a>
       </div>
       <div id="content">
-        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Apache Tika 1.3<a name="Apache_Tika_1.3"></a></h2><p>The most notable changes in Tika 1.3 over the pr
 evious release are:</p><ul><li>Mimetype definitions added for more common programming languages, including common extensions, but not magic patterns. (TIKA-1055)</li><li>MS Word: When a Word (.doc) document contains embedded files or links to external documents, Tika now places a <i>div class=&quot;embedded&quot; id=&quot;_XXX&quot;/</i> placeholder into the XHTML so you can see where in the main text the embedded document occurred (TIKA-956, TIKA-1019). Embedded Wordpad/RTF documents are now recognized (TIKA-982).</li><li>PDF: Text from pop-up annotations is now extracted (TIKA-981). Text from bookmarks is now extracted (TIKA-1035).</li><li>PKCS7: Detached signatures no longer through NullPointerException (TIKA-986).</li><li>iWork: The chart name for charts embedded in numbers documents is now extracted (TIKA-918).</li><li>CLI: TikaCLI -m now handles multi-valued metadata keys correctly (previously it only printed the first value). (TIKA-920)</li><li>MS Word (.docx): When a Word (.
 docx) document contains embedded files, Tika now places a <i>div class=&quot;embedded&quot; id=&quot;XXX&quot;/</i> into the XHTML so you can see where in the main text the embedded document occurred. The id (rId) is included in the Metadata of each embedded document as the new Metadata.EMBEDDED_RELATIONSHIP_ID key, and TikaCLI prepends the rId (if present) onto the filename it extracts (TIKA-989). Fixed NullPointerException when style is null (TIKA-1006). Text inside text boxes is now extracted (TIKA-1005).</li><li>RTF: Page, word, character count and creation date metadata are now extracted for RTF documents (TIKA-999).</li><li>MS PowerPoint (.pptx): When a PowerPoint (.pptx) document contains embedded files, Tika now places a <i>div class=&quot;embedded&quot; id=&quot;XXX&quot;/</i> into the XHTML so you can see where in the main text the embedded document occurred. The id (rId) is included in the Metadata of each embedded document as the new Metadata.EMBEDDED_RELATIONSHIP_ID key
 , and TikaCLI prepends the rId (if present) onto the filename it extracts (TIKA-997, TIKA-1032).</li><li>MS PowerPoint (.ppt): When a PowerPoint (.ppt) document contains embedded files, Tika now places a <i>div class=&quot;embedded&quot; id=&quot;XXX&quot;/</i> into the XHTML so you can see where in the main text the embedded document occurred (TIKA-1025). Text from the master slide is now extracted (TIKA-712).</li><li>MHTML: fixed Null charset name exception when a mime part has an unrecognized charset (TIKA-1011).</li><li>MP3: if an ID3 tag was encoded in UTF-16 with only the BOM then on certain JVMs this would incorrectly extract the BOM as the tag's value (TIKA-1024).</li><li>ZIP: placeholders (<i>div class=&quot;embedded&quot; id=&quot;&lt;entry name</i>&quot;/&gt;) are now left in the XHTML so you can see where each archive member appears (TIKA-1036). TikaCLI would hit FileNotFoundException when extracting files that were under sub-directories from a ZIP archive, because it fa
 iled to create the parent directories first (TIKA-1031).</li><li>XML: a space character is now added before each element (TIKA-1048)</li></ul><p>The following people have contributed to Tika 1.3 by submitting or commenting on the issues resolved in this release:</p><ul><li>Andrew Jackson</li><li>Arthur Meneau</li><li>Benoit MAGGI</li><li>Bernhard Berger</li><li>Chris A. Mattmann</li><li>Christoph Brill</li><li>Daniel Bonniot de Ruisselet</li><li>Dave Meikle</li><li>David A. Patterson</li><li>David Morana</li><li>Emmanuel Hugonnet</li><li>Erik Peterson</li><li>Gary Karasiuk</li><li>John Conwell</li><li>Jonas Wilhelmsson</li><li>Jukka Zitting</li><li>J&#xf6;rg Ehrlich</li><li>Karel Zacek</li><li>Ken Krugler</li><li>Konstantin Gribov</li><li>Maciej Lizewski</li><li>Marco Quaranta</li><li>Markus Jelsma</li><li>Michael McCandless</li><li>Miguel Moquillon</li><li>Nick Burch</li><li>Oliver Heger</li><li>Paolo Nacci</li><li>Ray Gauss II</li><li>Richard Eccles</li><li>Ryan McKinley</li><li>S
 hinichiro Abe</li><li>Sture Svensson</li></ul><p>See <a class="externalLink" href="http://s.apache.org/uEL">http://s.apache.org/uEL</a> for more details on these contributions.</p></div>
+        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>Apache Tika 1.3<a name="Apache_Tika_1.3"></a></h2><p>The most notable changes in Tika 1.3 over the pr
 evious release are:</p><ul><li>Mimetype definitions added for more common programming languages, including common extensions, but not magic patterns. (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1055">TIKA-1055</a>)</li><li>MS Word: When a Word (.doc) document contains embedded files or links to external documents, Tika now places a div class=&quot;embedded&quot; id=&quot;_XXX&quot;/ placeholder into the XHTML so you can see where in the main text the embedded document occurred (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-956">TIKA-956</a>, <a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1019">TIKA-1019</a>). </li><li>Embedded Wordpad/RTF documents are now recognized (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-982">TIKA-982</a>).</li><li>PDF: Text from pop-up annotations is now extracted (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-981">TIKA-981</a
 >). Text from bookmarks is now extracted (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1035">TIKA-1035</a>).</li><li>PKCS7: Detached signatures no longer through NullPointerException (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-986">TIKA-986</a>).</li><li>iWork: The chart name for charts embedded in numbers documents is now extracted (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-918">TIKA-918</a>).</li><li>CLI: TikaCLI -m now handles multi-valued metadata keys correctly (previously it only printed the first value). (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-920">TIKA-920</a>)</li><li>MS Word (.docx): When a Word (.docx) document contains embedded files, Tika now places a div class=&quot;embedded&quot; id=&quot;XXX&quot;/ into the XHTML so you can see where in the main text the embedded document occurred. The id (rId) is included in the Metadata of each embedded document as
  the new Metadata.EMBEDDED_RELATIONSHIP_ID key, and TikaCLI prepends the rId (if present) onto the filename it extracts (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-989">TIKA-989</a>). Fixed NullPointerException when style is null (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1006">TIKA-1006</a>). Text inside text boxes is now extracted (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1005">TIKA-1005</a>).</li><li>RTF: Page, word, character count and creation date metadata are now extracted for RTF documents (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-999">TIKA-999</a>). MS PowerPoint (.pptx): When a PowerPoint (.pptx) document contains embedded files, Tika now places a div class=&quot;embedded&quot; id=&quot;XXX&quot;/ into the XHTML so you can see where in the main text the embedded document occurred. The id (rId) is included in the Metadata of each embedded document as the 
 new Metadata.EMBEDDED_RELATIONSHIP_ID key, and TikaCLI prepends the rId (if present) onto the filename it extracts (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-997">TIKA-997</a>, <a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1032">TIKA-1032</a>). MS PowerPoint (.ppt): When a PowerPoint (.ppt) document contains embedded files, Tika now places a div class=&quot;embedded&quot; id=&quot;XXX&quot;/ into the XHTML so you can see where in the main text the embedded document occurred (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA--1025">TIKA-1025</a>). Text from the master slide is now extracted (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-712">TIKA-712</a>).</li><li>MHTML: fixed Null charset name exception when a mime part has an unrecognized charset (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1011">TIKA-1011</a>).</li><li>MP3: if an ID3 tag was encoded i
 n UTF-16 with only the BOM then on certain JVMs this would incorrectly extract the BOM as the tag's value (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1024">TIKA-1024</a>).</li><li>ZIP: placeholders (div class=&quot;embedded&quot; id=&quot;<i>entry name&quot;/</i>) are now left in the XHTML so you can see where each archive member appears (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1036">TIKA-1036</a>). TikaCLI would hit FileNotFoundException when extracting files that were under sub-directories from a ZIP archive, because it failed to create the parent directories first (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1031">TIKA-1031</a>).</li><li>XML: a space character is now added before each element (<a class="externalLink" href="http://issues.apache.org/jira/browse/TIKA-1048">TIKA-1048</a>)</li></ul><p>The following people have contributed to Tika 1.3 by submitting or commenting on the issues resol
 ved in this release:</p><ul><li>Andrew Jackson</li><li>Arthur Meneau</li><li>Benoit MAGGI</li><li>Bernhard Berger</li><li>Chris A. Mattmann</li><li>Christoph Brill</li><li>Daniel Bonniot de Ruisselet</li><li>David A. Patterson</li><li>David Morana</li><li>Emmanuel Hugonnet</li><li>Erik Peterson</li><li>Gary Karasiuk</li><li>John Conwell</li><li>Jonas Wilhelmsson</li><li>Jukka Zitting</li><li>Karel Zacek</li><li>Ken Krugler</li><li>Maciej Lizewski</li><li>Marco Quaranta</li><li>Markus Jelsma</li><li>Michael McCandless</li><li>Nick Burch</li><li>Oliver Heger</li><li>Paolo Nacci</li><li>Qian Diao</li><li>Ray Gauss II</li><li>Richard Eccles</li><li>Ryan McKinley</li><li>Shinichiro Abe</li><li>Sture Svensson</li></ul><p>See <a class="externalLink" href="http://s.apache.org/lYv">http://s.apache.org/lYv</a> for more details on these contributions.</p></div>
       </div>
       <div id="sidebar">
         <div id="navigation">
@@ -122,6 +122,44 @@
                   
                   
               
+        <li class="expanded">
+                    <a href="../1.4/index.html">Apache Tika 1.4</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../1.4/gettingstarted.html">Getting Started</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/formats.html">Supported Formats</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser.html">Parser API</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser_guide.html">Parser 5min Quick Start Guide</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/detection.html">Content and Language Detection</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/api/">API Documentation</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+                    
+                  
+                  
+                  
+                  
+                  
+              
             <li class="expanded">
               <strong>Apache Tika 1.3</strong>
                 <ul>
@@ -187,18 +225,6 @@
         <li class="collapsed">
                     <a href="../1.0/index.html">Apache Tika 1.0</a>
                 </li>
-              
-                
-                    
-                  
-                  
-                  
-                  
-                  
-              
-        <li class="collapsed">
-                    <a href="../0.10/index.html">Apache Tika 0.10</a>
-                </li>
           </ul>
               <h5>The Apache Software Foundation</h5>
             <ul>

Modified: tika/site/publish/1.3/parser.html
URL: http://svn.apache.org/viewvc/tika/site/publish/1.3/parser.html?rev=1499614&r1=1499613&r2=1499614&view=diff
==============================================================================
--- tika/site/publish/1.3/parser.html (original)
+++ tika/site/publish/1.3/parser.html Thu Jul  4 01:40:44 2013
@@ -84,9 +84,9 @@
                 width="387" height="100"/></a>
       </div>
       <div id="content">
-        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>The Parser interface<a name="The_Parser_interface"></a></h2><p>The <a href="./api/org/apache/tika/par
 ser/Parser.html">org.apache.tika.parser.Parser</a> interface is the key concept of Apache Tika. It hides the complexity of different file formats and parsing libraries while providing a simple and powerful mechanism for client applications to extract structured text content and metadata from all sorts of documents. All this is achieved with a single method:</p><div><pre>void parse(
+        <!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements.  See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You under the Apache License, Version 2.0 --><!-- (the "License"); you may not use this file except in compliance with --><!-- the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, software --><!-- distributed under the License is distributed on an "AS IS" BASIS, --><!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --><!-- See the License for the specific language governing permissions and --><!-- limitations under the License. --><div class="section"><h2>The Parser interface<a name="The_Parser_interface"></a></h2><p>The <a href="#apiorgapachetikaparserPa
 rser.html">org.apache.tika.parser.Parser</a> interface is the key concept of Apache Tika. It hides the complexity of different file formats and parsing libraries while providing a simple and powerful mechanism for client applications to extract structured text content and metadata from all sorts of documents. All this is achieved with a single method:</p><div><pre>void parse(
     InputStream stream, ContentHandler handler, Metadata metadata,
-    ParseContext context) throws IOException, SAXException, TikaException;</pre></div><p>The <tt>parse</tt> method takes the document to be parsed and related metadata as input and outputs the results as XHTML SAX events and extra metadata. The parse context argument is used to specify context information (like the current local) that is not related to any individual document. The main criteria that lead to this design were:</p><dl><dt>Streamed parsing</dt><dd>The interface should require neither the client application nor the parser implementation to keep the full document content in memory or spooled to disk. This allows even huge documents to be parsed without excessive resource requirements.</dd><dt>Structured content</dt><dd>A parser implementation should be able to include structural information (headings, links, etc.) in the extracted content. A client application can use this information for example to better judge the relevance of different parts of the parsed document.</dd
 ><dt>Input metadata</dt><dd>A client application should be able to include metadata like the file name or declared content type with the document to be parsed. The parser implementation can use this information to better guide the parsing process.</dd><dt>Output metadata</dt><dd>A parser implementation should be able to return document metadata in addition to document content. Many document formats contain metadata like the name of the author that may be useful to client applications.</dd><dt>Context sensitivity</dt><dd>While the default settings and behaviour of Tika parsers should work well for most use cases, there are still situations where more fine-grained control over the parsing process is desirable. It should be easy to inject such context-specific information to the parsing process without breaking the layers of abstraction.</dd></dl><p>These criteria are reflected in the arguments of the <tt>parse</tt> method.</p><div class="section"><h3>Document input stream<a name="Docu
 ment_input_stream"></a></h3><p>The first argument is an <a class="externalLink" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/InputStream.html">InputStream</a> for reading the document to be parsed.</p><p>If this document stream can not be read, then parsing stops and the thrown <a class="externalLink" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html">IOException</a> is passed up to the client application. If the stream can be read but not parsed (for example if the document is corrupted), then the parser throws a <a href="./api/org/apache/tika/exception/TikaException.html">TikaException</a>.</p><p>The parser implementation will consume this stream but <i>will not close it</i>. Closing the stream is the responsibility of the client application that opened it in the first place. The recommended pattern for using streams with the <tt>parse</tt> method is:</p><div><pre>InputStream stream = ...;      // open the stream
+    ParseContext context) throws IOException, SAXException, TikaException;</pre></div><p>The <tt>parse</tt> method takes the document to be parsed and related metadata as input and outputs the results as XHTML SAX events and extra metadata. The parse context argument is used to specify context information (like the current local) that is not related to any individual document. The main criteria that lead to this design were:</p><dl><dt>Streamed parsing</dt><dd>The interface should require neither the client application nor the parser implementation to keep the full document content in memory or spooled to disk. This allows even huge documents to be parsed without excessive resource requirements.</dd><dt>Structured content</dt><dd>A parser implementation should be able to include structural information (headings, links, etc.) in the extracted content. A client application can use this information for example to better judge the relevance of different parts of the parsed document.</dd
 ><dt>Input metadata</dt><dd>A client application should be able to include metadata like the file name or declared content type with the document to be parsed. The parser implementation can use this information to better guide the parsing process.</dd><dt>Output metadata</dt><dd>A parser implementation should be able to return document metadata in addition to document content. Many document formats contain metadata like the name of the author that may be useful to client applications.</dd><dt>Context sensitivity</dt><dd>While the default settings and behaviour of Tika parsers should work well for most use cases, there are still situations where more fine-grained control over the parsing process is desirable. It should be easy to inject such context-specific information to the parsing process without breaking the layers of abstraction.</dd></dl><p>These criteria are reflected in the arguments of the <tt>parse</tt> method.</p><div class="section"><h3>Document input stream<a name="Docu
 ment_input_stream"></a></h3><p>The first argument is an <a class="externalLink" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/InputStream.html">InputStream</a> for reading the document to be parsed.</p><p>If this document stream can not be read, then parsing stops and the thrown <a class="externalLink" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html">IOException</a> is passed up to the client application. If the stream can be read but not parsed (for example if the document is corrupted), then the parser throws a <a href="#apiorgapachetikaexceptionTikaException.html">TikaException</a>.</p><p>The parser implementation will consume this stream but <i>will not close it</i>. Closing the stream is the responsibility of the client application that opened it in the first place. The recommended pattern for using streams with the <tt>parse</tt> method is:</p><div><pre>InputStream stream = ...;      // open the stream
 try {
     parser.parse(stream, ...); // parse the stream
 } finally {
@@ -98,14 +98,14 @@ try {
   &lt;body&gt;
     ...
   &lt;/body&gt;
-&lt;/html&gt;</pre></div><p>Parser implementations typically use the <a href="./api/org/apache/tika/sax/XHTMLContentHandler.html">XHTMLContentHandler</a> utility class to generate the XHTML output.</p><p>Dealing with the raw SAX events can be a bit complex, so Apache Tika comes with a number of utility classes that can be used to process and convert the event stream to other representations.</p><p>For example, the <a href="./api/org/apache/tika/sax/BodyContentHandler.html">BodyContentHandler</a> class can be used to extract just the body part of the XHTML output and feed it either as SAX events to another content handler or as characters to an output stream, a writer, or simply a string. The following code snippet parses a document from the standard input stream and outputs the extracted text content to standard output:</p><div><pre>ContentHandler handler = new BodyContentHandler(System.out);
-parser.parse(System.in, handler, ...);</pre></div><p>Another useful class is <a href="./api/org/apache/tika/parser/ParsingReader.html">ParsingReader</a> that uses a background thread to parse the document and returns the extracted text content as a character stream:</p><div><pre>InputStream stream = ...; // the document to be parsed
+&lt;/html&gt;</pre></div><p>Parser implementations typically use the <a href="#apidocsorgapachetikasaxXHTMLContentHandler.html">XHTMLContentHandler</a> utility class to generate the XHTML output.</p><p>Dealing with the raw SAX events can be a bit complex, so Apache Tika comes with a number of utility classes that can be used to process and convert the event stream to other representations.</p><p>For example, the <a href="#apiorgapachetikasaxBodyContentHandler.html">BodyContentHandler</a> class can be used to extract just the body part of the XHTML output and feed it either as SAX events to another content handler or as characters to an output stream, a writer, or simply a string. The following code snippet parses a document from the standard input stream and outputs the extracted text content to standard output:</p><div><pre>ContentHandler handler = new BodyContentHandler(System.out);
+parser.parse(System.in, handler, ...);</pre></div><p>Another useful class is <a href="#apiorgapachetikaparserParsingReader.html">ParsingReader</a> that uses a background thread to parse the document and returns the extracted text content as a character stream:</p><div><pre>InputStream stream = ...; // the document to be parsed
 Reader reader = new ParsingReader(parser, stream, ...);
 try {
     ...;                  // read the document text using the reader
 } finally {
     reader.close();       // the document stream is closed automatically
-}</pre></div></div><div class="section"><h3>Document metadata<a name="Document_metadata"></a></h3><p>The third argument to the <tt>parse</tt> method is used to pass document metadata both in and out of the parser. Document metadata is expressed as an <a href="./api/org/apache/tika/metadata/Metadata.html">Metadata</a> object.</p><p>The following are some of the more interesting metadata properties:</p><dl><dt>Metadata.RESOURCE_NAME_KEY</dt><dd>The name of the file or resource that contains the document.<p>A client application can set this property to allow the parser to use file name heuristics to determine the format of the document.</p><p>The parser implementation may set this property if the file format contains the canonical name of the file (for example the Gzip format has a slot for the file name).</p></dd><dt>Metadata.CONTENT_TYPE</dt><dd>The declared content type of the document.<p>A client application can set this property based on for example a HTTP Content-Type header. The
  declared content type may help the parser to correctly interpret the document.</p><p>The parser implementation sets this property to the content type according to which the document was parsed.</p></dd><dt>Metadata.TITLE</dt><dd>The title of the document.<p>The parser implementation sets this property if the document format contains an explicit title field.</p></dd><dt>Metadata.AUTHOR</dt><dd>The name of the author of the document.<p>The parser implementation sets this property if the document format contains an explicit author field.</p></dd></dl><p>Note that metadata handling is still being discussed by the Tika development team, and it is likely that there will be some (backwards incompatible) changes in metadata handling before Tika 1.0.</p></div><div class="section"><h3>Parse context<a name="Parse_context"></a></h3><p>The final argument to the <tt>parse</tt> method is used to inject context-specific information to the parsing process. This is useful for example when dealing wi
 th locale-specific date and number formats in Microsoft Excel spreadsheets. Another important use of the parse context is passing in the delegate parser instance to be used by two-phase parsers like the <a href="./api/org/apache/parser/pkg/PackageParser.html">PackageParser</a> subclasses. Some parser classes allow customization of the parsing process through strategy objects in the parse context.</p></div><div class="section"><h3>Parser implementations<a name="Parser_implementations"></a></h3><p>Apache Tika comes with a number of parser classes for parsing <a href="./formats.html">various document formats</a>. You can also extend Tika with your own parsers, and of course any contributions to Tika are warmly welcome.</p><p>The goal of Tika is to reuse existing parser libraries like <a class="externalLink" href="http://www.pdfbox.org/">PDFBox</a> or <a class="externalLink" href="http://poi.apache.org/">Apache POI</a> as much as possible, and so most of the parser classes in Tika are a
 dapters to such external libraries.</p><p>Tika also contains some general purpose parser implementations that are not targeted at any specific document formats. The most notable of these is the <a href="./api/org/apache/tika/parser/AutoDetectParser.html">AutoDetectParser</a> class that encapsulates all Tika functionality into a single parser that can handle any types of documents. This parser will automatically determine the type of the incoming document based on various heuristics and will then parse the document accordingly.</p></div></div>
+}</pre></div></div><div class="section"><h3>Document metadata<a name="Document_metadata"></a></h3><p>The third argument to the <tt>parse</tt> method is used to pass document metadata both in and out of the parser. Document metadata is expressed as an <a href="#apiorgapachetikametadataMetadata.html">Metadata</a> object.</p><p>The following are some of the more interesting metadata properties:</p><dl><dt>Metadata.RESOURCE_NAME_KEY</dt><dd>The name of the file or resource that contains the document.<p>A client application can set this property to allow the parser to use file name heuristics to determine the format of the document.</p><p>The parser implementation may set this property if the file format contains the canonical name of the file (for example the Gzip format has a slot for the file name).</p></dd><dt>Metadata.CONTENT_TYPE</dt><dd>The declared content type of the document.<p>A client application can set this property based on for example a HTTP Content-Type header. The decla
 red content type may help the parser to correctly interpret the document.</p><p>The parser implementation sets this property to the content type according to which the document was parsed.</p></dd><dt>Metadata.TITLE</dt><dd>The title of the document.<p>The parser implementation sets this property if the document format contains an explicit title field.</p></dd><dt>Metadata.AUTHOR</dt><dd>The name of the author of the document.<p>The parser implementation sets this property if the document format contains an explicit author field.</p></dd></dl><p>Note that metadata handling is still being discussed by the Tika development team, and it is likely that there will be some (backwards incompatible) changes in metadata handling before Tika 1.0.</p></div><div class="section"><h3>Parse context<a name="Parse_context"></a></h3><p>The final argument to the <tt>parse</tt> method is used to inject context-specific information to the parsing process. This is useful for example when dealing with loc
 ale-specific date and number formats in Microsoft Excel spreadsheets. Another important use of the parse context is passing in the delegate parser instance to be used by two-phase parsers like the <a href="#apiorgapacheparserpkgPackageParser.html">PackageParser</a> subclasses. Some parser classes allow customization of the parsing process through strategy objects in the parse context.</p></div><div class="section"><h3>Parser implementations<a name="Parser_implementations"></a></h3><p>Apache Tika comes with a number of parser classes for parsing <a href="#formats.html">various document formats</a>. You can also extend Tika with your own parsers, and of course any contributions to Tika are warmly welcome.</p><p>The goal of Tika is to reuse existing parser libraries like <a class="externalLink" href="http://www.pdfbox.org/">PDFBox</a> or <a class="externalLink" href="http://poi.apache.org/">Apache POI</a> as much as possible, and so most of the parser classes in Tika are adapters to su
 ch external libraries.</p><p>Tika also contains some general purpose parser implementations that are not targeted at any specific document formats. The most notable of these is the <a href="#apidocsorgapachetikaparserAutoDetectParser.html">AutoDetectParser</a> class that encapsulates all Tika functionality into a single parser that can handle any types of documents. This parser will automatically determine the type of the incoming document based on various heuristics and will then parse the document accordingly.</p></div></div>
       </div>
       <div id="sidebar">
         <div id="navigation">
@@ -138,6 +138,44 @@ try {
           
                     
                   
+                  
+                  
+                  
+                  
+              
+        <li class="expanded">
+                    <a href="../1.4/index.html">Apache Tika 1.4</a>
+                  <ul>
+                  
+    <li class="none">
+                    <a href="../1.4/gettingstarted.html">Getting Started</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/formats.html">Supported Formats</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser.html">Parser API</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/parser_guide.html">Parser 5min Quick Start Guide</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/detection.html">Content and Language Detection</a>
+          </li>
+                  
+    <li class="none">
+                    <a href="../1.4/api/">API Documentation</a>
+          </li>
+              </ul>
+        </li>
+              
+                
+                    
+                  
                         
                   
                   
@@ -208,18 +246,6 @@ try {
         <li class="collapsed">
                     <a href="../1.0/index.html">Apache Tika 1.0</a>
                 </li>
-              
-                
-                    
-                  
-                  
-                  
-                  
-                  
-              
-        <li class="collapsed">
-                    <a href="../0.10/index.html">Apache Tika 0.10</a>
-                </li>
           </ul>
               <h5>The Apache Software Foundation</h5>
             <ul>