← Back to team overview

mlhim-specs-dev team mailing list archive

[Branch ~mlhim-specs-dev/mlhim-specs/main] Rev 250: Cleaned up schemas to remove Ecore fluff.

 

------------------------------------------------------------
revno: 250
committer: Timothy W. Cook <timothywayne.cook@xxxxxxxxx>
branch nick: mlhim-specs
timestamp: Sun 2012-05-27 08:38:45 -0300
message:
  Cleaned up schemas to remove Ecore fluff.
modified:
  schemas/common.xsd
  schemas/content.xsd
  schemas/datatypes.xsd
  schemas/metadata.xsd
  schemas/structures.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/common.xsd'
--- schemas/common.xsd	2012-05-25 23:12:21 +0000
+++ schemas/common.xsd	2012-05-27 11:38:45 +0000
@@ -1,182 +1,264 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:mlhim2="http://www.mlhim.org/xmls/mlhim2/2_3_0"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
        targetNamespace="http://www.mlhim.org/xmls/mlhim2/2_3_0"; elementFormDefault="qualified" version="2.3.0">
-           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/datatypes.xsd";></xs:include>
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/datatypes.xsd"/>
+
+  <xs:complexType name="FeederAudit">
+    <xs:complexContent>
+      <xs:extension base="xs:simpleAnyType">
+        <xs:attribute name="originating_system_audit" type="mlhim2:FeederAuditDetails" use="required"/>
+        <xs:attribute name="originating_system_ids" type="mlhim2:DvIdentifier" minOccurs="1" maxOccurs="unbounded"/>
+        <xs:attribute name="feeder_system_audit" type="mlhim2:FeederAuditDetails"/>
+        <xs:attribute name="feeder_system_ids" type="mlhim2:DvIdentifier" minOccurs="1" maxOccurs="unbounded"/>
+       <xs:attribute name="original_content" type="mlhim2_0:DvParsable" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="FeederAuditDetails">
+    <xs:complexContent>
+      <xs:extension base="xs:simpleAnyType">
+        <xs:attribute name="system_id" type="mlhim2:DvIdentifier"/>
+        <xs:attribute name="provider" type="mlhim2:PartyIdentified"/>
+        <xs:attribute name="location" type="mlhim2:Slot"/>
+        <xs:attribute name="time" type="mlhim2_0:DvDateTime"/>
+        <xs:attribute name="subject" type="mlhim2:PartyProxy"/>
+        <xs:attribute name="version_id" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType abstract="true" name="Locatable">
     <xs:complexContent>
       <xs:extension base="xs:simpleAnyType">
-        <xs:attribute name="name" type="xs:string" use="required"/>
-        <xs:attribute name="parent" type="xs:string"/>
-        <xs:attribute name="uuid" type="xs:string" use="required"/>
-        <xs:attribute ecore:name="feeder_audit" ecore:reference="mlhim2:FeederAudit" name="feeder_audit" type="xs:anyURI"/>
+        <xs:attribute name="feeder_audit" type="mlhim2:FeederAudit"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="Attestation">
     <xs:complexContent>
       <xs:extension base="mlhim2:Locatable">
-        <xs:attribute ecore:name="attested_view" ecore:reference="mlhim2_0:DvMedia" name="attested_view" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvParsable" name="proof" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvCodedString" name="reason" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2:PartyProxy" name="committer" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:name="time_commmitted" ecore:reference="mlhim2_0:DvDateTime" name="time_commmitted" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:name="is_pending" ecore:unsettable="false" name="is_pending" type="xs:boolean"/>
+        <xs:attribute name="attested_view" type="mlhim2:DvMedia"/>
+        <xs:attribute name="proof" type="mlhim2:DvParsable"/>
+        <xs:attribute name="reason" type="mlhim2:DvCodedString"/>
+        <xs:attribute name="committer" type="mlhim2:PartyProxy" use="required"/>
+        <xs:attribute name="time_commmitted" type="mlhim2:DvDateTime" use="required"/>
+        <xs:attribute name="is_pending" type="xs:boolean"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="Participation">
     <xs:complexContent>
       <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:reference="mlhim2:PartyProxy" name="performer" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvCodedString" name="function" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvCodedString" name="mode" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:name="start_time" ecore:reference="mlhim2_0:DvDateTime" name="start_time" type="xs:anyURI"/>
