зеркало из https://github.com/mozilla/pjs.git
223 строки
8.1 KiB
Plaintext
223 строки
8.1 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is Robert Sayre.
|
|
*
|
|
* Portions created by the Initial Developer are Copyright (C) 2005
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
#include "nsIStreamListener.idl"
|
|
|
|
interface nsIInputStream;
|
|
interface nsIRequestObserver;
|
|
interface nsIURI;
|
|
|
|
interface nsISAXContentHandler;
|
|
interface nsISAXDTDHandler;
|
|
interface nsISAXEntityResolver;
|
|
interface nsISAXErrorHandler;
|
|
interface nsISAXLexicalHandler;
|
|
|
|
/**
|
|
* Interface for reading an XML document using callbacks.
|
|
*
|
|
* nsISAXXMLReader is the interface that an XML parser's SAX2
|
|
* driver must implement. This interface allows an application to set
|
|
* and query features and properties in the parser, to register event
|
|
* handlers for document processing, and to initiate a document
|
|
* parse.
|
|
*/
|
|
[scriptable, uuid(5556997e-d816-4218-8b54-803d4261206e)]
|
|
interface nsISAXXMLReader : nsIStreamListener {
|
|
|
|
/**
|
|
* The base URI.
|
|
*/
|
|
attribute nsIURI baseURI;
|
|
|
|
/**
|
|
* If the application does not register a content handler, all
|
|
* content events reported by the SAX parser will be silently
|
|
* ignored.
|
|
*
|
|
* Applications may register a new or different handler in the
|
|
* middle of a parse, and the SAX parser must begin using the new
|
|
* handler immediately.
|
|
*/
|
|
attribute nsISAXContentHandler contentHandler;
|
|
|
|
/**
|
|
* If the application does not register a DTD handler, all DTD
|
|
* events reported by the SAX parser will be silently ignored.
|
|
*
|
|
* Applications may register a new or different handler in the
|
|
* middle of a parse, and the SAX parser must begin using the new
|
|
* handler immediately.
|
|
*/
|
|
attribute nsISAXDTDHandler dtdHandler;
|
|
|
|
|
|
/**
|
|
* If the application does not register an error handler, all
|
|
* error events reported by the SAX parser will be silently ignored;
|
|
* however, normal processing may not continue. It is highly
|
|
* recommended that all SAX applications implement an error handler
|
|
* to avoid unexpected bugs.
|
|
*
|
|
* Applications may register a new or different handler in the
|
|
* middle of a parse, and the SAX parser must begin using the new
|
|
* handler immediately.
|
|
*/
|
|
attribute nsISAXErrorHandler errorHandler;
|
|
|
|
/**
|
|
* If the application does not register a lexical handler, all
|
|
* lexical events (e.g. startDTD) reported by the SAX parser will be
|
|
* silently ignored.
|
|
*
|
|
* Applications may register a new or different handler in the
|
|
* middle of a parse, and the SAX parser must begin using the new
|
|
* handler immediately.
|
|
*/
|
|
attribute nsISAXLexicalHandler lexicalHandler;
|
|
|
|
/**
|
|
* Set the value of a feature flag. NOT CURRENTLY IMPLEMENTED.
|
|
*
|
|
* The feature name is any fully-qualified URI. It is possible
|
|
* for an XMLReader to expose a feature value but to be unable to
|
|
* change the current value. Some feature values may be immutable
|
|
* or mutable only in specific contexts, such as before, during, or
|
|
* after a parse.
|
|
*
|
|
* All XMLReaders are required to support setting
|
|
* http://xml.org/sax/features/namespaces to true and
|
|
* http://xml.org/sax/features/namespace-prefixes to false.
|
|
*
|
|
* @param name String flag for a parser feature.
|
|
* @param value Turn the feature on/off.
|
|
*/
|
|
void setFeature(in AString name, in boolean value);
|
|
|
|
/**
|
|
* Look up the value of a feature flag. NOT CURRENTLY IMPLEMENTED.
|
|
*
|
|
* The feature name is any fully-qualified URI. It is
|
|
* possible for an XMLReader to recognize a feature name but
|
|
* temporarily be unable to return its value.
|
|
* Some feature values may be available only in specific
|
|
* contexts, such as before, during, or after a parse.
|
|
*
|
|
* All XMLReaders are required to recognize the
|
|
* http://xml.org/sax/features/namespaces and the
|
|
* http://xml.org/sax/features/namespace-prefixes feature names.
|
|
*
|
|
* @param name String flag for a parser feature.
|
|
*/
|
|
boolean getFeature(in AString name);
|
|
|
|
/**
|
|
* Set the value of a property. NOT CURRENTLY IMPLEMENTED.
|
|
*
|
|
* The property name is any fully-qualified URI. It is possible
|
|
* for an XMLReader to recognize a property name but to be unable to
|
|
* change the current value. Some property values may be immutable
|
|
* or mutable only in specific contexts, such as before, during, or
|
|
* after a parse.
|
|
*
|
|
* XMLReaders are not required to recognize setting any specific
|
|
* property names, though a core set is defined by SAX2.
|
|
*
|
|
* This method is also the standard mechanism for setting
|
|
* extended handlers.
|
|
*
|
|
* @param name String flag for a parser feature
|
|
* @param value Turn the feature on/off.
|
|
*/
|
|
void setProperty(in AString name, in nsISupports value);
|
|
|
|
/**
|
|
* Look up the value of a property. NOT CURRENTLY IMPLEMENTED.
|
|
*
|
|
* The property name is any fully-qualified URI. It is
|
|
* possible for an XMLReader to recognize a property name but
|
|
* temporarily be unable to return its value.
|
|
* Some property values may be available only in specific
|
|
* contexts, such as before, during, or after a parse.
|
|
*
|
|
* XMLReaders are not required to recognize any specific
|
|
* property names, though an initial core set is documented for
|
|
* SAX2.
|
|
*
|
|
* Implementors are free (and encouraged) to invent their own properties,
|
|
* using names built on their own URIs.
|
|
*
|
|
* @param name The property name, which is a fully-qualified URI.
|
|
* @return The current value of the property.
|
|
*/
|
|
boolean getProperty(in AString name);
|
|
|
|
/**
|
|
*
|
|
* @param str The UTF16 string to be parsed
|
|
* @param contentType The content type of the string (see parseFromStream)
|
|
*
|
|
*/
|
|
void parseFromString(in AString str, in string contentType);
|
|
|
|
/**
|
|
*
|
|
* @param stream The byte stream whose contents are parsed
|
|
* @param charset The character set that was used to encode the byte
|
|
* stream. NULL if not specified.
|
|
* @param contentType The content type of the string - either text/xml,
|
|
* application/xml, or application/xhtml+xml.
|
|
* Must not be NULL.
|
|
*
|
|
*/
|
|
void parseFromStream(in nsIInputStream stream,
|
|
in string charset,
|
|
in string contentType);
|
|
|
|
/**
|
|
* Begin an asynchronous parse. This method initializes the parser,
|
|
* and must be called before any nsIStreamListener methods. It is
|
|
* then the caller's duty to call nsIStreamListener methods to drive
|
|
* the parser. Once this method is called, the caller must not call
|
|
* one of the other parse methods.
|
|
*
|
|
* @param observer The nsIRequestObserver to notify upon start or stop.
|
|
* Can be NULL.
|
|
*/
|
|
void parseAsync(in nsIRequestObserver observer);
|
|
};
|