summaryrefslogtreecommitdiff
path: root/parser/xml/nsISAXAttributes.idl
diff options
context:
space:
mode:
Diffstat (limited to 'parser/xml/nsISAXAttributes.idl')
-rw-r--r--parser/xml/nsISAXAttributes.idl150
1 files changed, 150 insertions, 0 deletions
diff --git a/parser/xml/nsISAXAttributes.idl b/parser/xml/nsISAXAttributes.idl
new file mode 100644
index 0000000000..c9b0a8a7e1
--- /dev/null
+++ b/parser/xml/nsISAXAttributes.idl
@@ -0,0 +1,150 @@
+/* -*- 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 "nsISupports.idl"
+
+/**
+ * Interface for a list of XML attributes.
+ *
+ * This interface allows access to a list of attributes in
+ * three different ways:
+ *
+ * 1.) by attribute index;
+ * 2.) by Namespace-qualified name; or
+ * 3.) by XML qualified name.
+ *
+ * The list will not contain attributes that were declared #IMPLIED
+ * but not specified in the start tag. It will also not contain
+ * attributes used as Namespace declarations (xmlns*) unless the
+ * http://xml.org/sax/features/namespace-prefixes feature
+ * is set to true (it is false by default).
+ *
+ * The order of attributes in the list is unspecified.
+ */
+[scriptable, uuid(e347005e-6cd0-11da-be43-001422106990)]
+interface nsISAXAttributes : nsISupports
+{
+ /**
+ * Look up the index of an attribute by Namespace name.
+ * @param uri The Namespace URI, or the empty string
+ * if the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return The index of the attribute, or -1
+ * if it does not appear in the list.
+ */
+ long getIndexFromName(in AString uri, in AString localName);
+
+ /**
+ * Look up the index of an attribute by XML qualified name.
+ * @param qName The qualified name.
+ * @return The index of the attribute, or -1
+ * if it does not appear in the list.
+ */
+ long getIndexFromQName(in AString qName);
+
+ /**
+ * Return the number of attributes in the list. Once you know the
+ * number of attributes, you can iterate through the list.
+ *
+ * @return The number of attributes in the list.
+ */
+ readonly attribute long length;
+
+ /**
+ * Look up an attribute's local name by index.
+ * @param index The attribute index (zero-based).
+ * @return The local name, or null if the index is out of range.
+ */
+ AString getLocalName(in unsigned long index);
+
+ /**
+ * Look up an attribute's XML qualified name by index.
+ * @param index The attribute index (zero-based).
+ * @return The XML qualified name, or the empty string if none is
+ * available, or null if the index is out of range.
+ */
+ AString getQName(in unsigned long index);
+
+ /**
+ * Look up an attribute's type by index. The attribute type is one
+ * of the strings "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN",
+ * "NMTOKENS", "ENTITY", "ENTITIES", or "NOTATION" (always in upper
+ * case). If the parser has not read a declaration for the
+ * attribute, or if the parser does not report attribute types, then
+ * it must return the value "CDATA" as stated in the XML 1.0
+ * Recommendation (clause 3.3.3, "Attribute-Value
+ * Normalization"). For an enumerated attribute that is not a
+ * notation, the parser will report the type as "NMTOKEN".
+ *
+ * @param index The attribute index (zero-based).
+ * @return The attribute's type as a string, or null if the index is
+ * out of range.
+ */
+ AString getType(in unsigned long index);
+
+ /**
+ * Look up an attribute's type by Namespace name.
+ * @param uri The Namespace URI, or the empty string
+ * if the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return The attribute type as a string, or null if the attribute
+ * is not in the list.
+ */
+ AString getTypeFromName(in AString uri, in AString localName);
+
+ /**
+ * Look up an attribute's type by XML qualified name.
+ * @param qName The qualified name.
+ * @return The attribute type as a string, or null if the attribute
+ * is not in the list.
+ */
+ AString getTypeFromQName(in AString qName);
+
+ /**
+ * Look up an attribute's Namespace URI by index.
+ * @param index The attribute index (zero-based).
+ * @return The Namespace URI, or the empty string if none is available,
+ * or null if the index is out of range.
+ */
+ AString getURI(in unsigned long index);
+
+ /**
+ * Look up an attribute's value by index. If the attribute value is
+ * a list of tokens (IDREFS, ENTITIES, or NMTOKENS), the tokens will
+ * be concatenated into a single string with each token separated by
+ * a single space.
+ *
+ * @param index The attribute index (zero-based).
+ * @return The attribute's value as a string, or null if the index is
+ * out of range.
+ */
+ AString getValue(in unsigned long index);
+
+ /**
+ * Look up an attribute's value by Namespace name. If the attribute
+ * value is a list of tokens (IDREFS, ENTITIES, or NMTOKENS), the
+ * tokens will be concatenated into a single string with each token
+ * separated by a single space.
+ *
+ * @param uri The Namespace URI, or the empty string
+ * if the name has no Namespace URI.
+ * @param localName The attribute's local name.
+ * @return The attribute's value as a string, or null if the attribute is
+ * not in the list.
+ */
+ AString getValueFromName(in AString uri, in AString localName);
+
+ /**
+ * Look up an attribute's value by XML qualified (prefixed) name.
+ * If the attribute value is a list of tokens (IDREFS, ENTITIES, or
+ * NMTOKENS), the tokens will be concatenated into a single string
+ * with each token separated by a single space.
+ *
+ * @param qName The qualified (prefixed) name.
+ * @return The attribute's value as a string, or null if the attribute is
+ * not in the list.
+ */
+ AString getValueFromQName(in AString qName);
+};