<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
  <title>Schematron constraints zur Überprüfung der Konformaität mit dem LgBestMod.</title>
  <ns prefix="sch" uri="http://purl.oclc.org/dsdl/schematron"/>
  <ns prefix="bd" uri="http://bfr-wasserversorgung.de/bestand"/>
  <ns prefix="gml" uri="http://www.opengis.net/gml/3.2"/>
  <ns prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
  <pattern>
	<rule context="/">
		<assert test="count(//bd:LisaGuid) = count(distinct-values(//bd:LisaGuid))">Das Attribut LisaGuid muss innerhalb der gesamten XML-Datei eindeutig sein.</assert>
	</rule>
	<rule context="bd:Bestand">
		<assert test="count(//bd:Bezeichnung) = count(distinct-values(//bd:Bezeichnung))">Das Attribut Bezeichnung muss innerhalb eines Bestandsdatensatzes eindeutig sein.</assert>
	</rule>
	<rule context="bd:Einhausung">
      <assert test="bd:Lagebeschreibung">Das Attribut "Lagebeschreibung" fehlt an der Einhausung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Einhausung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Einhausung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt an der Einhausung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:UnvollständigErfasst">Das Attribut "UnvollständigErfasst" fehlt an der Einhausung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="(bd:Typ='Schacht' and bd:Bodenlage) or (bd:Typ!='Schacht' or not(bd:Typ))">Beim Schacht mit der gml-id' <value-of select="@gml:id"/>' muss das Attribut "Bodenlage" vorhanden sein.</assert>
    </rule>
    <rule context="bd:Brunnen">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position"fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Tiefe">Das Attribut "Tiefe" fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Außendurchmesser">Das Attribut "Außendurchmesser" fehlt am Brunnen mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Deckel">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Deckel mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	   <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Deckel mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am Deckel mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Druckerhöhungsanlage">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Druckerhöhungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Druckerhöhungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Druckerhöhungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Druckerhöhungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Druckminderer">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Druckminderer mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Druckminderer mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am Druckminderer mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt am Druckminderer mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am Druckminderer mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
	<rule context="bd:SonstigerRegler">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am sonstigen Regler mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am sonstigen Regler mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am sonstigen Regler mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt am sonstigen Regler mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am sonstigen Regler mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:SonstigeEntnahmearmatur">
      <assert test="bd:Typ != 'Pns' or bd:Lagebeschreibung">Bei Probeentnahmestellen muss das Attribut "Lagebeschreibung" vorhanden sein</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Entnahmearmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Entnahmearmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Entnahmearmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt an der Entnahmearmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Entnahmearmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Gebäude">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Gebäude mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Gebäude mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Hydrant">
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Hydrant mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Hydrant mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am Hydrant mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt am Hydrant mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am Hydrant mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Informationsobjekt">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Informationsobjekt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Informationsobjekt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:KKSPunkt">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am KKSPunkt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am KKSPunkt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am KKSPunkt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am KKSPunkt mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Absperrarmatur">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Leitungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Leitungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Leitungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Leitungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Löschwasserentnahmestelle">
      <assert test="bd:Bauart">Das Attribut "Bauart" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Status">Das Attribut "Status" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="not(bd:Typ) or bd:Typ = 'EA'">Der Typ des Löschwasserentnahmestelle mit der gml-id' <value-of select="@gml:id"/>' muss 'EA' sein.</assert>
    </rule>
    <rule context="bd:Pumpe">
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Pumpe mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Pumpe mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Pumpe mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Reparaturstelle">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Rapraturstelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Rapraturstelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Rapraturstelle mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Schutzrohr">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Schutzrohr mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Schutzrohr mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Verlauf">Das Attribut "Verlauf" fehlt am Schutzrohr mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Sicherungsarmatur">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Sicherungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Sicherungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Sicherungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt an der Sicherungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Sicherungsarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
	 <rule context="bd:Messarmatur">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Messarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Messarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Messarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt an der Messarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Messarmatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:SonstigeArmatur">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der sonstigen Armatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der sonstigen Armatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der sonstigen Armatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Status">Das Attribut "Status" fehlt an der Armatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der sonstigen Armatur mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:SonstigerWasserknoten">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am sonstigen Wasserknoten mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am sonstigen Wasserknoten mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt am sonstigen Wasserknoten mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Status">Das Attribut "Status" fehlt am sonstigen Wasserknoten mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt am sonstigen Wasserknoten mit der gml-id' <value-of select="@gml:id"/>'.</assert>
    </rule>
    <rule context="bd:Trinkwasserbehälter">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt am Trinklwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Lagebeschreibung">Das Attribut "Lagebeschreibung" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Unterirdisch">Das Attribut "Unterirdisch" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:UnvollständigErfasst">Das Attribut "UnvollständigErfasst" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Objekthöhe">Das Attribut "Objekthöhe" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:VolumenBrandschutz">Das Attribut "VolumenBrandschutz" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Speichervolumen">Das Attribut "Speichervolumen" fehlt am Trinkwasserbehälter mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Wasserart = 'Tw'">Das Attribut "Wasserart" des Trinkwasserbehälters mit der gml-id' <value-of select="@gml:id"/>' muss vorhanden sein und den Wert 'Tw' haben.</assert>
    </rule>
    <rule context="bd:Wasserbehandlungsanlage">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Wasseraufbereitungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Wasserbehandlungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Position">Das Attribut "Position" fehlt an der Wasseraufbereitungsanlage mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="(bd:Behandlungsart='Aufb' or not(bd:Behandlungsart)) or (bd:Behandlungsart!='Aufb' and bd:Wasserart)">Bei der Wasserbehandlungsanlage mit der gml-id' <value-of select="@gml:id"/>' muss das Attribut "Wasserart" vorhanden sein.</assert>
    </rule>
    <rule context="bd:Wasserleitung">
      <assert test="bd:LisaGuid">Das Attribut "LisaGuid" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Erfassungsverfahren">Das Attribut "Erfassungsverfahren" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Status">Das Attribut "Status" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Material">Das Attribut "Material" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
	  <assert test="bd:Nennweite">Das Attribut "Nennweite" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Verlauf">Das Attribut "Verlauf" fehlt an der Wasserleitungmit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="bd:Wasserart">Das Attribut "Wasserart" fehlt an der Wasserleitung mit der gml-id' <value-of select="@gml:id"/>'.</assert>
      <assert test="not(//*[@gml:id=current()/bd:verbindet/@xlink:href][not(local-name()='Hydrant' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='SonstigerWasserknoten' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='SonstigeEntnahmearmatur' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='Löschwasserentnahmestelle' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='Druckminderer' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='SonstigerRegler' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='Trinkwasserbehälter' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='Druckerhöhungsanlage' and namespace-uri()='http://bfr-wasserversorgung.de/bestand') and not(local-name()='Wasserbehandlungsanlage' and namespace-uri()='http://bfr-wasserversorgung.de/bestand')])">Die Wasserleitung mit der gml-id '<value-of select="@gml:id"/>' verbindet einen nicht-erlaubten Wasserknotentyp. Erlaubte Wasserknoten sind: Hydrant, SonstigerWasserknoten, Löschwasserentnahmestelle, SonstigeEntnahmearmatur, Druckminderer, SonstigerRegler, Trinkwasserbehälter, Druckerhöhungsanlage, Wasserbehandlungsanlage.</assert>
    </rule>
  </pattern>
</schema>
