← Back to team overview

mlhim-specs-dev team mailing list archive

[Branch ~mlhim-specs-dev/mlhim-specs/main] Rev 149: Completed 2.2.0 datatypes.xsd updates.

 

------------------------------------------------------------
revno: 149
committer: Timothy W. Cook <timothywayne.cook@xxxxxxxxx>
branch nick: mlhim-specs
timestamp: Sat 2011-05-14 22:15:24 -0500
message:
  Completed 2.2.0 datatypes.xsd updates.
modified:
  schemas/datatypes.xsd
  schemas/support.xsd


--
lp:mlhim-specs
https://code.launchpad.net/~mlhim-specs-dev/mlhim-specs/main

Your team MLHIM Specifications Developers is subscribed to branch lp:mlhim-specs.
To unsubscribe from this branch go to https://code.launchpad.net/~mlhim-specs-dev/mlhim-specs/main/+edit-subscription
=== modified file 'schemas/datatypes.xsd'
--- schemas/datatypes.xsd	2011-05-10 18:12:07 +0000
+++ schemas/datatypes.xsd	2011-05-15 03:15:24 +0000
@@ -10,11 +10,11 @@
 	</xs:annotation>
 	  <xs:sequence>
               
-	    <xs:element name="valid_time_begin" maxOccurs="1" minOccurs="0" type="xs:string">
+	    <xs:element name="valid_time_begin" maxOccurs="1" minOccurs="0" type="xs:dateTime">
 	    <xs:annotation><xs:documentation>If present this must be a valid datetime string including timezone</xs:documentation></xs:annotation>
 	    </xs:element>
               
-	    <xs:element name="valid_time_end" maxOccurs="1" minOccurs="0" type="xs:string">
+	    <xs:element name="valid_time_end" maxOccurs="1" minOccurs="0" type="xs:dateTime">
 	    <xs:annotation><xs:documentation>If present this must be a valid datetime string including timezone</xs:documentation></xs:annotation>
 	    </xs:element>
               
@@ -24,7 +24,7 @@
 	  </xs:sequence>
 	</xs:complexType>
 	
-      <xs:complexType name="DvText" abstract="false">
+      <xs:complexType name="DvString" abstract="false">
 	<xs:annotation>
 	<xs:documentation>
 	A text item, which may contain any amount of legal characters arranged as e.g. words, sentences etc. as its data value (dv) 
@@ -34,11 +34,11 @@
            <xs:extension  base="mlhim2:DvAny">
               <xs:sequence>
               
-                <xs:element name="uuid" maxOccurs="1" minOccurs="1" type="xs:string" nillable="false">
+                <xs:element name="uuid" maxOccurs="1" minOccurs="1" type="xs:token" nillable="false">
 	    <xs:annotation><xs:documentation>UUID in order to track translations.</xs:documentation></xs:annotation>
                 </xs:element>
               
-                <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string" nillable="true">
+                <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:language" nillable="true">
 	    <xs:annotation><xs:documentation>Optional indicator of the localised language in which the value is written. Coded IAW IETF RFC 5646. http://tools.ietf.org/html/rfc5646  Only used when the text object is in a different language from the enclosing CCD.</xs:documentation></xs:annotation>
                 </xs:element>
               
@@ -49,8 +49,32 @@
            	</xs:extension>
            	</xs:complexContent>
       </xs:complexType>
+
+      <xs:complexType name="DvNormalizedString">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:restriction base="mlhim2:DvString">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:normalizedString"></xs:element>
+      </xs:sequence>
+      </xs:restriction>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvToken">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:restriction base="mlhim2:DvString">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:token"></xs:element>
+      </xs:sequence>
+      </xs:restriction>
+      </xs:complexContent>
+      </xs:complexType>         
+
+
            
-           <xs:complexType name="DvCodedText"   abstract="false">
+           <xs:complexType name="DvCodedString"   abstract="false">
 	<xs:annotation>
 	<xs:documentation>
 	    A text item whose dv attribute must be the long name or description from a controlled terminology, the key (i.e. the 'code') 
@@ -58,18 +82,18 @@
 	</xs:documentation>
 	</xs:annotation>
            <xs:complexContent>
