← Prev in month ← Prev in thread

XML Schema for SAF information model

From
Isaiadis, Stavros <>
Date
2012-07-31T09:50:21+00:00
ID
6C421ABEB42E2644B491B69E2541CCE10F9DA2@smtp_mail.bankofamerica.com
Thread
XML Schema for SAF information model
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    targetNamespace="http://docs.oasis-open.org/saf/ns/symptoms/2012/07"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:saf="http://docs.oasis-open.org/saf/ns/symptoms/2012/07"
    elementFormDefault="qualified" attributeFormDefault="qualified">
    
    <!-- 
    ************** 
    Core
    **************
    -->
    <xsd:complexType name="SAFType">
        <xsd:sequence>
            <xsd:element name="URI" type="xsd:anyURI" />
            <xsd:element ref="saf:Version" minOccurs="0" />
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:element name="Version" type="xsd:string"/>
     
    <!-- 
    ************** 
    Syndrome
    **************
    -->
        
    <xsd:element name="Syndrome">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="SyndromeType" type="saf:SAFType"/>
	            <xsd:element name="SyndromeName" type="xsd:string"/>
	            <xsd:element name="Description" type="xsd:string"/>
	            <xsd:element ref="saf:Likelihood"/>
	            <xsd:element ref="saf:Impact"/>
	            <xsd:element ref="saf:Urgency"/>
	            <xsd:element name="Signature" type="xsd:string"/>
	            <xsd:element ref="saf:AssociatedProtocols" minOccurs="0"/>            
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="Likelihood">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="VeryFrequent"/>
	            <xsd:enumeration value="Frequent"/>
	            <xsd:enumeration value="Balanced"/>
	            <xsd:enumeration value="Infrequent"/>
	            <xsd:enumeration value="Rare"/>
	            <xsd:enumeration value="NotAvailable"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Impact">
	    <xsd:simpleType>
		    <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="VeryHigh"/>
	            <xsd:enumeration value="High"/>
	            <xsd:enumeration value="Moderate"/>
	            <xsd:enumeration value="Low"/>
	            <xsd:enumeration value="Minimal"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Urgency">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="VeryHigh"/>
	            <xsd:enumeration value="High"/>
	            <xsd:enumeration value="Moderate"/>
	            <xsd:enumeration value="Low"/>
	            <xsd:enumeration value="VeryLow"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>    
    
    <xsd:element name="AssociatedProtocols">
		<xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="ProtocolReference" type="saf:SAFType" minOccurs="0" maxOccurs="unbounded"/>
	            <xsd:element name="ProtocolGroupReference" type="saf:SAFType" minOccurs="0" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
 
 	<xsd:element name="Syndromes">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element ref="saf:Syndrome" minOccurs="0" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <!-- 
    ************** 
    Protocols
    **************
    -->
    
    <xsd:element name="Protocol">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="ProtocolType" type="saf:SAFType"/>
	            <xsd:element name="PrescriptionType" type="saf:SAFType"/>
	            <xsd:element name="ProtocolName" type="xsd:string"/>
	            <xsd:element name="Description" type="xsd:string"/>
	            <xsd:element ref="saf:Effectiveness"/>
	            <xsd:element ref="saf:Risk"/>
	            <xsd:element ref="saf:Duration"/>
	            <xsd:element ref="saf:Function"/>
	            <xsd:element name="Directive" type="xsd:string"/>
	            <xsd:element name="Process" type="xsd:string" minOccurs="0" maxOccurs="1"/>
	            <xsd:element ref="saf:PotentialSyndromes" minOccurs="0" maxOccurs="unbounded"/> 
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="Effectiveness">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="Effective"/>
	            <xsd:enumeration value="PartiallyEffective"/>
	            <xsd:enumeration value="BestEffort"/>
	            <xsd:enumeration value="Ineffective"/>
	            <xsd:enumeration value="Inconclusive"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Risk">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="VeryHigh"/>
	            <xsd:enumeration value="High"/>
	            <xsd:enumeration value="Moderate"/>
	            <xsd:enumeration value="VeryLow"/>
	            <xsd:enumeration value="Low"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Duration">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="VeryLong"/>
	            <xsd:enumeration value="Long"/>
	            <xsd:enumeration value="Moderate"/>
	            <xsd:enumeration value="Short"/>
	            <xsd:enumeration value="VeryShort"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Function">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="Diagnostic"/>
	            <xsd:enumeration value="Preventative"/>
	            <xsd:enumeration value="Remedial"/>
	            <xsd:enumeration value="Diagnostic_Preventative"/>
	            <xsd:enumeration value="Diagnostic_Remedial"/>
	            <xsd:enumeration value="Preventative_Remedial"/>
	            <xsd:enumeration value="Diagnostic_Preventative_Remedial"/>
	            <xsd:enumeration value="Other"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="PotentialSyndromes">
		<xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="SyndromeReference" type="saf:SAFType" minOccurs="0" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>    
    
    <xsd:element name="Protocols">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element ref="saf:Protocol" minOccurs="0" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
        
    <!-- 
    ************** 
    ProtocolGroup
    **************
    -->
    
    <xsd:element name="ProtocolGroup">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="ProtocolGroupType" type="saf:SAFType"/>
	            <xsd:element name="ProtocolGroupName" type="xsd:string"/>
	            <xsd:element name="Description" type="xsd:string"/>
	            <xsd:element ref="saf:ProtocolCollection"/> 
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="ProtocolCollection">
		<xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="ProtocolReference" type="saf:SAFType" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <!-- 
    ************** 
    Prescription
    **************
    -->
    
    <xsd:element name="Prescription">
        <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="PrescriptionId" type="xsd:anyURI"/>
	            <xsd:element name="PrescriptionType" type="saf:SAFType"/>
	            <xsd:element name="ExpirationDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
	            <xsd:element ref="saf:Arguments" minOccurs="0" maxOccurs="1"/>
	            <xsd:element name="Process" type="xsd:string" minOccurs="0" maxOccurs="1"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
        
    <xsd:element name="Arguments">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:any namespace="##other" processContents="lax" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>    
    
    
    <!-- 
    ************** 
    Symptoms
    **************
    -->
        
    <xsd:element name="Symptom">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="SymptomId" type="xsd:anyURI"/>
	            <xsd:element name="SymptomType" type="saf:SAFType"/>
	            <xsd:element name="CreationDate" type="xsd:dateTime"/>
	            <xsd:element ref="saf:Confidence"/>
	            <xsd:element name="Reporter" type="xsd:anyURI"/>
	            <xsd:element name="Subject" type="xsd:anyURI"/>
	            <xsd:element name="ExpirationDate" type="xsd:dateTime" minOccurs="0"/>
	            <xsd:element ref="saf:RelatedSymptoms" minOccurs="0" />
	            <xsd:element name="Incident" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded" />
	            <xsd:element ref="saf:Content" minOccurs="0" maxOccurs="1"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="Confidence">
	    <xsd:simpleType>
	        <xsd:restriction base="xsd:string">
	            <xsd:enumeration value="High"/>
	            <xsd:enumeration value="Moderate"/>
	            <xsd:enumeration value="Low"/>
	            <xsd:enumeration value="Unknown"/>
	        </xsd:restriction>
	    </xsd:simpleType>
    </xsd:element>
    
    <xsd:element name="Content">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:any namespace="##other" processContents="lax" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="RelatedSymptoms">
		<xsd:complexType>
	        <xsd:sequence>
	            <xsd:element ref="saf:RelatedSymptom" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="RelatedSymptom">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:anyURI">
					<xsd:attribute type="xsd:string" name="type" use="required" />
				</xsd:extension>
			</xsd:simpleContent>	        
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="Symptoms">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element ref="saf:Symptom" minOccurs="0" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <!-- 
    ************** 
    Schemata
    **************
    -->
        
    <xsd:element name="SymptomSchema">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="SymptomType" type="saf:SAFType"/>
	            <xsd:element ref="saf:ContentSchema"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="ContentSchema">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:any namespace="##other" processContents="lax" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>  
    
    <xsd:element name="PrescriptionSchema">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:element name="PrescriptionType" type="saf:SAFType"/>
	            <xsd:element ref="saf:ArgumentSchema"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
    <xsd:element name="ArgumentSchema">
	    <xsd:complexType>
	        <xsd:sequence>
	            <xsd:any namespace="##other" processContents="lax" minOccurs="1" maxOccurs="unbounded"/>
	        </xsd:sequence>
	    </xsd:complexType>
    </xsd:element>
    
</xsd:schema>
← Prev in month ← Prev in thread