blob: 61e38f28d29ffe79729784e72388a6ce053bb548 [file] [log] [blame]
package org.relaxng.datatype;
/**
* An interface that must be implemented by caller to
* provide context information that is necessary to
* perform validation of some Datatypes.
*
* @author <a href="mailto:jjc@jclark.com">James Clark</a>
* @author <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a>
*/
public interface ValidationContext {
/**
* Resolves a namespace prefix to the corresponding namespace URI.
*
* This method is used for validating the QName type, for example.
*
* <p>
* If the prefix is "" (empty string), it indicates
* an unprefixed value. The callee
* should resolve it as for an unprefixed
* element, rather than for an unprefixed attribute.
*
* <p>
* If the prefix is "xml", then the callee must resolve
* this prefix into "http://www.w3.org/XML/1998/namespace",
* as defined in the XML Namespaces Recommendation.
*
* @return
* namespace URI of this prefix.
* If the specified prefix is not declared,
* the implementation must return null.
*/
String resolveNamespacePrefix( String prefix );
/**
* Returns the base URI of the context. The null string may be returned
* if no base URI is known.
*/
String getBaseUri();
/**
* Checks if an unparsed entity is declared with the
* specified name.
*
* @return
* true
* if the DTD has an unparsed entity declaration for
* the specified name.
* false
* otherwise.
*/
boolean isUnparsedEntity( String entityName );
/**
* Checks if a notation is declared with the
* specified name.
*
* @return
* true
* if the DTD has a notation declaration for the specified name.
* false
* otherwise.
*/
boolean isNotation( String notationName );
}