-        <xs:attribute ecore:name="end_time" ecore:reference="mlhim2_0:DvDateTime" name="end_time" type="xs:anyURI"/>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FeederAudit">
-    <xs:complexContent>
-      <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:name="originating_system_audit" ecore:reference="mlhim2:FeederAuditDetails" name="originating_system_audit" type="xs:anyURI" use="required"/>
-        <xs:attribute ecore:name="originating_system_ids" ecore:reference="mlhim2_0:DvIdentifier" name="originating_system_ids" use="required">
-          <xs:simpleType>
-            <xs:list itemType="xs:anyURI"/>
-          </xs:simpleType>
-        </xs:attribute>
-        <xs:attribute ecore:name="feeder_system_audit" ecore:reference="mlhim2:FeederAuditDetails" name="feeder_system_audit" type="xs:anyURI"/>
-        <xs:attribute ecore:name="feeder_system_ids" ecore:reference="mlhim2_0:DvIdentifier" name="feeder_system_ids">
-          <xs:simpleType>
-            <xs:list itemType="xs:anyURI"/>
-          </xs:simpleType>
-        </xs:attribute>
-        <xs:attribute ecore:name="original_content" ecore:reference="mlhim2_0:DvParsable" name="original_content" type="xs:anyURI" use="required"/>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FeederAuditDetails">
-    <xs:complexContent>
-      <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:name="system_id" ecore:reference="mlhim2_0:DvIdentifier" name="system_id" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2:PartyIdentified" name="provider" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2_1:Slot" name="location" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvDateTime" name="time" type="xs:anyURI"/>
-        <xs:attribute ecore:reference="mlhim2:PartyProxy" name="subject" type="xs:anyURI"/>
-        <xs:attribute ecore:name="version_id" name="version_id" type="xs:string"/>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
+        <xs:attribute name="performer" type="mlhim2:PartyProxy" use="required"/>
+        <xs:attribute name="function" type="mlhim2_0:DvCodedString" use="required"/>
+        <xs:attribute name="mode" type="mlhim2_0:DvCodedString" use="required"/>
+        <xs:attribute name="start_time" type="mlhim2:DvDateTime"/>
+        <xs:attribute name="end_time" type="mlhim2:DvDateTime"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  
   <xs:complexType abstract="true" name="PartyProxy">
     <xs:complexContent>
       <xs:extension base="mlhim2:Locatable">
-        <xs:attribute ecore:name="external_ref" name="external_ref" type="xs:string"/>
+        <xs:attribute name="external_ref" type="mlhim2DvURI"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="PartyIdentified">
     <xs:complexContent>
       <xs:extension base="mlhim2:PartyProxy">
-        <xs:attribute ecore:name="party_name" name="party_name" type="xs:string"/>
-        <xs:attribute ecore:reference="mlhim2_0:DvIdentifier" name="identities">
-          <xs:simpleType>
-            <xs:list itemType="xs:anyURI"/>
-          </xs:simpleType>
-        </xs:attribute>
+        <xs:attribute name="party_name" type="xs:string"/>
+        <xs:attribute name="identities" type="mlhim2_0:DvIdentifier"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="PartySelf">
     <xs:complexContent>
       <xs:extension base="mlhim2:PartyProxy"/>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType abstract="true" name="ExceptionalValue">
     <xs:complexContent>
       <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:name="ev_name" name="ev_name" type="xs:string"/>
-        <xs:attribute ecore:name="ev_meaning" name="ev_meaning" type="xs:string"/>
+        <xs:attribute name="ev_name" fixed="Exceptional Value" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The value is somehow outside the bounds of what was expected." type="xs:string"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="NI">
     <xs:complexContent>
-      <xs:extension base="mlhim2:ExceptionalValue"/>
+      <xs:restriction base="ExceptionalValue">
+        <xs:attribute name="ev_name" fixed="No Information" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The value is exceptional (missing, omitted, incomplete,
+improper). No information as to the reason for being an
+exceptional value is provided. This is the most general
+exceptional value. It is also the default exceptional value
+" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="MSK">
     <xs:complexContent>
