summaryrefslogtreecommitdiffstats
path: root/parser/xml/nsISAXXMLReader.idl
diff options
context:
space:
mode:
Diffstat (limited to 'parser/xml/nsISAXXMLReader.idl')
-rw-r--r--parser/xml/nsISAXXMLReader.idl207
1 files changed, 207 insertions, 0 deletions
diff --git a/parser/xml/nsISAXXMLReader.idl b/parser/xml/nsISAXXMLReader.idl
new file mode 100644
index 000000000..8dedcc3f6
--- /dev/null
+++ b/parser/xml/nsISAXXMLReader.idl
@@ -0,0 +1,207 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsIStreamListener.idl"
+
+interface nsIInputStream;
+interface nsIRequestObserver;
+interface nsIURI;
+
+interface nsISAXContentHandler;
+interface nsISAXDTDHandler;
+interface nsISAXEntityResolver;
+interface nsISAXErrorHandler;
+interface nsISAXLexicalHandler;
+interface nsIMozSAXXMLDeclarationHandler;
+
+/**
+ * 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(5b1de802-9091-454f-9972-5753c0d0c70e)]
+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;
+
+ /**
+ * A handler for the (optional) XML declaration of a document.
+ * <?xml version='1.0'?>
+ *
+ * @note This is not part of the SAX standard.
+ */
+ attribute nsIMozSAXXMLDeclarationHandler declarationHandler;
+
+ /**
+ * 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.
+ *
+ * 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.
+ *
+ * @note This is currently supported only for
+ * http://xml.org/sax/features/namespace-prefixes . All other
+ * features will result in a NOT_IMPLEMENTED exception.
+ */
+ void setFeature(in AString name, in boolean value);
+
+ /**
+ * Look up the value of a feature flag.
+ *
+ * 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.
+ *
+ * @note This is currently supported only for
+ * http://xml.org/sax/features/namespace-prefixes . All other
+ * features will result in a NOT_IMPLEMENTED exception.
+ */
+ 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);
+};