<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->

<!-- =======================================================================
ehd-Schnittstelle "eHealthData"
Die Hauptintention von ehd ist es, einen Rahmen zu schaffen, in dem beliebige XML-Schnittstellen
entstehen können, für die der CDA-Header von SCIPHOX ungeeignet ist. Dabei wird Wert darauf
gelegt, weitgehend kompatibel zu SCIPHOX zu sein: Von begründeten Ausnahmen abgesehen,
werden für alle ehd-Schnittstellen die Elemente aus SCIPHOX übernommen.

Namensraum ist:  urn:ehd/001

Damit Elementnamen nicht umdefiniert werden können, ist blockDefault="substitution" gesetzt.
Bei Ableitung von neuen Schnittstellen, ist dieses Attribut (blockDefault) auch zu setzen.
Die Version der Schnittstelle ist im version-Attribut hinterlegt.

version="1.30"
=======================================================================-->
<xs:schema xmlns="urn:ehd/001" xmlns:ehd="urn:ehd/001" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ehd/001" elementFormDefault="qualified" attributeFormDefault="unqualified" blockDefault="substitution" version="1.30">
	<!-- =======================================================================
	ehd_Dateien einbinden
	======================================================================= -->
	<xs:include schemaLocation="xmlbeans_184_ehd_header_V1.30.xsd_"/>
	<xs:include schemaLocation="xmlbeans_184_keytabs_V1.30.xsd_"/>
	<!-- =======================================================================
	ehd_root_typ
	======================================================================= -->
	<xs:complexType name="ehd_root_typ">
		<xs:sequence>
			<xs:element name="header" type="ehd_header_typ">
				<xs:annotation>
					<xs:documentation>alle Metainformationen zu den Daten</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="body" type="ehd_body_typ">
				<xs:annotation>
					<xs:documentation>die eigentlichen Daten</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="keytabs" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="ehd_version" type="ehd_version_typ" use="required"/>
	</xs:complexType>
	<!--
	============================================================
	Versionierung der Schema:
	im Schema-Attribut "version" steht immer die aktuelle Versionsnummer.
	Im Pflichtattribut "ehd_version" wird im XML-Dokument die EHD-Version
	angegebenen, mit der das Dokument erstellt wurde. Ein bestimmter Wert wird
	hier bewußt nicht vorgegeben, damit bei geringfügigen Änderungen, noch
	Aufwärtskompatibilität gewährleistet werden kann.
	============================================================-->
	<xs:simpleType name="ehd_version_typ">
		<xs:restriction base="xs:decimal">
			<xs:pattern value="\d?\d\.\d\d"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
	============================================================
	ehd_body_typ,  hier können die Schnittstellenspezifischen Elemente u. Attribute
	definiert werden. Wenn der Parser die neuen Elemente nicht kennt, wird
	keine Fehlermeldung ausgegeben. Wenn die Elementdefinition jedoch vorhanden
	ist, aber die Struktur in der XML-Instance nicht eingehalten wird, meldet
	der Parser einen Fehler.
	============================================================
	-->
	<xs:complexType name="ehd_body_typ">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
</xs:schema>
