.. _configure_directive:
``configure``
-------------
Because :term:`ZCML` is XML, and because XML requires a single root tag for
each document, every ZCML file used by Pyramid must contain a ``configure``
container directive, which acts as the root XML tag. It is a "container"
directive because its only job is to contain other directives.
Attributes
~~~~~~~~~~
``xmlns``
The default XML namespace used for subdirectives.
Example
~~~~~~~
.. code-block:: xml
:linenos:
.. _word_on_xml_namespaces:
A Word On XML Namespaces
~~~~~~~~~~~~~~~~~~~~~~~~
Usually, the start tag of the ```` container tag has a
default *XML namespace* associated with it. This is usually
``http://pylonshq.com/pyramid``, named by the ``xmlns`` attribute of
the ``configure`` start tag.
Using the ``http://pylonshq.com/pyramid`` namespace as the default XML
namespace isn't strictly necessary; you can use a different default namespace
as the default. However, if you do, the declaration tags which are defined
by Pyramid such as the ``view`` declaration tag will need to be defined in
such a way that the XML parser that Pyramid uses knows which namespace the
:mod:`pyramid` tags are associated with. For example, the following files
are all completely equivalent:
.. topic:: Use of A Non-Default XML Namespace
.. code-block:: xml
:linenos:
.. topic:: Use of A Per-Tag XML Namespace Without A Default XML Namespace
.. code-block:: xml
:linenos:
For more information about XML namespaces, see `this older, but simple
XML.com article `_.
The conventions in this document assume that the default XML namespace
is ``https://trypyramid.com``.
Alternatives
~~~~~~~~~~~~
None.
See Also
~~~~~~~~
See also :ref:`helloworld_declarative`.