git_bsmd/nsw/HIS-NORD/xsd.assert/mdh_reeder.xsd
Daniel Schick 3ce90d643a 3.0.8
Erweiterung Dakosy, HIS-Nord (erste Anfänge)
2016-04-03 09:10:35 +00:00

105 lines
5.0 KiB
XML

<?xml version="1.0"?>
<!-- DATEN + DIENSTE GmbH Rostock, Version vom 02.02.2016 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="mdh">
<xs:sequence>
<xs:element name="NonAccidentialDeathsDuringVoyage" type="yorn-type"/>
<xs:element name="NonAccidentialDeathsDuringVoyageCount" type="posint-type" minOccurs="0"/>
<xs:element name="SuspisionInfectiousNature" type="yorn-type"/>
<xs:element name="NumberOfIllPersonsHigherThanExpected" type="yorn-type"/>
<xs:element name="NumberOfIllPersons" type="posint-type" minOccurs="0"/>
<xs:element name="SickPersonOnBoard" type="yorn-type"/>
<xs:element name="MedicalConsulted" type="yorn-type"/>
<xs:element name="AwareOfConditionsForFurtherInfections" type="yorn-type"/>
<xs:element name="SanitaryMeasuresApplied" type="yorn-type"/>
<xs:element name="SanitaryMeasuresDetails" type="sanitarydetails" minOccurs="0"/>
<xs:element name="StowawaysDetected" type="yorn-type"/>
<!-- neu in 2-0 StowawayJoiningLocation zu StowawayJoiningLocations-->
<xs:element name="StowawayJoiningLocations" type="stowawayjoininglocations" minOccurs="0"/>
<xs:element name="SickAnimalOrPetOnBoard" type="yorn-type"/>
<xs:element name="ValidSanitaryControlExemptionOrCertificateOnBoard" type="yorn-type"/>
<xs:element name="ValidSanitaryControlExemptionOrCertificate" type="sanitarycertificate" minOccurs="0"/>
<xs:element name="SanitaryControlReinspectionRequired" type="yorn-type"/>
<xs:element name="InfectedAreaVisited" type="yorn-type"/>
<!-- neu in 2-0 InfectedArea zu InfectedAreas-->
<xs:element name="InfectedAreas" type="infectedareas" minOccurs="0"/>
<xs:element name="PortsOfCallLast30Days" type="portofcalls"/>
</xs:sequence>
<xs:assert test="if (NonAccidentialDeathsDuringVoyage eq 'Y') then NonAccidentialDeathsDuringVoyageCount
else empty(NonAccidentialDeathsDuringVoyageCount)"/>
<xs:assert test="if (NumberOfIllPersonsHigherThanExpected eq 'Y') then NumberOfIllPersons else empty(NumberOfIllPersons)"/>
<xs:assert test="if (SanitaryMeasuresApplied eq 'Y') then SanitaryMeasuresDetails else empty(SanitaryMeasuresDetails)"/>
<xs:assert test="if (StowawaysDetected eq 'Y') then StowawayJoiningLocations else empty(StowawayJoiningLocations)"/>
<xs:assert test="if (ValidSanitaryControlExemptionOrCertificateOnBoard eq 'Y') then ValidSanitaryControlExemptionOrCertificate
else empty(ValidSanitaryControlExemptionOrCertificate)"/>
<xs:assert test="if (InfectedAreaVisited eq 'Y') then InfectedAreas else empty(InfectedAreas)"/>
</xs:complexType>
<xs:complexType name="sanitarydetails">
<!-- neu in 2-0 mehrere SanitaryDetails-->
<xs:sequence>
<xs:element name="SanitaryDetail" type="sanitarydetail" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sanitarydetail">
<xs:sequence>
<xs:element name="SanitaryMeasuresType" type="string1-99-type"/>
<xs:element name="SanitaryMeasuresLocation" type="string1-99-type"/>
<xs:element name="SanitaryMeasuresDate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="stowawayjoininglocations">
<!-- neu in 2-0 mehrere StowawayJoiningLocations-->
<xs:sequence>
<xs:element name="StowawayJoiningLocation" type="string1-99-type" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sanitarycertificate">
<xs:sequence>
<xs:element name="PlaceOfIssue" type="string1-99-type"/>
<xs:element name="DateOfIssue" type="xs:date"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="infectedareas">
<!-- neu in 2-0 mehrere InfectedAreas-->
<xs:sequence>
<xs:element name="InfectedArea" type="infectedarea" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="infectedarea">
<xs:sequence>
<xs:element name="InfectedAreaPort" type="string1-99-type"/>
<xs:element name="InfectedAreaDate" type="xs:date"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="portofcalls">
<xs:sequence>
<xs:element name="PortOfCallLast30Days" type="portofcallmdh" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="portofcallmdh">
<xs:sequence>
<xs:element name="PortOfCallLast30DaysLocode" type="locode-type"/>
<xs:element name="PortOfCallLast30DaysDateOfDeparture" type="xs:date"/>
<xs:element name="PortOfCallLast30DaysCrewMembersJoined" type="yorn-type"/>
<xs:element name="PortOfCallLast30DaysCrewJoinedShip" type="crewjoined" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Index" type="posint-type" use="required"/>
<xs:assert test="if (PortOfCallLast30DaysCrewMembersJoined eq 'Y') then PortOfCallLast30DaysCrewJoinedShip
else empty(PortOfCallLast30DaysCrewJoinedShip)"/>
</xs:complexType>
<xs:complexType name="crewjoined">
<xs:sequence>
<xs:element name="PortOfCallLast30DaysCrewJoinedShipName" type="string1-99-type" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>