|  | 
                            
                  
    
    
    
<!ELEMENT  switchrmi (service?, client?)>
<!ELEMENT  service (transport*, protocol*, object*)>
<!ELEMENT  client (transport*, protocol*, proxy*)>
<!ELEMENT transport (codebase?, lib*, description?)>
<!ATTLIST transport
        name		CDATA	#REQUIRED
        class		CDATA	#REQUIRED
>
<!ELEMENT protocol (codebase?, lib*, description?)>
<!ATTLIST protocol
        name		CDATA	#REQUIRED
        class		CDATA	#REQUIRED
>
<!ELEMENT object ((java|script|remote)+, interface+, (codebase?, lib*), description?)>
<!ATTLIST object
	name		CDATA	#REQUIRED
	scope		(application|session|request) "request"
>
<!ELEMENT java EMPTY>
<!ATTLIST java
	class		CDATA	#REQUIRED
>
<!ELEMENT script EMPTY>
<!ATTLIST script
	source		CDATA	#REQUIRED
	language	(javascript|python) #IMPLIED
>
<!ELEMENT remote EMPTY>
<!ATTLIST remote
	url		CDATA	#REQUIRED
	protocol	CDATA	#REQUIRED
>
<!ELEMENT codebase EMPTY>
<!ATTLIST codebase
	url		CDATA	#REQUIRED
>
<!ELEMENT lib EMPTY>
<!ATTLIST lib
	url		CDATA	#REQUIRED
>
<!ELEMENT interface EMPTY>
<!ATTLIST interface
	class		CDATA	#REQUIRED
>
<!ELEMENT description (#PCDATA)>
<!ELEMENT proxy (remote+, interface+, description?)>
<!ATTLIST proxy
	name		CDATA	#REQUIRED
>
 |