Provided by: libnet-ldap-perl_0.5800-1_all bug

NAME

       Net::LDAP::Schema - Load and manipulate an LDAP v3 Schema

SYNOPSIS

        use Net::LDAP;
        use Net::LDAP::Schema;

        #
        # Read schema from server
        #
        $ldap = Net::LDAP->new ( $server );
        $ldap->bind ( );
        $schema = $ldap->schema ( );

        #
        # Load from LDIF
        #
        $schema = Net::LDAP::Schema->new;
        $schema->parse ( "schema.ldif" ) or die $schema->error;

DESCRIPTION

       "Net::LDAP::Schema" provides a means to load an LDAP schema and query it for information
       regarding supported objectclasses, attributes and syntaxes.

METHODS

       Where a method is stated as taking the 'name or OID' of a schema item (which may be an
       object class, attribute or syntax) then a case-insensitive name or raw OID (object
       identifier, in dotted numeric string form, e.g. 2.5.4.0) may be supplied.

       Each returned item of schema (eg an attribute definition) is returned in a HASH. The keys
       in the returned HASH are lowercase versions of the keys read from the server. Here's a
       partial list (not all HASHes define all keys) although note that RFC 4512 permits other
       keys as well:

        name
        desc
        obsolete
        sup
        equality
        ordering
        substr
        syntax
        single-value
        collective
        no-user-modification
        usage
        abstract
        structural
        auxiliary
        must
        may
        applies
        aux
        not
        oc
        form

       all_attributes ( )
       all_ditcontentrules ( )
       all_ditstructurerules ( )
       all_matchingrules ( )
       all_matchingruleuses ( )
       all_nameforms ( )
       all_objectclasses ( )
       all_syntaxes ( )
           Returns a list of all the requested types in the schema.

       attribute ( NAME )
       ditcontentrule ( NAME )
       ditstructurerule ( NAME )
       matchingrule ( NAME )
       matchingruleuse ( NAME )
       nameform ( NAME )
       objectclass ( NAME )
       syntax ( NAME )
           Returns a reference to a hash, or "undef" if the schema item does not exist. "NAME"
           can be a name or an OID.

            $attr_href = $schema->attribute( "attrname" );

       dump ( )
           Dump the raw schema information to standard out.

       dump ( FILENAME )
           Dump the raw schema information to a file.

            $result = $schema->dump ( "./schema.dump" );

           If no schema data is returned from directory server, the method will return undefined.
           Otherwise a value of 1 is always returned.

       error ( )
           Returns the last error encountered when parsing the schema.

       may ( OBJECTCLASS )
           Given an argument which is the name or OID of a known object class, returns a list of
           HASHes describing the attributes which are optional in the class.

             @may = $schema->may ( $oc );
             # First optional attr has the name '$may[0]->{name}'

       must ( OBJECTCLASS )
           Given an argument which is the name or OID of a known object class, returns a list of
           HASHes describing the attributes which are mandatory in the class.

             @must = $schema->must ( $oc );

       parse ( MESG )
       parse ( ENTRY )
       parse ( FILENAME )
           Takes a single argument which can be any of, a message object returned from an LDAP
           search, a "Net::LDAP::Entry" object or the name of a file containing an LDIF form of
           the schema.

           If the argument is a message result from a search, "Net::LDAP::Schema" will parse the
           schema from the first entry returned.

           Returns true on success and "undef" on error.

       superclass ( NAME )
           Given an argument which is the name or OID of a known objectclass, returns the list of
           names of the immediate superclasses.

       attribute_syntax ( NAME )
           Given an attribute name, return the actual syntax taking into account attribute
           supertypes.

       matchingrule_for_attribute ( NAME, RULE )
           Given an attribute name and a matching rule ("equality", "substr", etc), return the
           actual rule taking into account attribute supertypes.

SEE ALSO

       Net::LDAP, Net::LDAP::RFC

AUTHORS

       Graham Barr <gbarr@pobox.com> John Berthels <jjb@nexor.co.uk>

       Please report any bugs, or post any suggestions, to the perl-ldap mailing list
       <perl-ldap@perl.org>.

COPYRIGHT

       Copyright (c) 1998-2004 Graham Barr. All rights reserved. This program is free software;
       you can redistribute it and/or modify it under the same terms as Perl itself.