I don't know if anyone else is interested, but I was messing around with XML
Spy, editing config.xml, and hit the generate DTD button through idle
curiosity, it produced this which may be useful, or not.
I didn't commit it in case it prove to be more trouble than its worth. If
its popular I will.

I thought it might make a good starting point for rationalising the
elements, attributes and enumerated values in the config into a consistent
set.

d.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Danny Angus (Thought Interactive) -->
<!ELEMENT James (postmaster, servernames, usernames, inboxRepository+)>
<!ELEMENT account EMPTY>
<!ATTLIST account
	login CDATA #REQUIRED
	password CDATA #REQUIRED
>
<!ELEMENT administrator_accounts (account)>
<!ELEMENT algorithm (#PCDATA)>
<!ELEMENT articleIDDomainSuffix (#PCDATA)>
<!ELEMENT articleIDPath (#PCDATA)>
<!ELEMENT attachError (#PCDATA)>
<!ELEMENT attachment (#PCDATA)>
<!ELEMENT authRequired (#PCDATA)>
<!ELEMENT authenticate-client (#PCDATA)>
<!ELEMENT authoritative (#PCDATA)>
<!ELEMENT bind (#PCDATA)>
<!ELEMENT client-sockets (factory)>
<!ELEMENT config (James?, spoolmanager?, dnsserver?, remotemanager?, pop3server?, smtpserver?, nntpserver?, nntpauth?, nntp-repository?, mailstore?, users-store?, database-connections?, objectstorage?, sockets?, thread-manager?, sqlFile?, filestore?)>
<!ELEMENT configuration (spoolPath, threadCount, threadIdleTime)>
<!ELEMENT connectiontimeout (#PCDATA)>
<!ELEMENT data-source (driver, dburl, user, password, max)>
<!ATTLIST data-source
	name CDATA #REQUIRED
	class CDATA #REQUIRED
>
<!ELEMENT data-sources (data-source+)>
<!ELEMENT database-connections (data-sources)>
<!ELEMENT dburl (#PCDATA)>
<!ELEMENT delayTime (#PCDATA)>
<!ELEMENT deliveryThreads (#PCDATA)>
<!ELEMENT destination EMPTY>
<!ATTLIST destination
	URL CDATA #REQUIRED
>
<!ELEMENT dnsserver (servers, authoritative)>
<!ELEMENT driver (#PCDATA)>
<!ELEMENT factory (keystore?)>
<!ATTLIST factory
	name (plain | ssl) #REQUIRED
	class (org.apache.avalon.cornerstone.blocks.sockets.DefaultServerSocketFactory | org.apache.avalon.cornerstone.blocks.sockets.DefaultSocketFactory | org.apache.avalon.cornerstone.blocks.sockets.TLSServerSocketFactory) #REQUIRED
>
<!ELEMENT file (#PCDATA)>
<!ELEMENT filestore (#PCDATA)>
<!ELEMENT gatewayPort (#PCDATA)>
<!ELEMENT handler (#PCDATA | helloName | administrator_accounts | connectiontimeout | authRequired | maxmessagesize | verifyIdentity)*>
<!ELEMENT helloName (#PCDATA)>
<!ATTLIST helloName
	autodetect CDATA #REQUIRED
>
<!ELEMENT inboxRepository (repository)>
<!ELEMENT inline (#PCDATA)>
<!ELEMENT is-daemon (#PCDATA)>
<!ELEMENT keystore (file, password, type, protocol, algorithm, authenticate-client)>
<!ELEMENT mailet ANY>
<!ATTLIST mailet
	match CDATA #REQUIRED
	class CDATA #REQUIRED
>
<!ELEMENT mailetpackage (#PCDATA)>
<!ELEMENT mailetpackages (mailetpackage)>
<!ELEMENT mailstore (repositories, spoolRepository+)>
<!ELEMENT matcherpackage (#PCDATA)>
<!ELEMENT matcherpackages (matcherpackage)>
<!ELEMENT max (#PCDATA)>
<!ELEMENT max-threads (#PCDATA)>
<!ELEMENT maxRetries (#PCDATA)>
<!ELEMENT maxmessagesize (#PCDATA)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT min-spare-threads (#PCDATA)>
<!ELEMENT min-threads (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ELEMENT models (model+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT newsgroup (#PCDATA)>
<!ELEMENT newsgroups (newsgroup+)>
<!ELEMENT nntp-repository (readOnly, rootPath, tempPath, articleIDPath, articleIDDomainSuffix, newsgroups, spool)>
<!ELEMENT nntpauth (authRequired)>
<!ELEMENT nntpserver (port, bind, useTLS, handler)>
<!ELEMENT notice (#PCDATA)>
<!ELEMENT objectstorage (repositories)>
<!ELEMENT outgoing (#PCDATA)>
<!ELEMENT passThrough (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT pop3server (port, bind, useTLS, handler)>
<!ELEMENT port (#PCDATA)>
<!ELEMENT postmaster (#PCDATA)>
<!ELEMENT prefix (#PCDATA)>
<!ELEMENT priority (#PCDATA)>
<!ELEMENT processor (#PCDATA | mailet)*>
<!ATTLIST processor
	name CDATA #REQUIRED
>
<!ELEMENT protocol (#PCDATA)>
<!ELEMENT protocols (protocol)>
<!ELEMENT readOnly (#PCDATA)>
<!ELEMENT recipients (#PCDATA)>
<!ELEMENT remotemanager (port, bind, useTLS, handler)>
<!ELEMENT replyto (#PCDATA)>
<!ELEMENT repositories (repository+)>
<!ELEMENT repository (protocols?, types?, config?, destination?, sqlFile?, models?)>
<!ATTLIST repository
	destinationURL CDATA #REQUIRED
	type (MAIL | SPOOL) #IMPLIED
	class (org.apache.avalon.cornerstone.blocks.masterstore.File_Persistent_Object_Repository | org.apache.avalon.cornerstone.blocks.masterstore.File_Persistent_Stream_Repository | org.apache.james.mailrepository.AvalonMailRepository | org.apache.james.mailrepository.AvalonSpoolRepository | org.apache.james.mailrepository.JDBCMailRepository | org.apache.james.mailrepository.JDBCSpoolRepository | org.apache.james.userrepository.DefaultUsersJdbcRepository | org.apache.james.userrepository.JamesUsersJdbcRepository | org.apache.james.userrepository.ListUsersJdbcRepository | org.apache.james.userrepository.UsersFileRepository) #IMPLIED
	name CDATA #REQUIRED
>
<!ELEMENT repositoryPath (#PCDATA)>
<!ELEMENT rootPath (#PCDATA)>
<!ELEMENT sender (#PCDATA)>
<!ELEMENT server (#PCDATA)>
<!ELEMENT server-sockets (factory+)>
<!ELEMENT servername (#PCDATA)>
<!ELEMENT servernames (servername)>
<!ATTLIST servernames
	autodetect CDATA #REQUIRED
>
<!ELEMENT servers (server)>
<!ELEMENT smtpserver (#PCDATA | port | bind | handler | useTLS)*>
<!ELEMENT sockets (server-sockets, client-sockets)>
<!ELEMENT spool (configuration)>
<!ELEMENT spoolPath (#PCDATA)>
<!ELEMENT spoolRepository (repository)>
<!ELEMENT spoolmanager (threads, mailetpackages, matcherpackages, processor+)>
<!ELEMENT sqlFile (#PCDATA)>
<!ELEMENT static (#PCDATA)>
<!ELEMENT tempPath (#PCDATA)>
<!ELEMENT thread-group (name, priority, is-daemon, max-threads, min-threads, min-spare-threads)>
<!ELEMENT thread-manager (thread-group)>
<!ELEMENT threadCount (#PCDATA)>
<!ELEMENT threadIdleTime (#PCDATA)>
<!ELEMENT threads (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT types (type)>
<!ELEMENT useTLS (#PCDATA)>
<!ELEMENT user (#PCDATA)>
<!ELEMENT usernames EMPTY>
<!ATTLIST usernames
	ignoreCase CDATA #REQUIRED
	enableAliases CDATA #REQUIRED
	enableForwarding CDATA #REQUIRED
>
<!ELEMENT users-store (repository+)>
<!ELEMENT verifyIdentity (#PCDATA)>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to