-           <xs:extension base="mlhim2:DvText">
+           <xs:extension base="mlhim2:DvString">
              <xs:sequence>
               
-                <xs:element name="code_string" maxOccurs="1" minOccurs="0" type="xs:string">
+                <xs:element name="code_string" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>The key used by the terminology service to identify a concept or coordination of concepts. This string is most likely parsable inside the terminology service, but nothing can be assumed about its syntax outside that context. In the NLM Metathesarus this would be the Concept Unique Identifier (CUI).</xs:documentation></xs:annotation>
                 </xs:element>
               
-                <xs:element name="terminology_name" maxOccurs="1" minOccurs="0" type="xs:string">
+                <xs:element name="terminology_name" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Full Source Name from NLM Metathesarus; or similar.</xs:documentation></xs:annotation>
                 </xs:element>
               
-                <xs:element name="terminology_abbrev" maxOccurs="1" minOccurs="0" type="xs:string">
+                <xs:element name="terminology_abbrev" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Version Source Abbreviation (VSAB) from NLM Metathesarus; or similar </xs:documentation></xs:annotation>
                 </xs:element>
              </xs:sequence>
@@ -85,18 +109,18 @@
 	</xs:documentation>
 	</xs:annotation>
            <xs:complexContent>
-           <xs:extension base="mlhim2:DvText">
+           <xs:extension base="mlhim2:DvString">
              <xs:sequence>
               
-               <xs:element name="issuer" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="issuer" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Authority which issues the kind of id used in the id field of this object.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="assigner" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="assigner" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Organisation that assigned the id to the item being identified.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="name" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="name" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>The identifier common name, such as “Driver's License” or “SSN”.</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -117,7 +141,7 @@
            <xs:extension base="mlhim2:DvAny">
              <xs:sequence>
               
-               <xs:element name="dv" maxOccurs="1" minOccurs="0"  type="xs:string" nillable="true">
+               <xs:element name="dv" maxOccurs="1" minOccurs="0"  type="xs:boolean">
 	    <xs:annotation><xs:documentation>A string indicating a boolean type result according to the rules described below. Boolean True values are represented by any one of these strings:  ["True","1","T"]. Boolean False values are represented by any one of these strings:  ["False","0","F"]. Note that the strings are not case-sensitive; i.e. "T" == "t" and "TRUE" == "t". The empty string; "" represents a Void or Null value, in which case the ev attribute cannot be empty. </xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -159,7 +183,7 @@
            <xs:extension base="mlhim2:DvAny" >
              <xs:sequence>
               
-               <xs:element name="items" maxOccurs="unbounded" minOccurs="0"  type="mlhim2:DvText" nillable="false">
+               <xs:element name="items" maxOccurs="unbounded" minOccurs="0"  type="xs:string" nillable="false">
 	    <xs:annotation><xs:documentation>List of Items making up the paragraph, each of which is a text item. The items should be displayed in sequential order from smallest index number to highest index number.</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -177,15 +201,15 @@
            <xs:extension  base="mlhim2:DvAny">
              <xs:sequence>
               
-               <xs:element name="size" maxOccurs="1" minOccurs="1" type="xs:integer">
+               <xs:element name="size" maxOccurs="1" minOccurs="1" type="xs:decimal">
 	    <xs:annotation><xs:documentation>Original size in bytes of unencoded encapsulated data. I.e. encodings such as base64, hexadecimal etc do not change the value of this attribute.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="charset" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="charset" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Name of character encoding scheme in which this value is encoded. Coded from MLHIM Code Set “character sets”. Unicode is the   default assumption in MLHIM, with UTF-8  being the assumed encoding. This attribute allows for variations from these assumptions.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:language">
 	    <xs:annotation><xs:documentation>Optional indicator of the localised language in which the value is written. Coded IAW IETF RFC 5646. http://tools.ietf.org/html/rfc5646  Only used when the text object is in a different language from the enclosing CCD.</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -205,11 +229,11 @@
            <xs:extension  base="mlhim2:DvEncapsulated">
              <xs:sequence>
               