-      <xs:extension base="mlhim2:NI"/>
+      <xs:restriction base="mlhim2:NI">
+        <xs:attribute name="ev_name" fixed="Masked" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="There is information on this item available but it has not been
+provided by the sender due to security, privacy or other
+reasons. There may be an alternate mechanism for gaining
+access to this information.
+
+Warning: Using this exceptional value does provide information that
+may be a breach of confidentiality, even though no detail
+data is provided. Its primary purpose is for those
+circumstances where it is necessary to inform the receiver
+that the information does exist without providing any detail
+" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="INV">
     <xs:complexContent>
-      <xs:extension base="mlhim2:NI"/>
+      <xs:restriction base="mlhim2:NI">
+        <xs:attribute name="ev_name" fixed="Invalid" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The value as represented in the instance is not a member of the set of permitted data values in the constrained  value domain of a variable." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="DER">
     <xs:complexContent>
-      <xs:extension base="mlhim2:INV"/>
+      <xs:restriction base="mlhim2:INV">
+        <xs:attribute name="ev_name" fixed="Derived" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="An actual value may exist, but it must be derived from the provided information; usually an expression is provided directly." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="UNC">
     <xs:complexContent>
-      <xs:extension base="mlhim2:INV"/>
+      <xs:restriction base="mlhim2:INV">
+        <xs:attribute name="ev_name" fixed="Unencoded" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="No attempt has been made to encode the information correctly but the raw source information is represented, usually in free text" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="OTH">
     <xs:complexContent>
-      <xs:extension base="mlhim2:INV"/>
+      <xs:restriction base="mlhim2:INV">
+        <xs:attribute name="ev_name" fixed="Other" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The actual value is not a member of the permitted data values in the variable. (e.g., when the value of the variable is not  by the coding system)	" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="NINF">
     <xs:complexContent>
-      <xs:extension base="mlhim2:OTH"/>
+      <xs:restriction base="mlhim2:OTH">
+        <xs:attribute name="ev_name" fixed="Negative Infinity" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="Negative infinity of numbers" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="PINF">
     <xs:complexContent>
-      <xs:extension base="mlhim2:OTH"/>
+      <xs:restriction base="mlhim2:OTH">
+        <xs:attribute name="ev_name" fixed="Positive Infinity" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="Positive infinity of numbers" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="UNK">
     <xs:complexContent>
-      <xs:extension base="mlhim2:NI"/>
+      <xs:restriction base="mlhim2:NI">
+        <xs:attribute name="ev_name" fixed="Unknown" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="A proper value is applicable, but not known" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="ASKR">
     <xs:complexContent>
-      <xs:extension base="mlhim2:UNK"/>
+      <xs:restriction base="mlhim2:UNK">
+        <xs:attribute name="ev_name" fixed="Asked and Refused" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="Information was sought but refused to be provided (e.g., patient was asked but refused to answer)" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="NASK">
     <xs:complexContent>
-      <xs:extension base="mlhim2:UNK"/>
+      <xs:restriction base="mlhim2:UNK">
+        <xs:attribute name="ev_name" fixed="Not Asked" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="This information has not been sought (e.g., patient was not asked)." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="QS">
     <xs:complexContent>
-      <xs:extension base="mlhim2:UNK"/>
+      <xs:restriction base="mlhim2:UNK">
+        <xs:attribute name="ev_name" fixed="Sufficient Quantity" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The specific quantity is not known, but is known to non-zero and it is not specified because it makes up the bulk of the material; 'Add 10mg of ingredient X, 50mg of ingredient Y and sufficient quantity of water to 100mL.'" type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="TRC">
     <xs:complexContent>
-      <xs:extension base="mlhim2:UNK"/>
+      <xs:restriction base="mlhim2:UNK">
+        <xs:attribute name="ev_name" fixed="Trace" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="The content is greater or less than zero but too small to be quantified." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="ASKU">
     <xs:complexContent>
