blob: 2ee0361d3b3b02c88493ef2b520b9b90f5031050 [file] [log] [blame]
/*******************************************************************************
* 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)
{
}
}
}