-               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:string" nillable="true">
+               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:normalizedString" nillable="true">
 	    <xs:annotation><xs:documentation>The string, which may validly be empty in some syntaxes</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="formalism" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="formalism" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>name of the formalism, e.g. "MAG 1.0", “GLIF 1.0”, “PROforma” etc. </xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -217,7 +241,7 @@
            	</xs:complexContent>
            </xs:complexType>
            
-           <xs:complexType name="DvMultimedia"  abstract="false">
+           <xs:complexType name="DvMedia"  abstract="false">
 	<xs:annotation>
 	<xs:documentation>
 	A specialisation of DvEncapsulated for audiovisual and biosignal types. Includes further metadata relating to multimedia 
@@ -227,36 +251,28 @@
            <xs:complexContent>
            <xs:extension base="mlhim2:DvEncapsulated">
              <xs:sequence>
-              
-               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary" nillable="true">
-	    <xs:annotation><xs:documentation>The actual data found at uri, if supplied inline</xs:documentation></xs:annotation>
-               </xs:element>
-              
-               <xs:element name="mime_type" maxOccurs="1" minOccurs="0" type="xs:string">
+                           
+               <xs:element name="mime_type" maxOccurs="1" minOccurs="1" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Content type as defined in RFC2045 and RFC 2046</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="compression_algorithm" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="compression_type" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Compression type, a coded value from the MLHIM “Integrity check” code set. Void means  no compression.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="integrity_check" maxOccurs="1" minOccurs="0" type="xs:base64Binary" nillable="true">
+               <xs:element name="hash_result" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Binary cryptographic integrity checksum</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="integrity_check_algorithm" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="hash_function" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Type of integrity check, a coded value from the MLHIM “Integrity check” code set.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="thumbnail" maxOccurs="1" minOccurs="0" type="xs:base64Binary" nillable="true">
-	    <xs:annotation><xs:documentation>The thumbnail for this item, if one exists; mainly for graphics formats.</xs:documentation></xs:annotation>
-               </xs:element>
-              
-               <xs:element name="uri" maxOccurs="1" minOccurs="0" type="mlhim2:DvURI" nillable="true">
+               <xs:element name="uri" maxOccurs="1" minOccurs="0" type="xs:anyURI">
 	    <xs:annotation><xs:documentation>URI reference to electronic information stored outside the record as a file, database entry etc, if supplied as a reference.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="alt_text" maxOccurs="1" minOccurs="0" type="xs:string" nillable="true">
+               <xs:element name="alt_text" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
 	    <xs:annotation><xs:documentation>Text to display in lieu of multimedia display/replay</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -264,6 +280,116 @@
            	</xs:complexContent>
            </xs:complexType>
   
+           <xs:complexType name="DvMediaMultipart"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:anyType">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+  
+            <xs:complexType name="DvMediaApp"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:anyType">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaText"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:string">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaVideo"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaAudio"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaImage"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaMsg"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+
+
+           <xs:complexType name="DvMediaModel"  abstract="false">
+           <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="DvMedia">
+           <xs:sequence>
+           <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:base64Binary">
+	      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+            </xs:element>
+           </xs:sequence>
+           </xs:extension>
+           </xs:complexContent>
+           </xs:complexType> 
+ 
            <xs:complexType name="DvInterval"  abstract="false">
 	<xs:annotation>
 	<xs:documentation>
@@ -315,7 +441,7 @@
            <xs:extension base="mlhim2:DvAny">
               <xs:sequence>
               
-                <xs:element name="definition" maxOccurs="1" minOccurs="1" type="mlhim2:DvText">
+                <xs:element name="definition" maxOccurs="1" minOccurs="1" type="mlhim2:DvString">
 	    <xs:annotation><xs:documentation>Term whose value indicates the meaning of this range, e.g. “normal”, “critical”, “therapeutic” etc.</xs:documentation></xs:annotation>
                 </xs:element>
               
@@ -396,11 +522,11 @@
            <xs:extension base="mlhim2:DvOrdered">
               <xs:sequence>
               