-      <xs:extension base="mlhim2:UNK"/>
+      <xs:restriction base="mlhim2:UNK">
+        <xs:attribute name="ev_name" fixed="Asked but Unknown" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="Information was sought but not found (e.g., patient was asked but did not know)." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="NAV">
     <xs:complexContent>
-      <xs:extension base="mlhim2:ASKU"/>
+      <xs:restriction base="mlhim2:ASKU">
+        <xs:attribute name="ev_name" fixed="Not Available" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="Information is unavailable at this time but is expected that it will be available later." type="xs:string"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="NA">
     <xs:complexContent>
-      <xs:extension base="mlhim2:NI"/>
-    </xs:complexContent>
-  </xs:complexType>
+      <xs:restriction base="mlhim2:NI">
+        <xs:attribute name="ev_name" fixed="Not Applicable" type="xs:string"/>
+        <xs:attribute name="ev_meaning" fixed="No proper value is applicable in this context e.g.,the number of cigarrettes smoked per day by a non-smoker subject." type="xs:string"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="LA">
+    <xs:complexContent>
+      <xs:restriction base="mlhim2:ExceptionalValue">
+        <xs:attribute name="ev_name" default="Locally Added" type="xs:string"/>
+        <xs:attribute name="ev_meaning" default="Must be changed locally to be meaningful." type="xs:string"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
 </xs:schema>

=== modified file 'schemas/content.xsd'
--- schemas/content.xsd	2012-05-25 23:12:21 +0000
+++ schemas/content.xsd	2012-05-27 11:38:45 +0000
@@ -1,50 +1,46 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xsd:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"; xmlns:mlhim2="http://www.mlhim.org/mlhim2/content"; xmlns:mlhim2_0="http://www.mlhim.org/mlhim2/common"; xmlns:mlhim2_1="http://www.mlhim.org/mlhim2/datatypes"; xmlns:mlhim2_2="http://www.mlhim.org/mlhim2/structures"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; ecore:nsPrefix="mlhim2" ecore:package="mlhim2.content" targetNamespace="http://www.mlhim.org/mlhim2/content";>
-  <xsd:import namespace="http://www.mlhim.org/mlhim2/structures"; schemaLocation="mlhim2.structures.xsd"/>
-  <xsd:import namespace="http://www.mlhim.org/mlhim2/datatypes"; schemaLocation="mlhim2.datatypes.xsd"/>
-  <xsd:import namespace="http://www.mlhim.org/mlhim2/common"; schemaLocation="mlhim2.common.xsd"/>
-  <xsd:element ecore:ignore="true" name="Entry" type="mlhim2:Entry"/>
-  <xsd:element ecore:ignore="true" name="CareEntry" type="mlhim2:CareEntry"/>
-  <xsd:element ecore:ignore="true" name="AdminEntry" type="mlhim2:AdminEntry"/>
-  <xsd:element ecore:ignore="true" name="DemographicEntry" type="mlhim2:DemographicEntry"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:mlhim2="http://www.mlhim.org/xmls/mlhim2/2_3_0"; 
+                    xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
+                    targetNamespace="http://www.mlhim.org/xmls/mlhim2/2_3_0";
+                    elementFormDefault="qualified" version="2.3.0">
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/datatypes.xsd"/>
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/common.xsd"/>
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/structures.xsd"/>
+
   <xsd:complexType abstract="true" name="Entry">
     <xsd:complexContent>
