1 <!-- Document Type Definition for XML ACE Service Config files -->
3 <!-- An ACE_Svc_Conf document contains zero or more entries -->
4 <!-- The entries are processed in the order they appear -->
5 <!-- in the ACE_Svc_Conf file. -->
6 <!ELEMENT ACE_Svc_Conf (dynamic|static|suspend|resume|remove|stream|streamdef)*
>
8 <!-- Streams are separate into two elements. One defines how -->
9 <!-- the stream should be constructed and the other defines -->
10 <!-- what to do with it. The identity of a stream is defined -->
11 <!-- in the first dynamic/static element. -->
12 <!ELEMENT streamdef ((dynamic|static),module)
>
13 <!-- @@ Do we ever need to suspend/resume/remove modules when -->
14 <!-- constructing a stream? Should we leave only dynamic -->
15 <!-- and static here? -->
16 <!ELEMENT module (dynamic|static|suspend|resume|remove)+
>
18 <!-- A 'stream' element controls the stream object -->
19 <!-- @@ Likewise, we are reusing the 'module' element here. -->
20 <!-- Do we ever need to insert new modules into a stream? -->
21 <!-- Nanbor: I guess we can do that. -->
22 <!ELEMENT stream (module)
>
23 <!ATTLIST stream id IDREF #REQUIRED
>
25 <!-- A 'dynamic' entry. -->
26 <!-- @@ The kind of attributes the corresponding initializer -->
27 <!-- should take seems to be determined by the 'type' -->
28 <!-- attribute. Should we further partition the dynamic -->
29 <!-- element definition into several elements? E.g. into -->
30 <!-- dyn_service_object/dyn_module/dyn_stream? -->
31 <!-- Nanbor: Will that be too confusing? -->
32 <!ELEMENT dynamic (initializer)
>
33 <!ATTLIST dynamic id ID #REQUIRED
34 status (active|inactive)
"active"
35 type (module|service_object|stream) #REQUIRED
>
37 <!-- Initializing function for dynamic entry. -->
38 <!ELEMENT initializer EMPTY
>
39 <!ATTLIST initializer init CDATA #REQUIRED
41 params CDATA #IMPLIED
>
43 <!-- A 'static' entry takes an ID attribute and an optional -->
44 <!-- parameter lists. -->
45 <!ELEMENT static EMPTY
>
46 <!ATTLIST static id ID #REQUIRED
47 params CDATA #IMPLIED
>
49 <!-- A 'suspend' entry takes an ID attribute. -->
50 <!ELEMENT suspend EMPTY
>
51 <!ATTLIST suspend id IDREF #REQUIRED
>
53 <!-- A 'resume' entry takes an ID attribute. -->
54 <!ELEMENT resume EMPTY
>
55 <!ATTLIST resume id IDREF #REQUIRED
>
57 <!-- A 'remove' entry takes an ID attribute. -->
58 <!ELEMENT remove EMPTY
>
59 <!ATTLIST remove id IDREF #REQUIRED
>