1 <!-- effect.dtd - DTD to model effects of external procedures inside firm. -->
4 <!-- upload this file to http://www/~firm/ after making changes -->
6 <!-- content model for all nodes -->
7 <!-- allow nodes/entity accesses to reference other nodes/an entity -->
8 <!ENTITY % firm.id "id ID #REQUIRED">
10 <!-- allow a node to specify a type -->
11 <!ENTITY % firm.type "type CDATA #REQUIRED">
13 <!-- allow a node to specify a field -->
14 <!ENTITY % firm.entity "entity CDATA #REQUIRED">
16 <!-- the root element -->
17 <!ELEMENT effects (type*, entity*, effect*)>
19 module CDATA #IMPLIED>
21 <!-- an entity reference -->
27 <!-- an entity reference -->
28 <!ELEMENT entity EMPTY>
34 <!-- a single effect -->
35 <!ELEMENT effect (arg*, (load|store|alloc|call|join|unknown)*, raise?, return)>
37 procname CDATA #REQUIRED>
39 <!-- procedure argument -->
43 number CDATA #REQUIRED>
45 <!-- reference another value -->
46 <!ELEMENT valref EMPTY>
48 refid IDREF #REQUIRED>
51 <!-- for static entities, use a 'select' without a child element -->
52 <!ELEMENT select (valref?)>
53 <!ATTLIST select %firm.entity;>
56 <!ELEMENT load (select)>
61 <!ELEMENT store (select,valref)>
64 <!ELEMENT alloc EMPTY>
65 <!ATTLIST alloc %firm.id;%firm.type;>
68 <!ELEMENT call (select,(valref)*)>
69 <!ATTLIST call %firm.id;>
71 <!-- unknown value -->
72 <!ELEMENT unknown EMPTY>
73 <!ATTLIST unknown %firm.id;>
75 <!-- join two or more values -->
76 <!ELEMENT join (valref,valref+)>
77 <!ATTLIST join %firm.id;>
79 <!-- raise an exception -->
80 <!ELEMENT raise (valref)>
81 <!ATTLIST raise %firm.type;>
83 <!-- return effect -->
84 <!ELEMENT return (valref?)>
87 <!-- Revision 1.4 2004/10/05 16:18:06 liekweg
88 <!-- Grrr, CVS messes up XML comments
90 <!-- Revision 1.3 2004/10/05 16:17:22 liekweg -->
91 <!-- Added 'raise' -flo -->
93 <!-- Revision 1.2 2004/10/05 15:46:59 liekweg -->
94 <!-- Added comment about this DTD's public location -flo -->
95 <!-- Revision 1.1 2004/10/05 14:34:13 liekweg -->
96 <!-- Added DTD for external effects description -flo -->