-      <xsd:extension base="mlhim2_0:Locatable">
-        <xsd:attribute ecore:reference="mlhim2_1:DvCodedString" name="language" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="mlhim2_1:DvCodedString" name="encoding" type="xsd:anyURI"/>
-        <xsd:attribute ecore:reference="mlhim2_0:PartyProxy" name="subject" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="mlhim2_0:PartyProxy" name="provider" type="xsd:anyURI"/>
-        <xsd:attribute ecore:name="other_participations" ecore:reference="mlhim2_0:Participation" name="other_participations">
-          <xsd:simpleType>
-            <xsd:list itemType="xsd:anyURI"/>
-          </xsd:simpleType>
-        </xsd:attribute>
-        <xsd:attribute ecore:name="protocol_id" ecore:reference="mlhim2_1:DvIdentifier" name="protocol_id" type="xsd:anyURI"/>
-        <xsd:attribute ecore:name="current_state" name="current_state" type="xsd:string"/>
-        <xsd:attribute ecore:name="workflow_id" ecore:reference="mlhim2_1:DvURI" name="workflow_id" type="xsd:anyURI"/>
-        <xsd:attribute ecore:reference="mlhim2_1:DvURI" name="links">
-          <xsd:simpleType>
-            <xsd:list itemType="xsd:anyURI"/>
-          </xsd:simpleType>
-        </xsd:attribute>
-        <xsd:attribute ecore:reference="mlhim2_0:Attestation" name="attestation" type="xsd:anyURI"/>
-        <xsd:attribute ecore:reference="mlhim2_2:Item" name="data" type="xsd:anyURI"/>
+      <xsd:extension base="mlhim2:Locatable">
+        <xsd:attribute name="language" type="mlhim2:DvCodedString" use="required"/>
+        <xsd:attribute name="encoding" type="mlhim2:DvCodedString"/>
+        <xsd:attribute name="subject" type="mlhim2:PartyProxy" use="required"/>
+        <xsd:attribute name="provider" type="mlhim2:PartyProxy"/>
+        <xsd:attribute name="other_participations" type="mlhim2:Participation" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:attribute name="protocol_id" type="mlhim2:DvIdentifier"/>
+        <xsd:attribute name="current_state" type="xsd:string"/>
+        <xsd:attribute name="workflow_id" type="mlhim2:DvURI"/>
+        <xsd:attribute name="links"  type="mlhim2:DvURI" minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:attribute name="attestation" type="mlhim2:Attestation"/>
+        <xsd:attribute name="data" type="mlhim2:Item"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
+  
   <xsd:complexType name="CareEntry">
     <xsd:complexContent>
       <xsd:extension base="mlhim2:Entry"/>
     </xsd:complexContent>
   </xsd:complexType>
+  
   <xsd:complexType name="AdminEntry">
     <xsd:complexContent>
       <xsd:extension base="mlhim2:Entry"/>
     </xsd:complexContent>
   </xsd:complexType>
+  
   <xsd:complexType name="DemographicEntry">
     <xsd:complexContent>
       <xsd:extension base="mlhim2:Entry"/>
     </xsd:complexContent>
   </xsd:complexType>
+
 </xsd:schema>

=== modified file 'schemas/datatypes.xsd'
--- schemas/datatypes.xsd	2012-05-26 11:35:03 +0000
+++ schemas/datatypes.xsd	2012-05-27 11:38:45 +0000
@@ -10,6 +10,7 @@
    <xs:complexType abstract="true" name="DvAny">
       <xs:complexContent>
          <xs:extension base="xs:anySimpleType">
+            <xs:attribute name="name" type="xs:string" whitespace="collapse" use="required"/>
             <xs:attribute name="ev" type="mlhim2:ExceptionalValue" maxOccurs="1" minOccurs="0" nillable="true"/>
             <xs:attribute name="valid_time_begin" type="xs:dateTime" maxOccurs="1" minOccurs="0" nillable="true"/>
             <xs:attribute name="valid_time_end" type="xs:dateTime" maxOccurs="1" minOccurs="0" nillable="true"/>
@@ -30,8 +31,8 @@
   <xs:complexType name="DvString">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvAny">
-        <xs:attribute name="string_dv" type="xs:string"/>
-        <xs:attribute name="language" type="xs:language"/>
+        <xs:attribute name="string_dv" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="language" type="xs:language" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -39,7 +40,7 @@
   <xs:complexType name="DvURI">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvString">
-         <xs:attribute name="string_dv" type="xs:anyURI"/>
+         <xs:attribute name="string_dv" type="xs:anyURI" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -47,7 +48,7 @@
   <xs:complexType name="DvNormalizedString">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvString">
-         <xs:attribute name="string_dv" type="xs:normalizedString"/>
+         <xs:attribute name="string_dv" type="xs:normalizedString" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -55,7 +56,7 @@
   <xs:complexType name="DvToken">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvString">
