<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.ldap.api.reference.zend-ldap-node-rootdse">
    <title>Zend_Ldap_Node_RootDse</title>

    <para>
        Die folgenden Methoden sind in allen Hersteller-Spezifischen Unterklassen vorhanden.
    </para>

    <para>
        <classname>Zend_Ldap_Node_RootDse</classname> enthält die magischen Zugriffsmethoden
        <methodname>__get()</methodname> und <methodname>__isset()</methodname> um auf die Attribute
        durch Ihren Namen zugreifen zu können. Sie verweisen auf
        <methodname>Zend_Ldap_Node_RootDse::getAttribute()</methodname> und auf
        <methodname>Zend_Ldap_Node_RootDse::existsAttribute()</methodname>.
        <methodname>__set()</methodname> und <methodname>__get()</methodname> sind auch
        implementiert, werfen aber eine <code>BadMethodCallException</code> da Änderungen auf
        RootDSE Nodes nicht erlaubt sind. Weiters implementiert die Klasse <code>ArrayAccess</code>
        für Array-Artigen Zugriff auf die Attribute. <methodname>offsetSet()</methodname> und
        <methodname>offsetUnset()</methodname> werfen auch eine
        <code>BadMethodCallException</code> aus den bekannten Gründen.
    </para>

    <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.table">
        <title>Zend_Ldap_Node_RootDse API</title>

        <tgroup cols="2">
            <thead>
                <row>
                    <entry>Methode</entry>
                    <entry>Beschreibung</entry>
                </row>
            </thead>

            <tbody>
                <row>
                    <entry><code>Zend_Ldap_Dn getDn()</code></entry>

                    <entry>
                        Gibt den DN des aktuellen Nodes als <classname>Zend_Ldap_Dn</classname>
                        zurück.
                    </entry>
                </row>

                <row>
                    <entry><code>string getDnString(string $caseFold)</code></entry>
                    <entry>Gibt den DN des aktuellen Nodes als String zurück.</entry>
                </row>

                <row>
                    <entry><code>array getDnArray(string $caseFold)</code></entry>
                    <entry>Gibt den DN des aktuellen Nodes als Array zurück.</entry>
                </row>

                <row>
                    <entry><code>string getRdnString(string $caseFold)</code></entry>

                    <entry>
                        Gibt den <acronym>RDN</acronym> des aktuellen Nodes als String zurück.
                    </entry>
                </row>

                <row>
                    <entry><code>array getRdnArray(string $caseFold)</code></entry>

                    <entry>
                        Gibt den <acronym>RDN</acronym> des aktuellen Nodes als Array zurück.
                    </entry>
                </row>

                <row>
                    <entry><code>array getObjectClass()</code></entry>
                    <entry>Gibt die objectClass des Nodes zurück.</entry>
                </row>

                <row>
                    <entry><code>string toString()</code></entry>

                    <entry>
                        Gibt den DN des aktuellen Nodes zurück - verweist auf
                        <methodname>Zend_Ldap_Dn::getDnString()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry><code>string __toString()</code></entry>

                    <entry>
                        Castet auf eine String Darstellung - verweist auf
                        <methodname>Zend_Ldap_Dn::toString()</methodname>.
                    </entry>
                </row>

                <row>
                    <entry><code>array toArray(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt eine Array Darstellung des aktuellen Nodes zurück. Wenn
                        <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
                        (der Standardwert ist <constant>TRUE</constant>) werden die System
                        spezifischen Attribute vom Array entfernt. Anders als
                        <methodname>Zend_Ldap_Node_RootDse::getAttributes()</methodname> enthält
                        das produzierte Array den DN mit dem Schlüssel <code>'dn'</code>.
                    </entry>
                </row>

                <row>
                    <entry><code>string toJson(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt eine <acronym>JSON</acronym> Darstellung des aktuellen Nodes zurück
                        indem <methodname>Zend_Ldap_Node_RootDse::toArray()</methodname> verwendet
                        wird.
                    </entry>
                </row>

                <row>
                    <entry><code>array getData(boolean $includeSystemAttributes)</code></entry>

                    <entry>
                        Gibt die Attribute der Nodes zurück. Das Array enthält alle Attribute in
                        Ihrem internen Format (keine Konvertierung).
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>boolean existsAttribute(string $name, boolean
                            $emptyExists)</code>
                    </entry>

                    <entry>
                        Prüft ob ein angegebenes Attribut existiert. Wenn
                        <varname>$emptyExists</varname> <constant>FALSE</constant> ist werden leere
                        Attribute (welche nur array() enthalten) als nicht existierend betrachtet
                        und geben <constant>FALSE</constant> zurück. Wenn
                        <varname>$emptyExists</varname> <constant>TRUE</constant> ist werden leere
                        Attribute als existent betrachtet und geben <varname>$emptyExists</varname>
                        zurück. In diesem Fall gibt die Methode nur dann <constant>FALSE</constant>
                        zurück wenn der Name des Attributs in der Sammlung der Schlüssel fehlt.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>boolean attributeHasValue(string $name, mixed|array $value)</code>
                    </entry>

                    <entry>
                        Prüft ob die gegebenen Werte im Attribut existieren. Die Methode gibt nur
                        dann <constant>TRUE</constant> zurück wenn alle Werte in
                        <varname>$value</varname> im Attribut vorhanden sind. Der Vergleich wird
                        strikt durchgeführt (und respektiert den Datentyp).
                    </entry>
                </row>

                <row>
                    <entry><code>integer count()</code></entry>

                    <entry>
                        Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>mixed getAttribute(string $name, integer|null $index)</code>
                    </entry>

                    <entry>
                        Gibt ein <acronym>LDAP</acronym> Attribut zurück. Die Daten Konvertierung
                        wird angewendet indem
                        <methodname>Zend_Ldap_Attribute::getAttribute()</methodname> verwendet wird.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>array getAttributes(boolean $includeSystemAttributes)</code>
                    </entry>

                    <entry>
                        Gibt alle Attribute des Nodes zurück. Wenn
                        <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
                        (der Standardwert ist <constant>TRUE</constant>), werden die System
                        spezifischen Attribute vom Array entfernt.
                    </entry>
                </row>

                <row>
                    <entry>
                        <code>array|integer getDateTimeAttribute(string $name,
                            integer|null $index)</code>
                    </entry>

                    <entry>
                        Gibt ein <acronym>LDAP</acronym> Datum/Zeit Attribut zurück. Die
                        Datenkonvertierung wird angewendet indem
                        <methodname>Zend_Ldap_Attribute::getDateTimeAttribute()</methodname>
                        verwendet wird.
                    </entry>
                </row>

                <row>
                    <entry><code>Zend_Ldap_Node_RootDse reload(Zend_Ldap $ldap)</code></entry>

                    <entry>
                        Lädt die Attribute des aktuellen Nodes nochmalig vom angegebenen
                        <acronym>LDAP</acronym> Server.
                    </entry>
                </row>

                <row>
                    <entry>
                        <emphasis><code>Zend_Ldap_Node_RootDse create(Zend_Ldap
                            $ldap)</code></emphasis>
                    </entry>

                    <entry>Eine Factory Methode um den RootDSE zu erstellen.</entry>
                </row>

                <row>
                    <entry><code>array getNamingContexts()</code></entry>
                    <entry>Holt die namingContexts.</entry>
                </row>

                <row>
                    <entry><code>string|null getSubschemaSubentry()</code></entry>
                    <entry>Holt den subschemaSubentry.</entry>
                </row>

                <row>
                    <entry>
                        <code>boolean supportsVersion(string|int|array $versions)</code>
                    </entry>

                    <entry>Erkennt ob die <acronym>LDAP</acronym> Version unterstützt wird.</entry>
                </row>

                <row>
                    <entry>
                        <code>boolean supportsSaslMechanism(string|array $mechlist)</code>
                    </entry>

                    <entry>Erkennt ob der sasl Mechanismus unterstützt wird.</entry>
                </row>

                <row>
                    <entry><code>integer getServerType()</code></entry>

                    <entry>
                        Gibt den Server Typ zurück. Retourniert wird

                        <variablelist>
                            <varlistentry>
                                <term><constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_GENERIC</constant></term>

                                <listitem>
                                    <para>für unbekannte <acronym>LDAP</acronym> Server</para>
                                </listitem>
                            </varlistentry>

                            <varlistentry>
                                <term><constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP</constant></term>
                                <listitem><para>für OpenLDAP Server</para></listitem>
                            </varlistentry>

                            <varlistentry>
                                <term><constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY</constant></term>
                                <listitem><para>für Microsoft ActiveDirectory Server</para></listitem>
                            </varlistentry>

                            <varlistentry>
                                <term><constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY</constant></term>
                                <listitem><para>für Novell eDirectory Server</para></listitem>
                            </varlistentry>
                        </variablelist>
                    </entry>
                </row>

                <row>
                    <entry><methodname>Zend_Ldap_Dn getSchemaDn()</methodname></entry>
                    <entry>Gibt das DN Schema zurück.</entry>
                </row>
            </tbody>
        </tgroup>
    </table>

    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.openldap">
        <title>OpenLDAP</title>

        <para>
            Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von
            <classname>Zend_Ldap_Node_RootDse_OpenLdap</classname> angewendet werden.
        </para>

        <note>
            <para>
                Sehen Sie unter <ulink url="http://www.zytrax.com/books/ldap/ch3/#operational">LDAP
                    Operational Attributes and Objects</ulink> für Informationen über Attribute von
                OpenLDAP RootDSE.
            </para>
        </note>

        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.openldap.table">
            <title>Zend_Ldap_Node_RootDse_OpenLdap API</title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Methode</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><code>integer getServerType()</code></entry>

                        <entry>
                            Holt den Servertyp. Gibt
                            <constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_OPENLDAP</constant>
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><code>string|null getConfigContext()</code></entry>
                        <entry>Holt den configContext.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getMonitorContext()</code></entry>
                        <entry>Holt den monitorContext.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsControl(string|array $oids)</code></entry>
                        <entry>Erkennt ob control unterstützt wird.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsExtension(string|array $oids)</code></entry>
                        <entry>Erkennt ob extension unterstützt wird.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsFeature(string|array $oids)</code></entry>
                        <entry>Erkennt ob feature unterstützt wird.</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>
    </sect4>

    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.activedirectory">
        <title>ActiveDirectory</title>

        <para>
            Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von
            <classname>Zend_Ldap_Node_RootDse_ActiveDirectory</classname> angewendet werden.
        </para>

        <note>
            <para>
                Sehen Sie unter <ulink
                    url="http://msdn.microsoft.com/en-us/library/ms684291(VS.85).aspx">
                    RootDSE</ulink> für Informationen über Attribute von Microsoft ActiveDirectory
                RootDSE.
            </para>
        </note>

        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.activedirectory.table">
            <title>Zend_Ldap_Node_RootDse_ActiveDirectory API</title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Methode</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><code>integer getServerType()</code></entry>

                        <entry>
                            Holt den Server Typ. Gibt
                            <constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_ACTIVEDIRECTORY</constant>
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><code>string|null getConfigurationNamingContext()</code></entry>
                        <entry>Holt configurationNamingContext.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getCurrentTime()</code></entry>
                        <entry>Holt currentTime.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDefaultNamingContext()</code></entry>
                        <entry>Holt defaultNamingContext.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDnsHostName()</code></entry>
                        <entry>Holt dnsHostName.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDomainControllerFunctionality()</code></entry>
                        <entry>Holt domainControllerFunctionality.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDomainFunctionality()</code></entry>
                        <entry>Holt domainFunctionality.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDsServiceName()</code></entry>
                        <entry>Holt dsServiceName.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getForestFunctionality()</code></entry>
                        <entry>Holt forestFunctionality.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getHighestCommittedUSN()</code></entry>
                        <entry>Holt highestCommittedUSN.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getIsGlobalCatalogReady()</code></entry>
                        <entry>Holt isGlobalCatalogReady.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getIsSynchronized()</code></entry>
                        <entry>Holt isSynchronized.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getLdapServiceName()</code></entry>
                        <entry>Holt ldapServiceName.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getRootDomainNamingContext()</code></entry>
                        <entry>Holt rootDomainNamingContext.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getSchemaNamingContext()</code></entry>
                        <entry>Holt schemaNamingContext.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getServerName()</code></entry>
                        <entry>Holt serverName.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsCapability(string|array $oids)</code></entry>
                        <entry>Erkennt ob capability unterstützt wird.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsControl(string|array $oids)</code></entry>
                        <entry>Erkennt ob control unterstützt wird.</entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsPolicy(string|array $policies)</code></entry>
                        <entry>Erkennt ob version unterstützt wird.</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>
    </sect4>

    <sect4 id="zend.ldap.api.reference.zend-ldap-node-rootdse.edirectory">
        <title>eDirectory</title>

        <para>
            Zusätzlich können die üblichen Methoden von oben auch auf Instanzen von
            <code>Zend_Ldap_Node_RootDse_eDirectory</code> angewendet werden.
        </para>

        <note>
            <para>
                Sehen Sie auf <ulink
                    url="http://www.novell.com/documentation/edir88/edir88/index.html?page=/documentation/edir88/edir88/data/ah59jqq.html">Getting
                    Information about the <acronym>LDAP</acronym> Server</ulink> für
                Informationen über Attribute von Novell eDirectory RootDSE.
            </para>
        </note>

        <table id="zend.ldap.api.reference.zend-ldap-node-rootdse.edirectory.table">
            <title>Zend_Ldap_Node_RootDse_eDirectory API</title>

            <tgroup cols="2">
                <thead>
                    <row>
                        <entry>Methode</entry>
                        <entry>Beschreibung</entry>
                    </row>
                </thead>

                <tbody>
                    <row>
                        <entry><code>integer getServerType()</code></entry>

                        <entry>
                            Holt den Server Typ. Gibt
                            <constant>Zend_Ldap_Node_RootDse::SERVER_TYPE_EDIRECTORY</constant>
                            zurück.
                        </entry>
                    </row>

                    <row>
                        <entry><code>boolean supportsExtension(string|array $oids)</code></entry>
                        <entry>Erkennt ob extension unterstützt wird.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getVendorName()</code></entry>
                        <entry>Holt vendorName.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getVendorVersion()</code></entry>
                        <entry>Holt vendorVersion.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getDsaName()</code></entry>
                        <entry>Holt dsaName.</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsErrors()</code></entry>
                        <entry>Holt die Server Statistik "errors".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsSecurityErrors()</code></entry>
                        <entry>Holt die Server Statistik "securityErrors".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsChainings()</code></entry>
                        <entry>Holt die Server Statistik "chainings".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsReferralsReturned()</code></entry>
                        <entry>Holt die Server Statistik "referralsReturned".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsExtendedOps()</code></entry>
                        <entry>Holt die Server Statistik "extendedOps".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsAbandonOps()</code></entry>
                        <entry>Holt die Server Statistik "abandonOps".</entry>
                    </row>

                    <row>
                        <entry><code>string|null getStatisticsWholeSubtreeSearchOps()</code></entry>
                        <entry>Holt die Server Statistik "wholeSubtreeSearchOps".</entry>
                    </row>
                </tbody>
            </tgroup>
        </table>
    </sect4>
</sect3>
