- Author:
- Randy Thomas <srandall.thomas@gmail.com>
- Date:
- 2014-03-05 09:04:13+01:00
- Desc:
- XSLT to convert from DAEML to Berkeley Madonna
- Permanent Source URI:
- https://models.cellml.org/workspace/194/rawfile/afab9c934e31418b51ae0bdb506ca6890e3d597b/daeml.dtd
<!ELEMENT daeml (function+,model)>
<!ELEMENT function (authors, bibliography?,description,list_of_units?,variables,
function_equations)>
<!ATTLIST function functionID CDATA #REQUIRED>
<!ATTLIST function functionName CDATA #REQUIRED>
<!ATTLIST function date CDATA #REQUIRED>
<!ATTLIST function version CDATA #REQUIRED>
<!ELEMENT function_equations (condition*, ae*,ode*,pde*,while*,function_call*)>
<!ELEMENT condition (eq_code?,mathml:math?,is_true?,is_false?)>
<!ELEMENT is_true (condition*,ae*,ode*,pde*,function_call*,while*)>
<!ELEMENT is_false (condition*,ae*,ode*,pde*,function_call*,while*)>
<!ELEMENT eq_code (#PCDATA)>
<!ATTLIST eq_code prog_lang CDATA "">
<!ELEMENT mathml:math ANY>
<!ELEMENT ode (eq_code?,mathml:math?)>
<!ATTLIST ode variable CDATA "">
<!ELEMENT pde (eq_code?,mathml:math?)>
<!ELEMENT ae (eq_code?,mathml:math?)>
<!ELEMENT function_call (map+)>
<!ATTLIST function_call name CDATA "">
<!ELEMENT map EMPTY>
<!ATTLIST map here CDATA "">
<!ATTLIST map there CDATA "">
<!ELEMENT while (condition)>
<!ELEMENT model (authors,bibliography?,description,list_of_units?,
implementation?,variables,parameters?,submodels?,
system_equations,benchmarks?)>
<!-- good practice: the order of model instantiations and of equations should be respected by the simulator -->
<!ATTLIST model modelID CDATA #REQUIRED>
<!ATTLIST model modelName CDATA #REQUIRED>
<!ATTLIST model modelType (M2SL|ODE|PDE|DESS|PAE) #REQUIRED>
<!ATTLIST model date CDATA "">
<!ATTLIST model version CDATA "">
<!ELEMENT authors (author+)>
<!ELEMENT author (name,contact+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT contact (#PCDATA)>
<!ELEMENT bibliography (reference*)>
<!ELEMENT reference (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT list_of_units (units+)>
<!ELEMENT units (unit+)>
<!ATTLIST units name CDATA "">
<!ELEMENT unit EMPTY>
<!ATTLIST unit units CDATA "">
<!ATTLIST unit multiplier CDATA "">
<!ATTLIST unit exponent CDATA "">
<!ATTLIST unit prefix CDATA "">
<!ATTLIST unit offset CDATA "">
<!ELEMENT implementation (solution_methods)>
<!ELEMENT solution_methods (solution_method+)>
<!ELEMENT solution_method (property+)>
<!ATTLIST solution_method name CDATA "">
<!ELEMENT property EMPTY>
<!ATTLIST property name CDATA "">
<!ATTLIST property value CDATA "">
<!ATTLIST property units CDATA "">
<!ELEMENT variables (variable+)>
<!-- Variables are entities that may be modified by the model/function itself during the simulation.-->
<!ELEMENT variable (type*,comment,definition?,init_value?,
condition*)>
<!ATTLIST variable name CDATA "">
<!ATTLIST variable state_var (true|false) "false">
<!ATTLIST variable units CDATA "">
<!ELEMENT type (#PCDATA)>
<!ELEMENT comment (#PCDATA) >
<!ELEMENT definition (eq_code?,mathml:math?)>
<!ELEMENT init_value (eq_code?,mathml:math?)>
<!ELEMENT parameters (parameter+)>
<!-- Parameters are entities required to characterize an instance of a model. They are not modified by the model itself, but can be modified by external events. If specified as "constants", they may not even be modified by external events. Thus, they can never be outputs, but may be inputs. -->
<!ELEMENT parameter (type*,comment,definition?,init_value?,
condition*)>
<!ATTLIST parameter name CDATA "">
<!ATTLIST parameter units CDATA "">
<!ATTLIST parameter constant (true|false) "false" >
<!-- constant means that this parameter is not supposed to be changed either by the model itself or by an external event -->
<!ELEMENT submodel_instantiations (submodel_instantiation+)>
<!ELEMENT submodel_instantiation (initialize+)>
<!ATTLIST submodel_instantiation file CDATA "">
<!ATTLIST submodel_instantiation there CDATA "">
<!ATTLIST submodel_instantiation here CDATA "">
<!ELEMENT initialize EMPTY>
<!ATTLIST initialize there CDATA "">
<!ATTLIST initialize here CDATA "">
<!ELEMENT connections (connection+)>
<!ELEMENT connection EMPTY>
<!-- good practice implies that all connections involving the same instances are grouped together -->
<!ATTLIST connection src_instance CDATA "">
<!ATTLIST connection src_entity CDATA "">
<!ATTLIST connection dest_instance CDATA "">
<!ATTLIST connection dest_entity CDATA "">
<!ELEMENT system_equations (update_equations?,derivative_equations?,output_equations)>
<!ELEMENT independent_variables (independent_variable)>
<!ELEMENT independent_variable EMPTY>
<!ATTLIST independent_variable name CDATA #REQUIRED>
<!ELEMENT update_equations (ode*,pde*,ae*,condition*,function_call*,while*)>
<!ELEMENT derivative_equations (ode*,pde*,ae*,condition*,function_call*,while*)>
<!ELEMENT output_equations (ode*,pde*,ae*,condition*,function_call*,while*)>
<!ELEMENT benchmarks (benchmark)>
<!ELEMENT benchmark (scenario)>
<!ATTLIST benchmark type (experience|simulation) #REQUIRED>
<!ELEMENT scenario (events, boundary_conditions, parameter_values)>