-         <xs:attribute name="string_dv" type="xs:token"/>
+         <xs:attribute name="string_dv" type="xs:token" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -63,9 +64,9 @@
   <xs:complexType name="DvCodedString">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvString">
-        <xs:attribute name="terminology_abbrev" type="xs:string"/>
-        <xs:attribute name="terminology_name" type="xs:string"/>
-        <xs:attribute name="terminology_code" type="xs:string"/>
+        <xs:attribute name="terminology_abbrev" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="terminology_name" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="terminology_code" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -73,9 +74,9 @@
   <xs:complexType name="DvIdentifier">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvString">
-        <xs:attribute name="id_name" type="xs:string"/>
-        <xs:attribute name="issuer" type="xs:string"/>
-        <xs:attribute name="assignor" type="xs:string"/>
+        <xs:attribute name="id_name" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="issuer" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="assignor" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -84,8 +85,8 @@
     <xs:complexContent>
       <xs:extension base="mlhim2:DvAny">
         <xs:attribute name="size" type="xs:int" use="required"/>
-        <xs:attribute name="charset" type="xs:string"/>
-        <xs:attribute name="language" type="xs:language"/>
+        <xs:attribute name="charset" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="language" type="xs:language" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -93,8 +94,8 @@
   <xs:complexType name="DvParsable">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvEncapsulated">
-        <xs:attribute name="parsable_dv" type="xs:string"/>
-        <xs:attribute name="formalism" type="xs:string"/>
+        <xs:attribute name="parsable_dv" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="formalism" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -102,13 +103,13 @@
   <xs:complexType name="DvMedia">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvEncapsulated">
-        <xs:attribute name="mime_type" type="xs:string"/>
-        <xs:attribute name="compression_type" type="xs:string"/>
-        <xs:attribute name="hash_result" type="xs:string"/>
-        <xs:attribute name="hash_function" type="xs:string"/>
-        <xs:attribute name="alt_txt" type="xs:string"/>
-        <xs:attribute name="uri" type="xs:string"/>
-        <xs:attribute name="media_content" type="xs:base64Binary"/>
+        <xs:attribute name="mime_type" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="compression_type" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="hash_result" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="hash_function" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="alt_txt" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="uri" type="xs:anyURI" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="media_content" type="xs:base64Binary" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -118,7 +119,7 @@
       <xs:extension base="mlhim2:DvAny">
         <xs:attribute name="normal_range" type="mlhim2:ReferenceRange" minOccurs="0" maxOccurs="unbounded"/>
         <xs:attribute name="other_reference_ranges" type="mlhim2:ReferenceRange" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:attribute name="normal_status" type="xs:string"/>
+        <xs:attribute name="normal_status" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -127,7 +128,7 @@
     <xs:complexContent>
       <xs:extension base="mlhim2:DvOrdered">
         <xs:attribute name="ordinal_dv" type="xs:int" use="required"/>
-        <xs:attribute name="symbol" type="xs:string" use="required"/>
+        <xs:attribute name="symbol" type="xs:string" use="required" whitespace="preserve"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -136,10 +137,10 @@
     <xs:complexContent>
       <xs:extension base="mlhim2:DvOrdered">
         <xs:attribute name="magnitude" type="xs:decimal" use="required"/>
-        <xs:attribute name="min_magnitude" type="xs:decimal"/>
-        <xs:attribute name="max_magnitude" type="xs:decimal"/>
-        <xs:attribute name="magnitude_status" type="xs:string"/>
-        <xs:attribute name="error" type="xs:int" use="required"/>
+        <xs:attribute name="min_magnitude" type="xs:decimal" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="max_magnitude" type="xs:decimal" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="magnitude_status" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="error" type="xs:int" use="required" maxOccurs="1" minOccurs="0"/>
         <xs:attribute name="accuracy" type="xs:decimal" default="0"/>
       </xs:extension>
     </xs:complexContent>
@@ -148,7 +149,7 @@
   <xs:complexType name="DvCount">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvQuantified">
