Databund: Referenzierung von Schemas
- 2.6
- Infrastruktur & Technik
Problem aus 2022 ff: Die XBau-Schemas referenzieren via xs:import verschiedene externe Schemas via http, u. a. von osci.de, leitstelle.de und xoev.de, unter anderem hier (Imports der Datei xbau-baukasten.xsd):
{{ <xs:import
schemaLocation="http://www.osci.de/xinneres/basisnachricht/4/xinneresbasisnachricht.xsd"
<xs:import
schemaLocation="http://www.osci.de/xinneres/behoerde/4/xinneresbehoerde.xsd"
<xs:import schemaLocation="http://www.osci.de/xinneres/datum/2/xinneresdatum.xsd"
<xs:import
schemaLocation="http://www.xleitstelle.de/xplanung/schema/5/1/gmlProfile/gm
lProfilexplan.xsd"
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-codes.xsd:
<xs:import schemaLocation="http://xoev.de/schemata/code/1_0/xoevcode.xsd"
xbau-nachrichten-anzeige.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-nachrichten-informationsempfaenger.xsd:
<xs:import
schemaLocation="http://www.xleitstelle.de/xplanung/schema/5/1/gmlProfile/gm
lProfilexplan.xsd"
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-nachrichten-ueberwachungspflichtigeAnlagen.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-prozessnachrichten.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
}}
Anforderungen:
• Muss: Die Referenzierung muss aus Sicherheitsgründen via TLS (https) erfolgen. Bei Übertragung per http besteht eine Manipulationsgefahr, was insbesondere bei Formaten wie XSD, die als Code maschinell ausgewertet werden, nicht tragbar ist.
• Soll: Es wäre sehr wünschenswert, dass alle Schemas (rekursiv) lokal aufgelöst und geladen würden. Motivation unter anderem: Performance, Betriebstabilität (z.B. Ausfall xoev.de), Netzwerksicherheit (z. B. XBau-Serversystem in abgeschottetem Netzwerksegment, aus dem keine http-Requests ins öffentliche Internet möglich sind). Es ist zwar technisch möglich, dies zu ändern bzw. eine abweichende Auflösung bei der Schema-Validierung zu realisieren, ist aber bei allen integrierenden System mit zusätzlichem Programmier- und ggf.- Betriebs- und Konfigurationsaufwand verbunden.