org.xml.sax.ext.Attributes2 Maven / Gradle / Ivy
/*
* Portions Copyright 2000-2008 Sun Microsystems, Inc. All Rights
* Reserved. Use is subject to license terms.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*/
// Attributes2.java - extended Attributes
// http://www.saxproject.org
// Public Domain: no warranty.
// $Id: Attributes2.java,v 1.1.2.1 2004/05/01 08:34:43 jsuttor Exp $
package org.xml.sax.ext;
import org.xml.sax.Attributes;
/**
* SAX2 extension to augment the per-attribute information
* provided though {@link Attributes}.
* If an implementation supports this extension, the attributes
* provided in {@link org.xml.sax.ContentHandler#startElement
* ContentHandler.startElement() } will implement this interface,
* and the http://xml.org/sax/features/use-attributes2
* feature flag will have the value true.
*
* XMLReader implementations are not required to support this
* information, and it is not part of core-only SAX2 distributions.
*
* Note that if an attribute was defaulted (!isSpecified())
* it will of necessity also have been declared (isDeclared())
* in the DTD.
* Similarly if an attribute's type is anything except CDATA, then it
* must have been declared.
*
*
* @since SAX 2.0 (extensions 1.1 alpha)
* @author David Brownell
*/
public interface Attributes2 extends Attributes
{
/**
* Returns false unless the attribute was declared in the DTD.
* This helps distinguish two kinds of attributes that SAX reports
* as CDATA: ones that were declared (and hence are usually valid),
* and those that were not (and which are never valid).
*
* @param index The attribute index (zero-based).
* @return true if the attribute was declared in the DTD,
* false otherwise.
* @exception java.lang.ArrayIndexOutOfBoundsException When the
* supplied index does not identify an attribute.
*/
public boolean isDeclared (int index);
/**
* Returns false unless the attribute was declared in the DTD.
* This helps distinguish two kinds of attributes that SAX reports
* as CDATA: ones that were declared (and hence are usually valid),
* and those that were not (and which are never valid).
*
* @param qName The XML qualified (prefixed) name.
* @return true if the attribute was declared in the DTD,
* false otherwise.
* @exception java.lang.IllegalArgumentException When the
* supplied name does not identify an attribute.
*/
public boolean isDeclared (String qName);
/**
* Returns false unless the attribute was declared in the DTD.
* This helps distinguish two kinds of attributes that SAX reports
* as CDATA: ones that were declared (and hence are usually valid),
* and those that were not (and which are never valid).
*
* Remember that since DTDs do not "understand" namespaces, the
* namespace URI associated with an attribute may not have come from
* the DTD. The declaration will have applied to the attribute's
* qName.
*
* @param uri The Namespace URI, or the empty string if
* the name has no Namespace URI.
* @param localName The attribute's local name.
* @return true if the attribute was declared in the DTD,
* false otherwise.
* @exception java.lang.IllegalArgumentException When the
* supplied names do not identify an attribute.
*/
public boolean isDeclared (String uri, String localName);
/**
* Returns true unless the attribute value was provided
* by DTD defaulting.
*
* @param index The attribute index (zero-based).
* @return true if the value was found in the XML text,
* false if the value was provided by DTD defaulting.
* @exception java.lang.ArrayIndexOutOfBoundsException When the
* supplied index does not identify an attribute.
*/
public boolean isSpecified (int index);
/**
* Returns true unless the attribute value was provided
* by DTD defaulting.
*
*
Remember that since DTDs do not "understand" namespaces, the
* namespace URI associated with an attribute may not have come from
* the DTD. The declaration will have applied to the attribute's
* qName.
*
* @param uri The Namespace URI, or the empty string if
* the name has no Namespace URI.
* @param localName The attribute's local name.
* @return true if the value was found in the XML text,
* false if the value was provided by DTD defaulting.
* @exception java.lang.IllegalArgumentException When the
* supplied names do not identify an attribute.
*/
public boolean isSpecified (String uri, String localName);
/**
* Returns true unless the attribute value was provided
* by DTD defaulting.
*
* @param qName The XML qualified (prefixed) name.
* @return true if the value was found in the XML text,
* false if the value was provided by DTD defaulting.
* @exception java.lang.IllegalArgumentException When the
* supplied name does not identify an attribute.
*/
public boolean isSpecified (String qName);
}