17db96d56Sopenharmony_ci:mod:`xml.sax.xmlreader` --- Interface for XML parsers
27db96d56Sopenharmony_ci======================================================
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci.. module:: xml.sax.xmlreader
57db96d56Sopenharmony_ci   :synopsis: Interface which SAX-compliant XML parsers must implement.
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci.. moduleauthor:: Lars Marius Garshol <larsga@garshol.priv.no>
87db96d56Sopenharmony_ci.. sectionauthor:: Martin v. Löwis <martin@v.loewis.de>
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci**Source code:** :source:`Lib/xml/sax/xmlreader.py`
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci--------------
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ciSAX parsers implement the :class:`XMLReader` interface. They are implemented in
157db96d56Sopenharmony_cia Python module, which must provide a function :func:`create_parser`. This
167db96d56Sopenharmony_cifunction is invoked by  :func:`xml.sax.make_parser` with no arguments to create
177db96d56Sopenharmony_cia new  parser object.
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci.. class:: XMLReader()
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci   Base class which can be inherited by SAX parsers.
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci.. class:: IncrementalParser()
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci   In some cases, it is desirable not to parse an input source at once, but to feed
287db96d56Sopenharmony_ci   chunks of the document as they get available. Note that the reader will normally
297db96d56Sopenharmony_ci   not read the entire file, but read it in chunks as well; still :meth:`parse`
307db96d56Sopenharmony_ci   won't return until the entire document is processed. So these interfaces should
317db96d56Sopenharmony_ci   be used if the blocking behaviour of :meth:`parse` is not desirable.
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci   When the parser is instantiated it is ready to begin accepting data from the
347db96d56Sopenharmony_ci   feed method immediately. After parsing has been finished with a call to close
357db96d56Sopenharmony_ci   the reset method must be called to make the parser ready to accept new data,
367db96d56Sopenharmony_ci   either from feed or using the parse method.
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci   Note that these methods must *not* be called during parsing, that is, after
397db96d56Sopenharmony_ci   parse has been called and before it returns.
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ci   By default, the class also implements the parse method of the XMLReader
427db96d56Sopenharmony_ci   interface using the feed, close and reset methods of the IncrementalParser
437db96d56Sopenharmony_ci   interface as a convenience to SAX 2.0 driver writers.
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci
467db96d56Sopenharmony_ci.. class:: Locator()
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci   Interface for associating a SAX event with a document location. A locator object
497db96d56Sopenharmony_ci   will return valid results only during calls to DocumentHandler methods; at any
507db96d56Sopenharmony_ci   other time, the results are unpredictable. If information is not available,
517db96d56Sopenharmony_ci   methods may return ``None``.
527db96d56Sopenharmony_ci
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ci.. class:: InputSource(system_id=None)
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci   Encapsulation of the information needed by the :class:`XMLReader` to read
577db96d56Sopenharmony_ci   entities.
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci   This class may include information about the public identifier, system
607db96d56Sopenharmony_ci   identifier, byte stream (possibly with character encoding information) and/or
617db96d56Sopenharmony_ci   the character stream of an entity.
627db96d56Sopenharmony_ci
637db96d56Sopenharmony_ci   Applications will create objects of this class for use in the
647db96d56Sopenharmony_ci   :meth:`XMLReader.parse` method and for returning from
657db96d56Sopenharmony_ci   EntityResolver.resolveEntity.
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ci   An :class:`InputSource` belongs to the application, the :class:`XMLReader` is
687db96d56Sopenharmony_ci   not allowed to modify :class:`InputSource` objects passed to it from the
697db96d56Sopenharmony_ci   application, although it may make copies and modify those.
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci.. class:: AttributesImpl(attrs)
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci   This is an implementation of the :class:`Attributes` interface (see section
757db96d56Sopenharmony_ci   :ref:`attributes-objects`).  This is a dictionary-like object which
767db96d56Sopenharmony_ci   represents the element attributes in a :meth:`startElement` call. In addition
777db96d56Sopenharmony_ci   to the most useful dictionary operations, it supports a number of other
787db96d56Sopenharmony_ci   methods as described by the interface. Objects of this class should be
797db96d56Sopenharmony_ci   instantiated by readers; *attrs* must be a dictionary-like object containing
807db96d56Sopenharmony_ci   a mapping from attribute names to attribute values.
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ci.. class:: AttributesNSImpl(attrs, qnames)
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_ci   Namespace-aware variant of :class:`AttributesImpl`, which will be passed to
867db96d56Sopenharmony_ci   :meth:`startElementNS`. It is derived from :class:`AttributesImpl`, but
877db96d56Sopenharmony_ci   understands attribute names as two-tuples of *namespaceURI* and
887db96d56Sopenharmony_ci   *localname*. In addition, it provides a number of methods expecting qualified
897db96d56Sopenharmony_ci   names as they appear in the original document.  This class implements the
907db96d56Sopenharmony_ci   :class:`AttributesNS` interface (see section :ref:`attributes-ns-objects`).
917db96d56Sopenharmony_ci
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ci.. _xmlreader-objects:
947db96d56Sopenharmony_ci
957db96d56Sopenharmony_ciXMLReader Objects
967db96d56Sopenharmony_ci-----------------
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_ciThe :class:`XMLReader` interface supports the following methods:
997db96d56Sopenharmony_ci
1007db96d56Sopenharmony_ci
1017db96d56Sopenharmony_ci.. method:: XMLReader.parse(source)
1027db96d56Sopenharmony_ci
1037db96d56Sopenharmony_ci   Process an input source, producing SAX events. The *source* object can be a
1047db96d56Sopenharmony_ci   system identifier (a string identifying the input source -- typically a file
1057db96d56Sopenharmony_ci   name or a URL), a :class:`pathlib.Path` or :term:`path-like <path-like object>`
1067db96d56Sopenharmony_ci   object, or an :class:`InputSource` object. When
1077db96d56Sopenharmony_ci   :meth:`parse` returns, the input is completely processed, and the parser object
1087db96d56Sopenharmony_ci   can be discarded or reset.
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_ci   .. versionchanged:: 3.5
1117db96d56Sopenharmony_ci      Added support of character streams.
1127db96d56Sopenharmony_ci
1137db96d56Sopenharmony_ci   .. versionchanged:: 3.8
1147db96d56Sopenharmony_ci      Added support of path-like objects.
1157db96d56Sopenharmony_ci
1167db96d56Sopenharmony_ci
1177db96d56Sopenharmony_ci.. method:: XMLReader.getContentHandler()
1187db96d56Sopenharmony_ci
1197db96d56Sopenharmony_ci   Return the current :class:`~xml.sax.handler.ContentHandler`.
1207db96d56Sopenharmony_ci
1217db96d56Sopenharmony_ci
1227db96d56Sopenharmony_ci.. method:: XMLReader.setContentHandler(handler)
1237db96d56Sopenharmony_ci
1247db96d56Sopenharmony_ci   Set the current :class:`~xml.sax.handler.ContentHandler`.  If no
1257db96d56Sopenharmony_ci   :class:`~xml.sax.handler.ContentHandler` is set, content events will be
1267db96d56Sopenharmony_ci   discarded.
1277db96d56Sopenharmony_ci
1287db96d56Sopenharmony_ci
1297db96d56Sopenharmony_ci.. method:: XMLReader.getDTDHandler()
1307db96d56Sopenharmony_ci
1317db96d56Sopenharmony_ci   Return the current :class:`~xml.sax.handler.DTDHandler`.
1327db96d56Sopenharmony_ci
1337db96d56Sopenharmony_ci
1347db96d56Sopenharmony_ci.. method:: XMLReader.setDTDHandler(handler)
1357db96d56Sopenharmony_ci
1367db96d56Sopenharmony_ci   Set the current :class:`~xml.sax.handler.DTDHandler`.  If no
1377db96d56Sopenharmony_ci   :class:`~xml.sax.handler.DTDHandler` is set, DTD
1387db96d56Sopenharmony_ci   events will be discarded.
1397db96d56Sopenharmony_ci
1407db96d56Sopenharmony_ci
1417db96d56Sopenharmony_ci.. method:: XMLReader.getEntityResolver()
1427db96d56Sopenharmony_ci
1437db96d56Sopenharmony_ci   Return the current :class:`~xml.sax.handler.EntityResolver`.
1447db96d56Sopenharmony_ci
1457db96d56Sopenharmony_ci
1467db96d56Sopenharmony_ci.. method:: XMLReader.setEntityResolver(handler)
1477db96d56Sopenharmony_ci
1487db96d56Sopenharmony_ci   Set the current :class:`~xml.sax.handler.EntityResolver`.  If no
1497db96d56Sopenharmony_ci   :class:`~xml.sax.handler.EntityResolver` is set,
1507db96d56Sopenharmony_ci   attempts to resolve an external entity will result in opening the system
1517db96d56Sopenharmony_ci   identifier for the entity, and fail if it is not available.
1527db96d56Sopenharmony_ci
1537db96d56Sopenharmony_ci
1547db96d56Sopenharmony_ci.. method:: XMLReader.getErrorHandler()
1557db96d56Sopenharmony_ci
1567db96d56Sopenharmony_ci   Return the current :class:`~xml.sax.handler.ErrorHandler`.
1577db96d56Sopenharmony_ci
1587db96d56Sopenharmony_ci
1597db96d56Sopenharmony_ci.. method:: XMLReader.setErrorHandler(handler)
1607db96d56Sopenharmony_ci
1617db96d56Sopenharmony_ci   Set the current error handler.  If no :class:`~xml.sax.handler.ErrorHandler`
1627db96d56Sopenharmony_ci   is set, errors will be raised as exceptions, and warnings will be printed.
1637db96d56Sopenharmony_ci
1647db96d56Sopenharmony_ci
1657db96d56Sopenharmony_ci.. method:: XMLReader.setLocale(locale)
1667db96d56Sopenharmony_ci
1677db96d56Sopenharmony_ci   Allow an application to set the locale for errors and warnings.
1687db96d56Sopenharmony_ci
1697db96d56Sopenharmony_ci   SAX parsers are not required to provide localization for errors and warnings; if
1707db96d56Sopenharmony_ci   they cannot support the requested locale, however, they must raise a SAX
1717db96d56Sopenharmony_ci   exception.  Applications may request a locale change in the middle of a parse.
1727db96d56Sopenharmony_ci
1737db96d56Sopenharmony_ci
1747db96d56Sopenharmony_ci.. method:: XMLReader.getFeature(featurename)
1757db96d56Sopenharmony_ci
1767db96d56Sopenharmony_ci   Return the current setting for feature *featurename*.  If the feature is not
1777db96d56Sopenharmony_ci   recognized, :exc:`SAXNotRecognizedException` is raised. The well-known
1787db96d56Sopenharmony_ci   featurenames are listed in the module :mod:`xml.sax.handler`.
1797db96d56Sopenharmony_ci
1807db96d56Sopenharmony_ci
1817db96d56Sopenharmony_ci.. method:: XMLReader.setFeature(featurename, value)
1827db96d56Sopenharmony_ci
1837db96d56Sopenharmony_ci   Set the *featurename* to *value*. If the feature is not recognized,
1847db96d56Sopenharmony_ci   :exc:`SAXNotRecognizedException` is raised. If the feature or its setting is not
1857db96d56Sopenharmony_ci   supported by the parser, *SAXNotSupportedException* is raised.
1867db96d56Sopenharmony_ci
1877db96d56Sopenharmony_ci
1887db96d56Sopenharmony_ci.. method:: XMLReader.getProperty(propertyname)
1897db96d56Sopenharmony_ci
1907db96d56Sopenharmony_ci   Return the current setting for property *propertyname*. If the property is not
1917db96d56Sopenharmony_ci   recognized, a :exc:`SAXNotRecognizedException` is raised. The well-known
1927db96d56Sopenharmony_ci   propertynames are listed in the module :mod:`xml.sax.handler`.
1937db96d56Sopenharmony_ci
1947db96d56Sopenharmony_ci
1957db96d56Sopenharmony_ci.. method:: XMLReader.setProperty(propertyname, value)
1967db96d56Sopenharmony_ci
1977db96d56Sopenharmony_ci   Set the *propertyname* to *value*. If the property is not recognized,
1987db96d56Sopenharmony_ci   :exc:`SAXNotRecognizedException` is raised. If the property or its setting is
1997db96d56Sopenharmony_ci   not supported by the parser, *SAXNotSupportedException* is raised.
2007db96d56Sopenharmony_ci
2017db96d56Sopenharmony_ci
2027db96d56Sopenharmony_ci.. _incremental-parser-objects:
2037db96d56Sopenharmony_ci
2047db96d56Sopenharmony_ciIncrementalParser Objects
2057db96d56Sopenharmony_ci-------------------------
2067db96d56Sopenharmony_ci
2077db96d56Sopenharmony_ciInstances of :class:`IncrementalParser` offer the following additional methods:
2087db96d56Sopenharmony_ci
2097db96d56Sopenharmony_ci
2107db96d56Sopenharmony_ci.. method:: IncrementalParser.feed(data)
2117db96d56Sopenharmony_ci
2127db96d56Sopenharmony_ci   Process a chunk of *data*.
2137db96d56Sopenharmony_ci
2147db96d56Sopenharmony_ci
2157db96d56Sopenharmony_ci.. method:: IncrementalParser.close()
2167db96d56Sopenharmony_ci
2177db96d56Sopenharmony_ci   Assume the end of the document. That will check well-formedness conditions that
2187db96d56Sopenharmony_ci   can be checked only at the end, invoke handlers, and may clean up resources
2197db96d56Sopenharmony_ci   allocated during parsing.
2207db96d56Sopenharmony_ci
2217db96d56Sopenharmony_ci
2227db96d56Sopenharmony_ci.. method:: IncrementalParser.reset()
2237db96d56Sopenharmony_ci
2247db96d56Sopenharmony_ci   This method is called after close has been called to reset the parser so that it
2257db96d56Sopenharmony_ci   is ready to parse new documents. The results of calling parse or feed after
2267db96d56Sopenharmony_ci   close without calling reset are undefined.
2277db96d56Sopenharmony_ci
2287db96d56Sopenharmony_ci
2297db96d56Sopenharmony_ci.. _locator-objects:
2307db96d56Sopenharmony_ci
2317db96d56Sopenharmony_ciLocator Objects
2327db96d56Sopenharmony_ci---------------
2337db96d56Sopenharmony_ci
2347db96d56Sopenharmony_ciInstances of :class:`Locator` provide these methods:
2357db96d56Sopenharmony_ci
2367db96d56Sopenharmony_ci
2377db96d56Sopenharmony_ci.. method:: Locator.getColumnNumber()
2387db96d56Sopenharmony_ci
2397db96d56Sopenharmony_ci   Return the column number where the current event begins.
2407db96d56Sopenharmony_ci
2417db96d56Sopenharmony_ci
2427db96d56Sopenharmony_ci.. method:: Locator.getLineNumber()
2437db96d56Sopenharmony_ci
2447db96d56Sopenharmony_ci   Return the line number where the current event begins.
2457db96d56Sopenharmony_ci
2467db96d56Sopenharmony_ci
2477db96d56Sopenharmony_ci.. method:: Locator.getPublicId()
2487db96d56Sopenharmony_ci
2497db96d56Sopenharmony_ci   Return the public identifier for the current event.
2507db96d56Sopenharmony_ci
2517db96d56Sopenharmony_ci
2527db96d56Sopenharmony_ci.. method:: Locator.getSystemId()
2537db96d56Sopenharmony_ci
2547db96d56Sopenharmony_ci   Return the system identifier for the current event.
2557db96d56Sopenharmony_ci
2567db96d56Sopenharmony_ci
2577db96d56Sopenharmony_ci.. _input-source-objects:
2587db96d56Sopenharmony_ci
2597db96d56Sopenharmony_ciInputSource Objects
2607db96d56Sopenharmony_ci-------------------
2617db96d56Sopenharmony_ci
2627db96d56Sopenharmony_ci
2637db96d56Sopenharmony_ci.. method:: InputSource.setPublicId(id)
2647db96d56Sopenharmony_ci
2657db96d56Sopenharmony_ci   Sets the public identifier of this :class:`InputSource`.
2667db96d56Sopenharmony_ci
2677db96d56Sopenharmony_ci
2687db96d56Sopenharmony_ci.. method:: InputSource.getPublicId()
2697db96d56Sopenharmony_ci
2707db96d56Sopenharmony_ci   Returns the public identifier of this :class:`InputSource`.
2717db96d56Sopenharmony_ci
2727db96d56Sopenharmony_ci
2737db96d56Sopenharmony_ci.. method:: InputSource.setSystemId(id)
2747db96d56Sopenharmony_ci
2757db96d56Sopenharmony_ci   Sets the system identifier of this :class:`InputSource`.
2767db96d56Sopenharmony_ci
2777db96d56Sopenharmony_ci
2787db96d56Sopenharmony_ci.. method:: InputSource.getSystemId()
2797db96d56Sopenharmony_ci
2807db96d56Sopenharmony_ci   Returns the system identifier of this :class:`InputSource`.
2817db96d56Sopenharmony_ci
2827db96d56Sopenharmony_ci
2837db96d56Sopenharmony_ci.. method:: InputSource.setEncoding(encoding)
2847db96d56Sopenharmony_ci
2857db96d56Sopenharmony_ci   Sets the character encoding of this :class:`InputSource`.
2867db96d56Sopenharmony_ci
2877db96d56Sopenharmony_ci   The encoding must be a string acceptable for an XML encoding declaration (see
2887db96d56Sopenharmony_ci   section 4.3.3 of the XML recommendation).
2897db96d56Sopenharmony_ci
2907db96d56Sopenharmony_ci   The encoding attribute of the :class:`InputSource` is ignored if the
2917db96d56Sopenharmony_ci   :class:`InputSource` also contains a character stream.
2927db96d56Sopenharmony_ci
2937db96d56Sopenharmony_ci
2947db96d56Sopenharmony_ci.. method:: InputSource.getEncoding()
2957db96d56Sopenharmony_ci
2967db96d56Sopenharmony_ci   Get the character encoding of this InputSource.
2977db96d56Sopenharmony_ci
2987db96d56Sopenharmony_ci
2997db96d56Sopenharmony_ci.. method:: InputSource.setByteStream(bytefile)
3007db96d56Sopenharmony_ci
3017db96d56Sopenharmony_ci   Set the byte stream (a :term:`binary file`) for this input source.
3027db96d56Sopenharmony_ci
3037db96d56Sopenharmony_ci   The SAX parser will ignore this if there is also a character stream specified,
3047db96d56Sopenharmony_ci   but it will use a byte stream in preference to opening a URI connection itself.
3057db96d56Sopenharmony_ci
3067db96d56Sopenharmony_ci   If the application knows the character encoding of the byte stream, it should
3077db96d56Sopenharmony_ci   set it with the setEncoding method.
3087db96d56Sopenharmony_ci
3097db96d56Sopenharmony_ci
3107db96d56Sopenharmony_ci.. method:: InputSource.getByteStream()
3117db96d56Sopenharmony_ci
3127db96d56Sopenharmony_ci   Get the byte stream for this input source.
3137db96d56Sopenharmony_ci
3147db96d56Sopenharmony_ci   The getEncoding method will return the character encoding for this byte stream,
3157db96d56Sopenharmony_ci   or ``None`` if unknown.
3167db96d56Sopenharmony_ci
3177db96d56Sopenharmony_ci
3187db96d56Sopenharmony_ci.. method:: InputSource.setCharacterStream(charfile)
3197db96d56Sopenharmony_ci
3207db96d56Sopenharmony_ci   Set the character stream (a :term:`text file`) for this input source.
3217db96d56Sopenharmony_ci
3227db96d56Sopenharmony_ci   If there is a character stream specified, the SAX parser will ignore any byte
3237db96d56Sopenharmony_ci   stream and will not attempt to open a URI connection to the system identifier.
3247db96d56Sopenharmony_ci
3257db96d56Sopenharmony_ci
3267db96d56Sopenharmony_ci.. method:: InputSource.getCharacterStream()
3277db96d56Sopenharmony_ci
3287db96d56Sopenharmony_ci   Get the character stream for this input source.
3297db96d56Sopenharmony_ci
3307db96d56Sopenharmony_ci
3317db96d56Sopenharmony_ci.. _attributes-objects:
3327db96d56Sopenharmony_ci
3337db96d56Sopenharmony_ciThe :class:`Attributes` Interface
3347db96d56Sopenharmony_ci---------------------------------
3357db96d56Sopenharmony_ci
3367db96d56Sopenharmony_ci:class:`Attributes` objects implement a portion of the :term:`mapping protocol
3377db96d56Sopenharmony_ci<mapping>`, including the methods :meth:`~collections.abc.Mapping.copy`,
3387db96d56Sopenharmony_ci:meth:`~collections.abc.Mapping.get`, :meth:`~object.__contains__`,
3397db96d56Sopenharmony_ci:meth:`~collections.abc.Mapping.items`, :meth:`~collections.abc.Mapping.keys`,
3407db96d56Sopenharmony_ciand :meth:`~collections.abc.Mapping.values`.  The following methods
3417db96d56Sopenharmony_ciare also provided:
3427db96d56Sopenharmony_ci
3437db96d56Sopenharmony_ci
3447db96d56Sopenharmony_ci.. method:: Attributes.getLength()
3457db96d56Sopenharmony_ci
3467db96d56Sopenharmony_ci   Return the number of attributes.
3477db96d56Sopenharmony_ci
3487db96d56Sopenharmony_ci
3497db96d56Sopenharmony_ci.. method:: Attributes.getNames()
3507db96d56Sopenharmony_ci
3517db96d56Sopenharmony_ci   Return the names of the attributes.
3527db96d56Sopenharmony_ci
3537db96d56Sopenharmony_ci
3547db96d56Sopenharmony_ci.. method:: Attributes.getType(name)
3557db96d56Sopenharmony_ci
3567db96d56Sopenharmony_ci   Returns the type of the attribute *name*, which is normally ``'CDATA'``.
3577db96d56Sopenharmony_ci
3587db96d56Sopenharmony_ci
3597db96d56Sopenharmony_ci.. method:: Attributes.getValue(name)
3607db96d56Sopenharmony_ci
3617db96d56Sopenharmony_ci   Return the value of attribute *name*.
3627db96d56Sopenharmony_ci
3637db96d56Sopenharmony_ci.. getValueByQName, getNameByQName, getQNameByName, getQNames available
3647db96d56Sopenharmony_ci.. here already, but documented only for derived class.
3657db96d56Sopenharmony_ci
3667db96d56Sopenharmony_ci
3677db96d56Sopenharmony_ci.. _attributes-ns-objects:
3687db96d56Sopenharmony_ci
3697db96d56Sopenharmony_ciThe :class:`AttributesNS` Interface
3707db96d56Sopenharmony_ci-----------------------------------
3717db96d56Sopenharmony_ci
3727db96d56Sopenharmony_ciThis interface is a subtype of the :class:`Attributes` interface (see section
3737db96d56Sopenharmony_ci:ref:`attributes-objects`).  All methods supported by that interface are also
3747db96d56Sopenharmony_ciavailable on :class:`AttributesNS` objects.
3757db96d56Sopenharmony_ci
3767db96d56Sopenharmony_ciThe following methods are also available:
3777db96d56Sopenharmony_ci
3787db96d56Sopenharmony_ci
3797db96d56Sopenharmony_ci.. method:: AttributesNS.getValueByQName(name)
3807db96d56Sopenharmony_ci
3817db96d56Sopenharmony_ci   Return the value for a qualified name.
3827db96d56Sopenharmony_ci
3837db96d56Sopenharmony_ci
3847db96d56Sopenharmony_ci.. method:: AttributesNS.getNameByQName(name)
3857db96d56Sopenharmony_ci
3867db96d56Sopenharmony_ci   Return the ``(namespace, localname)`` pair for a qualified *name*.
3877db96d56Sopenharmony_ci
3887db96d56Sopenharmony_ci
3897db96d56Sopenharmony_ci.. method:: AttributesNS.getQNameByName(name)
3907db96d56Sopenharmony_ci
3917db96d56Sopenharmony_ci   Return the qualified name for a ``(namespace, localname)`` pair.
3927db96d56Sopenharmony_ci
3937db96d56Sopenharmony_ci
3947db96d56Sopenharmony_ci.. method:: AttributesNS.getQNames()
3957db96d56Sopenharmony_ci
3967db96d56Sopenharmony_ci   Return the qualified names of all attributes.
3977db96d56Sopenharmony_ci
398