org.apache.batik.apps.svgbrowser
Class XMLInputHandler

java.lang.Object
  extended by org.apache.batik.apps.svgbrowser.XMLInputHandler
All Implemented Interfaces:
SquiggleInputHandler

public class XMLInputHandler
extends Object
implements SquiggleInputHandler

A SquiggleInputHandler that handles XSLT transformable XML documents. This implementation of the SquiggleInputHandler class handles XML files by looking for the first <?xml-stylesheet ... ?> processing instruction referencing an xsl document. In case there is one, the transform is applied to the input XML file and the handler checks that the result is an SVG document with an SVG root.


Nested Class Summary
 class XMLInputHandler.DocumentURIResolver
          Implements the URIResolver interface so that relative urls used in transformations are resolved properly.
 
Field Summary
static String ERROR_NO_XML_STYLESHEET_PROCESSING_INSTRUCTION
           
static String ERROR_RESULT_GENERATED_EXCEPTION
           
static String ERROR_TRANSFORM_OUTPUT_NOT_SVG
           
static String ERROR_TRANSFORM_OUTPUT_WRONG_NS
           
static String ERROR_TRANSFORM_PRODUCED_NO_CONTENT
           
static String PSEUDO_ATTRIBUTE_HREF
           
static String PSEUDO_ATTRIBUTE_TYPE
           
static String XSL_PROCESSING_INSTRUCTION_TYPE
           
static String[] XVG_FILE_EXTENSIONS
           
static String[] XVG_MIME_TYPES
           
 
Constructor Summary
XMLInputHandler()
           
 
Method Summary
 boolean accept(File f)
          Returns true if the input file can be handled by the handler
 boolean accept(ParsedURL purl)
          Returns true if the input URI can be handled by the handler
 boolean accept(String path)
          Return true if the resource with the given path can be handled.
protected  void checkAndPatch(Document doc)
          This method checks that the generated content is SVG.
protected  String extractXSLProcessingInstruction(Document doc)
          Extracts the first XSL processing instruction from the input XML document.
 String getDescription()
          Returns a description for this handler
 String[] getHandledExtensions()
          Returns the list of file extensions handled by this handler
 String[] getHandledMimeTypes()
          Returns the list of mime types handled by this handler.
 void handle(ParsedURL purl, JSVGViewerFrame svgViewerFrame)
          Handles the given input for the given JSVGViewerFrame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XVG_MIME_TYPES

public static final String[] XVG_MIME_TYPES

XVG_FILE_EXTENSIONS

public static final String[] XVG_FILE_EXTENSIONS

ERROR_NO_XML_STYLESHEET_PROCESSING_INSTRUCTION

public static final String ERROR_NO_XML_STYLESHEET_PROCESSING_INSTRUCTION
See Also:
Constant Field Values

ERROR_TRANSFORM_OUTPUT_NOT_SVG

public static final String ERROR_TRANSFORM_OUTPUT_NOT_SVG
See Also:
Constant Field Values

ERROR_TRANSFORM_PRODUCED_NO_CONTENT

public static final String ERROR_TRANSFORM_PRODUCED_NO_CONTENT
See Also:
Constant Field Values

ERROR_TRANSFORM_OUTPUT_WRONG_NS

public static final String ERROR_TRANSFORM_OUTPUT_WRONG_NS
See Also:
Constant Field Values

ERROR_RESULT_GENERATED_EXCEPTION

public static final String ERROR_RESULT_GENERATED_EXCEPTION
See Also:
Constant Field Values

XSL_PROCESSING_INSTRUCTION_TYPE

public static final String XSL_PROCESSING_INSTRUCTION_TYPE
See Also:
Constant Field Values

PSEUDO_ATTRIBUTE_TYPE

public static final String PSEUDO_ATTRIBUTE_TYPE
See Also:
Constant Field Values

PSEUDO_ATTRIBUTE_HREF

public static final String PSEUDO_ATTRIBUTE_HREF
See Also:
Constant Field Values
Constructor Detail

XMLInputHandler

public XMLInputHandler()
Method Detail

getHandledMimeTypes

public String[] getHandledMimeTypes()
Returns the list of mime types handled by this handler.

Specified by:
getHandledMimeTypes in interface SquiggleInputHandler

getHandledExtensions

public String[] getHandledExtensions()
Returns the list of file extensions handled by this handler

Specified by:
getHandledExtensions in interface SquiggleInputHandler

getDescription

public String getDescription()
Returns a description for this handler

Specified by:
getDescription in interface SquiggleInputHandler

accept

public boolean accept(File f)
Returns true if the input file can be handled by the handler

Specified by:
accept in interface SquiggleInputHandler

accept

public boolean accept(ParsedURL purl)
Returns true if the input URI can be handled by the handler

Specified by:
accept in interface SquiggleInputHandler
Parameters:
purl - URL describing the candidate input

accept

public boolean accept(String path)
Return true if the resource with the given path can be handled.


handle

public void handle(ParsedURL purl,
                   JSVGViewerFrame svgViewerFrame)
            throws Exception
Handles the given input for the given JSVGViewerFrame

Specified by:
handle in interface SquiggleInputHandler
Throws:
Exception

checkAndPatch

protected void checkAndPatch(Document doc)
This method checks that the generated content is SVG. This method accounts for the fact that the root svg's first child is the result of the transform. It moves all its children under the root and sets the attributes


extractXSLProcessingInstruction

protected String extractXSLProcessingInstruction(Document doc)
Extracts the first XSL processing instruction from the input XML document.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.