Zend_Config_Xml permite aos desenvolvedores armazenarem os dados de
        configuração em um formato XML simples e lê-los através de uma sintaxe
        de propriedade de objeto aninhado. O nome do elemento raiz do arquivo ou string
        XML é irrelevante e pode ser escolhido. O primeiro nível dos elementos
        XML corresponde às seções de dados de configuração. O formato
        XML suporta organização hierárquica para o aninhamento dos elementos
        XML abaixo dos elementos de seção-nível. O conteúdo de uma folha de
        elemento XML (leaf) corresponde ao valor de um dado de configuração.
        Herança de seção é suportada por um atributo XML especial chamado
        extends, e o valor deste atributo corresponde à seção a que a
        informação deve ser herdada.
    
Tipo de Retorno
            Os dados de configuração lidos em Zend_Config_Xml são sempre
            retornados como strings. A conversão de dados de strings para outros tipos é deixado
            para os desenvolvedores de acordo com suas necessidades específicas.
        
Exemplo 121. Usando o Zend_Config_Xml
            Este exemplo ilustra uma utilização básica de Zend_Config_Xml
            para carregar dados de configuração de um arquivo XML. Neste
            exemplo, existem dados de configuração, tanto para um sistema de produção como para um
            sistema de testes. Pois os dados de configuração de um sistema de testes são muito
            semelhantes aos de produção, a seção de testes herda da seção de produção. Neste caso,
            a decisão é arbitrária e poderia ter sido escrita de modo inverso, com a seção de
            produção herdando da seção de testes, embora isso possa não ser o caso em situações
            mais complexas. Suponha-se, então, que os dados de configuração a seguir estão
            contidos em /path/to/config.xml:
        
<?xml version="1.0"?>
<configdata>
    <production>
        <webhost>www.example.com</webhost>
        <database>
            <adapter>pdo_mysql</adapter>
            <params>
                <host>db.example.com</host>
                <username>dbuser</username>
                <password>secret</password>
                <dbname>dbname</dbname>
            </params>
        </database>
    </production>
    <staging extends="production">
        <database>
            <params>
                <host>dev.example.com</host>
                <username>devuser</username>
                <password>devsecret</password>
            </params>
        </database>
    </staging>
</configdata>
        Em seguida, suponha que o desenvolvedor do aplicativo necessite dos dados de configuração de testes do arquivo XML. É o simples caso de carregar esses dados especificando o arquivo XML e a seção de testes:
$config = new Zend_Config_Xml('/path/to/config.xml', 'staging');
echo $config->database->params->host;   // prints "dev.example.com"
echo $config->database->params->dbname; // prints "dbname"
    Exemplo 122. Usando os Atributos de Tag no Zend_Config_Xml
            Zend_Config_Xml também suporta outras duas maneiras para definir
            os nós na configuração. Ambas fazem uso de atributos. A partir do momento que os
            atributos extends e value são palavras-chaves
            reservadas (o último através segunda maneira de uso dos atributos), eles não poderão
            ser utilizados. A primeira maneira usar os atributos é adicionar um nó pai, assim eles
            serão interpretados como um filho deste nó:
        
<?xml version="1.0"?>
<configdata>
    <production webhost="www.example.com">
        <database adapter="pdo_mysql">
            <params host="db.example.com" username="dbuser" password="secret"
                    dbname="dbname"/>
        </database>
    </production>
    <staging extends="production">
        <database>
            <params host="dev.example.com" username="devuser"
                    password="devsecret"/>
        </database>
    </staging>
</configdata>
        A outra maneira não encurta realmente a configuração, mas a torna mais fácil para manter, pois você não tem que escrever o nome da tag duas vezes. Você simplesmente cria uma tag vazia com o valor no atributo value:
<?xml version="1.0"?>
<configdata>
    <production>
        <webhost>www.example.com</webhost>
        <database>
            <adapter value="pdo_mysql"/>
            <params>
                <host value="db.example.com"/>
                <username value="dbuser"/>
                <password value="secret"/>
                <dbname value="dbname"/>
            </params>
        </database>
    </production>
    <staging extends="production">
        <database>
            <params>
                <host value="dev.example.com"/>
                <username value="devuser"/>
                <password value="devsecret"/>
            </params>
        </database>
    </staging>
</configdata>
    Strings XML
            Zend_Config_Xml é capaz de carregar uma string
            XML diretamente, por exemplo, uma que foi recuperada de um banco de
            dados. A string é passada como primeiro parâmetro para o construtor e deve começar com
            os caracteres '<?xml':
        
$string = <<<EOT
<?xml version="1.0"?>
<config>
    <production>
        <db>
            <adapter value="pdo_mysql"/>
            <params>
                <host value="db.example.com"/>
            </params>
        </db>
    </production>
    <staging extends="production">
        <db>
            <params>
                <host value="dev.example.com"/>
            </params>
        </db>
    </staging>
</config>
EOT;
$config = new Zend_Config_Xml($string, 'staging');
    Namespace XML do Zend_Config
            Zend_Config vem com sua próprio namespace XML,
            que adiciona funcionalidade adicional ao processo de análise. Para aproveitá-la, você
            tem que definir um namespace com o namespace URI
            http://framework.zend.com/xml/zend-config-xml/1.0/ em seu nó raiz
            de configuração.
        
            Com o namespace habilitado, você pode usar constantes do PHP dentro
            de arquivos de configuração. Além disso, o atributo extends foi
            transferido para um novo namespace e está depreciado no namespace
            NULL. Ele será completamente removido no Zend Framework 2.0.
        
$string = <<<EOT
<?xml version="1.0"?>
<config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
    <production>
        <includePath>
            <zf:const zf:name="APPLICATION_PATH"/>/library</includePath>
        <db>
            <adapter value="pdo_mysql"/>
            <params>
                <host value="db.example.com"/>
            </params>
        </db>
    </production>
    <staging zf:extends="production">
        <db>
            <params>
                <host value="dev.example.com"/>
            </params>
        </db>
    </staging>
</config>
EOT;
define('APPLICATION_PATH', dirname(__FILE__));
$config = new Zend_Config_Xml($string, 'staging');
echo $config->includePath; // Prints "/var/www/something/library"