-                <xs:element name="magnitude" maxOccurs="1" minOccurs="0" type="xs:long">
+                <xs:element name="magnitude" maxOccurs="1" minOccurs="0" type="xs:decimal">
 	    <xs:annotation><xs:documentation>Numeric value of the quantity in canonical (i.e. single value) form. Implemented as constant, function or attribute in subtypes as appropriate. The type Ordered_numeric is mapped to the available appropriate type in each implementation technology.</xs:documentation></xs:annotation>
                 </xs:element>
               
-               <xs:element name="magnitude_status" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="magnitude_status" length="1"maxOccurs="1" minOccurs="0" type="xs:string">
 	    <xs:annotation><xs:documentation><!--Optional status of magnitude with values:
 •
 “=” : magnitude is a point value
@@ -416,38 +542,18 @@
 “~” : value is approximately magnitude If not present, meaning is “=”.--></xs:documentation></xs:annotation>
                </xs:element>
               
-                <xs:element name="error" maxOccurs="1" minOccurs="1" type="xs:long">
+                <xs:element name="error" maxOccurs="1" minOccurs="1" type="xs:int">
 	    <xs:annotation><xs:documentation>Error margin of measurement, indicating error in the recording method or instrument (+/- %). Implemented in subtypes.  A logical value of 0 indicates 100% accuracy, i.e. no error.</xs:documentation></xs:annotation>
                 </xs:element>
               
-                <xs:element name="accuracy_unknown" maxOccurs="1" minOccurs="1" type="xs:boolean">
-	    <xs:annotation><xs:documentation>True if accuracy is not known, e.g. due to not being recorded or discernable.</xs:documentation></xs:annotation>
+                <xs:element name="accuracy" maxOccurs="1" minOccurs="1" type="xs:decimal">
+	    <xs:annotation><xs:documentation>Accuracy of the value in the magnitude attribute.  0%   to  +/- 100% A value of 0 means that the accuracy is unknown.</xs:documentation></xs:annotation>
                 </xs:element>                
               </xs:sequence>
            	</xs:extension>
            	</xs:complexContent>
            </xs:complexType>
            
-           <xs:complexType name="DvDateTime" abstract="false">
-	<xs:annotation>
-	<xs:documentation>
-	All dates and times representations in MLHIM use this class. Represents an absolute point in time, specified to the second. 
-	Used for recording a precise point in real world time, and for approximate time stamps, e.g. the origin of a History in an 
-	Observation which is only partially known. All dates and times are assumed to be in the "current era"; somewhere between 
-	0001-01-01T00:00:00Z  and 9999-12-31T23:59:59Z  AD. The difference function is redefined to produce a DvDuration. 
-	</xs:documentation>
-	</xs:annotation>
-           <xs:complexContent>
-           <xs:extension  base="mlhim2:DvQuantified">
-             <xs:sequence>
-              
-               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:string">
-	    <xs:annotation><xs:documentation><!--ISO8601:2004 date/time string including UTC offset. <date>T<time>Z --></xs:documentation></xs:annotation>
-               </xs:element>
-             </xs:sequence>
-           	</xs:extension>
-           	</xs:complexContent>
-           </xs:complexType>
            
            <xs:complexType name="DvQuantity" abstract="false">
 	<xs:annotation>
@@ -462,14 +568,11 @@
            <xs:extension  base="mlhim2:DvQuantified">
              <xs:sequence>
               
-               <xs:element name="units" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="units" maxOccurs="1" minOccurs="1" type="xs:DvCodedString">
 	    <xs:annotation><xs:documentation>Stringified units, expressed in UCUM unit syntax, e.g. "kg/m2", “mm[Hg]", "ms-1", "km/h". Implemented accordingly in subtypes.</xs:documentation></xs:annotation>
                </xs:element>
               
-               <xs:element name="precision" maxOccurs="1" minOccurs="0" type="xs:integer">
-	    <xs:annotation><xs:documentation>Precision to which the value of the quantity is expressed, in terms of number of decimal places. The value 0 implies an integral quantity. The value -1 implies no limit, i.e. any number of decimal places.</xs:documentation></xs:annotation>
-               </xs:element>
-             </xs:sequence>
+           </xs:sequence>
            	</xs:extension>
            	</xs:complexContent>
            </xs:complexType>