-        <xs:attribute name="units" type="xs:string" use="required"/>
+        <xs:attribute name="units" type="xs:string" use="required" whitespace="preserve"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -166,8 +167,8 @@
       <xs:extension base="mlhim2:DvQuantified">
         <xs:attribute name="numerator" type="xs:decimal"/>
         <xs:attribute name="denominator" type="xs:decimal"/>
-        <xs:attribute name="numerator_units" type="xs:string"/>
-        <xs:attribute name="denominator_units" type="xs:string"/>
+        <xs:attribute name="numerator_units" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
+        <xs:attribute name="denominator_units" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -175,7 +176,7 @@
   <xs:complexType name="DvRate">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvRatio">
-        <xs:attribute name="rate_type" type="xs:string"/>
+        <xs:attribute name="rate_type" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -183,7 +184,7 @@
   <xs:complexType name="DvProportion">
     <xs:complexContent>
       <xs:extension base="mlhim2:DvRatio">
-        <xs:attribute name="proportion_type" type="xs:string"/>
+        <xs:attribute name="proportion_type" type="xs:string" whitespace="preserve" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -205,7 +206,7 @@
     <xs:complexContent>
       <xs:extension base="mlhim2:DvAny">
         <xs:attribute name="definition" type="xs:string"/>
-        <xs:attribute name="data_range" type="mlhim2:DvInterval"/>
+        <xs:attribute name="data_range" type="mlhim2:DvInterval" use="required"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -221,14 +222,16 @@
   
   <xs:complexType name="DvDuration">
     <xs:complexContent>
-      <xs:extension base="mlhim2:DvTemporal"/>
+      <xs:restriction base="mlhim2:DvTemporal">
+         <xs:attribute name="temporal_dv" type="xs:duration"/>
+      </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
   
   <xs:complexType name="DvDateTime">
     <xs:complexContent>
       <xs:restriction base="mlhim2:DvTemporal">
-      <xs:attribute name="temporal_dv" type="xs:DateTime"/>
+      <xs:attribute name="temporal_dv" type="xs:datetime"/>
       </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
@@ -236,7 +239,7 @@
   <xs:complexType name="DvDate">
     <xs:complexContent>
       <xs:restriction base="mlhim2:DvTemporal">
-      <xs:attribute name="temporal_dv" type="xs:Date"/>
+      <xs:attribute name="temporal_dv" type="xs:date"/>
       </xs:restriction>
     </xs:complexContent>
   </xs:complexType>
@@ -244,7 +247,7 @@
   <xs:complexType name="DvTime">
     <xs:complexContent>
       <xs:restriction base="mlhim2:DvTemporal">
-      <xs:attribute name="temporal_dv" type="xs:Time"/>
+      <xs:attribute name="temporal_dv" type="xs:time"/>
       </xs:restriction>
     </xs:complexContent>
   </xs:complexType>

=== modified file 'schemas/metadata.xsd'
--- schemas/metadata.xsd	2012-05-25 23:12:21 +0000
+++ schemas/metadata.xsd	2012-05-27 11:38:45 +0000
@@ -1,42 +1,35 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xs:schema xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"; xmlns:mlhim2="http://www.mlhim.org/mlhim2/metadata"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; ecore:nsPrefix="mlhim2" ecore:package="mlhim2.metadata" targetNamespace="http://www.mlhim.org/mlhim2/metadata";>
-  <xs:element ecore:ignore="true" name="MetadataSet" type="mlhim2:MetadataSet"/>
-  <xs:element ecore:ignore="true" name="MetadataEntry" type="mlhim2:MetadataEntry"/>
-  <xs:element ecore:ignore="true" name="Metadata" type="mlhim2:Metadata"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:mlhim2="http://www.mlhim.org/xmls/mlhim2/2_3_0"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
+       targetNamespace="http://www.mlhim.org/xmls/mlhim2/2_3_0"; elementFormDefault="qualified" version="2.3.0">
+ 
+  <xs:element name="Metadata" type="mlhim2:Metadata"/>
+  <xs:element name="MetadataSet" type="mlhim2:MetadataSet"/>
+  <xs:element name="MetadataEntry" type="mlhim2:MetadataEntry"/>
+
+  <xs:complexType name="Metadata">
+    <xs:complexContent>
+      <xs:extension base="xs:simpleAnyType">
+        <xs:attribute name="content" use="required" type="mlhim2:MetadataSet" minOccurs="2" maxOccurs="unbounded"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
   <xs:complexType name="MetadataSet">
     <xs:complexContent>
       <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:name="mds_name" name="mds_name" type="xs:string" use="required"/>
