Net::LDAP::Schema - Load and manipulate an LDAP v3 Schema
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;
Net::LDAP::Schema provides a means to load an LDAP schema and query it
for information regarding supported objectclasses, attributes and syntaxes.
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 lowercased versions of the keys read from the server. Here's a partial list (not all HASHes define all keys) although note that RFC 2252 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
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 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.
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}'
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 );
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.
equality,
substr, etc), return the actual rule taking into account attribute
supertypes.
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 (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.