@@ -485,7 +588,7 @@
            <xs:extension base="mlhim2:DvQuantified" >
              <xs:sequence>
               
-               <xs:element name="count" maxOccurs="1" minOccurs="0" type="xs:integer">
+               <xs:element name="count" maxOccurs="1" minOccurs="1" type="xs:integer">
 	    <xs:annotation><xs:documentation>Number of items counted.</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -493,6 +596,127 @@
            	</xs:complexContent>
            </xs:complexType>
 
+
+           <xs:complexType name="DvRatio"  abstract="true">
+	<xs:annotation>
+	<xs:documentation>
+	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers. 
+	</xs:documentation>
+	</xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="mlhim2:DvQuantified">
+             <xs:sequence>
+              
+               <xs:element name="numerator" maxOccurs="1" minOccurs="1" type="xs:decimal">
+	    <xs:annotation><xs:documentation>numerator of ratio</xs:documentation></xs:annotation>
+               </xs:element>
+              
+               <xs:element name="denominator" maxOccurs="1" minOccurs="1" type="xs:decimal">
+	    <xs:annotation><xs:documentation>denominator of ratio</xs:documentation></xs:annotation>
+               </xs:element>
+             </xs:sequence>
+           	</xs:extension>
+           	</xs:complexContent>
+           </xs:complexType>
+           
+            <xs:complexType name="DvRate"  abstract="false">
+	<xs:annotation>
+	<xs:documentation>
+	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers, and the numerator is not 
+	contained (it is not a subset of the denominator). Example 1: Numerator = Number of episodes of seizures; 
+	Denominator = Number of days Example 2 = Number of hospital admissions; Denominator = Number of bed-days
+	</xs:documentation>
+	</xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="mlhim2:DvRatio">
+             <xs:sequence>
+              
+               <xs:element name="rate_type" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
+	    <xs:annotation><xs:documentation>Indicates semantic type of coefficient:
+pk_coefficient	= coefficient type. Numerator and denominator may be any value.
+pk_unitary	= Denominator must be 1.
+pk_per10^n	= Denominator is 10^2, numerator is understood as a real number divided by an exponent of 10 (10^n). 
+pk_fraction	=	Numerator and denominator are real numbers, allowing rational and irrational fractions, and the presentation method uses a slash, e.g. “1/2”; if the numerator is greater than the denominator, e.g. n=3, d=2, the presentation is “1 1/2”.</xs:documentation></xs:annotation>
+               </xs:element>
+             </xs:sequence>
+           	</xs:extension>
+           	</xs:complexContent>
+           </xs:complexType>
+           
+           <xs:complexType name="DvProportion"  abstract="false">
+	<xs:annotation>
+	<xs:documentation>
+	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers. The proportion_kind 
+	property is used to control the type attribute to be one of a defined set. Used for recording titers (e.g. 1:128), 
+	concentration ratios, e.g. Na:K (unitary denominator), albumin:creatinine ratio, and percentages, e.g. red cell distirbution 
+	width (RDW). Should not be used to represent things like blood pressure which are often written using a ‘/’ character, 
+	giving the misleading impression that the item is a ratio, when in fact it is a structured value. Similarly, visual acuity, often 
+	written as (e.g.) “6/24” in clinical notes is not a ratio but an ordinal (which includes non-numeric symbols like CF = count fingers etc).
+	Should not be used for formulations.
+	</xs:documentation>
+	</xs:annotation>
+           <xs:complexContent>
+           <xs:extension base="mlhim2:DvRatio">
+             <xs:sequence>
+              
+               <xs:element name="proportion_type" maxOccurs="1" minOccurs="0" type="xs:normalizedString">
+	    <xs:annotation><xs:documentation>Indicates semantic type of proportion:
+pk_proportion	= proportion type. Numerator and denominator may be any value.
+pk_unitary	= Denominator must be 1.
+pk_per10^n	= Denominator is 10^2, numerator is understood as a real number divided by an exponent of 10 (10^n). 
+pk_fraction	=	Numerator and denominator are real numbers, allowing rational and irrational fractions, and the presentation method uses a slash, e.g. “1/2”; if the numerator is greater than the denominator, e.g. n=3, d=2, the presentation is “1 1/2”.</xs:documentation></xs:annotation>
+               </xs:element>
+             </xs:sequence>
+           	</xs:extension>
+           	</xs:complexContent>
+           </xs:complexType>
+           
+      <xs:complexType name="DvTemporal" abstract="true"></xs:complexType>
+           
+           
+           <xs:complexType name="DvDateTime" abstract="false">
+	<xs:annotation>
+	<xs:documentation>
+	Represents an absolute point in time, specified to the second. 
+	Used for recording a precise point in real world time, and for approximate time stamps, e.g. the origin of a History in an 
+	Observation which is only partially known. All dates and times are assumed to be in the "current era"; somewhere between 
+	0001-01-01T00:00:00Z  and 9999-12-31T23:59:59Z  AD.  
+	</xs:documentation>
+	</xs:annotation>
+           <xs:complexContent>
+           <xs:extension  base="mlhim2:DvTemporal">
+             <xs:sequence>             
+               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:dateTime">
+	    <xs:annotation><xs:documentation><!--ISO8601:2004 date/time string including UTC offset. <date>T<time>Z --></xs:documentation></xs:annotation>
+               </xs:element>
+             </xs:sequence>
+           	</xs:extension>
+           	</xs:complexContent>
+           </xs:complexType>
+           
+      <xs:complexType name="DvDate">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvTemporal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:date"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+           
+      <xs:complexType name="DvTime">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvTemporal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:time"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+           
+                                                  
            <xs:complexType name="DvDuration"  abstract="false">
 	<xs:annotation>
 	<xs:documentation>
