<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    AD.PL - Address w Polsce
    Status: draft
-->
<rule xmlns="http://purl.oclc.org/dsdl/schematron" abstract="true" id="AD.PL">
    <extends rule="AD"/>
    
    <report role="error"
           test="not(@nullFlavor) and ((not(hl7:country) or upper-case(hl7:country)='POLSKA') and not(hl7:postalCode))">Dla polskiego adresu wymagane jest podanie kodu pocztowego.</report>
    <report role="error"
           test="not(@nullFlavor) and (not(hl7:country) or upper-case(hl7:country)='POLSKA') and not(hl7:city)">Dla polskiego adresu wymagane jest podanie miasta.</report>
    <report role="error"
           test="not(@nullFlavor) and (not(hl7:country) or upper-case(hl7:country)='POLSKA') and not(hl7:houseNumber)">Dla polskiego adresu wymagane jest podanie numeru domu.</report>
    <report role="error"
           test="hl7:censusTract and hl7:censusTract[not(matches(text(),'^TERYT\s(TERC|SIMC):\s[0-9]{7}$'))]">Nieprawidłowy format zapisu numeru TERYT.</report>
    <report role="error" test="@nullFlavor and count(./*) &gt; 1">Jeżeli adres jest nieznany, to nie może zawierać żadnych składników adresu.</report>        
</rule>