-        <xs:attribute ecore:reference="mlhim2:MetadataEntry" name="entries" use="required">
-          <xs:simpleType>
-            <xs:list itemType="xs:anyURI"/>
-          </xs:simpleType>
-        </xs:attribute>
+        <xs:attribute name="name" type="xs:string" use="required"/>
+        <xs:attribute name="entries" type="mlhim2:MetadataEntry" minOccurs="1" maxOccurs="unbounded"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+
   <xs:complexType name="MetadataEntry">
     <xs:complexContent>
       <xs:extension base="xs:simpleAnyType">
-        <xs:attribute name="title" type="xs:string" use="required"/>
+        <xs:attribute name="name" type="xs:string" use="required"/>
         <xs:attribute name="contents" type="xs:string"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-  <xs:complexType name="Metadata">
-    <xs:complexContent>
-      <xs:extension base="xs:simpleAnyType">
-        <xs:attribute ecore:reference="mlhim2:MetadataSet" name="content" use="required">
-          <xs:simpleType>
-            <xs:restriction>
-              <xs:simpleType>
-                <xs:list itemType="xs:anyURI"/>
-              </xs:simpleType>
-              <xs:minLength value="2"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
+
 </xs:schema>

=== modified file 'schemas/structures.xsd'
--- schemas/structures.xsd	2012-05-25 23:12:21 +0000
+++ schemas/structures.xsd	2012-05-27 11:38:45 +0000
@@ -1,40 +1,38 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:mlhim2="http://www.mlhim.org/xmls/mlhim2/2_3_0"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
        targetNamespace="http://www.mlhim.org/xmls/mlhim2/2_3_0"; elementFormDefault="qualified" version="2.3.0">
-           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/datatypes.xsd";></xs:include>
-           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/common.xsd";></xs:include>
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/datatypes.xsd"/>
+           <xs:include schemaLocation="http://www.mlhim.org/xmls/mlhim2/2_3_0/common.xsd"/>
 
   <xs:complexType abstract="true" name="Item">
     <xs:complexContent>
-      <xs:extension base="mlhim2_0:Locatable"/>
+      <xs:extension base="mlhim2:Locatable"/>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="Slot">
     <xs:complexContent>
       <xs:extension base="mlhim2:Item">
-        <xs:sequence>
-          <xs:element ecore:name="allowed_ccds" ecore:unique="true" maxOccurs="unbounded" name="allowed_ccds" nillable="true" type="xs:string"/>
-        </xs:sequence>
-        <xs:attribute name="ccd" type="xs:string"/>
+         <xs:attribute name="allowed_ccds" type="xs:string" maxOccurs="unbounded" minOccurs="1"/>
+         <xs:attribute name="ccd" type="xs:string" maxOccurs="1" minOccurs="0"/>
       </xs:extension>
     </xs:complexContent>
+    
   </xs:complexType>
   <xs:complexType name="Cluster">
     <xs:complexContent>
       <xs:extension base="mlhim2:Item">
-        <xs:attribute ecore:reference="mlhim2:Item" name="items">
-          <xs:simpleType>
-            <xs:list itemType="xs:anyURI"/>
-          </xs:simpleType>
-        </xs:attribute>
-      </xs:extension>
+        <xs:attribute name="items" type="mlhim2:Item" maxOccurs="unbounded" minOccurs="1"/>
+       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
   <xs:complexType name="Element">
     <xs:complexContent>
       <xs:extension base="mlhim2:Item">
-        <xs:attribute ecore:reference="mlhim2_1:DvAny" name="dv" type="xs:anyURI"/>
+        <xs:attribute name="dv" type="mlhim2:DvAny" maxOccurs="1" minOccurs="1"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
 </xs:schema>