AddressBook

 view release on metacpan or  search on metacpan

lib/AddressBook/Config.pm  view on Meta::CPAN

package AddressBook::Config;

=head1 NAME

AddressBook::Config - AddressBook configuration object

=head1 SYNOPSIS

The AddressBook::Config object contains the list of cannonical attribute names,
their respective backend database equivalents, attribute metadata, and backend
database attributes.

  $config = AddressBook::Config->new(config_file=>$filename);

AddressBook::Config looks for a configuration file in /etc/AddressBook.conf if 
no config_file parameter is present.

=head1 DESCRIPTION

Configuration is read from an XML configuration file which follows this DTD:

  <?xml version="1.0"?>
  <!DOCTYPE AddressBook_config [
    <!ELEMENT fields (field)>
    <!ELEMENT field  (db)>
    <!ELEMENT db (EMPTY)>
    <!ELEMENT databases (LDAP,LDIF,DBI,PDB,Text,HTML)>
    <!ELEMENT LDAP (EMPTY)>
    <!ELEMENT LDIF (EMPTY)>
    <!ELEMENT DBI (EMPTY)>
    <!ELEMENT PDB (EMPTY)>
    <!ELEMENT Text (EMPTY)>
    <!ELEMENT HTML (EMPTY)>

    <!ATTLIST field 	name 		CDATA 	#REQUIRED
                  	order 		CDATA 	#IMPLIED
                  	type 		(text|textblock|phone|email|url|lurl|boolean) #IMPLIED
                  	values 		CDATA 	#IMPLIED
                  	non_multiple 	CDATA 	#IMPLIED
                  	read_only 	CDATA 	#IMPLIED
                  	calculate 	CDATA 	#IMPLIED
                  	calc_order 	CDATA 	#IMPLIED>

    <!ATTLIST db 	name 		CDATA 	#REQUIRED
                	type 		CDATA 	#REQUIRED
                	order 		CDATA 	#IMPLIED
                	calculate 	CDATA 	#IMPLIED
                	calc_order 	CDATA 	#IMPLIED>

    <!ATTLIST LDAP      key_fields 	CDATA 	#IMPLIED
			hostname        CDATA   #IMPLIED
                     	objectclass 	CDATA 	#IMPLIED
                     	base 		CDATA 	#IMPLIED
                     	dn_calculate 	CDATA 	#IMPLIED
                     	username 	CDATA 	#IMPLIED
                     	password 	CDATA 	#IMPLIED>

    <!ATTLIST LDIF      key_fields 	CDATA 	#IMPLIED
			filename        CDATA   #IMPLIED
                     	objectclass 	CDATA 	#IMPLIED
                     	base 		CDATA 	#IMPLIED
                     	dn_calculate 	CDATA 	#IMPLIED>

    <!ATTLIST DBI       key_fields 	CDATA 	#IMPLIED
                     	table 		CDATA 	#IMPLIED
			dsn             CDATA   #IMPLIED>

    <!ATTLIST PDB       write_format 	CDATA 	#IMPLIED
			intra_attr_sep  CDATA   #IMPLIED
                     	form_format 	CDATA 	#IMPLIED>

    <!ATTLIST HTML      key_fields 	CDATA 	#IMPLIED
			filename        CDATA   #IMPLIED
                     	phone_display 	CDATA 	#IMPLIED>
  ]>



( run in 2.018 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )