<!-- ceXML message model DTD Started 2000-08-14 by Reinout van Rees R.vanRees@ct.tudelft.nl This DTD is used to make instances of the message model according to the specification found in the report written for my graduation project --> <!-- ************************************************************ The element "name" serves to hold a string indicating a certain built object, a unit, a symbol or a quantification. Needed for this is a attribute , indicating the language this specific "name" uses. For this, you should use xml:lang, especially designed for this purpose. ************************************************************ --> <!-- element_name rule --> <!ELEMENT name (#PCDATA)> <!-- target_element attr_name attr_type default--> <!ATTLIST name language NMTOKEN #IMPLIED > <!-- ************************************************************ A "symbol" is used to represent either a unit or a quantification. It is used as a shorthand version. e.g. centimeters => cm It has possibly one name ************************************************************ --> <!-- element_name rule --> <!ELEMENT symbol (name?)> <!-- ************************************************************ A "unit" is a unit of measurement, like centimeters. It has at least one name. ************************************************************ --> <!-- element_name rule --> <!ELEMENT unit (name*)> <!-- ************************************************************ An "amount" is a placeholder for a number. ************************************************************ --> <!-- element_name rule --> <!ELEMENT amount (#PCDATA)> <!-- ************************************************************ A "quantification" either quantifies a function or it quantifies a built object. So it has a unit and an optional amount. Also it can have one or more names. ************************************************************ --> <!-- element_name rule --> <!ELEMENT quantification (name+,amount*,unit*)> <!-- target_element attr_name attr_type default--> <!ATTLIST quantification copied CDATA #IMPLIED > <!-- ************************************************************ A "function" identifies a function of a built object. It can have one or more names and possibly a few quantifications. ************************************************************ --> <!-- element_name rule --> <!ELEMENT function (name+,quantification*)> <!-- target_element attr_name attr_type default--> <!ATTLIST function copied CDATA #IMPLIED > <!-- ************************************************************ "characteristics" are used to group the characteristics of built objects (for clarity) The characteristics are the subparts (built objects), an optional amount, optional quantifications and optional functions. ************************************************************ --> <!-- element_name rule --> <!ELEMENT characteristics (builtobject*, amount?, quantification*, function*)> <!-- ************************************************************ A "builtobject" is the central building block of the vocabulary, indicating the actual built objects. They can have other builtobjects in a hierarchy below them and they one "characteristics". They also can have names. ************************************************************ --> <!-- element_name rule --> <!ELEMENT builtobject (name+, characteristics?, builtobject*)> <!-- the following are attributes that I needed to quickly hack together a working prototype. They'd better be solved in a different way, imo --> <!-- target_element attr_name attr_type default--> <!ATTLIST builtobject copied CDATA #IMPLIED > <!ATTLIST builtobject mode CDATA #IMPLIED > <!ATTLIST builtobject selectID CDATA #IMPLIED > <!ATTLIST builtobject supplier CDATA #IMPLIED > <!-- ************************************************************ A "cexml" element serves as a container for the major elements, so that in *one* xml file, there can be: * a tree of builtobjects * a list of functions * a list of quantifications * a list of units * a list of symbols * a list of names ************************************************************ --> <!-- element_name rule --> <!ELEMENT cexml (builtobject, (function| quantification| unit| symbol| name)*)> |