Metric Overlay's DTD


<!-- Metric File DTD -->
<!-- This DTD describes the format of a file for metric decoration -->
<!-- Author: Matthew Harward -->
<!-- Date: 31/8/2009 -->

<!-- The Document -->
<!ELEMENT document (metric+, mapping*, augmentation* metricsection*)>
<!ATTLIST document filename CDATA #REQUIRED>
<!-- Describing a metric -->
<!ELEMENT metric (range|complexrange)>
<!ATTLIST metric name CDATA #REQUIRED
				 derivedName CDATA #IMPLIED>
<!-- Range of a given metric -->
<!-- There are 4 different range types.-->
<!-- Integer - an int max/min required -->
<!-- Real - real/double max/min required -->
<!-- OrderedNominal - a set of range items, no duplicate attribute values -->
<!-- Complex - contains simple ranges, these should not overlap -->
<!ELEMENT simplerange EMPTY>
<!ATTLIST simplerange type (Real|Integer) #REQUIRED
				min CDATA #REQUIRED
				max CDATA #REQUIRED>
<!ELEMENT complexrange (rangeitem+|simplerange+) >
<!ATTLIST complexrange type (OrderedNominal|Complex) #REQUIRED >
<!ELEMENT rangeitem EMPTY>
<!ATTLIST rangeitem  value CDATA #IMPLIED
			    name  CDATA #REQUIRED>
<!-- Mapping -->
<!ELEMENT mapping>
<!ATTLIST mapping 		mappingName 		CDATA #REQUIRED
				  		augmentationName 	CDATA #REQUIRED
				  		metricName  		CDATA #REQUIRED
				  		state 	(UnDeclared|Declared|Active) #REQUIRED
				  		interpolationMethod (Linear|MetricExp|AugExp|MetricLog|AugLog) #IMPLIED
				  		interpolationConstant CDATA #IMPLIED> 
<!-- Augmentation -->
<!ELEMENT augmentation (color+)>
<!ATTLIST augmentation  name 		CDATA #REQUIRED
						type 	(Margin|Underline|BGSection|BGLine) #REQUIRED
						importance 	CDATA #REQUIRED
						discrete 	(true|false) #REQUIRED
						annotation 	(on|off) #REQUIRED
						underline 	(Single|Double|Swiggle|Link) #IMPLIED
						shapeType 	CDATA #IMPLIED
						shapeDir 	(Left|Up|Right|Down) #IMPLIED
						marginSide 	(Left|Right) #IMPLIED>
<!ELEMENT color>
<!ATTLIST color red CDATA #REQUIRED
				green CDATA #REQUIRED
				blue CDATA #REQUIRED>
<!-- Main description element -->
<!ELEMENT metricsection (actualtext?,annotation?)>
<!ATTLIST metricsection startline	CDATA #REQUIRED
						startcol 	CDATA #REQUIRED
						endline   	CDATA #REQUIRED
						endcol   	CDATA #REQUIRED
						value     	CDATA #REQUIRED
						metricName 	CDATA #REQUIRED>
<!-- Additional metric section information -->
<!ELEMENT actualtext (#PCDATA)>
<!ELEMENT annotation (#PCDATA)>