You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/09/09 13:20:06 UTC

[06/15] cut down the included source code from javolution (no more OSGi dependencies) and updated NOTICE and LICENSE files in source root

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLBinding.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLBinding.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLBinding.java
deleted file mode 100644
index a15c002..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLBinding.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import javolution.util.FastMap;
-import javolution.xml.stream.XMLStreamException;
-import javolution.xml.stream.XMLStreamReader;
-import javolution.xml.stream.XMLStreamWriter;
-
-/**
- * <p> This class represents the binding between Java classes and 
- *     their XML representation ({@link XMLFormat}).</p>
- *     
- * <p> Custom XML bindings can also be used to alias class names and 
- *     ensure that the XML representation is:<ul>
- *     <li> Impervious to obfuscation.</li>
- *     <li> Unaffected by any class refactoring.</li>
- *     <li> Can be mapped to multiple implementations. For example:[code]
- *     
- *     // Creates a binding to serialize Swing components into high-level XML
- *     // and deserialize the same XML into SWT components.
- *     XMLBinding swingBinding = new XMLBinding();
- *     swingBinding.setAlias(javax.swing.JButton.class, "Button");
- *     swingBinding.setAlias(javax.swing.JTable.class, "Table");
- *     ...
- *     XMLBinding swtBinding = new XMLBinding();
- *     swtBinding.setAlias(org.eclipse.swt.widgets.Button.class, "Button");
- *     swtBinding.setAlias(org.eclipse.swt.widgets.Table.class, "Table");
- *     ...
- *     
- *     // Writes Swing Desktop to XML.
- *     XMLObjectWriter writer = new XMLObjectWriter().setBinding(swingBinding);
- *     writer.setOutput(new FileOutputStream("C:/desktop.xml"));
- *     writer.write(swingDesktop, "Desktop", SwingDesktop.class);
- *     writer.close();
- *
- *     // Reads back high-level XML to a SWT implementation!    
- *     XMLObjectReader reader = new XMLObjectReader().setXMLBinding(swtBinding);
- *     reader.setInput(new FileInputStream("C:/desktop.xml"));
- *     SWTDesktop swtDesktop = reader.read("Desktop", SWTDesktop.class);
- *     reader.close();
- *     [/code]</li>
- *     </ul></p>        
- *     
- * <p> More advanced bindings can also be created through sub-classing.[code]
- * 
- *     // XML binding using reflection.
- *     public ReflectionBinding extends XMLBinding {
- *         protected XMLFormat getFormat(Class forClass) {
- *             Field[] fields = forClass.getDeclaredFields();
- *             return new XMLReflectionFormat(fields);
- *         }
- *     }
- *     
- *     // XML binding read from DTD input source.
- *     public DTDBinding extends XMLBinding {
- *         public DTDBinding(InputStream dtd) {
- *             ...
- *         }
- *     }
- *     
- *     // XML binding overriding default formats.
- *     public MyBinding extends XMLBinding {
- *         // Non-static formats use unmapped XMLFormat instances.
- *         XMLFormat<String> myStringFormat = new XMLFormat<String>(null) {...}
- *         XMLFormat<Collection> myCollectionFormat = new XMLFormat<Collection>(null) {...}
- *         protected XMLFormat getFormat(Class forClass) throws XMLStreamException {
- *             if (String.class.equals(forClass))
- *                  return myStringFormat;
- *             if (Collection.class.isAssignableFrom(forClass))
- *                  return myCollectionFormat;
- *             return super.getFormat(cls);
- *         }
- *     }
- *     [/code]
- *      
- * <p> The default XML binding implementation supports all static XML formats 
- *     (static members of the classes being mapped) as well as the 
- *     following types:<ul>
- *        <li><code>java.lang.Object</code> (empty element)</li>
- *        <li><code>java.lang.Class</code></li>
- *        <li><code>java.lang.String</code></li>
- *        <li><code>java.lang.Appendable</code></li>
- *        <li><code>java.util.Collection</code></li>
- *        <li><code>java.util.Map</code></li>
- *        <li><code>java.lang.Object[]</code></li>
- *        <li> all primitive types wrappers (e.g. 
- *            <code>Boolean, Integer ...</code>)</li>
- *        </ul></p>
- *          
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 5.4, December 1, 2009
- */
-public class XMLBinding implements XMLSerializable {
-
-    /**
-     * Holds the default instance used by readers/writers (thread-safe).
-     */
-    static final XMLBinding DEFAULT = new XMLBinding();
-
-    /**
-     * Holds the class attribute.
-     */
-    private QName _classAttribute = QName.valueOf("class");
-
-    /**
-     * Holds the class to alias (QName) mapping.
-     */
-    private final FastMap<Class<?>, QName> _classToAlias = new FastMap<Class<?>, QName>();
-
-    /**
-     * Holds the alias (QName) to class mapping.
-     */
-    private final FastMap<QName, Class<?>> _aliasToClass = new FastMap<QName, Class<?>>();
-
-    /**
-     * Default constructor.
-     */
-    public XMLBinding() {}
-
-    /**
-     * Sets the qualified alias for the specified class.
-     * 
-     * @param cls the class being aliased.
-     * @param qName the qualified name.
-     */
-    public void setAlias(Class<?> cls, QName qName) {
-        _classToAlias.put(cls, qName);
-        _aliasToClass.put(qName, cls);
-    }
-
-    /**
-     * Convenient method equivalent to {@link #setAlias(Class, QName) 
-     * setAlias(cls, QName.valueOf(alias))}.
-     * 
-     * @param cls the class being aliased.
-     * @param alias the alias for the specified class.
-     */
-    public final void setAlias(Class<?> cls, String alias) {
-        setAlias(cls, QName.valueOf(alias));
-    }
-
-    /**
-     * Sets the qualified name of the attribute holding the 
-     * class identifier. If the local name is <code>null</code> the class 
-     * attribute is never read/written (which may prevent unmarshalling).
-     * 
-     * @param classAttribute the qualified name of the class attribute or 
-     *        <code>null<code>.
-     */
-    public void setClassAttribute(QName classAttribute) {
-        _classAttribute = classAttribute;
-    }
-
-    /**
-     * Convenience method equivalent to {@link #setClassAttribute(QName)
-     * setClassAttribute(QName.valueOf(name))}.
-     * 
-     * @param name the name of the class attribute or <code>null<code>.
-     */
-    public final void setClassAttribute(String name) {
-        setClassAttribute(name == null ? null : QName.valueOf(name));
-    }
-
-    /**
-     * Returns the XML format for the specified class/interface.
-     * The default implementation returns the {@link XMLContext#getFormat}
-     * for the specified class.
-     * 
-     * @param forClass the class for which the XML format is returned.
-     * @return the XML format for the specified class (never <code>null</code>).
-     */
-    protected XMLFormat<?> getFormat(Class<?> forClass)
-            throws XMLStreamException {
-        return XMLContext.getFormat(forClass);
-    }
-
-    /**
-     * Reads the class corresponding to the current XML element.
-     * 
-     * This method is called by {@link XMLFormat.InputElement#getNext()} 
-     * {@link XMLFormat.InputElement#get(String)} and
-     * {@link XMLFormat.InputElement#get(String, String)} to retrieve the 
-     * Java class corresponding to the current XML element.
-     * 
-     * If <code>useAttributes</code> is set, the default implementation 
-     * reads the class name from the class attribute; otherwise the class 
-     * name (or alias) is read from the current element qualified name.
-     * 
-     * @param reader the XML stream reader.
-     * @param useAttributes indicates if the element's attributes should be 
-     *        used to identify the class (e.g. when the element name is 
-     *        specified by the user then attributes have to be used).
-     * @return the corresponding class.
-     * @throws XMLStreamException 
-     */
-    protected Class<?> readClass(XMLStreamReader reader, boolean useAttributes)
-            throws XMLStreamException {
-        try {
-            QName classQName;
-            if (useAttributes) {
-                if (_classAttribute == null)
-                    throw new XMLStreamException(
-                            "Binding has no class attribute defined, cannot retrieve class");
-                classQName = QName.valueOf(reader.getAttributeValue(
-                        _classAttribute.getNamespaceURI(),
-                        _classAttribute.getLocalName()));
-                if (classQName == null)
-                    throw new XMLStreamException(
-                            "Cannot retrieve class (class attribute not found)");
-            } else {
-                classQName = QName.valueOf(reader.getNamespaceURI(),
-                        reader.getLocalName());
-            }
-
-            // Searches aliases with namespace URI.
-            Class<?> cls = _aliasToClass.get(classQName);
-            if (cls != null)
-                return cls;
-
-            // Searches aliases without namespace URI.
-            cls = _aliasToClass.get(QName.valueOf(classQName.getLocalName()));
-            if (cls != null)
-                return cls;
-
-            // Finally convert the qualified name to a class (ignoring namespace URI).
-            cls = Class.forName(classQName.getLocalName().toString());
-            if (cls == null)
-                throw new XMLStreamException(
-                        "Class "
-                                + classQName.getLocalName()
-                                + " not found (see javolution.lang.Reflection to support additional class loader)");
-            _aliasToClass.put(classQName, cls);
-            return cls;
-        } catch (ClassNotFoundException ex) {
-            throw new RuntimeException(ex);
-        }
-    }
-
-    /**
-     * Writes the specified class to the current XML element attributes or to 
-     * a new element if the element attributes cannot be used.
-     * 
-     * This method is called by 
-     * {@link XMLFormat.OutputElement#add(Object)} and 
-     * {@link XMLFormat.OutputElement#add(Object, String)} and 
-     * {@link XMLFormat.OutputElement#add(Object, String, String)} to 
-     * identify the Java class corresponding to the XML element.
-     * 
-     * 
-     * @param cls the class to be written.
-     * @param writer the XML stream writer.
-     * @param useAttributes indicates if the element's attributes should be 
-     *        used to identify the class (e.g. when the element name is 
-     *        specified by the user then attributes have to be used).
-     * @throws XMLStreamException 
-     */
-    protected void writeClass(Class<?> cls, XMLStreamWriter writer,
-            boolean useAttributes) throws XMLStreamException {
-        QName qName = (QName) _classToAlias.get(cls);
-        String name = qName != null ? qName.toString() : cls.getName();
-        if (useAttributes) {
-            if (_classAttribute == null)
-                return;
-            if (_classAttribute.getNamespaceURI() == null) {
-                writer.writeAttribute(_classAttribute.getLocalName(), name);
-            } else {
-                writer.writeAttribute(_classAttribute.getNamespaceURI(),
-                        _classAttribute.getLocalName(), name);
-            }
-        } else {
-            if (qName != null) {
-                if (qName.getNamespaceURI() == null) {
-                    writer.writeStartElement(qName.getLocalName());
-                } else {
-                    writer.writeStartElement(qName.getNamespaceURI(),
-                            qName.getLocalName());
-                }
-            } else {
-                writer.writeStartElement(name);
-            }
-        }
-    }
-
-    public void reset() {
-        _classAttribute = QName.valueOf("class");
-        _aliasToClass.clear();
-        _classToAlias.clear();
-    }
-
-    private static final long serialVersionUID = 6611041662550083919L;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLContext.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLContext.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLContext.java
deleted file mode 100644
index 5b29017..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLContext.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import javolution.context.AbstractContext;
-import javolution.context.FormatContext;
-import javolution.osgi.internal.OSGiServices;
-import javolution.text.TextFormat;
-
-/**
- * <p> A context for xml serialization/deserialization. 
- *     The default xml format for any class is given by the 
- *     {@link javolution.text.DefaultTextFormat Format} inheritable annotation.</p>
- * 
- * <p> A default xml format exists for the following predefined types:
- *     <code><ul>
- *       <li>java.lang.Object (value attribute parsed/formatted using {@link TextFormat})</li>
- *       <li>java.util.Collection</li>
- *       <li>java.util.Map</li>
- *    </ul></code></p>
- * 
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 6.0 December 12, 2012
- */
-public abstract class XMLContext extends FormatContext {
-
-     /**
-     * Default constructor.
-     */
-    protected XMLContext() {}
-
-    /**
-     * Enters and returns a new xml context instance.
-     */
-    public static XMLContext enter() {
-        return (XMLContext) XMLContext.currentXMLContext().enterInner();
-    }
-
-    /**
-     * Returns the xml format for the specified type; if none defined 
-     * the default object xml format (based on {@link TextFormat}) is returned.
-     */
-    public static <T> XMLFormat<T> getFormat(Class<? extends T> type) {
-        return XMLContext.currentXMLContext().searchFormat(type);
-    }
-
-    /**
-     * Sets the xml format for the specified type (and its sub-types).
-     */
-    public abstract <T> void setFormat(Class<? extends T> type,
-            XMLFormat<T> format);
-
-    /**
-     * Searches the xml format for the specified type.
-     */
-    protected abstract <T> XMLFormat<T> searchFormat(
-            Class<? extends T> type);
-
-    /**
-     * Returns the current xml context.
-     */
-    private static XMLContext currentXMLContext() {
-        XMLContext ctx = AbstractContext.current(XMLContext.class);
-        if (ctx != null)
-            return ctx;
-        return OSGiServices.getXMLContext();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLFormat.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLFormat.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLFormat.java
deleted file mode 100644
index ba201d8..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLFormat.java
+++ /dev/null
@@ -1,1029 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import javolution.text.CharArray;
-import javolution.text.TextBuilder;
-import javolution.text.TextContext;
-import javolution.text.TextFormat;
-import javolution.xml.internal.stream.XMLStreamReaderImpl;
-import javolution.xml.internal.stream.XMLStreamWriterImpl;
-import javolution.xml.sax.Attributes;
-import javolution.xml.stream.XMLStreamException;
-import javolution.xml.stream.XMLStreamReader;
-import javolution.xml.stream.XMLStreamWriter;
-
-/**
- * <p> This class represents the format base class for XML serialization and
- *     deserialization.</p>
- *     
- * <p> Instances of this class are typically retrieved from the 
- *     {@link XMLContext} (OSGi service or not).
- *     [code]
- *     @Format(xml=GraphicXML.class) 
- *     public abstract class Graphic implements XMLSerializable {
- *         private boolean isVisible;
- *         private Paint paint; // null if none.
- *         private Stroke stroke; // null if none.
- *         private Transform transform; // null if none.
- *          
- *         // XML format with positional associations (members identified by their position),
- *         // see XML package description for examples of name associations.
- *         public static class GraphicXML extends XMLFormat<Graphic> {
- *              public void write(Graphic g, OutputElement xml) {
- *                  xml.setAttribute("isVisible", g.isVisible); 
- *                  xml.add(g.paint); // First.
- *                  xml.add(g.stroke); // Second.
- *                  xml.add(g.transform); // Third.
- *              }
- *              public void read(InputElement xml, Graphic g) {
- *                  g.isVisible = xml.getAttribute("isVisible", true);
- *                  g.paint = xml.getNext();
- *                  g.stroke = xml.getNext();
- *                  g.transform = xml.getNext();
- *                  return g;
- *             }
- *         };
- *    }
- *    [/code]
- *    
- * <p> Due to the sequential nature of XML serialization/deserialization, 
- *     formatting/parsing of XML attributes should always be performed before 
- *     formatting/parsing of the XML content.</p>
- * 
- * <p> The mapping between classes and XML formats can be overriden
- *     through {@link XMLBinding} instances.
- *     Here is an example of serialization/deserialization:
- *     [code]     
- *     // Creates a list holding diverse objects.
- *     List list = new ArrayList();
- *     list.add("John Doe");
- *     list.add(null);
- *     Map map = new FastMap();
- *     map.put("ONE", 1);
- *     map.put("TWO", 2);
- *     list.add(map);
- *     
- *     // Use of custom binding.
- *     XMLBinding binding = new XMLBinding();
- *     binding.setAlias(FastMap.class, "Map");
- *     binding.setAlias(String.class, "String");
- *     binding.setAlias(Integer.class, "Integer");
- *     
- *     // Formats the list to XML .
- *     OutputStream out = new FileOutputStream("C:/list.xml");
- *     XMLObjectWriter writer = new XMLObjectWriter().setOutput(out).setBinding(binding);
- *     writer.write(list, "MyList", ArrayList.class);
- *     writer.close();
- *     [/code]
- *     
- *     Here is the output <code>list.xml</code> document produced:[code]
- *     
- *     <MyList>
- *         <String value="John Doe"/>
- *         <Null/>
- *         <Map>
- *             <Key class="String" value="ONE"/>
- *             <Value class="Integer" value="1"/>
- *             <Key class="String" value="TWO"/>
- *             <Value class="Integer" value="2"/>
- *         </Map>
- *     </MyList>
- *     [/code]
- *     
- *     The list can be read back with the following code:
- *     [code]
- *     // Reads back to a FastTable instance.
- *     InputStream in = new FileInputStream("C:/list.xml");
- *     XMLObjectReader reader = new XMLObjectReader().setInput(in).setBinding(binding);
- *     FastTable table = reader.read("MyList", FastTable.class); 
- *     reader.close();
- *     [/code]
- *     </p>
- *     
- * <p> <i>Note:</i> Any type for which a {@link TextFormat text format} is 
- *     defined can be represented as a XML attribute.</p>
- * 
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 5.4, December 1, 2009
- */
-public abstract class XMLFormat<T> {
-
-    /**
-     * Holds <code>null</code> representation.
-     */
-    private static final String NULL = "Null";
-
-    /**
-     * Default constructor.
-     */
-    protected XMLFormat() {}
-
-    /**
-     * Indicates if the object serialized through this format can be referenced
-     * to (default <code>true</code>). This method can be overriden to return
-     * <code>false</code> if  serialized objects are manipulated "by value".
-     *
-     * @return <code>true</code> if serialized object may hold a reference;
-     *         <code>false</code> otherwise.
-     * @see XMLReferenceResolver
-     */
-    public boolean isReferenceable() {
-        return true;
-    }
-
-    /**
-     * Allocates a new object of the specified class from the specified 
-     * XML input element. By default, this method returns an object created 
-     * using the public no-arg constructor of the specified class. 
-     * XML formats may override this method in order to use private/multi-arg
-     * constructors.  
-     *
-     * @param cls the class of the object to return.
-     * @param xml the XML input element.
-     * @return the object corresponding to the specified XML element.
-     */
-    public T newInstance(Class<? extends T> cls, InputElement xml)
-            throws XMLStreamException {
-        try {
-            return cls.newInstance();
-        } catch (InstantiationException e) {
-            throw new XMLStreamException(e);
-        } catch (IllegalAccessException e) {
-            throw new XMLStreamException(e);
-        }
-    }
-
-    /**
-     * Formats an object into the specified XML output element.
-     *
-     * @param obj the object to format.
-     * @param xml the <code>XMLElement</code> destination.
-     */
-    public abstract void write(T obj, OutputElement xml)
-            throws XMLStreamException;
-
-    /**
-     * Parses an XML input element into the specified object. 
-     * 
-     * @param xml the XML element to parse.
-     * @param obj the object created through {@link #newInstance}
-     *        and to setup from the specified XML element.
-     */
-    public abstract void read(InputElement xml, T obj)
-            throws XMLStreamException;
-
-    /**
-     * This class represents an input XML element (unmarshalling).
-     */
-    @SuppressWarnings("unchecked")
-    public static final class InputElement {
-
-        /**
-         * Holds the stream reader.
-         */
-        final XMLStreamReaderImpl _reader = new XMLStreamReaderImpl();
-
-        /**
-         * Holds the XML binding.
-         */
-        private XMLBinding _binding;
-
-        /**
-         * Holds the reference resolver.
-         */
-        private XMLReferenceResolver _referenceResolver;
-
-        /**
-         * Indicates if the reader is currently positioned on the next element.
-         */
-        private boolean _isReaderAtNext;
-
-        /**
-         * Default constructor.
-         */
-        InputElement() {
-            reset();
-        }
-
-        /**
-         * Returns the StAX-like stream reader (provides complete control 
-         * over the unmarshalling process).
-         * 
-         * @return the stream reader.
-         */
-        public XMLStreamReader getStreamReader() {
-            return _reader;
-        }
-
-        /**
-         * Indicates if more nested XML element can be read. This method 
-         * positions the {@link #getStreamReader reader} at the start of the
-         * next XML element to be read (if any).
-         *
-         * @return <code>true</code> if there is more XML element to be read; 
-         *         <code>false</code> otherwise.
-         */
-        public boolean hasNext() throws XMLStreamException {
-            if (!_isReaderAtNext) {
-                _isReaderAtNext = true;
-                _reader.nextTag();
-            }
-            return _reader.getEventType() == XMLStreamReader.START_ELEMENT;
-        }
-
-        /**
-         * Returns the next object whose type is identified by the local name
-         * and URI of the current XML element.
-         *
-         * @return the next nested object which can be <code>null</code>.
-         * @throws XMLStreamException if <code>hasNext() == false</code>.
-         */
-        public <T> T getNext() throws XMLStreamException {
-            if (!hasNext()) // Asserts isReaderAtNext == true
-                throw new XMLStreamException("No more element to read",
-                        _reader.getLocation());
-
-            // Checks for null.
-            if (_reader.getLocalName().equals(NULL)) {
-                if (_reader.next() != XMLStreamReader.END_ELEMENT)
-                    throw new XMLStreamException("Non Empty Null Element");
-                _isReaderAtNext = false;
-                return null;
-            }
-
-            Object ref = readReference();
-            if (ref != null)
-                return (T) ref;
-
-            // Retrieves object's class from element tag.
-            Class<?> cls = _binding.readClass(_reader, false);
-            return readInstanceOf(cls);
-        }
-
-        /**
-         * Returns the object whose type is identified by a XML class attribute
-         * only if the XML element has the specified local name.
-         *
-         * @param name the local name of the next element.
-         * @return the next nested object or <code>null</code>.
-         */
-        public <T> T get(String name) throws XMLStreamException {
-            if (!hasNext()// Asserts isReaderAtNext == true
-                    || !_reader.getLocalName().equals(name))
-                return null;
-
-            Object ref = readReference();
-            if (ref != null)
-                return (T) ref;
-
-            // Retrieves object's class from class attribute.
-            Class<?> cls = _binding.readClass(_reader, true);
-            return readInstanceOf(cls);
-        }
-
-        /**
-         * Returns the object whose type is identified by a XML class attribute
-         * only if the XML element has the specified local name and URI.
-         *
-         * @param localName the local name.
-         * @param uri the namespace URI or <code>null</code>.
-         * @return the next nested object or <code>null</code>.
-         */
-        public <T> T get(String localName, String uri)
-                throws XMLStreamException {
-            if (uri == null)
-                return (T) get(localName);
-
-            if (!hasNext()// Asserts isReaderAtNext == true
-                    || !_reader.getLocalName().equals(localName)
-                    || !_reader.getNamespaceURI().equals(uri))
-                return null;
-
-            Object ref = readReference();
-            if (ref != null)
-                return (T) ref;
-
-            // Retrieves object's class from class attribute.
-            Class<?> cls = _binding.readClass(_reader, true);
-            return readInstanceOf(cls);
-        }
-
-        /**
-         * Returns the object of specified type only if the XML element has the
-         * specified local name. 
-         *      
-         * @param name the local name of the element to match.
-         * @param cls the class identifying the format of the object to return.
-         * @return the next nested object or <code>null</code>.
-         */
-        public <T> T get(String name, Class<T> cls) throws XMLStreamException {
-            if (!hasNext()// Asserts isReaderAtNext == true
-                    || !_reader.getLocalName().equals(name))
-                return null;
-
-            Object ref = readReference();
-            if (ref != null)
-                return (T) ref;
-
-            return readInstanceOf(cls);
-        }
-
-        /**
-         * Returns the object of specified type only if the 
-         * XML element has the specified local name and namespace URI.
-         *      
-         * @param localName the local name.
-         * @param uri the namespace URI or <code>null</code>.
-         * @param cls the class identifying the format of the object to return.
-         * @return the next nested object or <code>null</code>.
-         */
-        public <T> T get(String localName, String uri, Class<T> cls)
-                throws XMLStreamException {
-            if (uri == null)
-                return get(localName, cls);
-
-            if (!hasNext()// Asserts isReaderAtNext == true
-                    || !_reader.getLocalName().equals(localName)
-                    || !_reader.getNamespaceURI().equals(uri))
-                return null;
-
-            Object ref = readReference();
-            if (ref != null)
-                return (T) ref;
-
-            return readInstanceOf(cls);
-        }
-
-        // Returns the referenced object if any.
-        private Object readReference() throws XMLStreamException {
-            if (_referenceResolver == null)
-                return null;
-            Object ref = _referenceResolver.readReference(this);
-            if (ref == null)
-                return null;
-            if (_reader.next() != XMLStreamReader.END_ELEMENT)
-                throw new XMLStreamException("Non Empty Reference Element");
-            _isReaderAtNext = false;
-            return ref;
-        }
-
-        // Builds object of specified class.
-        @SuppressWarnings("rawtypes")
-        private <T> T readInstanceOf(Class cls) throws XMLStreamException {
-
-            // Retrieves format.
-            XMLFormat xmlFormat = _binding.getFormat(cls);
-
-            // Creates object.
-            _isReaderAtNext = false; // Makes attributes accessible.
-            Object obj = xmlFormat.newInstance(cls, this);
-
-            // Adds reference (before reading to support circular reference).
-            if (_referenceResolver != null) {
-                _referenceResolver.createReference(obj, this);
-            }
-
-            // Parses xml.
-            xmlFormat.read(this, obj);
-            if (hasNext()) // Asserts _isReaderAtNext == true
-                throw new XMLStreamException("Incomplete element reading",
-                        _reader.getLocation());
-            _isReaderAtNext = false; // Skips end element.
-            return (T) obj;
-        }
-
-        /**
-         * Returns the content of a text-only element (equivalent to 
-         * {@link javolution.xml.stream.XMLStreamReader#getElementText 
-         * getStreamReader().getElementText()}).
-         *
-         * @return the element text content or an empty sequence if none.
-         */
-        public CharArray getText() throws XMLStreamException {
-            CharArray txt = _reader.getElementText();
-            _isReaderAtNext = true; // End element is next.
-            return txt;
-        }
-
-        /**
-         * Returns the attributes for this XML input element.
-         *
-         * @return the attributes mapping.
-         */
-        public Attributes getAttributes() throws XMLStreamException {
-            if (_isReaderAtNext)
-                throw new XMLStreamException(
-                        "Attributes should be read before content");
-            return _reader.getAttributes();
-        }
-
-        /**
-         * Searches for the attribute having the specified name.
-         *
-         * @param  name the name of the attribute.
-         * @return the value for the specified attribute or <code>null</code>
-         *         if the attribute is not found.
-         */
-        public CharArray getAttribute(String name) throws XMLStreamException {
-            if (_isReaderAtNext)
-                throw new XMLStreamException(
-                        "Attributes should be read before reading content");
-            return _reader.getAttributeValue(null, name);
-        }
-
-        /**
-         * Returns the specified <code>String</code> attribute.
-         *
-         * @param  name the name of the attribute.
-         * @param  defaultValue a default value.
-         * @return the value for the specified attribute or
-         *         the <code>defaultValue</code> if the attribute is not found.
-         */
-        public String getAttribute(String name, String defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toString() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>boolean</code> attribute.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>boolean</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public boolean getAttribute(String name, boolean defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toBoolean() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>char</code> attribute.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>char</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public char getAttribute(String name, char defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            if (value == null)
-                return defaultValue;
-            if (value.length() != 1)
-                throw new XMLStreamException(
-                        "Single character expected (read '" + value + "')");
-            return value.charAt(0);
-        }
-
-        /**
-         * Returns the specified <code>byte</code> attribute. This method handles
-         * string formats that are used to represent octal and hexadecimal numbers.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>byte</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public byte getAttribute(String name, byte defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? (byte) value.toInt() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>short</code> attribute. This method handles
-         * string formats that are used to represent octal and hexadecimal numbers.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>short</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public short getAttribute(String name, short defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? (short) value.toInt() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>int</code> attribute. This method handles
-         * string formats that are used to represent octal and hexadecimal numbers.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>int</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public int getAttribute(String name, int defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toInt() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>long</code> attribute. This method handles
-         * string formats that are used to represent octal and hexadecimal numbers.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>long</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public long getAttribute(String name, long defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toLong() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>float</code> attribute.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>float</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public float getAttribute(String name, float defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toFloat() : defaultValue;
-        }
-
-        /**
-         * Returns the specified <code>double</code> attribute.
-         *
-         * @param  name the name of the attribute searched for.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the <code>double</code> value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public double getAttribute(String name, double defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            return (value != null) ? value.toDouble() : defaultValue;
-        }
-
-        /**
-         * Returns the attribute of same type as the specified
-         * default value.
-         *
-         * @param  name the name of the attribute.
-         * @param  defaultValue the value returned if the attribute is not found.
-         * @return the parse value for the specified attribute or
-         *         the default value if the attribute is not found.
-         */
-        public <T> T getAttribute(String name, T defaultValue)
-                throws XMLStreamException {
-            CharArray value = getAttribute(name);
-            if (value == null)
-                return defaultValue;
-            // Parses attribute value.
-            Class<?> type = defaultValue.getClass();
-            TextFormat<?> format = TextContext.getFormat(type);
-            if (format == null)
-                throw new XMLStreamException("No TextFormat defined for "
-                        + type);
-            return (T) format.parse(value);
-        }
-
-        // Sets XML binding. 
-        void setBinding(XMLBinding xmlBinding) {
-            _binding = xmlBinding;
-        }
-
-        // Sets XML reference resolver. 
-        void setReferenceResolver(XMLReferenceResolver xmlReferenceResolver) {
-            _referenceResolver = xmlReferenceResolver;
-        }
-
-        // Resets for reuse.
-        void reset() {
-            _binding = XMLBinding.DEFAULT;
-            _isReaderAtNext = false;
-            _reader.reset();
-            _referenceResolver = null;
-        }
-    }
-
-    /**
-     * This class represents an output XML element (marshalling).
-     */
-    @SuppressWarnings("unchecked")
-    public static final class OutputElement {
-
-        /**
-         * Holds the stream writer.
-         */
-        final XMLStreamWriterImpl _writer = new XMLStreamWriterImpl();
-
-        /**
-         * Holds the XML binding.
-         */
-        private XMLBinding _binding;
-
-        /**
-         * Holds the reference resolver.
-         */
-        private XMLReferenceResolver _referenceResolver;
-
-        /**
-         * Default constructor.
-         */
-        OutputElement() {
-            reset();
-        }
-
-        /**
-         * Returns the StAX-like stream writer (provides complete control over
-         * the marshalling process).
-         * 
-         * @return the stream writer.
-         */
-        public XMLStreamWriter getStreamWriter() {
-            return _writer;
-        }
-
-        /**
-         * Adds the specified object or <code>null</code> as an anonymous 
-         * nested element of unknown type. 
-         *
-         * @param obj the object added as nested element or <code>null</code>.
-         */
-        public void add(Object obj) throws XMLStreamException {
-            if (obj == null) {
-                _writer.writeEmptyElement(NULL);
-                return;
-            }
-
-            // Writes start element.
-            Class<?> cls = obj.getClass();
-            _binding.writeClass(cls, _writer, false);
-
-            // Checks if reference written.
-            XMLFormat<Object> xmlFormat = (XMLFormat<Object>) _binding
-                    .getFormat(cls);
-            if (xmlFormat.isReferenceable() && writeReference(obj))
-                return;
-
-            xmlFormat.write(obj, this);
-            _writer.writeEndElement();
-        }
-
-        /**
-         * Adds the specified object as a named nested element of unknown type
-         * (<code>null</code> objects are ignored).
-         * The nested XML element contains a class attribute identifying
-         * the object type.
-         *
-         * @param obj the object added as nested element or <code>null</code>.
-         * @param name the name of the nested element.
-         */
-        public void add(Object obj, String name) throws XMLStreamException {
-            if (obj == null)
-                return;
-
-            // Writes start element.
-            _writer.writeStartElement(name);
-
-            // Writes class attribute.
-            Class<?> cls = obj.getClass();
-            _binding.writeClass(cls, _writer, true);
-
-            // Checks if reference written.
-            XMLFormat<Object> xmlFormat = (XMLFormat<Object>) _binding
-                    .getFormat(cls);
-            if (xmlFormat.isReferenceable() && writeReference(obj))
-                return;
-
-            xmlFormat.write(obj, this);
-            _writer.writeEndElement();
-        }
-
-        /**
-         * Adds the specified object as a fully qualified nested element of 
-         * unknown type (<code>null</code> objects are ignored). 
-         * The nested XML element contains a class attribute identifying
-         * the object type.
-         *
-         * @param obj the object added as nested element or <code>null</code>.
-         * @param localName the local name of the nested element.
-         * @param uri the namespace URI of the nested element.
-         */
-        public void add(Object obj, String localName, String uri)
-                throws XMLStreamException {
-            if (obj == null)
-                return;
-
-            // Writes start element.
-            _writer.writeStartElement(uri, localName);
-
-            // Writes class attribute.
-            Class<?> cls = obj.getClass();
-            _binding.writeClass(cls, _writer, true);
-
-            // Checks if reference written.
-            XMLFormat<Object> xmlFormat = (XMLFormat<Object>) _binding
-                    .getFormat(cls);
-            if (xmlFormat.isReferenceable() && writeReference(obj))
-                return;
-
-            xmlFormat.write(obj, this);
-            _writer.writeEndElement();
-        }
-
-        /**
-         * Adds the specified object as a named nested element of specified  
-         * actual type (<code>null</code> objects are ignored).
-         * The nested XML element does not contain any class attribute.
-         *
-         * @param obj the object added as nested element or <code>null</code>.
-         * @param name the name of the nested element.
-         * @param cls the class identifying the format of the specified object.
-         */
-        public <T> void add(T obj, String name, Class<T> cls)
-                throws XMLStreamException {
-            if (obj == null)
-                return;
-
-            // Writes start element.
-            _writer.writeStartElement(name);
-
-            // Checks if reference written.
-            XMLFormat<T> xmlFormat = (XMLFormat<T>) _binding.getFormat(cls);
-            if (xmlFormat.isReferenceable() && writeReference(obj))
-                return;
-
-            xmlFormat.write(obj, this);
-            _writer.writeEndElement();
-        }
-
-        /**
-         * Adds the specified object as a fully qualified nested element of
-         * specified actual type (<code>null</code> objects are ignored). 
-         * The nested XML element does not contain any class attribute.
-         *
-         * @param obj the object added as nested element or <code>null</code>.
-         * @param localName the local name of the nested element.
-         * @param uri the namespace URI of the nested element.
-         * @param cls the class identifying the format of the specified object.
-         */
-        public <T> void add(T obj, String localName, String uri, Class<T> cls)
-                throws XMLStreamException {
-            if (obj == null)
-                return;
-
-            // Writes start element.
-            _writer.writeStartElement(uri, localName);
-
-            // Checks if reference written.
-            XMLFormat<T> xmlFormat = (XMLFormat<T>) _binding.getFormat(cls);
-            if (xmlFormat.isReferenceable() && writeReference(obj))
-                return;
-
-            xmlFormat.write(obj, this);
-            _writer.writeEndElement();
-        }
-
-        // Returns true if reference written.
-        private boolean writeReference(Object obj) throws XMLStreamException {
-            if ((_referenceResolver == null)
-                    || !_referenceResolver.writeReference(obj, this))
-                return false;
-            _writer.writeEndElement();
-            return true; // Reference written.
-        }
-
-        /**
-         * Adds the content of a text-only element (equivalent to {@link 
-         * javolution.xml.stream.XMLStreamWriter#writeCharacters(CharSequence) 
-         * getStreamWriter().writeCharacters(text)}).
-         *
-         * @param text the element text content or an empty sequence if none.
-         */
-        public void addText(CharSequence text) throws XMLStreamException {
-            _writer.writeCharacters(text);
-        }
-
-        /**
-         * Equivalent to {@link #addText(CharSequence)} 
-         * (for J2ME compatibility).
-         *
-         * @param text the element text content or an empty sequence if none.
-         */
-        public void addText(String text) throws XMLStreamException {
-            _writer.writeCharacters(text);
-        }
-
-        /**
-         * Sets the specified <code>CharSequence</code> attribute
-         * (<code>null</code> values are ignored).
-         *
-         * @param  name the attribute name.
-         * @param  value the attribute value or <code>null</code>.
-         */
-        public void setAttribute(String name, CharSequence value)
-                throws XMLStreamException {
-            if (value == null)
-                return;
-            _writer.writeAttribute(name, value);
-        }
-
-        /**
-         * Sets the specified <code>String</code> attribute
-         * (<code>null</code> values are ignored).
-         *
-         * @param  name the attribute name.
-         * @param  value the attribute value.
-         */
-        public void setAttribute(String name, String value)
-                throws XMLStreamException {
-            if (value == null)
-                return;
-            _writer.writeAttribute(name, value);
-        }
-
-        /**
-         * Sets the specified <code>boolean</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>boolean</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, boolean value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        private TextBuilder _tmpTextBuilder = new TextBuilder();
-
-        /**
-         * Sets the specified <code>char</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>char</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, char value)
-                throws XMLStreamException {
-            setAttribute(name,
-                    (TextBuilder) _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>byte</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>byte</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, byte value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>short</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>short</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, short value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>int</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>int</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, int value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>long</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>long</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, long value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>float</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>float</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, float value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified <code>double</code> attribute.
-         * 
-         * @param  name the attribute name.
-         * @param  value the <code>double</code> value for the specified attribute.
-         */
-        public void setAttribute(String name, double value)
-                throws XMLStreamException {
-            setAttribute(name, _tmpTextBuilder.clear().append(value));
-        }
-
-        /**
-         * Sets the specified attribute using its associated 
-         * {@link javolution.text.TextFormat TextFormat}.
-         * 
-         * @param  name the name of the attribute.
-         * @param  value the value for the specified attribute
-         *         or <code>null</code> in which case the attribute is not set.
-         */
-        public void setAttribute(String name, Object value)
-                throws XMLStreamException {
-            if (value == null)
-                return;
-            setAttribute(name, _tmpTextBuilder.clear().append(value.toString()));
-        }
-
-        // Sets XML binding. 
-        void setBinding(XMLBinding xmlBinding) {
-            _binding = xmlBinding;
-        }
-
-        // Sets XML reference resolver. 
-        void setReferenceResolver(XMLReferenceResolver xmlReferenceResolver) {
-            _referenceResolver = xmlReferenceResolver;
-        }
-
-        // Resets for reuse.
-        void reset() {
-            _binding = XMLBinding.DEFAULT;
-            _writer.reset();
-            _writer.setRepairingNamespaces(true);
-            _writer.setAutomaticEmptyElements(true);
-            _referenceResolver = null;
-        }
-    }
-
-    /**
-     * Returns the default XML format for any object having a 
-     * {@link TextFormat plain text format}; this XML representation consists 
-     * of the plain text representation of the object as a "value" attribute.
-     */
-    public static class Default extends XMLFormat<Object> {
-
-        /**
-         * Default constructor.
-         */
-        public Default() {}
-
-        @Override
-        public boolean isReferenceable() {
-            return false; // Always by value (immutable).
-        }
-
-        @Override
-        public Object newInstance(Class<?> cls,
-                javolution.xml.XMLFormat.InputElement xml)
-                throws XMLStreamException {
-            TextFormat<?> format = TextContext.getFormat(cls);
-            if (format == null)
-                throw new XMLStreamException(
-                        "No TextFormat defined to parse instances of " + cls);
-            CharArray value = xml.getAttribute("value");
-            if (value == null)
-                throw new XMLStreamException(
-                        "Missing value attribute (to be able to parse the instance of "
-                                + cls + ")");
-            return format.parse(value);
-        }
-
-        public void read(XMLFormat.InputElement xml, Object obj)
-                throws XMLStreamException {
-            // Do nothing.
-        }
-
-        @SuppressWarnings("unchecked")
-        public void write(Object obj, XMLFormat.OutputElement xml)
-                throws XMLStreamException {
-            TextBuilder tmp = new TextBuilder();
-            TextFormat<?> tf = TextContext.getFormat(obj.getClass());
-            ((TextFormat<Object>) tf).format(obj, tmp);
-            xml.setAttribute("value", tmp);
-        }
-
-    };
-}

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectReader.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectReader.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectReader.java
deleted file mode 100644
index f51ebaf..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectReader.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import javolution.xml.internal.stream.XMLStreamReaderImpl;
-import javolution.xml.stream.XMLStreamException;
-import javolution.xml.stream.XMLStreamReader;
-
-/**
- * <p> This class restores objects which have been serialized in XML
- *     format using an {@link XMLObjectWriter}.</p>
- *     
- * <p> When the XML document is parsed, each elements are recursively
- *     processed and Java objects are created using the {@link XMLFormat}
- *     of the class as identified by the {@link XMLBinding}.</p>
- *     
- * <p> Multiple objects can be read from the same XML input.
- *     For example:[code]
- *     XMLObjectReader reader = XMLObjectReader.newInstance(inputStream);
- *     while (reader.hasNext()) {
- *         Message message = reader.read("Message", Message.class);
- *     }
- *     reader.close(); // The underlying stream is closed.
- *     [/code]</p>
- *     
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 4.0, September 4, 2006
- */
-public class XMLObjectReader {
-
-    /**
-     * Hold the xml element used when parsing.
-     */
-    private final XMLFormat.InputElement _xml = new XMLFormat.InputElement();
-
-    /**
-     * Holds reader if any.
-     */
-    private Reader _reader;
-
-    /**
-     * Holds input stream if any.
-     */
-    private InputStream _inputStream;
-
-    /**
-     * Returns a XML object reader having the specified
-     * input stream as input.
-     * 
-     * @param in the input stream.
-     */
-    public static XMLObjectReader newInstance(InputStream in)
-            throws XMLStreamException {
-        XMLObjectReader reader = new XMLObjectReader();
-        reader.setInput(in);
-        return reader;
-    }
-
-    /**
-     * Returns a XML object reader (potentially recycled) having the specified
-     * input stream/encoding as input.
-     * 
-     * @param in the input stream.
-     * @param encoding the input stream encoding
-     */
-    public static XMLObjectReader newInstance(InputStream in, String encoding)
-            throws XMLStreamException {
-        XMLObjectReader reader = new XMLObjectReader();
-        reader.setInput(in, encoding);
-        return reader;
-    }
-
-    /**
-     * Returns a XML object reader (potentially recycled) having the specified
-     * reader as input.
-     * 
-     * @param in the reader source.
-     */
-    public static XMLObjectReader newInstance(Reader in)
-            throws XMLStreamException {
-        XMLObjectReader reader = new XMLObjectReader();
-        reader.setInput(in);
-        return reader;
-    }
-
-    /**
-     * Default constructor.
-     */
-    public XMLObjectReader() {}
-
-    /**
-     * Returns the stream reader being used by this reader (it can be 
-     * used to set prefix, read prologs, etc).
-     * 
-     * @return the stream reader.
-     */
-    public XMLStreamReader getStreamReader() {
-        return _xml._reader;
-    }
-
-    /**
-     * Sets the input stream source for this XML object reader
-     * (encoding retrieved from XML prolog if any).
-     * 
-     * @param  in the source input stream.
-     * @return <code>this</code>
-     * @see    XMLStreamReaderImpl#setInput(InputStream)
-     */
-    public XMLObjectReader setInput(InputStream in) throws XMLStreamException {
-        if ((_inputStream != null) || (_reader != null))
-            throw new IllegalStateException("Reader not closed or reset");
-        _xml._reader.setInput(in);
-        _inputStream = in;
-        return this;
-    }
-
-    /**
-     * Sets the input stream source and encoding for this XML object reader.
-     * 
-     * @param in the input source.
-     * @param encoding the associated encoding.
-     * @return <code>this</code>
-     * @see    XMLStreamReaderImpl#setInput(InputStream, String)
-     */
-    public XMLObjectReader setInput(InputStream in, String encoding)
-            throws XMLStreamException {
-        if ((_inputStream != null) || (_reader != null))
-            throw new IllegalStateException("Reader not closed or reset");
-        _xml._reader.setInput(in, encoding);
-        _inputStream = in;
-        return this;
-    }
-
-    /**
-     * Sets the reader input source for this XML stream reader. 
-     * 
-     * @param  in the source reader.
-     * @return <code>this</code>
-     * @see    XMLStreamReaderImpl#setInput(Reader)
-     */
-    public XMLObjectReader setInput(Reader in) throws XMLStreamException {
-        if ((_inputStream != null) || (_reader != null))
-            throw new IllegalStateException("Reader not closed or reset");
-        _xml._reader.setInput(in);
-        _reader = in;
-        return this;
-    }
-
-    /**
-     * Sets the XML binding to use with this object reader.
-     * 
-     * @param binding the XML binding to use.
-     * @return <code>this</code>
-     */
-    public XMLObjectReader setBinding(XMLBinding binding) {
-        _xml.setBinding(binding);
-        return this;
-    }
-
-    /**
-     * Sets the XML reference resolver to use with this object reader
-     * (the same resolver can be used accross multiple readers).
-     * 
-     * @param referenceResolver the XML reference resolver.
-     * @return <code>this</code>
-     */
-    public XMLObjectReader setReferenceResolver(
-            XMLReferenceResolver referenceResolver) {
-        _xml.setReferenceResolver(referenceResolver);
-        return this;
-    }
-
-    /**
-     * Indicates if more elements can be read. This method 
-     * positions the reader at the start of the
-     * next element to be read (if any).
-     *
-     * @return <code>true</code> if more element/data to be read; 
-     *         <code>false</code> otherwise.
-     * @see    XMLFormat.InputElement#hasNext()
-     */
-    public boolean hasNext() throws XMLStreamException {
-        return _xml.hasNext();
-    }
-
-    /**
-     * Returns the object corresponding to the next element/data.
-     *
-     * @return the next nested object (can be <code>null</code>)
-     * @throws XMLStreamException if <code>hasNext() == false</code>
-     * @see    XMLFormat.InputElement#getNext()
-     */
-    @SuppressWarnings("unchecked")
-    public <T> T read() throws XMLStreamException {
-        return (T) _xml.getNext();
-    }
-
-    /**
-     * Returns the object corresponding to the next nested element only 
-     * if it has the specified local name. 
-     *
-     * @param name the local name of the next element.
-     * @return the next content object or <code>null</code> if the 
-     *         local name does not match.
-     * @see    XMLFormat.InputElement#get(String)
-     */
-    @SuppressWarnings("unchecked")
-    public <T> T read(String name) throws XMLStreamException {
-        return (T) _xml.get(name);
-    }
-
-    /**
-     * Returns the object corresponding to the next nested element only 
-     * if it has the specified local name and namespace URI.
-     *
-     * @param localName the local name.
-     * @param uri the namespace URI.
-     * @return the next content object or <code>null</code> if the 
-     *         name/uri does not match.
-     * @see    XMLFormat.InputElement#get(String, String)
-     */
-    @SuppressWarnings("unchecked")
-    public <T> T read(String localName, String uri) throws XMLStreamException {
-        return (T) _xml.get(localName, uri);
-    }
-
-    /**
-     * Returns the object corresponding to the next nested element only 
-     * if it has the specified local name; the actual object type is identified 
-     * by the specified class parameter. 
-     *      
-     * @param name the name of the element to match.
-     * @param cls the non-abstract class identifying the object to return.
-     * @return <code>read(name, null, cls)</code>
-     */
-    public <T> T read(String name, Class<T> cls) throws XMLStreamException {
-        return _xml.get(name, cls);
-    }
-
-    /**
-     * Returns the object corresponding to the next nested element only 
-     * if it has the specified local name and namespace URI; the 
-     * actual object type is identified by the specified class parameter. 
-     *      
-     * @param localName the local name.
-     * @param uri the namespace URI.
-     * @param cls the non-abstract class identifying the object to return.
-     * @return the next content object or <code>null</code> if no match.
-     */
-    public <T> T read(String localName, String uri, Class<T> cls)
-            throws XMLStreamException {
-        return _xml.get(localName, uri, cls);
-    }
-
-    /**
-     * Closes this reader and its underlying input then {@link #reset reset}
-     * this reader for potential reuse.
-     */
-    public void close() throws XMLStreamException {
-        try {
-            if (_inputStream != null) {
-                _inputStream.close();
-                reset();
-            } else if (_reader != null) {
-                _reader.close();
-                reset();
-            }
-        } catch (IOException e) {
-            throw new XMLStreamException(e);
-        }
-    }
-
-    /**
-     * Resets this object reader for reuse.
-     */
-    public void reset() {
-        _xml.reset();
-        _reader = null;
-        _inputStream = null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectWriter.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectWriter.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectWriter.java
deleted file mode 100644
index 7cb3d80..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLObjectWriter.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.Writer;
-
-import javolution.xml.internal.stream.XMLStreamWriterImpl;
-import javolution.xml.stream.XMLStreamException;
-import javolution.xml.stream.XMLStreamWriter;
-
-/**
- * <p> This class takes an object and formats it to XML; the resulting 
- *     XML can be deserialized using a {@link XMLObjectReader}.</p>
- *     
- * <p> When an object is formatted, the {@link XMLFormat} of the 
- *     object's class as identified by the {@link XMLBinding} is used to
- *     write its XML representation.</p>
- *     
- * <p> Multiple objects can be written to the same XML output.
- *     For example:[code]
- *     XMLObjectWriter writer = XMLObjectWriter.newInstance(outputStream);
- *     while (true)) {
- *         Message message = ...
- *         writer.write(message, "Message", Message.class);
- *     }
- *     writer.close(); // The underlying stream is closed.
- *     [/code]</p>
- *     
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 4.0, September 4, 2006
- */
-public class XMLObjectWriter {
-
-    /**
-     * Hold the xml element used when formatting.
-     */
-    private final XMLFormat.OutputElement _xml = new XMLFormat.OutputElement();
-
-    /**
-     * Holds writer if any.
-     */
-    private Writer _writer;
-
-    /**
-     * Holds input stream if any.
-     */
-    private OutputStream _outputStream;
-
-    /**
-     * Default constructor.
-     */
-    public XMLObjectWriter() {}
-
-    /**
-     * Returns a XML object writer (potentially recycled) having the specified
-     * output stream as output.
-     * 
-     * @param out the output stream.
-     */
-    public static XMLObjectWriter newInstance(OutputStream out)
-            throws XMLStreamException {
-        XMLObjectWriter writer = new XMLObjectWriter();
-        writer.setOutput(out);
-        return writer;
-    }
-
-    /**
-     * Returns a XML object writer (potentially recycled) having the specified
-     * output stream/encoding as output.
-     * 
-     * @param out the output stream.
-     * @param encoding the output stream encoding.
-     */
-    public static XMLObjectWriter newInstance(OutputStream out, String encoding)
-            throws XMLStreamException {
-        XMLObjectWriter writer = new XMLObjectWriter();
-        writer.setOutput(out, encoding);
-        return writer;
-    }
-
-    /**
-     * Returns a XML object writer (potentially recycled) having the specified
-     * writer as output.
-     * 
-     * @param out the writer output.
-     */
-    public static XMLObjectWriter newInstance(Writer out)
-            throws XMLStreamException {
-        XMLObjectWriter writer = new XMLObjectWriter();
-        writer.setOutput(out);
-        return writer;
-    }
-
-    /**
-     * Returns the stream writer used by this object writer (it can be used 
-     * to write prolog, write namespaces, etc). The stream writer is setup to 
-     * automatically repair namespaces and to automatically output empty 
-     * elements when a start element is immediately followed by matching end
-     * element. 
-     * 
-     * @return the stream writer.
-     */
-    public XMLStreamWriter getStreamWriter() {
-        return _xml._writer;
-    }
-
-    /**
-     * Sets the output stream for this XML object writer.
-     * 
-     * @param  out the output stream destination.
-     * @return <code>this</code>
-     * @see    XMLStreamWriterImpl#setOutput(OutputStream)
-     */
-    public XMLObjectWriter setOutput(OutputStream out)
-            throws XMLStreamException {
-        if ((_outputStream != null) || (_writer != null))
-            throw new IllegalStateException("Writer not closed or reset");
-        _xml._writer.setOutput(out);
-        _outputStream = out;
-        _xml._writer.writeStartDocument();
-        return this;
-    }
-
-    /**
-     * Sets the output stream and encoding for this XML object writer.
-     * 
-     * @param  out the output stream destination.
-     * @param  encoding the stream encoding.
-     * @return <code>this</code>
-     * @see    XMLStreamWriterImpl#setOutput(OutputStream, String)
-     */
-    public XMLObjectWriter setOutput(OutputStream out, String encoding)
-            throws XMLStreamException {
-        if ((_outputStream != null) || (_writer != null))
-            throw new IllegalStateException("Writer not closed or reset");
-        _xml._writer.setOutput(out, encoding);
-        _outputStream = out;
-        _xml._writer.writeStartDocument();
-        return this;
-    }
-
-    /**
-     * Sets the output writer for this XML object writer.
-     * 
-     * @param  out the writer destination.
-     * @return <code>this</code>
-     * @see    XMLStreamWriterImpl#setOutput(Writer)
-     */
-    public XMLObjectWriter setOutput(Writer out) throws XMLStreamException {
-        if ((_outputStream != null) || (_writer != null))
-            throw new IllegalStateException("Writer not closed or reset");
-        _xml._writer.setOutput(out);
-        _writer = out;
-        _xml._writer.writeStartDocument();
-        return this;
-    }
-
-    /**
-     * Sets the XML binding to use with this object writer.
-     * 
-     * @param binding the XML binding to use.
-     * @return <code>this</code>
-     */
-    public XMLObjectWriter setBinding(XMLBinding binding) {
-        _xml.setBinding(binding);
-        return this;
-    }
-
-    /**
-     * Sets the indentation to be used by this writer (no indentation 
-     * by default).
-     * 
-     * @param indentation the indentation string.
-     * @return <code>this</code>
-     */
-    public XMLObjectWriter setIndentation(String indentation) {
-        _xml._writer.setIndentation(indentation);
-        return this;
-    }
-
-    /**
-     * Sets the XML reference resolver to use with this object writer 
-     * (the same reference resolver can be used accross multiple writers).
-     * 
-     * @param referenceResolver the XML reference resolver.
-     * @return <code>this</code>
-     */
-    public XMLObjectWriter setReferenceResolver(
-            XMLReferenceResolver referenceResolver) {
-        _xml.setReferenceResolver(referenceResolver);
-        return this;
-    }
-
-    /**
-     * Writes the specified object as an anonymous nested element of 
-     * unknown type. This result in the actual type of the object being
-     * identified by the element name.
-     *
-     * @param obj the object written as nested element or <code>null</code>.
-     * @see   XMLFormat.OutputElement#add(Object)
-     */
-    public void write(Object obj) throws XMLStreamException {
-        _xml.add(obj);
-    }
-
-    /**
-     * Writes the specified object as a named nested element of unknown type
-     * (<code>null</code> objects are ignored). The nested XML element
-     * may contain a class attribute identifying the object type.
-     *
-     * @param obj the object added as nested element or <code>null</code>.
-     * @param name the name of the nested element.
-     * @see   XMLFormat.OutputElement#add(Object, String)
-     */
-    public void write(Object obj, String name) throws XMLStreamException {
-        _xml.add(obj, name);
-    }
-
-    /**
-     * Writes the specified object as a fully qualified nested element of 
-     * unknown type (<code>null</code> objects are ignored). 
-     * The nested XML element may contain a class attribute identifying
-     * the object type.
-     *
-     * @param obj the object added as nested element or <code>null</code>.
-     * @param localName the local name of the nested element.
-     * @param uri the namespace URI of the nested element.
-     * @see   XMLFormat.OutputElement#add(Object, String, String)
-     */
-    public void write(Object obj, String localName, String uri)
-            throws XMLStreamException {
-        _xml.add(obj, localName, uri);
-    }
-
-    /**
-     * Writes the specified object as a named nested element of actual type
-     * known (<code>null</code> objects are ignored). 
-     *
-     * @param obj the object added as nested element or <code>null</code>.
-     * @param name the name of the nested element.
-     * @param cls the non-abstract class identifying the XML format to use.
-     * @see   XMLFormat.OutputElement#add(Object, String, Class)
-     */
-    public <T> void write(T obj, String name, Class<T> cls)
-            throws XMLStreamException {
-        _xml.add(obj, name, cls);
-    }
-
-    /**
-     * Writes the specified object as a fully qualified nested element of
-     *  actual type known (<code>null</code> objects are ignored). 
-     *
-     * @param obj the object added as nested element or <code>null</code>.
-     * @param localName the local name of the nested element.
-     * @param uri the namespace URI of the nested element.
-     * @param cls the class identifying the XML format to use.
-     * @see   XMLFormat.OutputElement#add(Object, String, String, Class)
-     */
-    public <T> void write(T obj, String localName, String uri, Class<T> cls)
-            throws XMLStreamException {
-        _xml.add(obj, localName, uri, cls);
-    }
-
-    /**
-     * Flushes the output stream of this writer (automatically done 
-     * when {@link #close() closing}).
-     */
-    public void flush() throws XMLStreamException {
-        _xml._writer.flush();
-    }
-
-    /**
-     * Ends document writting, closes this writer and its underlying 
-     * output then {@link #reset reset} this Writer for potential reuse.
-     */
-    public void close() throws XMLStreamException {
-        try {
-            if (_outputStream != null) {
-                _xml._writer.writeEndDocument();
-                _xml._writer.close();
-                _outputStream.close();
-                reset();
-            } else if (_writer != null) {
-                _xml._writer.writeEndDocument();
-                _xml._writer.close();
-                _writer.close();
-                reset();
-            }
-
-        } catch (IOException e) {
-            throw new XMLStreamException(e);
-        }
-    }
-
-    /**
-     * Resets this object writer for reuse.
-     */
-    public void reset() {
-        _xml.reset();
-        _outputStream = null;
-        _writer = null;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLReferenceResolver.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLReferenceResolver.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLReferenceResolver.java
deleted file mode 100644
index 2730cf2..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLReferenceResolver.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import javolution.text.CharArray;
-import javolution.text.TextBuilder;
-import javolution.util.FastMap;
-import javolution.util.FastTable;
-import javolution.util.Index;
-import javolution.util.function.Equalities;
-import javolution.xml.stream.XMLStreamException;
-
-/**
- * <p> This class represents a resolver for XML cross references during 
- *     the marshalling/unmarshalling process.</p>
- *     
- * <p> Instances of this class may only be shared by {@link XMLObjectReader}/ 
- *     {@link XMLObjectWriter} running sequentially (for cross references 
- *     spawning multiple documents).</p>
- *     
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 4.0, September 4, 2006
- */
-public class XMLReferenceResolver {
-
-    /**
-     * Holds object to identifier (FastTable.Index) mapping.
-     */
-    private FastMap<Object, Index> _objectToId = new FastMap<Object, Index>(
-            Equalities.IDENTITY);
-
-    /**
-     * Holds the objects (index to object mapping).
-     */
-    private FastTable<Object> _idToObject = new FastTable<Object>();
-
-    /**
-     * Holds the id counter.
-     */
-    private int _counter;
-
-    /**
-     * Holds the identifier attribute name.
-     */
-    private String _idName = "id";
-
-    /**
-     * Holds the identifier attribute URI if any.
-     */
-    private String _idURI = null;
-
-    /**
-     * Holds the reference attribute name.
-     */
-    private String _refName = "ref";
-
-    /**
-     * Holds the reference attribute URI if any.
-     */
-    private String _refURI = null;
-
-    /**
-     * Default constructor.
-     */
-    public XMLReferenceResolver() {}
-
-    /**
-     * Sets the name of the identifier attribute (by default<code>"id"</code>).
-     * If the name is <code>null</code> then the identifier attribute
-     * is never read/written (which may prevent unmarshalling).
-     * 
-     * @param name the name of the attribute or <code>null</code>.
-     */
-    public void setIdentifierAttribute(String name) {
-        setIdentifierAttribute(name, null);
-    }
-
-    /**
-     * Sets the local name and namespace URI of the identifier attribute.
-     * 
-     * @param localName the local name of the attribute or <code>null</code>.
-     * @param uri the URI of the attribute or <code>null</code> if the attribute
-     *        has no namespace URI.
-     */
-    public void setIdentifierAttribute(String localName, String uri) {
-        _idName = localName;
-        _idURI = uri;
-    }
-
-    /**
-     * Sets the name of the reference attribute (by default<code>"ref"</code>).
-     * If the name is <code>null</code> then the reference attribute
-     * is never read/written (which may prevent unmarshalling).
-     * 
-     * @param name the name of the attribute or <code>null</code>.
-     */
-    public void setReferenceAttribute(String name) {
-        setReferenceAttribute(name, null);
-    }
-
-    /**
-     * Sets the local name and namespace URI of the identifier attribute.
-     * 
-     * @param localName the local name of the attribute or <code>null</code>.
-     * @param uri the URI of the attribute or <code>null</code> if the attribute
-     *        has no namespace URI.
-     */
-    public void setReferenceAttribute(String localName, String uri) {
-        _refName = localName;
-        _refURI = uri;
-    }
-
-    /**
-     * Writes a reference to the specified object into the specified XML
-     * element. The default implementation writes the reference into the 
-     * reference attribute and for the first occurences an identifier 
-     * (counter starting at 1) is written into the identifier attribute. 
-     * 
-     * @param  obj the object for which the reference is written.
-     * @param  xml the output XML element.
-     * @return <code>true</code> if a reference is written;
-     *         <code>false</code> if a new identifier is written.
-     */
-    public boolean writeReference(Object obj, XMLFormat.OutputElement xml)
-            throws XMLStreamException {
-        Index id = (Index) _objectToId.get(obj);
-        if (id == null) { // New identifier.
-            id = Index.valueOf(_counter++);
-            _objectToId.put(obj, id);
-            _tmp.clear().append(id.intValue());
-            if (_idURI == null) {
-                xml.getStreamWriter().writeAttribute(_idName, _tmp);
-            } else {
-                xml.getStreamWriter().writeAttribute(_idURI, _idName, _tmp);
-            }
-            return false;
-        }
-        _tmp.clear().append(id.intValue());
-        if (_refURI == null) {
-            xml._writer.writeAttribute(_refName, _tmp);
-        } else {
-            xml._writer.writeAttribute(_refURI, _refName, _tmp);
-        }
-        return true;
-    }
-
-    private TextBuilder _tmp = new TextBuilder();
-
-    /**
-     * Reads the object referenced by the specified xml input element if any.
-     * The default implementation reads the reference attribute to retrieve 
-     * the object. 
-     * 
-     * @param  xml the input XML element.
-     * @return the referenced object or <code>null</code> if the specified 
-     *         XML input does not have a reference attribute.
-     */
-    public Object readReference(XMLFormat.InputElement xml)
-            throws XMLStreamException {
-        CharArray value = xml._reader.getAttributeValue(_refURI, _refName);
-        if (value == null)
-            return null;
-        int ref = value.toInt();
-        if (ref >= _idToObject.size())
-            throw new XMLStreamException("Reference: " + value + " not found");
-        return _idToObject.get(ref);
-    }
-
-    /**
-     * Creates a reference for the specified object (the identifier
-     * being specified by the input XML element).
-     * The default implementation reads the identifier attribute (if any)
-     * and associates it to the specified object. 
-     * 
-     * @param  obj the object being referenced.
-     * @param  xml the input XML element holding the reference identifier.
-     */
-    public void createReference(Object obj, XMLFormat.InputElement xml)
-            throws XMLStreamException {
-        CharArray value = xml._reader.getAttributeValue(_idURI, _idName);
-        if (value == null)
-            return;
-        int i = value.toInt();
-        if (_idToObject.size() != i)
-            throw new XMLStreamException("Identifier discontinuity detected "
-                    + "(expected " + _idToObject.size() + " found " + i + ")");
-        _idToObject.add(obj);
-    }
-
-    public void reset() {
-        _idName = "id";
-        _idURI = null;
-        _refName = "ref";
-        _refURI = null;
-        _idToObject.clear();
-        _objectToId.clear();
-        _counter = 0;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLSerializable.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLSerializable.java b/commons/marmotta-commons/src/ext/java/javolution/xml/XMLSerializable.java
deleted file mode 100644
index 46cacde..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/xml/XMLSerializable.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2007 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.xml;
-
-import java.io.Serializable;
-
-/**
- * <p> This interface identifies classes supporting XML serialization 
- *     (XML serialization is still possible for classes not implementing this
- *     interface through dynamic {@link XMLBinding} though).</p>
- *     
- * <p> Typically, classes implementing this interface have a protected static
- *     {@link XMLFormat} holding their default XML representation. 
- *     For example:[code]
- *     public final class Complex implements XMLSerializable {
- *       
- *         // Use the cartesien form for the default XML representation.        
- *         protected static final XMLFormat<Complex> XML = new XMLFormat<Complex>(Complex.class) {
- *             public Complex newInstance(Class<Complex> cls, InputElement xml) throws XMLStreamException {
- *                 return Complex.valueOf(xml.getAttribute("real", 0.0), 
- *                                        xml.getAttribute("imaginary", 0.0));
- *             }
- *             public void write(Complex complex, OutputElement xml) throws XMLStreamException {
- *                 xml.setAttribute("real", complex.getReal());
- *                 xml.setAttribute("imaginary", complex.getImaginary());
- *             }
- *             public void read(InputElement xml, Complex complex) {
- *                 // Immutable, deserialization occurs at creation, ref. newIntance(...) 
-*              }
- *         };
- *         ...
- *     }[/code]</p>      
- *     
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 4.2, April 15, 2007
- */
-public interface XMLSerializable extends Serializable {
-
-    // No method. Tagging interface.
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/xml/doc-files/xmlDataBinding.png
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/xml/doc-files/xmlDataBinding.png b/commons/marmotta-commons/src/ext/java/javolution/xml/doc-files/xmlDataBinding.png
deleted file mode 100644
index 46c6efd..0000000
Binary files a/commons/marmotta-commons/src/ext/java/javolution/xml/doc-files/xmlDataBinding.png and /dev/null differ