EMREG v0.91 (PUBLIC DRAFT, CANDIDATE FOR 1.00)
Copyright (C) 2025 Environment Agency Austria
Commissioned by the Austrian Federal Ministry of Agriculture, Forestry, Regions and Water Management (BML)
Licensed under the EUPL, Version 1.2 or – as soon they will be approved
by the European Commission – subsequent versions of the EUPL (the "Licence");
You may not use this work except in compliance with the Licence.
You may obtain a copy of the Licence at: http://joinup.ec.europa.eu/software/page/eupl
Unless required by applicable law or agreed to in writing, work distributed under the licence is distributed
on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the Licence for the specific language governing permissions and limitations under the Licence.
Schnittstellenbeschreibung
In dieser Version des Spezifikationspakets besteht die Schnittstellenbeschreibung
aus den folgenden beiden Teilen:
Hauptbeschreibungsdokument im PDF-Format
Dieser Anhang im HTML-Format
Die Hauptbeschreibung im PDF-Format liefert Hintergrundinformationen und Erläuterungen
zu zahlreichen Details.
Dieser Anhang zur Beschreibung enthält detaillierte Definitionen der XML-Formate,
sowie eine Beschreibung der formalen Prüfungen, welche die Schnittstelle auf Übermittlungen
an die Bundesbehörde anwendet. Die Autoren dieser Spezifikation haben den Großteil
der Inhalte dieses Anhangs automatisiert generiert, unter anderem aus den im Spezifikationspaket
enthaltenen annotierten XSD-Dateien. Annotierte XSD-Dateien sind XML Schema Definitionen
(XSD), die textuelle Beschreibungen der Datenelemente enthalten.
Die Ausgestaltung dieser Beispiel-Messages orientiert sich vor allem an den folgenden
beiden Kriterien:
Die Beispiele beinhalten Daten, die zwar einerseits fiktiv (erfunden, willkürlich
festgelegt) sind, aber andererseits Ähnlichkeiten mit in der Praxis tatsächlich auftretenden
Daten besitzen
Die Beispiele nutzen möglichst viele der XML-Datenelemente, um deren Verwendung zu
illustrieren
xsd_schema1p0/
Enthält die zum Spezifikationspaket gehörenden XML Schema Definitionen in einer XML
Schema 1.0 konformen Fassung.
Die zum Spezifikationspaket gehörenden XSD-Dateien im Haupt-Spezifikationspaket-Ordner
sind konform zu XML Schema 1.1.
Die XML Schema 1.0 konforme Fassung der XSD Dateien unterscheidet sich von der XML
Schema 1.1 konformen Fassung vor allem durch das Fehlen bzw. Weglassen von assert-Elementen. Dabei handelt es sich um formale Bedingungen, deren Einhaltung Voraussetzung
für die Gültigkeit von XML-Instanzen bezüglich der Schema Definition ist.
Bei der Verwendung der XML Schema 1.0 konformen XSD-Dateien als Basis für die Entwicklung
einer XML-Export-Funktion sollten Entwickler beachten, dass die Einhaltung der Bedingungen
aus den assert-Elementen der XML Schema 1.1 konformen XSD-Dateien Voraussetzung für das Funktionieren
von Schnittstellen-Übermittlungen bzw. -Uploads ist.
z_descr_img/
Für die Ordner, deren Namen mit "z_" beginnt, ist es für gewöhnlich nicht sinnvoll, diese einzeln durchzusehen. Vielmehr verlinkt die Beschreibung auf Inhalte
dieser Ordner.
Der Ordner z_descr_img enthält die in der HTML-Beschreibung verwendeten Bilddateien.
emreg_doc.pdf
Die Anleitung zur korrekten Verwendung des Datenformats bzw. der Schnittstelle.
emreg_doc_annex.html
Anhang zur Schnittstellenbeschreibung. Beschreibt insbesondere das Datenformat und
die formalen Prüfungen im Detail. Die Spezifikationsautoren haben einen Großteil des
Inhalts dieses Anhangs automatisiert generiert, z.B. aus annotierten XSD-Dateien.
emreg_formalvalidationrules.sch
„Quelltext“ der für die definierten formalen Prüfungen in der formalen Sprache [Schematron].
Die Autoren der Spezifikation verwenden [SchXslt], um aus diesem Quelltext die Datei
emreg_formalvalidationrules.xsl zu erstellen.
Durch die Bereitstellung dieses „Quelltexts“ sind die formalen Prüfungen, welche die
Schnittstelle auf Übermittlungen an die Bundesbehörde anwendet, offen und transparent.
So kann beispielsweise IT-Personal, das an einer Schnittstellenbindung arbeitet, beim
Verdacht auf fehlerhafte Spezifikation einer formalen Prüfung den [Schematron]-Quelltext
der Prüfregel nach Fehlern durchsuchen.
emreg_formalvalidationrules.xsl
[XSLT]-Instanz, mit welcher die Schnittstelle Übermittlungen an die Bundesbehörde
formalen Prüfungen unterzieht. Dazu unterzieht die Schnittstelle die hochgeladene
Message der Transformation aus emreg_formalvalidationrules.xsl. Diese Transformation liefert das Prüfprotokoll im SVRL-Format. Die Schnittstelle
übernimmt die darin enthaltenen Einträge in das in der Benutzeroberfläche angezeigte
Prüfprotokoll.
Die Spezifikations-Autoren haben emreg_formalvalidationrules.xsl automatisiert aus dem "Schematron-Quelltext" emreg_formalvalidationrules.sch per [SchXslt] generiert.
emreg_message.xsd
Definiert das [XML]-Format für Importe in das Emissionsregister sowie Exporte aus
dem Emissionsregister in der formalen Sprache [XSD]. Bei der Übermittlung an die Bundesbehörde
validiert edm.gv.at (Teilanwendung EMREG-OW) die hochgeladene XML-Message, d.h. es
überprüft, ob die hochgeladene [XML]-Datei bezüglich des in emreg_message.xsd definierten Formats gültig ist. Eine solche Gültigkeit ist eine technische Voraussetzung
dafür, dass edm.gv.at die hochgeladenen Daten verarbeiten kann.
Der Abschnitt Message-Formate (aus emreg_message.xsd) beschreibt die per emreg_message.xsd definierten [XML]-Strukturen und die in den jeweiligen Datenelementen ([XML]-Elemente
und [XML]-Attribute) erwarteten Inhalte im Detail.
Anmerkung: Die Spezifikation enthielt bis zur Version 0.32 zwei XML-Schema-Definitionen
(XSD-Dateien), eine für die Übermittlung von Bewegungsdaten mit Stammdaten, und eine zweite für die Übermittlung von Bewegungsdaten ohne Stammdaten. Der Begriff Bewegungsdaten meint hier Emissionsdaten für einen Berichtszeitraum (Kalenderjahr), und der Begriff
Stammdaten meint Details zu Anlagen, Teilströmen und Bescheiden. Ministerium und Umweltbundesamt haben mit Version 0.33 der Spezifikation die Möglichkeit
der XML-Stammdaten-Übermittlung entfernt. Seit v0.33 definiert diese Spezifikation
und die dazugehörige XSD-Datei emreg_message.xsd also ausschließlich ein XML-Format für die Übermittlung von Bewegungsdaten ohne Stammdaten.
gml_excerpt.xsd
Das Datenformat unterstützt den Austausch von Geokoordinaten, beispielsweise Lagekoordinaten
von Einleitungsstellen am Gewässerufer, Lagekoordinaten von aus Einleitungsstellen
abgeleiteten Bezugspunkten am Gewässergraphen und Anlage-Punkt-Koordinaten. Zur Abbildung
solcher Koordinaten-Angaben nutzt die Spezifikation einen Auszug aus dem GML 3.2.1
Standard. Die XSD-Datei gml_excerpt.xsd enthält genau diesen Auszug.
Ein “Umschlag”, der Angaben zu Einwirkungen auf Wasserkörper durch Emissionen aus
Punktquellen gemäß EmRegV‑OW 2017 beinhaltet.
Anmerkung: Ein solcher “Umschlag” zeichnet sich durch folgendes aus:
(a) Die Inhalte stammen alle von ein- und demselben Datenbereitsteller;
(b) Die Inhalte werden bzw. wurden vom Datenbereitsteller als ein einziges Gesamtdatenpaket
bereitgestellt (also insbesondere auch zu einem einzigen Zeitpunkt, und nicht zu mehreren
verschiedenen Zeitpunkten).
Aufzählung von Meldendem, Wasserbenutzungs- und Wasserreinigungs-Anlagen, sowie Teilströmen.
Anmerkung: Die Angaben dienen ausschließlich der Identifikation, und enthalten daher
nur wenige identifizierende Merkmale wie ID und Name. Die Schnittstelle ist NICHT
auf die Übermittlung von Stammdaten an die Behörde ausgelegt. Ein Ergänzen und Aktualisieren
der EDM-Stammdaten-Eintragungen (zu Anlagen, Teilströmen, usw.) ist mit den XML-Übermittlungen
(und den Angaben unter ListedData) NICHT möglich.
Angaben zu Einwirkungen auf Wasserkörper durch Emissionen aus Punktquellen für einen
einzelnen Bezugszeitraum (Kalenderjahr), gemäß EmRegV‑OW 2017.
Anmerkung: Die Übermittlung von Angaben an die Bundesbehörde hat jeweils für genau
ein Berichtsjahr zu erfolgen. Die EMREG-OW-Anwendung erwartet in der XML-Instanz daher
genau ein EnvironmentalDataDocument-Element.
Anmerkung: Es sollen genau die für die Zielangabe benötigten Adresskomponenten angegeben
sein. Weder sollen benötigte Adresskomponenten fehlen - z.B. werden Angaben zu Örtlichkeit
und Postleitzahl fast immer benötigt - noch soll eine Ergänzung um nicht benötigte
Angaben erfolgen - z.B. wird die Angabe von Verwaltungseinheiten wie Bundesland oder
Bezirk fast nie benötigt.
Angaben zu einer Adresskomponente, z.B. Straße oder Postleitzahl.
Anmerkung: Zu einer Adresskomponente wird entweder eine Identifikation (RepresentationID,
z.B. Hausnummer), oder ein Auszeichnungstext (z.B. RepresentationDesignation, z.B.
Straßenname) angegeben.
Identifikation einer Adresskomponente des angegebenen Typs
Beispiel: ISO-Code »040« zur Identifikation des Landes Österreich.
Anmerkung 1: Ausschließlich für Identifikationen vorgesehen, die NICHT als Teil von
korrekten Adressrepräsentationen, etwa Anschriften auf Briefen, aufscheinen. Postleitzahlen,
Hausnummern oder Türnummern hingegen, die sehr wohl in der jeweiligen korrekten Adressrepräsentationen
aufscheinen, werden unter “RepresentationID” angegeben.
Anmerkung 2: Ausschließlich für die Verwendung mit Adresskomponente “Land” vorgesehen,
zur Angabe des dreistelligen numerischen ISO-Codes des Landes (↗Codeliste 3862).
Identifikation einer Adresskomponente des angegebenen Typs.
Beispiel: »6714« in Zusammenhang mit Typ “Postgebiet (Postleitzahl)” - 6714 ist die
Postleitzahl von Nüziders in Vorarlberg.
Anmerkung: Ausschließlich für Identifikationszeichenketten vorgesehen, die als Teil
von korrekten Adressrepräsentationen, etwa Anschriften auf Briefen, aufscheinen, z.B.
Postleitzahlen, Hausnummern oder Türnummern. Andere Identifikationen von Adresskomponenten,
solche die nicht als Teil von korrekten Adressrepräsentationen aufscheinen, z.B. ISO-Ländercodes,
werden unter “ID” angegeben.
Bezug auf das Unternehmen, den Verein, die Gemeinde bzw. die sonstige “nicht-natürliche
Person”, welche Dokumentersteller ist.
Anmerkung: Beim Import von XML-Daten in die EMREG-OW-Anwendung werden die in der XML-Instanz
enthaltenen Angaben zum Ersteller der Dateninstanz ignoriert. Wer als Dateninstanz-Ersteller
gilt, leitet sich in der gegenwärtigen Ausgestaltung der Anwendung aus der Interaktion
mit der Benutzeroberfläche ab (z.B. Auswahl in der Benutzeroberfläche und/oder Ableitung
aus angemeldetem Benutzer).
Allgemeine Angaben (“Kopfdaten”, “Metadaten”) zu einer Gruppe von Dokumenten. Zu solchen
Metadaten zählen beispielsweise Informationen zum Dokumentersteller und zum Zeitpunkt
der Dokumenterstellung.
Datum, das den Stand der zum Zeitpunkt der Dokumenterstellung in Verwendung befindlichen
Codelisten anzeigt.
Anmerkung: Dies ist eine üblicherweise automatisch durch eine IT-Anwendung generierte
Angabe. Es handelt sich um die Angabe, welchen Stand der Codelisten die vom Ersteller
der XML-Instanz genutzte Software verwendet.
Angaben zu von Anlagen emittierten Frachten im Bezugszeitraum.
Anmerkung 1: Der Bezugszeitraum ist der Zeitraum aus EnvironmentalDataDocument/Document/TemporalExtent.
Anmerkung 2: Das Datenformat unterstützt Frachtwerte ausschließlich auf Teilstrom-Ebene.
Auf Anlagen-Ebene unterstützt das Datenformat ausschließlich Anmerkungen zu den Emissionen,
aber keine Werte.
Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Frachten, z.B.
zu den im betreffenden Jahr abgeflossenen bzw. zugeflossenen Schadstofffrachten.
Anmerkung: Der Bezugszeitraum ist der Zeitraum aus EnvironmentalDataDocument/Document/TemporalExtent.
Anmerkung: Das Datenformat unterstützt Frachtwerte ausschließlich auf Teilstrom-Ebene.
Auf Anlagen-Ebene unterstützt das Datenformat ausschließlich Anmerkungen zu den Emissionen,
aber keine Werte.
Anmerkungen zu den Emissionen (Jahresfrachten) aus der betreffenden Anlage im Bezugszeitraum.
InstallationReferencePeriodResult wird verwendet in: EnvironmentalData
ListedData
Aufzählung von Meldendem, Wasserbenutzungs- und Wasserreinigungs-Anlagen, sowie Teilströmen.
Anmerkung: Die Angaben dienen ausschließlich der Identifikation, und enthalten daher
nur wenige identifizierende Merkmale wie ID und Name. Die Schnittstelle ist NICHT
auf die Übermittlung von Stammdaten an die Behörde ausgelegt. Ein Ergänzen und Aktualisieren
der EDM-Stammdaten-Eintragungen (zu Anlagen, Teilströmen, usw.) ist mit den XML-Übermittlungen
(und den Angaben unter ListedData) NICHT möglich.
Parameter (Eigenschaft, Größe), für dessen Bestimmung die Methode dient bzw. geeignet
ist.
Anmerkung 1: Parameter können per GTIN (↗Codeliste 2809) oder per EHPC-Code (Codeliste 6912) identifiziert werden.
Anmerkung 2: In jeder XML-Instanz ist jeweils nur genau eine dieser beiden Parameter-Codierungen,
GTIN oder EHPC-Code, zu verwenden, und zwar über die verschiedensten Angaben - Grenzwert,
Jahreswert, Messwert, usw. - hinweg.
Anmerkung 3: Für per EHPC-Code identifizierte Parameter sind solche Angaben zur Methode
nur in Kombination mit solchen EHPC-Codes zu verwenden, in welchen noch keine Methode
codiert ist.
Beschreibung der Methode (Überblick/Zusammenfassung).
Anmerkung: An dieser Stelle wird keine detaillierte Beschreibung/Wiedergabe der Methode
erwartet, sondern eine Zusammenfassung bzw. ein Überblick über die betreffende Methode.
Die Methoden-Details (die hier nicht wiedergegeben werden sollen) stammen üblicherweise
aus veröffentlichten Spezifikationen. Ein Verweis auf solche Spezifikationen wird
im Element “ReferredPublication” erwartet.
Beispiel: “Untersuchung gemäß EN 1484:1997, Spektralanalysen-Variante”.
Veröffentlichungen, welche die Methode bzw. Methoden-Schritte spezifizieren, insbesondere
Normen.
Anmerkung 1: Bei Angabe von mehreren Veröffentlichungen/Schritten wird die Angabe
in jener Reihenfolge erwartet, in welcher die Schritte üblicherweise angewandt werden.
Anmerkung 2: Es gibt Normen, welche Bestimmungsmethoden für mehrere Parameter spezifizieren
(z.B. EN ISO 10695 “Wasserbeschaffenheit - Bestimmung ausgewählter organischer Stickstoff-
und Phosphorverbindungen”). Es kann also durchaus vorkommen, dass sich auf unterschiedliche
Parameter beziehende Methoden (Method-Instanzen) Bezüge auf dieselbe Norm bzw. Publikation
(gleich lautende ReferredPublication-Einträge) enthalten.
Bei der Untersuchung mit dieser Methode zutreffende Nachweisgrenze.
Anmerkung: Die Nachweisgrenze ist nur in Zusammenhang mit Eigenschaften relevant,
die sich auf das Vorkommen einer Komponente beziehen, aber nicht für Eigenschaften
wie pH-Wert oder elektrische Leitfähigkeit.
Bei der Untersuchung mit dieser Methode zutreffende Bestimmungsgrenze.
Anmerkung: Die Bestimmungsgrenze ist nur in Zusammenhang mit Eigenschaften relevant,
die sich auf das Vorkommen einer Komponente beziehen, aber nicht für Eigenschaften
wie pH-Wert oder elektrische Leitfähigkeit.
Anmerkung: Im vorliegenden Datenformat werden an den meisten Stellen Beschreibungstexte
in deutscher Sprache erwartet. Die vom “MultilingualDescription”-Typ grundsätzlich
unterstützte Möglichkeit, Angaben in mehreren verschiedenen Sprachen zu ermöglichen,
wird an diesen Stellen nicht genutzt: “IndividualDescription” ist deshalb hier nicht
wiederholbar.
Website-Adresse des Unternehmens bzw. der nicht-natürlichen Person.
Anmerkung 1: An dieser Stelle ermöglicht das Datenformat die folgenden Angaben: Website-Adresse
(GTIN 9008390104200). Andere Kontaktangaben, z.B. Telefonnummer, Faxnummer und E-Mail-Adresse,
ermöglicht das Datenformat an dieser Stelle nicht.
Anmerkung 2: Die Codes (GTINs) stammen aus ↗Codeliste 6745 und sind unter CommunicationNetworkEndpoint/TypeID anzugeben.
Branchencode und Branchenzuordnung (vierstellig) gemäß der Verordnung (EWG) Nr. 3037/90
betreffend die statistische Systematik der Wirtschaftszweige in der Europäischen Gemeinschaft
(NACE, ↗Codeliste 4731).
Parameter (Eigenschaft, Größe), der untersucht bzw. bestimmt wurde.
Anmerkung 1: Das Datenformat sieht keine Einzelmessergebnisse zu den Parametern “pH-Wert”
und “Temperatur” vor.
Anmerkung 2: Parameter können per GTIN (↗Codeliste 2809) oder per EHPC-Code (Codeliste 6912) identifiziert werden.
Anmerkung 3: In jeder XML-Instanz ist jeweils nur genau eine dieser beiden Parameter-Codierungen,
GTIN oder EHPC-Code, zu verwenden, und zwar über die verschiedensten Angaben - Grenzwert,
Jahreswert, Messwert, usw. - hinweg.
Anmerkung 4: EHPC-Codes codieren Informationen zur Größeneinheit mit. Ist in der Dateninstanz
zusätzlich eine Größeneinheit angegeben, unter NumericValue/@unitID, dann hat diese
Angabe höhere Priorität, d.h. die im EHPC-Code mit codierte Größeneinheit ist dann
zu ignorieren bzw. wird dann ignoriert.
Identifikation der Methode, mit welcher der Parameter untersucht bzw. bestimmt wurde
(Bezug auf einen Eintrag unter Testing/AppliedMethod/DocumentScopeAssignmentID).
Anmerkung 1: Bei der XML-Übermittlung in EMREG-OW werden keine Angaben zu angewandten
Untersuchungsmethoden erwartet.
Anmerkung 2: Ist der Parameter per EHPC-Code identifiziert, und ist im EHPC-Code eine
Analysenmethode mit codiert, dann hat eine per Method ReferenceID angebene Methode
höhere Priorität, d.h. die im EHPC-Code mit codierte Analysenmethode ist dann zu ignorieren
bzw. wird dann ignoriert.
Identifikation der Veröffentlichung, z.B. Nummer der Norm.
Beispiel: EN 1484 (Nummer der Norm “Water analysis - Guidelines for the determination
of total organic carbon (TOC) and dissolved organic carbon (DOC)”).
Angaben zu einem Parameterwert für einen vorgegebenen Gesamtbezugszeitraum (Kalenderjahr).
Anmerkung: Für Stoff- bzw. Schadstoff-bezogene Parameter sind hier die Gesamtfrachten
für das betreffende Kalenderjahr gemeint. Für sonstige Parameter, z.B. pH-Wert, das
Mittel über das Kalenderjahr.
Parameter, z.B. Inhaltsstoff/Schadstoff, auf den sich die Angaben beziehen.
Anmerkung 1: Parameter können per GTIN (↗Codeliste 2809) oder per EHPC-Code (Codeliste 6912) identifiziert werden.
Anmerkung 2: In jeder XML-Instanz ist jeweils nur genau eine dieser beiden Parameter-Codierungen,
GTIN oder EHPC-Code, zu verwenden, und zwar über die verschiedensten Angaben - Grenzwert,
Jahreswert, Messwert, usw. - hinweg.
Anmerkung 3: EHPC-Codes codieren Informationen zur Größeneinheit mit. Ist in der Dateninstanz
zusätzlich eine Größeneinheit angegeben, unter NumericValue/@unitID, dann hat diese
Angabe höhere Priorität, d.h. die im EHPC-Code mit codierte Größeneinheit ist dann
zu ignorieren bzw. wird dann ignoriert.
Berechnungsbasis-Messjahr, d.h. Mess-Bezugszeitraum, dessen Messergebnisse für die
Berechnung des Berichts-Jahreswerts herangezogen wurden.
Anmerkung 1: §5 Abs. 3 der Emissionsregisterverordnung 2017 beschreibt, wie in bestimmten
Fällen in Jahren ohne Messverpflichtung Jahreswerte rechnerisch ermittelt (extrapoliert)
werden, indem Ergebnisse aus einem vergangenen Messjahr mit der im Berichtsjahr ermittelten
Wassermenge multipliziert werden.
Anmerkung 2: Wenn CalculationBasisPeriod NICHT ANGEGEBEN ist, dann steht das dafür,
dass der Jahreswert durch Messungen im Berichtszeitraum ermittelt wurde. Wenn CalculationBasisPeriod
angegeben ist, dann steht das dafür, dass der Jahreswert NICHT durch Messungen im
Berichtszeitraum ermittelt wurde, sondern rechnerisch aus Messungen in einem dem Berichtszeitraum
vorangehenden Messjahr. Um eine Fehlinterpretation von Angaben zu vermeiden, ist daher
wichtig, dass für Jahreswerte, die durch Messungen im Berichtszeitraum ermittelt wurden,
CalculationBasisPeriod NICHT angegeben ist.
Der für den Parameter und den Bezugszeitraum (Kalenderjahr) ermittelte Wert. Dabei
handelt es sich für Parameter, die sich auf Stoffe bzw. Schadstoffe beziehen, um die
Gesamtfracht im Kalenderjahr.
Anmerkung 1: Das Fehlen des ValueAssignmentStatement-Elements ist ausschließlich in
denjenigen Fällen zulässig, in welchen zum betreffenden Parameter in der XML-Instanz
Einzelmesswerte angegeben sind. Der Eintrag in den Bezugszeitraum-Angaben dient dann
lediglich der Angabe der Parameterkategorie im Element PropertyCategoryID.
Anmerkung 2: Die Methode zur rechnerischen Ermittlung von Jahresfrachten aus Einzelmessungen
der Konzentration in Kombination mit der emittierten Wassermenge ist in Anlage D der
Emissionsregisterverordnung 2017 definiert.
Anmerkung 3: Im allgemeinen wird für Jahresfracht-Angaben ein Zahlenwert erwartet
(NumericValue), nicht aber Angaben wie “Ergebnis unterhalb der Bestimmungsgrenze”
(ResultTypeID).
Anmerkung 1: Das Datenformat ermöglicht die Angabe folgender Dokumentarten: “Wasserwirtschaftliche
Bewegungsdaten” (GTIN 9008390120514).
Anmerkung 2: Seit Version 0.33 der Spezifikation unterstützt das Datenformat die Dokumentart
“Wasserwirtschaftliche Stammdaten und Bewegungsdaten” (GTIN 9008390120507) NICHT mehr.
Als Zahl angegebener Wert, potentiell in Kombination mit einer Einheit, z.B. “200mg”.
Anmerkung 1: Die Einheit wird über den ISO/UCUM-Code identifiziert, z.B. “mg”.
Anmerkung 2: Aufgrund der Verwendung eines Zahlen-Datentyps kann die Genauigkeit/Unsicherheit
von Ergebnissen (signifikante Stellen) NICHT über die Schreibweise des Zahlenwerts
ausgedrückt werden. Beispielsweise werden die beiden Literale 30,00 und 30,0 als derselbe
Zahlenwert interpretiert. Wenn Genauigkeit/Unsicherheit quantifiziert und ausgedrückt
werden sollen, dann muss das also auf anderem Weg als über die Schreibweise der Zahlenliterale
erfolgen.
Identifikation der Art des Ergebnisses, z.B. Wert unterhalb der Bestimmungsgrenze
oder Wert unterhalb der Nachweisgrenze.
Anmerkung 1: Jede Wertzuweisungs-Aussage enthält entweder einen Zahlenwert in NumericValue,
oder eine Art des Ergebnisses in ResultTypeID. ResultTypeID identifiziert also den
Grund dafür, dass kein Zahlenwert angegeben ist.
Anmerkung 2: Das Datenformat ermöglicht an dieser Stelle die Angabe der folgenden
Ergebnisarten: “Ergebnis unterhalb der Nachweisgrenze” (Code »BELOW_DETECTION_LIMIT«),
oder “Ergebnis unterhalb der Nachweisgrenze” (Code »BELOW_QUANTIFICATION_LIMIT«).
Anmerkung 3: Die Codes, aus welchen die Ergebnisart hervorgeht, stammen aus Codeliste
4325.
Anmerkung 4: Ein objectDesignation-Attribut ist an dieser Stelle - im Gegensatz zu
den meisten anderen Bezügen dieser Art - nicht vorgesehen. An dieser Stelle wird eine
solche reduzierte Bezugnahme verwendet, da das Element in einer XML-Instanz sehr häufig
vorkommen kann, und somit die XML-Instanz durch redundante objectDesignation-Attribute
stark an Größe gewinnen und an Lesbarkeit verlieren würde.
Als Zahl angegebener Wert, potentiell in Kombination mit einer Einheit, z.B. “200mg”.
Anmerkung 1: Die Einheit wird über den ISO/UCUM-Code identifiziert, z.B. “mg”.
Anmerkung 2: Aufgrund der Verwendung eines Zahlen-Datentyps kann die Genauigkeit/Unsicherheit
von Ergebnissen (signifikante Stellen) NICHT über die Schreibweise des Zahlenwerts
ausgedrückt werden. Beispielsweise werden die beiden Literale 30,00 und 30,0 als derselbe
Zahlenwert interpretiert. Wenn Genauigkeit/Unsicherheit quantifiziert und ausgedrückt
werden sollen, dann muss das also auf anderem Weg als über die Schreibweise der Zahlenliterale
erfolgen.
Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Eigenschaften,
insbesondere zu den im betreffenden Jahr abgeflossenen bzw. zugeflossenen Schadstofffrachten.
Teilstrom (Bezug auf einen Eintrag aus ListedData/WasteWaterStream/DocumentScopeAssignmentID),
auf den sich die “Zeitraum-Ergebnisse”, z.B. Jahresfrachten, beziehen.
Auf den Teilstrom-Zufluss im Bezugszeitraum zutreffende Eigenschaften, z.B. die Schadstoffrachten
des gesamten Jahres.
Anmerkung: Für sich auf Stoffe (Schadstoffe) beziehende Parameter wird die Angabe
der Gesamtfracht im Bezugszeitraum (Kalenderjahr) erwartet. Für etwaige sonstige Parameter,
z.B. pH-Wert, wird die Angabe des Bezugszeitraum-Mittels (z.B. Jahresmittels) erwartet.
WasteWaterStreamReferencePeriodResult wird verwendet in: EnvironmentalData
Bezeichnung des Objekts, auf das Bezug genommen wird.
Beispiel: Wird auf Finnland Bezug genommen, dann kann das wie folgt geschehen: Als
Identifikationszeichenkette wird “246” eingetragen (dabei handelt es sich um den ISO
3166-1 Code von Finnland), als Identifikation der Sammlung “3862” (das ist die vierstellige
Nummer der “Länder”-Codeliste), und als Objektbezeichnung “Finnland”.
Bezugnahme auf ein Objekt durch Angabe einer dem Objekt zugeordneten Identifikationszeichenkette.
Beispiel: Bezugnahme auf einen Parameter durch Angabe der Parameter-ID.
Anmerkung 1: Zusätzlich zur Identifikationszeichenkette wird die ID jener Sammlung
(z.B. Register oder Codeliste, etwa Abfallverzeichnis) angegeben, aus der die Identifikationszeichenkette
stammt.
Anmerkung 2: Auf welche Objekte Bezug genommen werden kann, hängt vom Kontext ab,
in dem der Datentyp verwendet wird.
Bezeichnung des Objekts, auf das Bezug genommen wird.
Beispiel: Wird auf Finnland Bezug genommen, dann kann das wie folgt geschehen: Als
Identifikationszeichenkette wird “246” eingetragen (dabei handelt es sich um den ISO
3166-1 Code von Finnland), als Identifikation der Sammlung “3862” (das ist die vierstellige
Nummer der “Länder”-Codeliste), und als Objektbezeichnung “Finnland”.
Referenzierung eines Objekts durch Angabe eines dem Objekt zugeordneten Identifikators,
z.B. Referenzierung einer Wirtschaftstätigkeit gemäß NACE-Klassifikation. Zusätzlich
zum Objekt-Identifkator wird die Identifikation der Sammlung von Identifikatoren (z.B.
NACE-Klassifikation, Codeliste mit der ID 4731) benötigt, der der Identifikator entstammt.
Anmerkung: Aus welchen Sammlungen von Identifikatoren das referenzierte Objekt zulässigerweise
stammen kann, hängt vom Kontext ab, in dem der Datentyp verwendet wird.
Anmerkung: Der Datentyp “RelaxedReferenceNoRoleIdentifier” entspricht “ReferenceNoRoleIdentifier”,
besitzt aber im Vergleich zu diesem einen erweiterten, weniger restriktiven Wertebereich.
Identifikation der Sammlung von Identifikatoren (z.B. Register oder Codeliste), der
der angegebene Objekt-Identifikator entstammt.
Beispiel: Der Wert “4731” zur Identifikation der Codeliste “Wirtschaftstätigkeiten
gemäß NACE (nur Detail-Klassifikationsebene)”.
Anmerkung: Welche Sammlungen von Identifikatoren zulässigerweise identifiziert werden
können, hängt vom Kontext ab, in dem der Datentyp verwendet wird.
Bezeichnung des Objekts, auf das Bezug genommen wird.
Beispiel: Bei einem Bezug auf die Tätigkeit “Herstellung von Zement” kann als Identifikationszeichenkette
»23.51« eingetragen werden (NACE-Code der Tätigkeit), als Identifikation der Sammlung
»4731« (vierstellige Nummer der EDM-NACE-Codeliste) und als Objektbezeichnung »Herstellung
von Zement« (Bezeichnung der Tätigkeit).
CollectionEntrySelectionRelaxedIdentifier wird verwendet in: Method, Organization
In einem Objektkontext angegebener Wert (Identifikator), der innerhalb der Dateninstanz
für etwaige Referenzierungen des Objekts verwendet wird.
Anmerkung: Für Identifikatoren dieses Typs kann die Eindeutigkeit nur im Dateninstanzkontext
vorausgesetzt werden, eine darüber hinausgehende Eindeutigkeit gibt es nicht notwendigerweise.
Im Detail bedeutet das: Beim automatisierten ERSTELLEN einer XML-Dateninstanz durch
eine Software sind Identifikatoren zu verwenden, die ZUMINDEST innerhalb der XML-Dateninstanz
eindeutig sind. Es genügt also beispielsweise das Durchnummerieren der in der XML-Dateninstanz
vorkommenden Objekte mit Ganzzahlen {1, 2, ..., n}. Alternativ eignet sich auch die
Verwendung von Identifikatoren, die über den Kontext der einzelnen XML-Dateninstanz
hinaus eindeutig sind, z.B. IDs aus einem Register. Beim EINLESEN und VERARBEITEN
einer XML-Dateninstanz darf ausschließlich die dateninstanzweite Eindeutigkeit der
Identifikatoren vorausgesetzt werden!
Referenzierung eines Objekts mittels eines an anderer Stelle in der Dateninstanz dem
Objekt zugewiesenen, im Dateninstanzkontext gültigen, Identifikators, ohne Möglichkeit
der Angabe einer Rolle.
Wertebereich, zu dem alle aus maximal 64 Zeichen bestehenden Zeichenketten gehören,
die ausschließlich aus den Klein- und Großbuchstaben A-Z, den Ziffern 0-9, sowie dem
Dash und/oder Underscore-Zeichen bestehen, und die nicht mit dem Dash bzw. Underscore-Zeichen
beginnen oder enden. Ausnahme: Die aus 0 Zeichen bestehende Zeichenkette.
Auf Namen haben die folgenden Eigenschaften zuzutreffen:
Die Zeichenkette besteht aus maximal 120 Zeichen.
Die Zeichenkette besteht aus mindestens 1 Zeichen.
Bei der Zeichenkette handelt es sich um ein sogenanntes Token: Das ist eine Zeichenkette,
die weder Carriage Return (#xD), Line Feed (#xA) noch Tabulator (#x9) Zeichen enthält,
die nicht mit Leerzeichen (#x20) beginnt oder endet, und die keine Folge von zwei
oder mehr aufeinanderfolgenden Leerzeichen enthält.
Einem Objekt zugeordnete, in einem bestimmten Kontext eindeutige, und somit in diesem
Kontext für die Objektidentifikation geeignete Zeichenkette. Z.B. eine zu einer Firma
angegebene Firmenbuchnummer. Zusätzlich zu der das Objekt identifizierenden Zeichenkette
wird eine Identifikation der Sammlung von IDs angegeben.
Identifikation der Sammlung von Identifikatoren (z.B. Register oder Codeliste), der
die angegebene Identifikationszeichenkette entstammt.
Anmerkung 1: Wenn es sich bei der Sammlung von Identifikatoren um eine Codeliste handelt,
dann wird die 4-stellige Codelisten-Nummer als Identifikation der Sammlung von Identifikatoren
angegeben. Wenn es sich bei der Sammlung von Identifikatoren um ein Register handelt,
dann wird diejenige ID (GTIN), die dem Register gemäß Codeliste zugewiesen ist, als
Identifikation der Sammlung von Identifikatoren angegeben. Die Identifikation der
Codeliste selbst kann und soll in diesem Fall nicht angegeben werden.
Anmerkung 2: Auf welche Sammlungen von Identifikatoren Bezug genommen werden kann,
hängt vom Kontext ab, in dem der Datentyp verwendet wird.
Wertebereich, zu dem alle Token bestehend aus maximal 64 Zeichen gehören. Ausnahme:
Die aus 0 Zeichen bestehende Zeichenkette.
Anmerkung: Ein Token ist eine Zeichenkette, die weder Carriage Return (#xD), Line
Feed (#xA) noch Tabulator (#x9) Zeichen enthält, die nicht mit Leerzeichen (#x20)
beginnt oder endet, und die keine Folge von zwei oder mehr aufeinanderfolgenden Leerzeichen
enthält.
Zu jeder nicht-natürlichen Person hat eine EDM-Personen-GLN, Firmenbuchnummer, Vereinsregisternummer
oder Ergänzungsregisternummer angegeben zu sein - verletzt für die 1. in der XML-Instanz
enthaltene Person (Name: »Landeshauptmann Burgenland«).
Auf jede (nicht-natürliche) Person hat in der Dateninstanz Bezug genommen zu werden
- verletzt für die 2. in der XML-Instanz enthaltene Person (Name: »Petermax GmbH«).
Je Kontaktart (Website-Adresse, Telefon, usw.) hat nicht mehr als eine Kontaktinformation
angegeben zu werden (Element CommunicationNetworkEndpoint) - verletzt für Kontaktangaben
zur 1. in der XML-Instanz enthaltenen Person (Name: »Landeshauptmann Burgenland«).
Die XML-Dateninstanz enthält als Dokumentart-Angabe den Wert »9008390120507« für »Wasserwirtschaftliche
Stammdaten und Bewegungsdaten«. Seit v0.33 der Datenformat-Spezifikation unterstützt
das Datenformat nur noch die Dokument-Art »9008390120514« für »Wasserwirtschaftliche
Bewegungsdaten«. Seit 2024 unterstützt die EMREG-OW-Anwendung die XML-Übermittlung
von wasserwirtschaftlichen Stammdaten an die Bundesbehörde NICHT mehr.
Zu jeder Anlage hat zumindest eine Identifikationszeichenkette im Element ID angegeben
zu sein - verletzt für die 1. in der XML-Instanz enthaltene Anlage (Name: »Deponie
Neudörfl«).
Zu jedem Teilstrom hat eine Wasserbuch-ID angegeben zu sein - verletzt für den 1.
in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax ARA
Neudörfl«).
Auf jeden Teilstrom hat in der Dateninstanz Bezug genommen zu werden - verletzt für
den 2. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax
ARA Neudörfl CX«).
Die Bezugszeitraum-spezifischen Angaben zu einer Anlage in InstallationReferencePeriodResult
haben den Bezug auf eine Anlage im Element InstallationReferenceID zu enthalten -
verletzt für die 1. Bezugszeitraum-Angaben (InstallationReferencePeriodResult) innerhalb
der 1. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.
Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Eigenschaften
in WasteWaterStreamReferencePeriodResult haben den Bezug auf einen Teilstrom im Element
WasteWaterStreamReferenceID zu enthalten - verletzt für die 2. Bezugszeitraum-Angaben
(WasteWaterStreamReferencePeriodResult) innerhalb der 1. wasserwirtschaftlichen Bewegungsdaten
(EnvironmentalDataDocument) in der XML-Instanz.
Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Abfluss-Eigenschaften
in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen
Eintrag zu enthalten - verletzt für Abfluss-Bezugszeitraumangaben zu Parametern mit
den IDs 9008390114865, 9008390115633.
Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Zufluss-Eigenschaften
in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen
Eintrag zu enthalten - verletzt für Zufluss-Bezugszeitraumangaben zu Parametern mit
den IDs 9008390115732.
Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass
den Abfluss betreffend nicht sowohl die Anzahl der Einzelmesswerte angegeben ist (TestingCount-Element),
als auch die Einzelmesswerte selbst (PropertyTesting-Element) - verletzt für den 1.
in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax ARA
Neudörfl«) und den Parameter mit der ID »9008390115732« (Name: »Phosphor – Gesamt«).
Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass
den Abfluss betreffend nicht sowohl Bezugszeitraum-Angaben enthalten sind (EffluentWaterParameterProperty-Element
mit ValueAssignmentStatement-Unterelement), als auch Einzelmesswerte (PropertyTesting-Element)
- verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung
Fundermax ARA Neudörfl«) und den Parameter mit der ID »9008390115732« (Name: »Phosphor
– Gesamt«).
Für den Abfluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element)
angegeben zu sein - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name:
»Abwassereinleitung Fundermax ARA Neudörfl«) und den 3. zum Abfluss angegebenen Parameter
(ID: »9008390115633«, Name: »4-Nonylphenol technisch«).
Für den Abfluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element)
sofern zum betreffenden Teilstrom und Parameter keine Einzeluntersuchungsergebnisse
vorhanden sind - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name:
»Abwassereinleitung Fundermax ARA Neudörfl«) und den 3. zum Abfluss angegebenen Parameter
(ID: »9008390115633«, Name: »4-Nonylphenol technisch«).
Für den Zufluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element)
nicht angegeben zu sein - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom
(Name: »Abwassereinleitung Fundermax ARA Neudörfl«) und den 1. zum Zufluss angegebenen
Parameter (ID: »9008390115732«, Name: »Phosphor – Gesamt«).
Für den Zufluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element)
- verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung
Fundermax ARA Neudörfl«) und den 1. zum Zufluss angegebenen Parameter (ID: »9008390115732«,
Name: »Phosphor – Gesamt«).
Für den Zufluss betreffende Bezugszeitraum-Werte hat kein Berechnungsbasis-Messjahr
(CalculationBasisPeriod-Element) angegeben zu sein - verletzt für den 1. in der XML-Instanz
enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax ARA Neudörfl«) und den
1. zum Zufluss angegebenen Parameter (ID: »9008390115732«, Name: »Phosphor – Gesamt«).
Das Datenformat unterstützt die Angabe von Werten für den gesamten Bezugszeitraum
nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur”
handelt - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung
Fundermax ARA Neudörfl«) und den 3. zu diesem Teilstrom bezogen auf den Abfluss angegebenen
Parameter mit der ID »9008390115756« (Name: »pH-Wert«).
Das Datenformat unterstützt die Angabe von Werten für den gesamten Bezugszeitraum
nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur”
handelt - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung
Fundermax ARA Neudörfl«) und den 3. zu diesem Teilstrom bezogen auf den Abfluss angegebenen
Parameter mit der ID »dEC_vNKN_uDEP_tGM_mMQV« (Name: »pH-Wert«).
In Adressangaben hat keine der Adresskomponenten (“Straße”, “Postleitzahl”, usw.)
mehrfach vorzukommen - verletzt für Adress-Element »OfficeAddress« in »Organization«.
Die Identifikation einer Adresskomponente per ID-Element wird nur für die Adresskomponente
“Land” (GTIN 9008390104682) unterstützt - verletzt für die Adresskomponente des Typs
mit der GTIN »9008390103968« (»Straße«).
Das Datenformat unterstützt das Element RepresentationID ausschließlich in Adresskomponenten
der Typen Hausnummer (GTIN 9008390103975), Stiege (GTIN 9008390103999), Stock (GTIN
9008390104002), Türnummer (GTIN 9008390104019) und Postleitzahl (GTIN 9008390103944)
- verletzt für die Adresskomponente des Typs mit der GTIN »9008390103951« (»Ort«).
Das Datenformat unterstützt das Element RepresentationDesignation ausschließlich in
Adresskomponenten der Typen Straße (GTIN 9008390103968), Ort (GTIN 9008390103951)
und Land (GTIN 9008390104682) - verletzt für die Adresskomponente des Typs mit der
GTIN »9008390103944« (»Postleitzahl«).
Die Bezugszeitraum-Angaben in WasteWaterStreamReferencePeriodResult haben nach Teilstrom
gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen
zu werden - verletzt für Zeitraum-Angaben mit Bezug auf Teilströme mit Wasserbuch-IDs
1-EMREG_TS_FunderMax_ARA.
Für jeden Abfluss-Einzelmesswert hat über in Bezug auf Teilstrom und Parameter 9008390115732
korrespondierende Bezugszeitraum-Angaben (WasteWaterStreamReferencePeriodResult) die
Parameterkategorie im Element PropertyCategoryID angegeben zu sein - verletzt für
den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax
ARA Neudörfl«) und dem zu diesem Teilstrom bezogen auf den Abfluss angegebenen Parameter
mit der ID »9008390115732« (Name: »Phosphor – Gesamt«).
Das Datenformat unterstützt die Angabe von nicht mehr als 12 Abfluss-Einzelmesswerten
pro Berichtsjahr, Teilstrom und Parameter - verletzt für den 1. in der XML-Instanz
enthaltenen Teilstrom (Name: »Abwassereinleitung Fundermax ARA Neudörfl«) und die
Parameter mit den IDs 9008390115732.
Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen
nur für den Abfluss - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom
(Name: »Abwassereinleitung Fundermax ARA Neudörfl«) und den zu diesem Teilstrom angegebenen
Zufluss-Parametern.
Die Angaben zu den einzelnen Wasseruntersuchungen und deren Ergebnissen haben den
Bezug auf einen Teilstrom im Element WasteWaterStreamReferenceID zu enthalten - verletzt
für die 2. Untersuchungsergebnis-Angaben (TestingEvent) innerhalb der 1. wasserwirtschaftlichen
Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.
Die Angaben zu einzelnen Untersuchungen in Testing/TestingEvent haben nach Teilstrom
gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen
zu werden - verletzt für Untersuchungsangaben mit Bezug auf Teilströme mit Wasserbuch-IDs
1-EMREG_TS_FunderMax_ARA.
Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen
in EMREG-OW nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch
um “Temperatur” handelt - verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom
(Name: »Abwassereinleitung Fundermax ARA Neudörfl«) und dem zu diesem Teilstrom bezogen
auf den Abfluss angegebenen Parameter mit der ID »9008390115756« (Name: »pH-Wert«).
Das Datenformat unterstützt die für die Übermittlung von Untersuchungsergebnissen
in die Anwendung EMREG-OW ausschließlich die Angabe der Größeneinheiten “mg/l”, “µg/l”
bzw. “ng/l”- verletzt für den 1. in der XML-Instanz enthaltenen Teilstrom (Name: »Abwassereinleitung
Fundermax ARA Neudörfl«) und dem zu diesem Teilstrom bezogen auf den Abfluss angegebenen
Parameter mit der ID »9008390115732« (Name: »Phosphor – Gesamt«).
Der Datenimport in EMREG-OW ist jeweils nur für genau ein Berichtsjahr möglich, und
somit jeweils genau ein EnvironmentalDataDocument-Element. Es sind jedoch 2 EnvironmentalDataDocument-Elemente
in der Dateninstanz enthalten.
Innerhalb einer XML-Dateninstanz haben alle Parameter entweder per EHPC-Code (Codeliste
6912) oder per GTIN (↗Codeliste 2809) angegeben zu sein, und zwar über die verschiedenen Angaben -
z.B. Grenzwert, Jahreswert, Messwert - hinweg. Das “Mischen” von EHPC-Codes
und GTINs innerhalb einer XML-Dateninstanz wird vom Datenformat nicht unterstützt.
Bei wiederholbaren ID-Elementen ist in vielen Fällen nur ein Eintrag pro Codeliste
bzw. Sammlung von Identifikatoren zulässig - verletzt für Element »ID« in »WasteWaterStream«.
Auf Wunsch der IT Entwicklung elementformdefault von qualified auf unqualified umgestellt.
0.90
2024-07-04
Keine Änderungen gegenüber v0.33. Hochversionieren, um zu signalisieren, dass es sich
um einen Kandidaten für eine Version 1.00 handelt.
0.33
2024-03-07
Änderungen:
Die Möglichkeit der Übermittlung von Bewegungsdaten mit Stammdaten entfernt, so dass ausschließlich die Übermittlung von Bewegungsdaten ohne Stammdaten verbleibt. Der Begriff Bewegungsdaten meint hier Emissionsdaten für einen Berichtszeitraum (Kalenderjahr), und der Begriff
Stammdaten meint Details zu Anlagen, Teilströmen und Bescheiden. Schematron-Prüfungen und andere
Spezifikationsinhalte entsprechend angepasst.
0.32
2023‑03‑09
Änderungen:
Datei- und Verzeichnis-Namen zur Vereinheitlichung mit anderen edm.gv.at-Datenschnitttstellen-Spezifikationen
angepasst
emreg_message_excl_masterdata.xsd so angepasst bzw. korrigiert, dass unter ListedData ID und Name von Anlagen (Installation) enthalten sein können, und so in den Bewegungsdaten unter InstallationReferencePeriodResult Bezüge auf solche Anlagen-Einträge möglich sind
HTML-Anhang zur Datenformat- bzw. Schnittstellenbeschreibung ergänzt
0.31
2022‑09‑28
Änderungen: Diverse Anpassungen zur Vereinheitlichung mit anderen edm.gv.at-Datenspezifikationen
vorgenommen, z.B. Nummerierung und Systematik von formalen Prüfungen angepasst.
Detailänderungen (diff) gegenüber der Vorversion 0.90
emreg_formalvalidationrules.sch
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- EMREG v0.90 (PUBLIC DRAFT, CANDIDATE FOR 1.00)
-
- Copyright (C) 2024 Environment Agency Austria
+ EMREG v0.91 (PUBLIC DRAFT, CANDIDATE FOR 1.00)
+
+ Copyright (C) 2025 Environment Agency Austria
Commissioned by the Austrian Federal Ministry of Agriculture, Forestry, Regions and Water Management (BML)
- <xsl:value-of select="if (exists($nroot/descendant::ed:ListedData/ed:Installation/*[(local-name() ne 'DocumentScopeAssignmentID') and (local-name() ne 'ID') and (local-name() ne 'Name') and (local-name() ne 'AuthorityAssignedName')])) then (true()) else (false())"/>
- <report id="R122_uqstrc" role="WARNING" test="count(distinct-values(*/ed:ID/concat(.,',',@collectionID))) ne count(*/ed:ID/concat(.,',',@collectionID))">IDs haben den Aufzählungen von Anlagen, Teilströmen, usw. in ListedData nicht mehrfach zugeordnet zu sein - verletzt für IDs <sch:value-of select="string-join((for $m in distinct-values(*/ed:ID/concat(.,',',@collectionID)) return if (count(*/ed:ID[(. eq tokenize($m,',')[1]) and (@collectionID eq tokenize($m,',')[2])]) ge 2) then tokenize($m,',')[1] else '')[. != ''], ', ')"/>.</report>
- <report id="R141_prvalw" role="ERROR" test="not(exists(ed:ID[(@collectionID='9008390104026') or (@collectionID='9008390104040') or (@collectionID='9008390104057') or (@collectionID='9008390104064')]))">Zu jeder nicht-natürlichen Person hat eine EDM-Personen-GLN, Firmenbuchnummer, Vereinsregisternummer oder Ergänzungsregisternummer angegeben zu sein - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Person<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</report>
- <report id="R161_chkref" role="ERROR" test="some $m in ed:DocumentScopeAssignmentID satisfies count(//*[ends-with(local-name(), 'PartyReferenceID') and (text() eq $m)]) lt 1">Auf jede (nicht-natürliche) Person hat in der Dateninstanz Bezug genommen zu werden - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Person<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</report>
- <report id="R166_uqstrc" role="ERROR" test="count(distinct-values(ed:CommunicationNetworkEndpoint/ed:TypeID)) ne count(ed:CommunicationNetworkEndpoint/ed:TypeID)">Je Kontaktart (Website-Adresse, Telefon, usw.) hat nicht mehr als eine Kontaktinformation angegeben zu werden (Element CommunicationNetworkEndpoint) - verletzt für Kontaktangaben zur <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Person<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</report>
+ <xsl:value-of select="if (exists($nroot/descendant::ListedData/Installation/*[(local-name() ne 'DocumentScopeAssignmentID') and (local-name() ne 'ID') and (local-name() ne 'Name') and (local-name() ne 'AuthorityAssignedName')])) then (true()) else (false())"/>
+ <report id="R122_uqstrc" role="WARNING" test="count(distinct-values(*/ID/concat(.,',',@collectionID))) ne count(*/ID/concat(.,',',@collectionID))">IDs haben den Aufzählungen von Anlagen, Teilströmen, usw. in ListedData nicht mehrfach zugeordnet zu sein - verletzt für IDs <sch:value-of select="string-join((for $m in distinct-values(*/ID/concat(.,',',@collectionID)) return if (count(*/ID[(. eq tokenize($m,',')[1]) and (@collectionID eq tokenize($m,',')[2])]) ge 2) then tokenize($m,',')[1] else '')[. != ''], ', ')"/>.</report>
+ <report id="R141_prvalw" role="ERROR" test="not(exists(ID[(@collectionID='9008390104026') or (@collectionID='9008390104040') or (@collectionID='9008390104057') or (@collectionID='9008390104064')]))">Zu jeder nicht-natürlichen Person hat eine EDM-Personen-GLN, Firmenbuchnummer, Vereinsregisternummer oder Ergänzungsregisternummer angegeben zu sein - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Person<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</report>
+ <report id="R161_chkref" role="ERROR" test="some $m in DocumentScopeAssignmentID satisfies count(//*[ends-with(local-name(), 'PartyReferenceID') and (text() eq $m)]) lt 1">Auf jede (nicht-natürliche) Person hat in der Dateninstanz Bezug genommen zu werden - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Person<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</report>
+ <report id="R166_uqstrc" role="ERROR" test="count(distinct-values(CommunicationNetworkEndpoint/TypeID)) ne count(CommunicationNetworkEndpoint/TypeID)">Je Kontaktart (Website-Adresse, Telefon, usw.) hat nicht mehr als eine Kontaktinformation angegeben zu werden (Element CommunicationNetworkEndpoint) - verletzt für Kontaktangaben zur <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Person<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</report>
<report id="R202_chkval" role="ERROR" test="current()/text() eq '9008390120507'">Die XML-Dateninstanz enthält als Dokumentart-Angabe den Wert »9008390120507« für »Wasserwirtschaftliche Stammdaten und Bewegungsdaten«. Seit v0.33 der Datenformat-Spezifikation unterstützt das Datenformat nur noch die Dokument-Art »9008390120514« für »Wasserwirtschaftliche Bewegungsdaten«. Seit 2024 unterstützt die EMREG-OW-Anwendung die XML-Übermittlung von wasserwirtschaftlichen Stammdaten an die Bundesbehörde NICHT mehr.</report>
- <report id="R217_prvalw" role="ERROR" test="(count(ed:ID) lt 1)">Zu jeder Anlage hat zumindest eine Identifikationszeichenkette im Element ID angegeben zu sein - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Anlage<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</report>
- <assert id="R336_prvalw" role="ERROR" test="exists(ed:ID[@collectionID='9008390108260'])">Zu jedem Teilstrom hat eine Wasserbuch-ID angegeben zu sein - verletzt für den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</assert>
- <report id="R352_chkref" role="ERROR" test="some $m in ed:DocumentScopeAssignmentID satisfies count(//*[ends-with(local-name(), 'WasteWaterStreamReferenceID') and (text() eq $m)]) lt 1">Auf jeden Teilstrom hat in der Dateninstanz Bezug genommen zu werden - verletzt für den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(ed:Name)) then concat(' (Name: »',ed:Name,'«)') else ''"/>.</report>
- <report id="R497_prvalw" role="ERROR" test="count(ed:InstallationReferenceID) lt 1">Die Bezugszeitraum-spezifischen Angaben zu einer Anlage in InstallationReferencePeriodResult haben den Bezug auf eine Anlage im Element InstallationReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Bezugszeitraum-Angaben (InstallationReferencePeriodResult) innerhalb der <sch:value-of select="1+count(ancestor::ed:EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
- <report id="R520_prvalw" role="ERROR" test="count(ed:WasteWaterStreamReferenceID) lt 1">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Eigenschaften in WasteWaterStreamReferencePeriodResult haben den Bezug auf einen Teilstrom im Element WasteWaterStreamReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Bezugszeitraum-Angaben (WasteWaterStreamReferencePeriodResult) innerhalb der <sch:value-of select="1+count(ancestor::ed:EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
- <report id="R522_uqstrc" role="ERROR" test="count(distinct-values(ed:EffluentWaterParameterProperty/ed:PropertyKindID)) ne count(ed:EffluentWaterParameterProperty/ed:PropertyKindID)">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Abfluss-Eigenschaften in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen Eintrag zu enthalten - verletzt für Abfluss-Bezugszeitraumangaben zu Parametern mit den IDs <sch:value-of select="string-join((for $m in distinct-values(ed:EffluentWaterParameterProperty/ed:PropertyKindID) return if (count(ed:EffluentWaterParameterProperty[ed:PropertyKindID eq $m]) ge 2) then $m else '')[. != ''], ', ')"/>.</report>
- <report id="R523_uqstrc" role="ERROR" test="count(distinct-values(ed:InfluentWaterParameterProperty/ed:PropertyKindID)) ne count(ed:InfluentWaterParameterProperty/ed:PropertyKindID)">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Zufluss-Eigenschaften in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen Eintrag zu enthalten - verletzt für Zufluss-Bezugszeitraumangaben zu Parametern mit den IDs <sch:value-of select="string-join((for $m in distinct-values(ed:InfluentWaterParameterProperty/ed:PropertyKindID) return if (count(ed:InfluentWaterParameterProperty[ed:PropertyKindID eq $m]) ge 2) then $m else '')[. != ''], ', ')"/>.</report>
- <report id="R531_chkcon" role="ERROR" test="some $m in ../ed:WasteWaterStreamReferenceID, $n in ed:PropertyKindID satisfies exists(../../ed:Testing/ed:TestingEvent[ed:WasteWaterStreamReferenceID eq $m]/ed:EffluentSampleTestingEvent/ed:PropertyTesting[ed:PropertyKindID eq $n]) and exists(ed:TestingCount)">Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass den Abfluss betreffend nicht sowohl die Anzahl der Einzelmesswerte angegeben ist (TestingCount-Element), als auch die Einzelmesswerte selbst (PropertyTesting-Element) - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den Parameter mit der ID »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R532_chkcon" role="ERROR" test="some $m in ../ed:WasteWaterStreamReferenceID, $n in ed:PropertyKindID satisfies exists(../../ed:Testing/ed:TestingEvent[ed:WasteWaterStreamReferenceID eq $m]/ed:EffluentSampleTestingEvent/ed:PropertyTesting[ed:PropertyKindID eq $n]) and exists(ed:ValueAssignmentStatement)">Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass den Abfluss betreffend nicht sowohl Bezugszeitraum-Angaben enthalten sind (EffluentWaterParameterProperty-Element mit ValueAssignmentStatement-Unterelement), als auch Einzelmesswerte (PropertyTesting-Element) - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den Parameter mit der ID »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R538_prvalw" role="ERROR" test="not(exists(ed:PropertyCategoryID))">Für den Abfluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element) angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Abfluss angegebenen Parameter (ID: »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(', Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
- <report id="R542_prvcdn" role="ERROR" test="not(exists(ed:ValueAssignmentStatement)) and exists(../ed:WasteWaterStreamReferenceID) and not(exists(../../ed:Testing/ed:TestingEvent[ed:WasteWaterStreamReferenceID eq current()/../ed:WasteWaterStreamReferenceID]/ed:EffluentSampleTestingEvent[f:strippedParamID(ed:PropertyTesting/ed:PropertyKindID) eq f:strippedParamID(current()/ed:PropertyKindID)]))">Für den Abfluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element) sofern zum betreffenden Teilstrom und Parameter keine Einzeluntersuchungsergebnisse vorhanden sind - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Abfluss angegebenen Parameter (ID: »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(', Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
- <report id="R569_prvalw" role="ERROR" test="exists(ed:PropertyCategoryID)">Für den Zufluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element) nicht angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(', Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
- <report id="R593_prvalw" role="ERROR" test="not(exists(ed:ValueAssignmentStatement))">Für den Zufluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element) - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(', Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
- <report id="R595_prvalw" role="ERROR" test="exists(ed:CalculationBasisPeriod)">Für den Zufluss betreffende Bezugszeitraum-Werte hat kein Berechnungsbasis-Messjahr (CalculationBasisPeriod-Element) angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(', Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
- <report id="R597_prvcdn" role="ERROR" test="(f:isPhProperty(ed:PropertyKindID/text()) eq true()) or (f:isTemperatureProperty(ed:PropertyKindID/text()) eq true())">Das Datenformat unterstützt die Angabe von Werten für den gesamten Bezugszeitraum nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur” handelt - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(), 'EffluentWaterParameterProperty')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R604_chkval" role="ERROR" test="some $m in ed:StartDate satisfies day-from-date($m) ne 1 or month-from-date($m) ne 1">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat mit einem 1. Jänner zu beginnen - verletzt für Beginndatum »<sch:value-of select="ed:StartDate"/>«.</report>
- <report id="R608_chkval" role="ERROR" test="some $m in ed:EndDate satisfies day-from-date($m) ne 31 or month-from-date($m) ne 12">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat mit einem 31. Dezember zu enden - verletzt für Enddatum »<sch:value-of select="ed:EndDate"/>«.</report>
- <report id="R610_chkval" role="ERROR" test="if (exists(ed:StartDate) and exists(ed:EndDate)) then (year-from-date(ed:EndDate) ne year-from-date(ed:StartDate)) else false()">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat sich nicht über ein Kalenderjahr hinaus zu erstrecken - verletzt für den Zeitraum »<sch:value-of select="ed:StartDate"/> bis <sch:value-of select="ed:EndDate"/>«.</report>
- </rule>
- </pattern>
- <pattern>
- <rule id="R692" context="*[(ends-with(local-name(), 'Address') and ed:Component)]">
- <report id="R692_uqstrc" role="ERROR" test="count(distinct-values(ed:Component/ed:TypeID)) ne count(ed:Component/ed:TypeID)">In Adressangaben hat keine der Adresskomponenten (“Straße”, “Postleitzahl”, usw.) mehrfach vorzukommen - verletzt für Adress-Element »<sch:value-of select="local-name(.)"/>« in »<sch:value-of select="local-name(parent::*)"/>«.</report>
- <report id="R694_chkcon" role="ERROR" test="ed:TypeID ne '9008390104682' and exists(ed:ID)">Die Identifikation einer Adresskomponente per ID-Element wird nur für die Adresskomponente “Land” (GTIN 9008390104682) unterstützt - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="ed:TypeID"/>«<sch:value-of select="if (exists(ed:TypeID/@objectDesignation)) then concat(' (»',ed:TypeID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R707_chkcon" role="ERROR" test="exists(ed:RepresentationID) and (ed:TypeID ne '9008390103975' and ed:TypeID ne '9008390103999' and ed:TypeID ne '9008390104002' and ed:TypeID ne '9008390104019' and ed:TypeID ne '9008390103944')">Das Datenformat unterstützt das Element RepresentationID ausschließlich in Adresskomponenten der Typen Hausnummer (GTIN 9008390103975), Stiege (GTIN 9008390103999), Stock (GTIN 9008390104002), Türnummer (GTIN 9008390104019) und Postleitzahl (GTIN 9008390103944) - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="ed:TypeID"/>«<sch:value-of select="if (exists(ed:TypeID/@objectDesignation)) then concat(' (»',ed:TypeID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R712_chkcon" role="ERROR" test="exists(ed:RepresentationDesignation) and (ed:TypeID ne '9008390103968' and ed:TypeID ne '9008390103951' and ed:TypeID ne '9008390104682')">Das Datenformat unterstützt das Element RepresentationDesignation ausschließlich in Adresskomponenten der Typen Straße (GTIN 9008390103968), Ort (GTIN 9008390103951) und Land (GTIN 9008390104682) - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="ed:TypeID"/>«<sch:value-of select="if (exists(ed:TypeID/@objectDesignation)) then concat(' (»',ed:TypeID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R767_uqstrc" role="ERROR" test="count(distinct-values(ed:WasteWaterStreamReferencePeriodResult/ed:WasteWaterStreamReferenceID)) ne count(ed:WasteWaterStreamReferencePeriodResult/ed:WasteWaterStreamReferenceID)">Die Bezugszeitraum-Angaben in WasteWaterStreamReferencePeriodResult haben nach Teilstrom gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen zu werden - verletzt für Zeitraum-Angaben mit Bezug auf Teilströme mit Wasserbuch-IDs <sch:value-of select="string-join((for $m in distinct-values(ed:WasteWaterStreamReferencePeriodResult/ed:WasteWaterStreamReferenceID) return if (count(ed:WasteWaterStreamReferencePeriodResult[ed:WasteWaterStreamReferenceID eq $m]) ge 2) then ancestor::*/ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq $m]/ed:ID[@collectionID eq '9008390108260'] else '')[. != ''], ', ')"/>.</report>
+ <report id="R217_prvalw" role="ERROR" test="(count(ID) lt 1)">Zu jeder Anlage hat zumindest eine Identifikationszeichenkette im Element ID angegeben zu sein - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltene Anlage<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</report>
+ <assert id="R336_prvalw" role="ERROR" test="exists(ID[@collectionID='9008390108260'])">Zu jedem Teilstrom hat eine Wasserbuch-ID angegeben zu sein - verletzt für den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</assert>
+ <report id="R352_chkref" role="ERROR" test="some $m in DocumentScopeAssignmentID satisfies count(//*[ends-with(local-name(), 'WasteWaterStreamReferenceID') and (text() eq $m)]) lt 1">Auf jeden Teilstrom hat in der Dateninstanz Bezug genommen zu werden - verletzt für den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(Name)) then concat(' (Name: »',Name,'«)') else ''"/>.</report>
+ <report id="R497_prvalw" role="ERROR" test="count(InstallationReferenceID) lt 1">Die Bezugszeitraum-spezifischen Angaben zu einer Anlage in InstallationReferencePeriodResult haben den Bezug auf eine Anlage im Element InstallationReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Bezugszeitraum-Angaben (InstallationReferencePeriodResult) innerhalb der <sch:value-of select="1+count(ancestor::EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
+ <report id="R520_prvalw" role="ERROR" test="count(WasteWaterStreamReferenceID) lt 1">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Eigenschaften in WasteWaterStreamReferencePeriodResult haben den Bezug auf einen Teilstrom im Element WasteWaterStreamReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Bezugszeitraum-Angaben (WasteWaterStreamReferencePeriodResult) innerhalb der <sch:value-of select="1+count(ancestor::EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
+ <report id="R522_uqstrc" role="ERROR" test="count(distinct-values(EffluentWaterParameterProperty/PropertyKindID)) ne count(EffluentWaterParameterProperty/PropertyKindID)">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Abfluss-Eigenschaften in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen Eintrag zu enthalten - verletzt für Abfluss-Bezugszeitraumangaben zu Parametern mit den IDs <sch:value-of select="string-join((for $m in distinct-values(EffluentWaterParameterProperty/PropertyKindID) return if (count(EffluentWaterParameterProperty[PropertyKindID eq $m]) ge 2) then $m else '')[. != ''], ', ')"/>.</report>
+ <report id="R523_uqstrc" role="ERROR" test="count(distinct-values(InfluentWaterParameterProperty/PropertyKindID)) ne count(InfluentWaterParameterProperty/PropertyKindID)">Die Angaben zu den für einen Teilstrom und den Bezugszeitraum ermittelten Zufluss-Eigenschaften in WasteWaterStreamReferencePeriodResult haben zu jedem Parameter höchstens einen Eintrag zu enthalten - verletzt für Zufluss-Bezugszeitraumangaben zu Parametern mit den IDs <sch:value-of select="string-join((for $m in distinct-values(InfluentWaterParameterProperty/PropertyKindID) return if (count(InfluentWaterParameterProperty[PropertyKindID eq $m]) ge 2) then $m else '')[. != ''], ', ')"/>.</report>
+ <report id="R531_chkcon" role="ERROR" test="some $m in ../WasteWaterStreamReferenceID, $n in PropertyKindID satisfies exists(../../Testing/TestingEvent[WasteWaterStreamReferenceID eq $m]/EffluentSampleTestingEvent/PropertyTesting[PropertyKindID eq $n]) and exists(TestingCount)">Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass den Abfluss betreffend nicht sowohl die Anzahl der Einzelmesswerte angegeben ist (TestingCount-Element), als auch die Einzelmesswerte selbst (PropertyTesting-Element) - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den Parameter mit der ID »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R532_chkcon" role="ERROR" test="some $m in ../WasteWaterStreamReferenceID, $n in PropertyKindID satisfies exists(../../Testing/TestingEvent[WasteWaterStreamReferenceID eq $m]/EffluentSampleTestingEvent/PropertyTesting[PropertyKindID eq $n]) and exists(ValueAssignmentStatement)">Für jeden Teilstrom und jeden Parameter in den Bewegungsdaten muss zutreffen, dass den Abfluss betreffend nicht sowohl Bezugszeitraum-Angaben enthalten sind (EffluentWaterParameterProperty-Element mit ValueAssignmentStatement-Unterelement), als auch Einzelmesswerte (PropertyTesting-Element) - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den Parameter mit der ID »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R538_prvalw" role="ERROR" test="not(exists(PropertyCategoryID))">Für den Abfluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element) angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Abfluss angegebenen Parameter (ID: »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(', Name: »',PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
+ <report id="R542_prvcdn" role="ERROR" test="not(exists(ValueAssignmentStatement)) and exists(../WasteWaterStreamReferenceID) and not(exists(../../Testing/TestingEvent[WasteWaterStreamReferenceID eq current()/../WasteWaterStreamReferenceID]/EffluentSampleTestingEvent[f:strippedParamID(PropertyTesting/PropertyKindID) eq f:strippedParamID(current()/PropertyKindID)]))">Für den Abfluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element) sofern zum betreffenden Teilstrom und Parameter keine Einzeluntersuchungsergebnisse vorhanden sind - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Abfluss angegebenen Parameter (ID: »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(', Name: »',PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
+ <report id="R569_prvalw" role="ERROR" test="exists(PropertyCategoryID)">Für den Zufluss betreffende Bezugszeitraum-Werte hat die Parameterkategorie (PropertyCategoryID-Element) nicht angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(', Name: »',PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
+ <report id="R593_prvalw" role="ERROR" test="not(exists(ValueAssignmentStatement))">Für den Zufluss betreffende Bezugszeitraum-Angaben haben Werte angegeben zu sein (ValueAssignmentStatement-Element) - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(', Name: »',PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
+ <report id="R595_prvalw" role="ERROR" test="exists(CalculationBasisPeriod)">Für den Zufluss betreffende Bezugszeitraum-Werte hat kein Berechnungsbasis-Messjahr (CalculationBasisPeriod-Element) angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zum Zufluss angegebenen Parameter (ID: »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(', Name: »',PropertyKindID/@objectDesignation,'«)') else ')'"/>.</report>
+ <report id="R597_prvcdn" role="ERROR" test="(f:isPhProperty(PropertyKindID/text()) eq true()) or (f:isTemperatureProperty(PropertyKindID/text()) eq true())">Das Datenformat unterstützt die Angabe von Werten für den gesamten Bezugszeitraum nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur” handelt - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(), 'EffluentWaterParameterProperty')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R604_chkval" role="ERROR" test="some $m in StartDate satisfies day-from-date($m) ne 1 or month-from-date($m) ne 1">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat mit einem 1. Jänner zu beginnen - verletzt für Beginndatum »<sch:value-of select="StartDate"/>«.</report>
+ <report id="R608_chkval" role="ERROR" test="some $m in EndDate satisfies day-from-date($m) ne 31 or month-from-date($m) ne 12">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat mit einem 31. Dezember zu enden - verletzt für Enddatum »<sch:value-of select="EndDate"/>«.</report>
+ <report id="R610_chkval" role="ERROR" test="if (exists(StartDate) and exists(EndDate)) then (year-from-date(EndDate) ne year-from-date(StartDate)) else false()">Der <sch:value-of select="if (local-name() eq 'Period') then 'Berichtszeitraum' else 'Bezugszeitraum'"/> hat sich nicht über ein Kalenderjahr hinaus zu erstrecken - verletzt für den Zeitraum »<sch:value-of select="StartDate"/> bis <sch:value-of select="EndDate"/>«.</report>
+ </rule>
+ </pattern>
+ <pattern>
+ <rule id="R692" context="*[(ends-with(local-name(), 'Address') and Component)]">
+ <report id="R692_uqstrc" role="ERROR" test="count(distinct-values(Component/TypeID)) ne count(Component/TypeID)">In Adressangaben hat keine der Adresskomponenten (“Straße”, “Postleitzahl”, usw.) mehrfach vorzukommen - verletzt für Adress-Element »<sch:value-of select="local-name(.)"/>« in »<sch:value-of select="local-name(parent::*)"/>«.</report>
+ <report id="R694_chkcon" role="ERROR" test="TypeID ne '9008390104682' and exists(ID)">Die Identifikation einer Adresskomponente per ID-Element wird nur für die Adresskomponente “Land” (GTIN 9008390104682) unterstützt - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="TypeID"/>«<sch:value-of select="if (exists(TypeID/@objectDesignation)) then concat(' (»',TypeID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R707_chkcon" role="ERROR" test="exists(RepresentationID) and (TypeID ne '9008390103975' and TypeID ne '9008390103999' and TypeID ne '9008390104002' and TypeID ne '9008390104019' and TypeID ne '9008390103944')">Das Datenformat unterstützt das Element RepresentationID ausschließlich in Adresskomponenten der Typen Hausnummer (GTIN 9008390103975), Stiege (GTIN 9008390103999), Stock (GTIN 9008390104002), Türnummer (GTIN 9008390104019) und Postleitzahl (GTIN 9008390103944) - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="TypeID"/>«<sch:value-of select="if (exists(TypeID/@objectDesignation)) then concat(' (»',TypeID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R712_chkcon" role="ERROR" test="exists(RepresentationDesignation) and (TypeID ne '9008390103968' and TypeID ne '9008390103951' and TypeID ne '9008390104682')">Das Datenformat unterstützt das Element RepresentationDesignation ausschließlich in Adresskomponenten der Typen Straße (GTIN 9008390103968), Ort (GTIN 9008390103951) und Land (GTIN 9008390104682) - verletzt für die Adresskomponente des Typs mit der GTIN »<sch:value-of select="TypeID"/>«<sch:value-of select="if (exists(TypeID/@objectDesignation)) then concat(' (»',TypeID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R767_uqstrc" role="ERROR" test="count(distinct-values(WasteWaterStreamReferencePeriodResult/WasteWaterStreamReferenceID)) ne count(WasteWaterStreamReferencePeriodResult/WasteWaterStreamReferenceID)">Die Bezugszeitraum-Angaben in WasteWaterStreamReferencePeriodResult haben nach Teilstrom gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen zu werden - verletzt für Zeitraum-Angaben mit Bezug auf Teilströme mit Wasserbuch-IDs <sch:value-of select="string-join((for $m in distinct-values(WasteWaterStreamReferencePeriodResult/WasteWaterStreamReferenceID) return if (count(WasteWaterStreamReferencePeriodResult[WasteWaterStreamReferenceID eq $m]) ge 2) then ancestor::*/ListedData/WasteWaterStream[DocumentScopeAssignmentID eq $m]/ID[@collectionID eq '9008390108260'] else '')[. != ''], ', ')"/>.</report>
</rule>
</pattern>
<!-- new pattern for preventing useless validation report entry repetitions, as used in PACK3: Inform about the first occurrence triggering the specific issue - provides useful XPath information in contrast to the previous "summary id list" approach -->
<pattern>
- <rule id="R808" context="ed:EnvironmentalData/ed:Testing/ed:TestingEvent[exists(ed:WasteWaterStreamReferenceID)]/ed:EffluentSampleTestingEvent[not(f:isPhProperty(f:strippedParamID(ed:PropertyTesting/ed:PropertyKindID/text()))) and not(f:isTemperatureProperty(f:strippedParamID(ed:PropertyTesting/ed:PropertyKindID/text()))) and not(exists(preceding-sibling::ed:EffluentSampleTestingEvent[ed:PropertyTesting/ed:PropertyKindID/text() eq current()/ed:PropertyTesting/ed:PropertyKindID/text()]))]">
- <report id="R808_prvcdn" role="ERROR" test="not(exists(../../../ed:WasteWaterStreamReferencePeriodResult[ed:WasteWaterStreamReferenceID eq current()/../ed:WasteWaterStreamReferenceID]/ed:EffluentWaterParameterProperty[(f:strippedParamID(ed:PropertyKindID) eq f:strippedParamID(current()/ed:PropertyTesting/ed:PropertyKindID)) and (count(ed:PropertyCategoryID) gt 0)]))">Für jeden Abfluss-Einzelmesswert hat über in Bezug auf Teilstrom und Parameter <sch:value-of select="f:strippedParamID(ed:PropertyTesting/ed:PropertyKindID/text())"/> korrespondierende Bezugszeitraum-Angaben (WasteWaterStreamReferencePeriodResult) die Parameterkategorie im Element PropertyCategoryID angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den Abfluss angegebenen Parameter mit der ID »<sch:value-of select="ed:PropertyTesting/ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyTesting/ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyTesting/ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R809_chkmlt" role="ERROR" test="some $m in distinct-values(ed:EffluentSampleTestingEvent/ed:PropertyTesting/ed:PropertyKindID) satisfies count(ed:EffluentSampleTestingEvent[ed:PropertyTesting/ed:PropertyKindID eq $m]) gt 12">Das Datenformat unterstützt die Angabe von nicht mehr als 12 Abfluss-Einzelmesswerten pro Berichtsjahr, Teilstrom und Parameter - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und die Parameter mit den IDs <sch:value-of select="string-join((for $m in distinct-values(ed:EffluentSampleTestingEvent/ed:PropertyTesting/ed:PropertyKindID) return if (count(ed:EffluentSampleTestingEvent[ed:PropertyTesting/ed:PropertyKindID eq $m]) gt 12) then tokenize($m,',')[1] else '')[. != ''], ', ')"/>.</report>
- <report id="R828_chkcon" role="ERROR" test="ed:InfluentSampleTestingEvent">Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen nur für den Abfluss - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und den zu diesem Teilstrom angegebenen Zufluss-Parametern.</report>
- <report id="R832_prvalw" role="ERROR" test="count(ed:WasteWaterStreamReferenceID) lt 1">Die Angaben zu den einzelnen Wasseruntersuchungen und deren Ergebnissen haben den Bezug auf einen Teilstrom im Element WasteWaterStreamReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Untersuchungsergebnis-Angaben (TestingEvent) innerhalb der <sch:value-of select="1+count(ancestor::ed:EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
- <report id="R874_prvalw" role="ERROR" test="count(ed:AppliedMethod) ge 1">Bei der Übermittlung in EMREG-OW wird für Einzelmesswerte eine Angabe von Methoden nicht unterstützt.</report>
- <report id="R875_uqstrc" role="ERROR" test="count(distinct-values(ed:TestingEvent/ed:WasteWaterStreamReferenceID)) ne count(ed:TestingEvent/ed:WasteWaterStreamReferenceID)">Die Angaben zu einzelnen Untersuchungen in Testing/TestingEvent haben nach Teilstrom gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen zu werden - verletzt für Untersuchungsangaben mit Bezug auf Teilströme mit Wasserbuch-IDs <sch:value-of select="string-join((for $m in distinct-values(ed:TestingEvent/ed:WasteWaterStreamReferenceID) return if (count(ed:TestingEvent[ed:WasteWaterStreamReferenceID eq $m]) ge 2) then ancestor::*/ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq $m]/ed:ID[@collectionID eq '9008390108260'] else '')[. != ''], ', ')"/>.</report>
- <report id="R909_chkcon" role="ERROR" test="(f:isPhProperty(ed:PropertyKindID/text()) eq true()) or (f:isTemperatureProperty(ed:PropertyKindID/text()) eq true())">Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen in EMREG-OW nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur” handelt - verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(..), 'EffluentSampleTestingEvent')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R916_chkval" role="ERROR" test="(count(ed:ValueAssignmentStatement/ed:NumericValue[not(exists(@unitID))]) ge 1) or (some $m in ed:ValueAssignmentStatement/ed:NumericValue/@unitID satisfies (($m ne 'mg/l') and ($m ne 'ug/l') and ($m ne 'ng/l')))">Das Datenformat unterstützt die für die Übermittlung von Untersuchungsergebnissen in die Anwendung EMREG-OW ausschließlich die Angabe der Größeneinheiten “mg/l”, “µg/l” bzw. “ng/l”- verletzt für den <sch:value-of select="1+count((//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID]/ed:Name)) then concat(' (Name: »',//ed:ListedData/ed:WasteWaterStream[ed:DocumentScopeAssignmentID eq current()/../../ed:WasteWaterStreamReferenceID]/ed:Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(..), 'EffluentSampleTestingEvent')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="ed:PropertyKindID"/>«<sch:value-of select="if (exists(ed:PropertyKindID/@objectDesignation)) then concat(' (Name: »',ed:PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <rule id="R808" context="EnvironmentalData/Testing/TestingEvent[exists(WasteWaterStreamReferenceID)]/EffluentSampleTestingEvent[not(f:isPhProperty(f:strippedParamID(PropertyTesting/PropertyKindID/text()))) and not(f:isTemperatureProperty(f:strippedParamID(PropertyTesting/PropertyKindID/text()))) and not(exists(preceding-sibling::EffluentSampleTestingEvent[PropertyTesting/PropertyKindID/text() eq current()/PropertyTesting/PropertyKindID/text()]))]">
+ <report id="R808_prvcdn" role="ERROR" test="not(exists(../../../WasteWaterStreamReferencePeriodResult[WasteWaterStreamReferenceID eq current()/../WasteWaterStreamReferenceID]/EffluentWaterParameterProperty[(f:strippedParamID(PropertyKindID) eq f:strippedParamID(current()/PropertyTesting/PropertyKindID)) and (count(PropertyCategoryID) gt 0)]))">Für jeden Abfluss-Einzelmesswert hat über in Bezug auf Teilstrom und Parameter <sch:value-of select="f:strippedParamID(PropertyTesting/PropertyKindID/text())"/> korrespondierende Bezugszeitraum-Angaben (WasteWaterStreamReferencePeriodResult) die Parameterkategorie im Element PropertyCategoryID angegeben zu sein - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den Abfluss angegebenen Parameter mit der ID »<sch:value-of select="PropertyTesting/PropertyKindID"/>«<sch:value-of select="if (exists(PropertyTesting/PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyTesting/PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R809_chkmlt" role="ERROR" test="some $m in distinct-values(EffluentSampleTestingEvent/PropertyTesting/PropertyKindID) satisfies count(EffluentSampleTestingEvent[PropertyTesting/PropertyKindID eq $m]) gt 12">Das Datenformat unterstützt die Angabe von nicht mehr als 12 Abfluss-Einzelmesswerten pro Berichtsjahr, Teilstrom und Parameter - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und die Parameter mit den IDs <sch:value-of select="string-join((for $m in distinct-values(EffluentSampleTestingEvent/PropertyTesting/PropertyKindID) return if (count(EffluentSampleTestingEvent[PropertyTesting/PropertyKindID eq $m]) gt 12) then tokenize($m,',')[1] else '')[. != ''], ', ')"/>.</report>
+ <report id="R828_chkcon" role="ERROR" test="InfluentSampleTestingEvent">Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen nur für den Abfluss - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und den zu diesem Teilstrom angegebenen Zufluss-Parametern.</report>
+ <report id="R832_prvalw" role="ERROR" test="count(WasteWaterStreamReferenceID) lt 1">Die Angaben zu den einzelnen Wasseruntersuchungen und deren Ergebnissen haben den Bezug auf einen Teilstrom im Element WasteWaterStreamReferenceID zu enthalten - verletzt für die <sch:value-of select="1+count(preceding-sibling::*[name() eq name(current())])"/>. Untersuchungsergebnis-Angaben (TestingEvent) innerhalb der <sch:value-of select="1+count(ancestor::EnvironmentalDataDocument/preceding-sibling::*[local-name() eq 'EnvironmentalDataDocument'])"/>. wasserwirtschaftlichen Bewegungsdaten (EnvironmentalDataDocument) in der XML-Instanz.</report>
+ <report id="R874_prvalw" role="ERROR" test="count(AppliedMethod) ge 1">Bei der Übermittlung in EMREG-OW wird für Einzelmesswerte eine Angabe von Methoden nicht unterstützt.</report>
+ <report id="R875_uqstrc" role="ERROR" test="count(distinct-values(TestingEvent/WasteWaterStreamReferenceID)) ne count(TestingEvent/WasteWaterStreamReferenceID)">Die Angaben zu einzelnen Untersuchungen in Testing/TestingEvent haben nach Teilstrom gruppiert zu sein, d.h. auf denselben Teilstrom hat nicht mehrfach Bezug genommen zu werden - verletzt für Untersuchungsangaben mit Bezug auf Teilströme mit Wasserbuch-IDs <sch:value-of select="string-join((for $m in distinct-values(TestingEvent/WasteWaterStreamReferenceID) return if (count(TestingEvent[WasteWaterStreamReferenceID eq $m]) ge 2) then ancestor::*/ListedData/WasteWaterStream[DocumentScopeAssignmentID eq $m]/ID[@collectionID eq '9008390108260'] else '')[. != ''], ', ')"/>.</report>
+ <report id="R909_chkcon" role="ERROR" test="(f:isPhProperty(PropertyKindID/text()) eq true()) or (f:isTemperatureProperty(PropertyKindID/text()) eq true())">Das Datenformat unterstützt die Übermittlung von einzelnen Untersuchungsergebnissen in EMREG-OW nur für solche Parameter, bei welchen es sich weder um “pH-Wert” noch um “Temperatur” handelt - verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(..), 'EffluentSampleTestingEvent')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
+ <report id="R916_chkval" role="ERROR" test="(count(ValueAssignmentStatement/NumericValue[not(exists(@unitID))]) ge 1) or (some $m in ValueAssignmentStatement/NumericValue/@unitID satisfies (($m ne 'mg/l') and ($m ne 'ug/l') and ($m ne 'ng/l')))">Das Datenformat unterstützt die für die Übermittlung von Untersuchungsergebnissen in die Anwendung EMREG-OW ausschließlich die Angabe der Größeneinheiten “mg/l”, “µg/l” bzw. “ng/l”- verletzt für den <sch:value-of select="1+count((//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID])/../preceding-sibling::*[local-name() eq 'WasteWaterStream'])"/>. in der XML-Instanz enthaltenen Teilstrom<sch:value-of select="if (exists(//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID]/Name)) then concat(' (Name: »',//ListedData/WasteWaterStream[DocumentScopeAssignmentID eq current()/../../WasteWaterStreamReferenceID]/Name,'«)') else ''"/> und dem zu diesem Teilstrom bezogen auf den <sch:value-of select="if (ends-with(local-name(..), 'EffluentSampleTestingEvent')) then 'Abfluss' else 'Zufluss'"/> angegebenen Parameter mit der ID »<sch:value-of select="PropertyKindID"/>«<sch:value-of select="if (exists(PropertyKindID/@objectDesignation)) then concat(' (Name: »',PropertyKindID/@objectDesignation,'«)') else ''"/>.</report>
- <report id="R948_chkmlt" role="ERROR" test="count(ed:EnvironmentalDataDocument) ne 1">Der Datenimport in EMREG-OW ist jeweils nur für genau ein Berichtsjahr möglich, und somit jeweils genau ein EnvironmentalDataDocument-Element. Es sind jedoch <sch:value-of select="count(ed:EnvironmentalDataDocument)"/> EnvironmentalDataDocument-Elemente in der Dateninstanz enthalten.</report>
+ <report id="R948_chkmlt" role="ERROR" test="count(EnvironmentalDataDocument) ne 1">Der Datenimport in EMREG-OW ist jeweils nur für genau ein Berichtsjahr möglich, und somit jeweils genau ein EnvironmentalDataDocument-Element. Es sind jedoch <sch:value-of select="count(EnvironmentalDataDocument)"/> EnvironmentalDataDocument-Elemente in der Dateninstanz enthalten.</report>
- <report id="R956_chkcon" role="ERROR" test="count(distinct-values(//ed:PropertyKindID/@collectionID)) gt 1">Innerhalb einer XML-Dateninstanz haben alle Parameter entweder per EHPC-Code (Codeliste 6912) oder per GTIN (Codeliste 2809) angegeben zu sein, und zwar über die verschiedenen Angaben - z.B. Grenzwert, Jahreswert, Messwert - hinweg. Das “Mischen” von EHPC-Codes und GTINs innerhalb einer XML-Dateninstanz wird vom Datenformat nicht unterstützt.</report>
+ <report id="R956_chkcon" role="ERROR" test="count(distinct-values(//PropertyKindID/@collectionID)) gt 1">Innerhalb einer XML-Dateninstanz haben alle Parameter entweder per EHPC-Code (Codeliste 6912) oder per GTIN (Codeliste 2809) angegeben zu sein, und zwar über die verschiedenen Angaben - z.B. Grenzwert, Jahreswert, Messwert - hinweg. Das “Mischen” von EHPC-Codes und GTINs innerhalb einer XML-Dateninstanz wird vom Datenformat nicht unterstützt.</report>
</rule>
</pattern>
<pattern>
emreg_message.xsd
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- EMREG v0.90 (PUBLIC DRAFT, CANDIDATE FOR 1.00)
-
- Copyright (C) 2024 Environment Agency Austria
+ EMREG v0.91 (PUBLIC DRAFT, CANDIDATE FOR 1.00)
+
+ Copyright (C) 2025 Environment Agency Austria
Commissioned by the Austrian Federal Ministry of Agriculture, Forestry, Regions and Water Management (BML)
@@ -18,7 +18,7 @@
See the Licence for the specific language governing permissions and limitations under the Licence.
- <xs:assert test="every $m in ed:TypeID satisfies ($m eq '9008390103968') or ($m eq '9008390103975') or ($m eq '9008390103999') or ($m eq '9008390104002') or ($m eq '9008390104019') or ($m eq '9008390103944') or ($m eq '9008390103951') or ($m eq '9008390104682')"/>
+ <xs:assert test="every $m in TypeID satisfies ($m eq '9008390103968') or ($m eq '9008390103975') or ($m eq '9008390103999') or ($m eq '9008390104002') or ($m eq '9008390104019') or ($m eq '9008390103944') or ($m eq '9008390103951') or ($m eq '9008390104682')"/>
- <xs:assert test="every $m in ed:ID/@collectionID satisfies ($m eq '9008390104026') or ($m eq '9008390104040') or ($m eq '9008390104057') or ($m eq '9008390104064') or ($m eq '9008390108260') or ($m eq '9008390108277') or ($m eq '9008390124796')"/>
- <xs:assert test="every $m in ed:MainActivityTypeID/@collectionID satisfies $m eq '4731'"/>
- <xs:assert test="every $m in ed:CompetentAuthorityID/@collectionID satisfies $m eq '1664'"/>
- <xs:assert test="every $m in ed:CommunicationNetworkEndpoint/ed:TypeID satisfies ($m eq '9008390104200')"/>
+ <xs:assert test="every $m in ID/@collectionID satisfies ($m eq '9008390104026') or ($m eq '9008390104040') or ($m eq '9008390104057') or ($m eq '9008390104064') or ($m eq '9008390108260') or ($m eq '9008390108277') or ($m eq '9008390124796')"/>
+ <xs:assert test="every $m in MainActivityTypeID/@collectionID satisfies $m eq '4731'"/>
+ <xs:assert test="every $m in CompetentAuthorityID/@collectionID satisfies $m eq '1664'"/>
+ <xs:assert test="every $m in CommunicationNetworkEndpoint/TypeID satisfies ($m eq '9008390104200')"/>