/*******************************************************************************
 * Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the 
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
 * which accompanies this distribution. 
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at 
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     Oracle - initial API and implementation from Oracle TopLink
 ******************************************************************************/  
package org.eclipse.persistence.oxm;

import org.eclipse.persistence.internal.oxm.Root;

/**
 * <p>XMLRoot is used to hold an Object along with the corresponding QName and some other related information.
 * Typically this is used when the object is marshalled/unmarshalled to a QName other than
 * the defaultRootElement set on the XMLDescriptor.</p>
 * 
 * <p>XMLRoot objects can be returned from XMLUnmarshaller unmarshal operations and 
 * can be given to XMLMarshaller.marshal operations.  They may also be in values
 * return by XMLAnyCollectionMappings and XMLAnyObjectMappings.</p>  
 */
public class XMLRoot extends Root {
  
}