@@ -529,10 +753,10 @@
 	</xs:documentation>
 	</xs:annotation>
            <xs:complexContent>
-           <xs:extension base="mlhim2:DvQuantified">
+           <xs:extension base="mlhim2:DvTemporal">
              <xs:sequence>
               
-               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:string">
+               <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:duration">
 	    <xs:annotation><xs:documentation>The duration in the form of a string.</xs:documentation></xs:annotation>
                </xs:element>
              </xs:sequence>
@@ -540,79 +764,161 @@
            	</xs:complexContent>
            </xs:complexType>
 
-           <xs:complexType name="DvRatio"  abstract="true">
-	<xs:annotation>
-	<xs:documentation>
-	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers. 
-	</xs:documentation>
-	</xs:annotation>
-           <xs:complexContent>
-           <xs:extension base="mlhim2:DvQuantified">
-             <xs:sequence>
-              
-               <xs:element name="numerator" maxOccurs="1" minOccurs="0" type="xs:long">
-	    <xs:annotation><xs:documentation>numerator of ratio</xs:documentation></xs:annotation>
-               </xs:element>
-              
-               <xs:element name="denominator" maxOccurs="1" minOccurs="0" type="xs:long">
-	    <xs:annotation><xs:documentation>denominator of ratio</xs:documentation></xs:annotation>
-               </xs:element>
-             </xs:sequence>
-           	</xs:extension>
-           	</xs:complexContent>
-           </xs:complexType>
-           
-            <xs:complexType name="DvRate"  abstract="false">
-	<xs:annotation>
-	<xs:documentation>
-	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers, and the numerator is not 
-	contained (it is not a subset of the denominator). Example 1: Numerator = Number of episodes of seizures; 
-	Denominator = Number of days Example 2 = Number of hospital admissions; Denominator = Number of bed-days
-	</xs:documentation>
-	</xs:annotation>
-           <xs:complexContent>
-           <xs:extension base="mlhim2:DvRatio">
-             <xs:sequence>
-              
-               <xs:element name="rate_type" maxOccurs="1" minOccurs="0" type="xs:string">
-	    <xs:annotation><xs:documentation>Indicates semantic type of coefficient:
-pk_coefficient	= coefficient type. Numerator and denominator may be any value.
-pk_unitary	= Denominator must be 1.
-pk_per10^n	= Denominator is 10^2, numerator is understood as a real number divided by an exponent of 10 (10^n). 
-pk_fraction	=	Numerator and denominator are real numbers, allowing rational and irrational fractions, and the presentation method uses a slash, e.g. “1/2”; if the numerator is greater than the denominator, e.g. n=3, d=2, the presentation is “1 1/2”.</xs:documentation></xs:annotation>
-               </xs:element>
-             </xs:sequence>
-           	</xs:extension>
-           	</xs:complexContent>
-           </xs:complexType>
-           
-           <xs:complexType name="DvProportion"  abstract="false">
-	<xs:annotation>
-	<xs:documentation>
-	Models a ratio of values, i.e. where the numerator and denominator are both pure numbers. The proportion_kind 
-	property is used to control the type attribute to be one of a defined set. Used for recording titers (e.g. 1:128), 
-	concentration ratios, e.g. Na:K (unitary denominator), albumin:creatinine ratio, and percentages, e.g. red cell distirbution 
-	width (RDW). Should not be used to represent things like blood pressure which are often written using a ‘/’ character, 
-	giving the misleading impression that the item is a ratio, when in fact it is a structured value. Similarly, visual acuity, often 
-	written as (e.g.) “6/24” in clinical notes is not a ratio but an ordinal (which includes non-numeric symbols like CF = count fingers etc).
-	Should not be used for formulations.
-	</xs:documentation>
-	</xs:annotation>
-           <xs:complexContent>
-           <xs:extension base="mlhim2:DvRatio">
-             <xs:sequence>
-              
-               <xs:element name="proportion_type" maxOccurs="1" minOccurs="0" type="xs:string">
-	    <xs:annotation><xs:documentation>Indicates semantic type of proportion:
-pk_proportion	= proportion type. Numerator and denominator may be any value.
-pk_unitary	= Denominator must be 1.
-pk_per10^n	= Denominator is 10^2, numerator is understood as a real number divided by an exponent of 10 (10^n). 
-pk_fraction	=	Numerator and denominator are real numbers, allowing rational and irrational fractions, and the presentation method uses a slash, e.g. “1/2”; if the numerator is greater than the denominator, e.g. n=3, d=2, the presentation is “1 1/2”.</xs:documentation></xs:annotation>
-               </xs:element>
-             </xs:sequence>
-           	</xs:extension>
-           	</xs:complexContent>
-           </xs:complexType>
-           
+      <xs:complexType name="DvDecimal">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvAny">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:decimal"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvUnsignedLong">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:unsignedLong"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvShort">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:short"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvPositiveInteger">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:positiveInteger"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvByte">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:byte"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvNonPositiveInteger">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:nonPositiveInteger"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvNonNegativeInteger">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:nonNegativeInteger"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvInt">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:Int"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvNegativeInteger">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:negativeInteger"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvInteger">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:integer"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvUnsignedInt">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:unsignedInt"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvUnsignedShort">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:unsignedShort"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvLong">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:long"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+      <xs:complexType name="DvUnsignedByte">
+      <xs:annotation><xs:documentation></xs:documentation></xs:annotation>
+      <xs:complexContent>
+      <xs:extension base="mlhim2:DvDecimal">
+      <xs:sequence>
+      <xs:element name="dv" maxOccurs="1" minOccurs="0" type="xs:unsignedByte"></xs:element>
+      </xs:sequence>
+      </xs:extension>
+      </xs:complexContent>
+      </xs:complexType>         
+
+
+
            
 </xs:schema>

=== modified file 'schemas/support.xsd'
--- schemas/support.xsd	2011-05-08 11:54:04 +0000
+++ schemas/support.xsd	2011-05-15 03:15:24 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Copyright 2011 Timothy W. Cook and Contributors. See http://www.mlhim.org-->
-<xs:schema elementFormDefault="qualified" id="support" targetNamespace="http://www.mlhim.org/mlhim2"; version="2.1.2" xmlns:mlhim2="http://www.mlhim.org/mlhim2"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
+<xs:schema elementFormDefault="qualified" id="support" targetNamespace="http://www.mlhim.org/mlhim2/2.2.0"; version="2.2.0" xmlns:mlhim2="http://www.mlhim.org/mlhim2"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
 	<xs:complexType abstract="true" name="ExceptionalValue">
 	<xs:annotation>
 	<xs:documentation>