<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NIResult" type="niResult"/>

	<xs:element name="application" type="application" />

	<xs:element name="caseAttribute" type="caseAttribute" />

	<xs:element name="caseObject" type="caseObject" />

	<xs:element name="caseResult" type="caseResult" />

	<xs:element name="caseRisk" type="caseRisk" />

	<xs:element name="disorder" type="disorder" />

	<xs:element name="disorderConsolidated" type="disorderConsolidated" />

	<xs:element name="doctor" type="doctor" />

	<xs:element name="drug" type="drug" />

	<xs:element name="foreignTravel" type="foreignTravel" />

	<xs:element name="occupationalHazard" type="occupationalHazard" />

	<xs:element name="person" type="person" />

	<xs:element name="pursuit" type="pursuit" />

	<xs:element name="tariff" type="tariff" />

	<xs:complexType name="niResult" >
		<xs:sequence>
			<xs:element ref="application" minOccurs="0" />
			<xs:element ref="caseRisk" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="assessmentDate" type="xs:dateTime" />
		<xs:attribute name="csp" type="xs:string" />
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="implementationVersion" type="xs:string" />
		<xs:attribute name="locale" type="xs:string" />
		<xs:attribute name="numberOfChangeAssessCycles" type="xs:string" />
		<xs:attribute name="numberOfSourceChanges" type="xs:int" use="required" />
		<xs:attribute name="patchID" type="xs:string" />
		<xs:attribute name="patchName" type="xs:string" />
		<xs:attribute name="policyCanBeIssued" type="xs:boolean" use="required" />
		<xs:attribute name="resultLevelId" type="xs:int" use="required" />
		<xs:attribute name="resultLevelIdName" type="xs:string" />
		<xs:attribute name="specificationVersion" type="xs:string" />
		<xs:attribute name="versionID" type="xs:string" />
		<xs:attribute name="versionName" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="application">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="caseObject">
		<xs:sequence>
			<xs:element ref="caseAttribute" minOccurs="0" maxOccurs="unbounded" />
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="caseObject" />
				<xs:element ref="application" />
				<xs:element ref="tariff" />
				<xs:element ref="disorderConsolidated" />
				<xs:element ref="disorder" />
				<xs:element ref="pursuit" />
				<xs:element ref="person" />
				<xs:element ref="foreignTravel" />
				<xs:element ref="drug" />
				<xs:element ref="occupationalHazard" />
				<xs:element ref="doctor" />
			</xs:choice>
			<xs:element ref="caseRisk" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="resultLevelId" type="xs:string"/>
        <xs:attribute name="resultLevelIdName" type="xs:string"/>
		<xs:attribute name="typeId" type="xs:string" />
		<xs:attribute name="typeIdName" type="xs:string" />

	</xs:complexType>

	<xs:complexType name="caseAttribute">
		<xs:sequence>
			<xs:element name="caseAttributes" type="caseAttribute" nillable="true" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="duration" type="xs:string" />
		<xs:attribute name="from" type="xs:string" />
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="key" type="xs:string" />
		<xs:attribute name="locale" type="xs:string" />
		<xs:attribute name="to" type="xs:string" />
		<xs:attribute name="typeId" type="xs:string" />
		<xs:attribute name="typeIdName" type="xs:string" />
		<xs:attribute name="unit" type="xs:string" />
		<xs:attribute name="unitName" type="xs:string" />
		<xs:attribute name="value" type="xs:string" />
		<xs:attribute name="value2" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="caseRisk">
		<xs:sequence>
			<xs:element ref="caseResult" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="resultLevelId" type="xs:int" use="required" />
		<xs:attribute name="resultLevelIdName" type="xs:string" />
		<xs:attribute name="riskText" type="xs:string" />
		<xs:attribute name="riskTypeId" type="xs:int" use="required" />
		<xs:attribute name="riskTypeIdName" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="caseResult">
		<xs:sequence>
			<xs:element name="resultAttribute" type="caseResultAttribute" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="explanation" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="missingInfo" type="missingInfo" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="resultLevelId" type="xs:int" use="required" />
		<xs:attribute name="resultLevelIdName" type="xs:string" />
		<xs:attribute name="resultTypeId" type="xs:int" use="required" />
		<xs:attribute name="resultTypeIdName" type="xs:string" />
		<xs:attribute name="suppressedById" type="xs:string" />
		<xs:attribute name="suppressedByType" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="caseResultAttribute">
		<xs:sequence>
			<xs:element name="resultAttribute" type="caseResultAttribute" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="duration" type="xs:string" />
		<xs:attribute name="from" type="xs:string" />
		<xs:attribute name="id" type="xs:string" />
		<xs:attribute name="key" type="xs:string" />
		<xs:attribute name="locale" type="xs:string" />
		<xs:attribute name="to" type="xs:string" />
		<xs:attribute name="typeId" type="xs:string" />
		<xs:attribute name="typeIdName" type="xs:string" />
		<xs:attribute name="unit" type="xs:string" />
		<xs:attribute name="unitName" type="xs:string" />
		<xs:attribute name="value" type="xs:string" />
		<xs:attribute name="value2" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="missingInfo">
		<xs:attribute name="caseAttributeTypeId" type="xs:string" />
		<xs:attribute name="caseAttributeTypeIdName" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="explanation">
		<xs:attribute name="addition" type="xs:string" />
		<xs:attribute name="expressionClass" type="xs:string" />
		<xs:attribute name="text" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="person">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:attribute name="type">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:pattern value="AP|PH|PH-AP" />
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="tariff">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="disorderConsolidated">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="disorder">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="pursuit">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="foreignTravel">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="drug">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="occupationalHazard">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="doctor">
		<xs:complexContent>
			<xs:extension base="caseObject">
				<xs:sequence />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>

