Package org.eclipse.wst.wsi.internal.core.xml.dom

Source Code of org.eclipse.wst.wsi.internal.core.xml.dom.DOMParser

/*******************************************************************************
* Copyright (c) 2002-2005 IBM Corporation and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*   IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.wst.wsi.internal.core.xml.dom;

import org.apache.xerces.dom.ElementImpl;
import org.apache.xerces.xni.Augmentations;
import org.apache.xerces.xni.NamespaceContext;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xni.XMLAttributes;
import org.apache.xerces.xni.XMLLocator;
import org.apache.xerces.xni.XNIException;
import org.w3c.dom.Element;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;

/**
* This class specializes org.apache.xerces.parsers.DOMParser.
*
* @author Peter  Brittenham (peterbr@us.ibm.com)
* @version 1.0.1
*/
public class DOMParser extends org.apache.xerces.parsers.DOMParser
{
  /**
   * Locator.
   */
  XMLLocator locator = null;

  /* (non-Javadoc)
   * @see org.apache.xerces.xni.XMLDocumentHandler#startDocument(org.apache.xerces.xni.XMLLocator, java.lang.String, org.apache.xerces.xni.NamespaceContext, org.apache.xerces.xni.Augmentations)
   */
  public void startDocument(
    XMLLocator locator,
    String encoding,
    NamespaceContext context,
    Augmentations augs)
    throws XNIException
  {
    this.locator = locator;
    super.startDocument(locator, encoding, context, augs);
  }

  /* (non-Javadoc)
   * @see org.apache.xerces.xni.XMLDocumentHandler#startElement(org.apache.xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augmentations)
   */
  public void startElement(
    QName qname,
    XMLAttributes attributes,
    Augmentations augs)
    throws XNIException
  {
    Element element;
    ElementImpl elementImpl;

    // DEBUG:
    //System.err.println("1-line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber());

    super.startElement(qname, attributes, augs);

    // DEBUG:
    //System.err.println("2-line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber());   

    try
    {
      element = (Element) getProperty(CURRENT_ELEMENT_NODE);

      elementImpl = (ElementImpl) element;
      // Setting the user data with an identifier such as ElementLocation.KEY_NAME
      // may be a long term good idea. The setUserData method with no id is used
      // to support JVMs with alternate versions of Xerces.
      elementImpl.setUserData(new ElementLocation(locator.getLineNumber(), locator.getColumnNumber()));
    }
    catch (ClassCastException cce)
    {
    }
    catch (SAXNotSupportedException snse)
    {
      // DEBUG:
      //System.err.println(snse.toString());
    }
    catch (SAXNotRecognizedException snre)
    {
    }
  }
}
TOP

Related Classes of org.eclipse.wst.wsi.internal.core.xml.dom.DOMParser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.