summaryrefslogtreecommitdiff
path: root/modules/CIAO/docs/XML
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/docs/XML')
-rw-r--r--modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd93
-rw-r--r--modules/CIAO/docs/XML/componentassembly.dtd367
-rw-r--r--modules/CIAO/docs/XML/corbacomponent.dtd316
-rw-r--r--modules/CIAO/docs/XML/properties.dtd87
-rw-r--r--modules/CIAO/docs/XML/softpkg.dtd220
5 files changed, 1083 insertions, 0 deletions
diff --git a/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
new file mode 100644
index 00000000000..7877afe2151
--- /dev/null
+++ b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
@@ -0,0 +1,93 @@
+<!--
+ $Id$
+
+ DTD for CIAO ComponentAssembly real-time extension.
+ The extension for this type of XML document should be .RTD
+
+ A component server can be associated to one conforming XML
+ descriptor file of this DTD via the <extension> tag under
+ <hostcollocation>, <processcollocation> as
+
+ <extension class="RT-CAD-EXT"
+ origin="CIAO">pathname_to_xml_file.xml</extension>
+
+ The root element is <rtcad-ext>.
+
+ The <extension> tag under <homeplacement> element can be used to
+ specify the <rtpolicyset> named in this file (using rtpolicyset's
+ id attribute.) For example,
+
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">IDREF_of_some_rtpolicyset</extension>
+
+-->
+
+<!ELEMENT rtcad_ext ( rtresources?, rtpolicyset+ ) >
+
+<!-- RT Resources grammar definitions -->
+
+<!ELEMENT rtresources (threadpool | threadpoolwithlanes | connectionbands)* >
+
+<!ELEMENT threadpool EMPTY>
+<!ATTLIST threadpool
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED
+ priority CDATA #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT threadpoolwithlanes (lane+) >
+<!ATTLIST threadpoolwithlanes
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ borrowing (yes | no) #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT lane EMPTY>
+<!ATTLIST lane
+ priority CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED >
+
+<!ELEMENT connectionbands (band+) >
+<!ATTLIST connectionbands
+ id ID #REQUIRED >
+
+<!ELEMENT band EMPTY>
+<!ATTLIST band
+ low CDATA #REQUIRED
+ high CDATA #REQUIRED >
+
+<!-- RT Policy_Set grammar definitions -->
+<!-- Each type of policy in rtpoliyset can only appear once -->
+<!ELEMENT rtpolicyset (priority_model_policy,
+ threadpool_policy,
+ banded_connection_policy)+ >
+<!ATTLIST rtpolicyset
+ id ID #REQUIRED>
+
+<!ELEMENT priority_model_policy EMPTY>
+<!ATTLIST priority_model_policy
+ type (server_declared | client_propagated) #REQUIRED
+ priority CDATA #REQUIRED>
+
+<!ELEMENT threadpool_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ either <threadpool> or <threadpoollanes> element
+-->
+<!ATTLIST threadpool_policy
+ idref IDREF #REQUIRED>
+
+<!ELEMENT banded_connection_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ <connectionbands> element.
+-->
+<!ATTLIST banded_connection_policy
+ idref IDREF #REQUIRED> \ No newline at end of file
diff --git a/modules/CIAO/docs/XML/componentassembly.dtd b/modules/CIAO/docs/XML/componentassembly.dtd
new file mode 100644
index 00000000000..d61fb47505f
--- /dev/null
+++ b/modules/CIAO/docs/XML/componentassembly.dtd
@@ -0,0 +1,367 @@
+<!-- DTD for Component Assembly Descriptor. The root element
+ is <componentassembly>. Elements are listed
+ alphabetically.
+ -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change slightly when XLL is finalized.
+ -->
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+" >
+
+<!ELEMENT componentassembly
+ ( description?
+ , componentfiles
+ , partitioning
+ , connections?
+ , extension*
+ ) >
+<!ATTLIST componentassembly
+ id ID #REQUIRED
+ derivedfrom CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT componentfile
+ ( fileinarchive
+ | codebase
+ | link
+ ) >
+<!ATTLIST componentfile
+ id ID #REQUIRED
+ type CDATA #IMPLIED >
+
+<!ELEMENT componentfileref EMPTY >
+<!ATTLIST componentfileref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentfiles
+ ( componentfile+
+ ) >
+
+<!ELEMENT componentimplref EMPTY >
+<!ATTLIST componentimplref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentinstantiation
+ ( usagename?
+ , componentproperties?
+ , registercomponent*
+ , extension*
+ ) >
+<!ATTLIST componentinstantiation
+ id ID #REQUIRED >
+
+<!ELEMENT componentinstantiationref EMPTY >
+<!ATTLIST componentinstantiationref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT componentsupportedinterface
+ ( componentinstantiationref
+ | findby
+ )>
+
+<!ELEMENT connectevent
+ ( ( consumesport
+ | existinginterface
+ )
+ , ( emitsport
+ | publishesport
+ )
+ ) >
+<!ATTLIST connectevent
+ id ID #IMPLIED >
+
+<!ELEMENT connecthomes
+ ( proxyhome
+ , destinationhome
+ ) >
+<!ATTLIST connecthomes
+ id ID #IMPLIED >
+
+<!ELEMENT connectinterface
+ ( usesport
+ , ( providesport
+ | componentsupportedinterface
+ | existinginterface
+ | homeinterface
+ )
+ ) >
+<!ATTLIST connectinterface
+ id ID #IMPLIED >
+
+<!ELEMENT connections
+ ( connectinterface
+ | connectevent
+ | connecthomes
+ | extension
+ )* >
+
+<!ELEMENT consumesidentifier ( #PCDATA ) >
+
+<!ELEMENT consumesport
+ ( consumesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT destination ( #PCDATA ) >
+
+<!ELEMENT destinationhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT emitsidentifier ( #PCDATA ) >
+
+<!ELEMENT emitsport
+ ( emitsidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT executableplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , invocation?
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST executableplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT existinginterface
+ ( findby )>
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is independent of an archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT findby
+ ( namingservice
+ | stringifiedobjectref
+ | traderquery
+ | homefinder
+ | extension
+ ) >
+
+<!ELEMENT homefinder EMPTY >
+<!ATTLIST homefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT homeinterface
+ ( homeplacementref
+ | findby
+ )>
+
+<!ELEMENT homeplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , homeproperties?
+ , componentproperties?
+ , registerwithhomefinder*
+ , registerwithnaming*
+ , registerwithtrader*
+ , componentinstantiation*
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST homeplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT homeplacementref EMPTY >
+<!ATTLIST homeplacementref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT hostcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | executableplacement
+ | processcollocation
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST hostcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT impltype EMPTY >
+<!ATTLIST impltype
+ language CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT invocation EMPTY >
+<!ATTLIST invocation
+ args CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT namingservice EMPTY >
+<!ATTLIST namingservice
+ name CDATA #REQUIRED >
+
+<!ELEMENT partitioning
+ ( homeplacement
+ | executableplacement
+ | processcollocation
+ | hostcollocation
+ | extension
+ )* >
+
+<!ELEMENT processcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST processcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT providesidentifier ( #PCDATA ) >
+
+<!ELEMENT providesport
+ ( providesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT proxyhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT publishesidentifier ( #PCDATA ) >
+
+<!ELEMENT publishesport
+ ( publishesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT registercomponent
+ ( ( providesidentifier
+ | consumesidentifier
+ )?
+ , ( registerwithnaming
+ | registerwithtrader
+ )+
+ ) >
+
+<!ELEMENT registerwithhomefinder EMPTY >
+<!ATTLIST registerwithhomefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT registerwithnaming EMPTY >
+<!ATTLIST registerwithnaming
+ name CDATA #IMPLIED >
+
+<!ELEMENT registerwithtrader
+ ( traderexport ) >
+<!ATTLIST registerwithtrader
+ tradername CDATA #IMPLIED >
+
+<!-- DEVNOTE: is tradername necessary? -->
+<!-- DEVNOTE: Should trader properties be specified in component file?
+ And in assembly file? -->
+
+<!ELEMENT stringifiedobjectref ( #PCDATA ) >
+
+<!ELEMENT traderconstraint ( #PCDATA ) >
+
+<!ELEMENT traderexport
+ ( traderservicetypename
+ , traderproperties
+ ) >
+
+<!ELEMENT traderpolicy
+ ( traderpolicyname
+ , traderpolicyvalue
+ ) >
+
+<!ELEMENT traderpolicyname ( #PCDATA ) >
+
+<!ELEMENT traderpolicyvalue ( #PCDATA ) >
+
+<!ELEMENT traderpreference ( #PCDATA ) >
+
+<!ELEMENT traderproperties
+ ( traderproperty+ ) >
+
+<!ELEMENT traderproperty
+ ( traderpropertyname
+ , traderpropertyvalue
+ ) >
+
+<!ELEMENT traderpropertyname ( #PCDATA ) >
+
+<!ELEMENT traderpropertyvalue ( #PCDATA ) >
+
+<!ELEMENT traderquery
+ ( traderservicetypename
+ , traderconstraint
+ , traderpreference?
+ , traderpolicy*
+ , traderspecifiedprop*
+ ) >
+
+<!ELEMENT traderservicetypename ( #PCDATA ) >
+
+<!ELEMENT traderspecifiedprop ( #PCDATA ) >
+
+<!ELEMENT usagename ( #PCDATA ) >
+
+<!ELEMENT usesidentifier ( #PCDATA ) >
+
+<!ELEMENT usesport
+ ( usesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
diff --git a/modules/CIAO/docs/XML/corbacomponent.dtd b/modules/CIAO/docs/XML/corbacomponent.dtd
new file mode 100644
index 00000000000..fd5ec98f377
--- /dev/null
+++ b/modules/CIAO/docs/XML/corbacomponent.dtd
@@ -0,0 +1,316 @@
+<!-- DTD for CORBA Component Descriptor. The root element is
+ <corbacomponent>. Elements are listed alphabetically.
+-->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT accessmode EMPTY>
+<!ATTLIST accessmode
+ mode (READ_ONLY|READ_WRITE) #REQUIRED >
+
+<!ELEMENT componentfeatures
+ ( inheritscomponent?
+ , supportsinterface*
+ , ports
+ , operationpolicies?
+ , extension*
+ ) >
+<!ATTLIST componentfeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT componentkind
+ ( service
+ | session
+ | process
+ | entity
+ | unclassified
+ ) >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT componentrepid EMPTY >
+<!ATTLIST componentrepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT containermanagedpersistence
+ ( storagehome
+ , pssimplementation?
+ , accessmode
+ , psstransaction
+ , params?
+ ) >
+
+<!ELEMENT configurationcomplete EMPTY >
+<!ATTLIST configurationcomplete
+ set ( true | false ) #REQUIRED >
+
+<!ELEMENT consumes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST consumes
+ consumesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT corbacomponent
+ ( corbaversion
+ , cormponentrepid
+ , homerepid
+ , componentkind
+ , interop?
+ , transaction?
+ , security?
+ , threading
+ , configurationcomplete
+ , extendedpoapolicy*
+ , repository?
+ , segment*
+ , componentproperties?
+ , homeproperties?
+ , homefeatures+
+ , componentfeatures+
+ , interface*
+ , extension*
+ ) >
+
+<!ELEMENT corbaversion (#PCDATA) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT emits
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST emits
+ emitsname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT entity
+ ( servant ) >
+
+<!ELEMENT eventpolicy EMPTY>
+<!ATTLIST eventpolicy
+ policy ( normal | default | transaction ) #IMPLIED>
+
+<!ELEMENT extendedpoapolicy EMPTY>
+<!ATTLIST extendedpoapolicy
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the
+ archive. If the file is in another archive then link is used to
+ point to the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT homefeatures
+ ( inheritshome?
+ , operationpolicies?
+ , extension* ) >
+<!ATTLIST homefeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT homerepid EMPTY >
+<!ATTLIST homerepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT inheritscomponent EMPTY>
+<!ATTLIST inheritscomponent
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritshome EMPTY>
+<!ATTLIST inheritshome
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritsinterface EMPTY>
+<!ATTLIST inheritsinterface
+ repid CDATA #REQUIRED>
+
+<!ELEMENT ins EMPTY>
+<!ATTLIST ins
+ name CDATA #REQUIRED >
+
+<!ELEMENT interface
+ ( inheritsinterface*
+ , operationpolicies? ) >
+<!ATTLIST interface
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT interop EMPTY>
+<!ATTLIST interop
+ type CDATA #REQUIRED
+ direction ( hasview | isview ) #REQUIRED
+ descriptor CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT objref EMPTY>
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT operation
+ ( transaction?
+ , requiredrights? ) >
+<!ATTLIST operation
+ name CDATA #REQUIRED >
+
+<!-- an operation name of "*" specifies all operations in the current
+scope -->
+<!ELEMENT operationpolicies
+ ( operation+ ) >
+
+<!ELEMENT param EMPTY >
+<!ATTLIST param
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!ELEMENT params (param+) >
+
+<!ELEMENT poapolicies EMPTY>
+<!ATTLIST poapolicies
+ thread (ORB_CTRL_MODEL | SINGLE_THREAD_SAFE ) #REQUIRED
+ lifespan (TRANSIENT | PERSISTENT ) #REQUIRED
+ iduniqueness (UNIQUE_ID | MULTIPLE_ID) #REQUIRED
+ idassignment (USER_ID | SYSTEM_ID) #REQUIRED
+ servantretention (RETAIN | NON_RETAIN) #REQUIRED
+ requestprocessing (USE_ACTIVE_OBJECT_MAP_ONLY
+ |USE_DEFAULT_SERVANT
+ |USE_SERVANT_MANAGER) #REQUIRED
+ implicitactivation (IMPLICIT_ACTIVATION
+ |NON_IMPLICIT_ACTIVATION) #REQUIRED >
+
+<!ELEMENT ports
+ ( uses
+ | provides
+ | emits
+ | publishes
+ | consumes
+ )* >
+
+<!ELEMENT process
+ ( servant ) >
+
+<!ELEMENT provides
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST provides
+ providesname CDATA #REQUIRED
+ repid CDATA #REQUIRED
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT pssimplementation EMPTY>
+<!ATTLIST pssimplementation
+ id CDATA #REQUIRED >
+
+<!ELEMENT psstransaction (psstransactionisolationlevel?) >
+<!ATTLIST psstransaction
+ policy (TRANSACTIONAL|NON_TRANSACTIONAL) #REQUIRED >
+
+<!ELEMENT psstransactionisolationlevel EMPTY>
+<!ATTLIST psstransactionisolationlevel
+ level (READ_UNCOMMITTED|READ_COMMITTED|REPEATABLE_READ|SERIALIZABLE)
+ #REQUIRED >
+
+<!ELEMENT publishes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST publishes
+ publishesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT requiredrights
+ ( right* ) >
+
+<!ELEMENT right
+ ( description? ) >
+<!ATTLIST right
+ name CDATA #REQUIRED >
+
+<!ELEMENT security
+ ( requiredrights? ) >
+<!ATTLIST security
+ rightsfamily CDATA #REQUIRED
+ rightscombinator (secallrights | secanyrights) #REQUIRED >
+
+<!ELEMENT segment
+ ( segmentmember+
+ , containermanagedpersistence?
+ , extension*
+ ) >
+<!ATTLIST segment
+ name CDATA #REQUIRED
+ segmenttag CDATA #REQUIRED >
+
+<!ELEMENT segmentmember EMPTY>
+<!ATTLIST segmentmember
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT servant EMPTY >
+<!ATTLIST servant
+ lifetime (component|method|transaction|container) #REQUIRED >
+
+<!ELEMENT service EMPTY >
+
+<!ELEMENT session
+ ( servant ) >
+
+<!ELEMENT storagehome EMPTY>
+<!ATTLIST storagehome
+ id CDATA #REQUIRED >
+
+<!ELEMENT supportsinterface
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST supportsinterface
+ repid CDATA #REQUIRED >
+
+<!ELEMENT threading EMPTY>
+<!ATTLIST threading
+ policy ( serialize | multithread ) #REQUIRED >
+
+<!ELEMENT transaction EMPTY >
+<!ATTLIST transaction
+ use (self-managed|not-supported|required|supports|requiresnew|
+ mandatory|never) #REQUIRED >
+<!ELEMENT unclassified
+ ( poapolicies ) >
+
+<!ELEMENT uses ( extension* ) >
+<!ATTLIST uses
+ usesname CDATA #REQUIRED
+ repid CDATA #REQUIRED >
diff --git a/modules/CIAO/docs/XML/properties.dtd b/modules/CIAO/docs/XML/properties.dtd
new file mode 100644
index 00000000000..adfe8699fb7
--- /dev/null
+++ b/modules/CIAO/docs/XML/properties.dtd
@@ -0,0 +1,87 @@
+<!-- DTD for CORBA Component property file. The root element
+ is <properties>. Elements are listed alphabetically.
+-->
+
+<!ELEMENT choice ( #PCDATA ) >
+
+<!ELEMENT choices ( choice | range )+ ) >
+
+<!ELEMENT defaultvalue ( #PCDATA ) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT value ( #PCDATA ) >
+
+<!ELEMENT properties
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+
+<!ELEMENT range (value, value) >
+
+<!ELEMENT simple
+ ( description?
+ , value
+ , choices?
+ , defaultvalue?
+ ) >
+<!ATTLIST simple
+ name CDATA #IMPLIED
+ type ( boolean
+ | char
+ | double
+ | float
+ | short
+ | long
+ | objref
+ | octet
+ | string
+ | ulong
+ | ushort
+ | longlong
+ | ulonglong
+ | wchar
+ | wstring
+ | fixed
+ ) #REQUIRED >
+
+<!ELEMENT sequence
+ ( description?
+ , ( simple*
+ | struct*
+ | sequence*
+ | valuetype*
+ )
+ ) >
+<!ATTLIST sequence
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT struct
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST struct
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT valuetype
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST valuetype
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED
+ primarykey (true | false) "false" >
diff --git a/modules/CIAO/docs/XML/softpkg.dtd b/modules/CIAO/docs/XML/softpkg.dtd
new file mode 100644
index 00000000000..ee87b811cc6
--- /dev/null
+++ b/modules/CIAO/docs/XML/softpkg.dtd
@@ -0,0 +1,220 @@
+<!-- DTD for softpkg. Used to describe CORBA Component
+ implementations. The root element is <softpkg>.
+ Elements are listed alphabetically.
+ -->
+<!-- Revision $Id$ -->
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT author
+ ( name
+ | company
+ | webpage
+ )* >
+
+<!ELEMENT code
+ ( ( codebase
+ | fileinarchive
+ | link
+ )
+ , entrypoint?
+ , usage?
+ ) >
+<!ATTLIST code
+ type CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT compiler EMPTY >
+<!ATTLIST compiler
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT company ( #PCDATA ) >
+
+<!ELEMENT dependency
+ ( softpkgref
+ | codebase
+ | fileinarchive
+ | localfile
+ | name
+ | valuetypefactory
+ ) >
+<!ATTLIST dependency
+ type CDATA #IMPLIED
+ action (assert | install) "assert">
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT descriptor
+ ( link
+ | fileinarchive
+ ) >
+<!ATTLIST descriptor
+ type CDATA #IMPLIED>
+
+<!ELEMENT entrypoint ( #PCDATA) >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is in another archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT idl
+ ( link
+ | fileinarchive
+ | repository
+ ) >
+<!ATTLIST idl
+ id CDATA #REQUIRED
+ homeid CDATA #REQUIRED >
+
+<!ELEMENT implementation
+ ( description
+ | code
+ | compiler
+ | dependency
+ | descriptor
+ | extension
+ | programminglanguage
+ | humanlanguage
+ | os
+ | propertyfile
+ | processor
+ | runtime
+ )* >
+<!ATTLIST implementation
+ id ID #IMPLIED
+ variation CDATA #IMPLIED >
+
+<!ELEMENT implref EMPTY >
+<!ATTLIST implref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT ins EMPTY >
+<!ATTLIST inc
+ name CDATA #REQUIRED >
+
+<!ELEMENT humanlanguage EMPTY >
+<!ATTLIST humanlanguage
+ name CDATA #REQUIRED >
+
+<!ELEMENT license ( #PCDATA ) >
+<!ATTLIST license
+ %simple-link-attributes; >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!-- A file that should be available in the local environment -->
+<!ELEMENT localfile EMPTY >
+<!ATTLIST localfile
+ name CDATA #REQUIRED >
+
+<!ELEMENT name ( #PCDATA ) >
+
+<!ELEMENT objref EMPTY >
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT os EMPTY >
+<!ATTLIST os
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT pkgtype ( #PCDATA ) >
+<!ATTLIST pkgtype
+ version CDATA #IMPLIED >
+
+<!ELEMENT processor EMPTY >
+<!ATTLIST processor
+ name CDATA #REQUIRED >
+
+<!ELEMENT programminglanguage EMPTY>
+<!ATTLIST programminglanguage
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT propertyfile
+ ( fileinarchive
+ | link) >
+<!ATTLIST propertyfile
+ type CDATA #IMPLIED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT runtime EMPTY >
+<!ATTLIST runtime
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT softpkg
+ ( title
+ | pkgtype
+ | author
+ | description?
+ | license
+ | idl
+ | propertyfile
+ | dependency
+ | descriptor
+ | implementation
+ | extension
+ )* >
+<!ATTLIST softpkg
+ name ID #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT softpkgref
+ ( ( fileinarchive
+ | link
+ )
+ , implref?
+ ) >
+
+<!ELEMENT title ( #PCDATA ) >
+
+<!ELEMENT usage ( #PCDATA ) >
+
+<!ELEMENT valuetypefactory
+ ( codebase
+ | fileinarchive
+ | link
+ ) >
+<!ATTLIST valuetypefactory
+ repid CDATA #REQUIRED
+ valueentrypoint CDATA #IMPLIED
+ factoryentrypoint CDATA #IMPLIED >
+
+<!ELEMENT webpage ( #PCDATA ) >
+<!ATTLIST webpage
+ %simple-link-attributes; >