nu.xom.xinclude

Class XIncluder


public class XIncluder
extends java.lang.Object

Implements XInclude resolution as specified in XML Inclusions (XInclude) Version 1.0. Fallbacks are supported. The XPointer element() scheme and shorthand XPointers are also supported. The XPointer xpointer() scheme is not supported. The accept and accept-language attributes are supported.
Version:
1.1b3
Author:
Elliotte Rusty Harold

Field Summary

static String
XINCLUDE_NS
The namespace name of all XInclude elements.

Method Summary

static Document
resolve(Document in)
Returns a copy of the document in which all xinclude:include elements have been replaced by their referenced content.
static Document
resolve(Document in, Builder builder)
Returns a copy of the document in which all xinclude:include elements have been replaced by their referenced content as loaded by the builder.
static void
resolveInPlace(Document in)
Modifies a document by replacing all xinclude:include elements by their referenced content.
static void
resolveInPlace(Document in, Builder builder)
Modifies a document by replacing all xinclude:include elements with their referenced content as loaded by the builder.

Field Details

XINCLUDE_NS

public static final String XINCLUDE_NS
The namespace name of all XInclude elements.

Method Details

resolve

public static Document resolve(Document in)
            throws BadParseAttributeException,
                   InclusionLoopException,
                   IOException,
                   NoIncludeLocationException,
                   ParsingException,
                   UnsupportedEncodingException,
                   XIncludeException
Returns a copy of the document in which all xinclude:include elements have been replaced by their referenced content. The original Document object is not modified. Resolution is recursive; that is, include elements in the included documents are themselves resolved. The Document returned contains no include elements.
Parameters:
in - the document in which include elements should be resolved
Returns:
copy of the document in which all xinclude:include elements have been replaced by their referenced content
Throws:
BadParseAttributeException - if an include element has a parse attribute with any value other than text or parse
InclusionLoopException - if the document contains an XInclude element that attempts to include a document in which this element is directly or indirectly included.
NoIncludeLocationException - if an xinclude:include element does not have an href attribute
XIncludeException - if the document violates the syntax rules of XInclude

resolve

public static Document resolve(Document in,
                               Builder builder)
            throws BadParseAttributeException,
                   InclusionLoopException,
                   IOException,
                   NoIncludeLocationException,
                   ParsingException,
                   UnsupportedEncodingException,
                   XIncludeException
Returns a copy of the document in which all xinclude:include elements have been replaced by their referenced content as loaded by the builder. The original Document object is not modified. Resolution is recursive; that is, include elements in the included documents are themselves resolved. The document returned contains no include elements.
Parameters:
in - the document in which include elements should be resolved
builder - the builder used to build the nodes included from other documents
Returns:
copy of the document in which all xinclude:include elements have been replaced by their referenced content
Throws:
BadParseAttributeException - if an include element has a parse attribute with any value other than text or parse
InclusionLoopException - if the document contains an XInclude element that attempts to include a document in which this element is directly or indirectly included.
NoIncludeLocationException - if an xinclude:include element does not have an href attribute.
XIncludeException - if the document violates the syntax rules of XInclude

resolveInPlace

public static void resolveInPlace(Document in)
            throws BadParseAttributeException,
                   InclusionLoopException,
                   IOException,
                   NoIncludeLocationException,
                   ParsingException,
                   UnsupportedEncodingException,
                   XIncludeException
Modifies a document by replacing all xinclude:include elements by their referenced content. Resolution is recursive; that is, include elements in the included documents are themselves resolved. The resolved document contains no xinclude:include elements.

If the inclusion fails for any reason—XInclude syntax error, missing resource with no fallback, etc.—the document may be left in a partially resolved state.

Parameters:
in - the document in which include elements should be resolved
Throws:
BadParseAttributeException - if an include element has a parse attribute with any value other than text or parse
InclusionLoopException - if the document contains an XInclude element that attempts to include a document in which this element is directly or indirectly included
NoIncludeLocationException - if an xinclude:include element does not have an href attribute
XIncludeException - if the document violates the syntax rules of XInclude

resolveInPlace

public static void resolveInPlace(Document in,
                                  Builder builder)
            throws BadParseAttributeException,
                   InclusionLoopException,
                   IOException,
                   NoIncludeLocationException,
                   ParsingException,
                   UnsupportedEncodingException,
                   XIncludeException
Modifies a document by replacing all xinclude:include elements with their referenced content as loaded by the builder. Resolution is recursive; that is, include elements in the included documents are themselves resolved. The resolved document contains no xinclude:include elements.

If the inclusion fails for any reason — XInclude syntax error, missing resource with no fallback, etc. — the document may be left in a partially resolved state.

Parameters:
in - the document in which include elements should be resolved
builder - the builder used to build the nodes included from other documents
Throws:
BadParseAttributeException - if an include element has a parse attribute with any value other than text or parse
InclusionLoopException - if this element contains an XInclude element that attempts to include a document in which this element is directly or indirectly included
NoIncludeLocationException - if an xinclude:include element does not have an href attribute.
XIncludeException - if the document violates the syntax rules of XInclude

Copyright 2002-2005 Elliotte Rusty Harold
elharo@metalab.unc.edu