The XIncProc Frameword provides an almost complete implementation of W3C XML Inclusions (XInclude) Version 1.1.

Althougt XInclude is supported into Jaxp implementation since Java 1.5, this support is very incomplete.

XIncProc brings a most powerfull support including xpointer, element, xpath, xmlns and fragid schemes.

How to use

API Usage

// Open a stream
final FileInputStream source = new FileInputStream(urlTest.getPath());
// Parse it
final ByteArrayOutputStream output = new ByteArrayOutputStream();
XIncProcEngine.parse(source, urlTest.toExternalForm(), output);
// That's all !
final String result = output.toString("UTF-8");

Just have a look to XInclude Specs for more samples and to XPointer specs for more details about xpointer resolution.

Line command

If you to use XInclude resolution in batch mode, you can call the engine through CLI interface :

java -jar xincproc.jar -if sample.xml -of output.xml

Maven Usage

Just add this in your pom.xml:

<dependency>
   <groupId>org.etourdot</groupId>
   <artifactId>xinclude</artifactId>
   <version>1.1.0</version>
</dependency>

Specifications and conformance

XIncProc conformance is tested against the official Xinclude Test Suite

See conformance here

Issue Tracking

You can create issues on Github here: https://github.com/etourdot/xincproc/issues

License

Copyright 2013 Emmanuel Tourdot

The XIncProc frameword is released under version 3.0 of the LGPL Licence