code: /*
   * The contents of this file are subject to the terms
   * of the Common Development and Distribution License
   * (the "License").  You may not use this file except
   * in compliance with the License.
   * 
   * You can obtain a copy of the license at
   * https://jwsdp.dev.java.net/CDDLv1.0.html
   * See the License for the specific language governing
   * permissions and limitations under the License.
   * 
   * When distributing Covered Code, include this CDDL
   * HEADER in each file and include the License file at
   * https://jwsdp.dev.java.net/CDDLv1.0.html  If applicable,
   * add the following below this CDDL HEADER, with the
   * fields enclosed by brackets "[]" replaced with your
   * own identifying information: Portions Copyright [yyyy]
   * [name of copyright owner]
   */
  package com.sun.xml.xsom;
  
  import org.xml.sax.Locator;
  import com.sun.xml.xsom.parser.AnnotationParser;
  
  /**
   * <a href="http://www.w3.org/TR/xmlschema-1/#Annotation_details">
   * XML Schema annotation</a>.
   * 
   * 
   */
  public interface XSAnnotation
  {
      /**
       * Obtains the application-parsed annotation.
       * <p>
       * annotations are parsed by the user-specified
       * {@link AnnotationParser}.
       * 
       * @return may return null
       */
      Object getAnnotation();
  
      /**
       * Sets the value to be returned by {@link #getAnnotation()}.
       *
       * @param o
       *      can be null.
       * @return
       *      old value that was replaced by the <tt>o</tt>.
       */
      Object setAnnotation(Object o);
  
      /**
       * Returns a location information of the annotation.
       */
      Locator getLocator();
  }
  