<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- -->
<!-- Jonathan: an Open Distributed Processing Environment -->
<!-- Copyright (C) 2000 France Telecom R&D -->
<!-- Copyright (C) 2001 Kelua SA -->
<!-- -->
<!-- This library is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU Lesser General Public -->
<!-- License as published by the Free Software Foundation; either -->
<!-- version 2 of the License, or (at your option) any later version. -->
<!-- -->
<!-- This library is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -->
<!-- Lesser General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU Lesser General Public -->
<!-- License along with this library; if not, write to the Free Software -->
<!-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -->
<!-- -->
<!-- Release: 3.0 -->
<!-- -->
<!-- Contact: jonathan@objectweb.org -->
<!-- -->
<!-- Author: Fabien Delpiano, Bruno Dumant -->
<!-- -->
<!-- -->
<!-- configuration.dtd: DTD for configuration descriptions. -->
<!-- A configuration description may contain any number of elements. -->
<!ELEMENT CONFIGURATION (ELEM*, DOCUMENTATION?)>
<!-- A configuration description has no required attribute. Root -->
<!-- configurations need to provide two attributes: one to describe the Kernel -->
<!-- class to use to return the actual bootstrap configuration, the other -->
<!-- to describe the generated Kernel class. Both should be scoped java class -->
<!-- names. -->
<!ATTLIST CONFIGURATION
generated CDATA #IMPLIED
bootstrap CDATA #IMPLIED
kawana_version CDATA #IMPLIED
>
<!-- Elem describes an element in a configuration. It contains the description -->
<!-- of a property, of an atom, of an assemblage, or of an alias. -->
<!ELEMENT ELEM (PROPERTY | ATOM | ASSEMBLAGE | ALIAS | INCLUDE | CONFIGURATION | SEQUENCE | IMPLICIT_FACTORY)? >
<!-- An element description has one required attributes: its name in the -->
<!-- enclosing configuration. -->
<!ATTLIST ELEM
name CDATA #REQUIRED
>
<!ELEMENT ATOM (ALTERNATIVE*, DOCUMENTATION?)>
<!-- An atom has one required attributes: the name of the class used to -->
<!-- instanciate it. -->
<!ATTLIST ATOM
class CDATA #REQUIRED
contract CDATA #IMPLIED
>
<!ELEMENT ASSEMBLAGE (MY_FACTORY?, MY_CONFIGURATION?, ALTERNATIVE*)>
<!-- Assemblages are used to register implicitly elements by providing a means -->
<!-- to create them on demand. -->
<!ATTLIST ASSEMBLAGE
factory CDATA #IMPLIED
configuration CDATA #IMPLIED
alternative CDATA #IMPLIED
contract CDATA #IMPLIED
>
<!ELEMENT ALIAS (DOCUMENTATION)?>
<!-- Aliases provide a means to designate other objects in the configuration. -->
<!-- The only required attribute is the name of the designated object in the -->
<!-- configuration. -->
<!ATTLIST ALIAS
name CDATA #REQUIRED
>
<!ELEMENT PROPERTY EMPTY>
<!-- Properties are used to register values of a number of primitive types. -->
<!-- A property has two required attributes: the type of the property, and -->
<!-- its value (as a string). -->
<!ATTLIST PROPERTY
type CDATA #REQUIRED
value CDATA #REQUIRED
contract CDATA #IMPLIED
>
<!ELEMENT INCLUDE EMPTY>
<!ATTLIST INCLUDE
file CDATA #REQUIRED
>
<!ELEMENT DOCUMENTATION (#PCDATA)>
<!ELEMENT MY_FACTORY (ALIAS | ATOM | ASSEMBLAGE | IMPLICIT_FACTORY)>
<!ELEMENT MY_CONFIGURATION (ALIAS | CONFIGURATION)>
<!ELEMENT SEQUENCE (ELEM)*>
<!ATTLIST SEQUENCE
elements_type CDATA #REQUIRED
>
<!ELEMENT IMPLICIT_FACTORY (ALTERNATIVE)*>
<!ATTLIST IMPLICIT_FACTORY
contract CDATA #IMPLIED
>
<!ELEMENT ARGUMENT (#PCDATA)>
<!ATTLIST ARGUMENT
type CDATA #REQUIRED
name CDATA #REQUIRED
>
<!ELEMENT SETTER (ARGUMENT)*>
<!ATTLIST SETTER
name CDATA #REQUIRED
>
<!ELEMENT ALTERNATIVE (ARGUMENT | SETTER)*>
<!ATTLIST ALTERNATIVE
id CDATA #REQUIRED
name CDATA #REQUIRED
class CDATA #REQUIRED
init CDATA #IMPLIED
>