<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:abt="http://www.auerswald.de/auer_base_types"
            xmlns:iprt="http://www.auerswald.de/ip_relaistypes" 
            targetNamespace="http://www.auerswald.de/ip_relaistypes"
            elementFormDefault="unqualified">

<xsd:import namespace="http://www.auerswald.de/auer_base_types" schemaLocation="auer_base_types.xsd"/>
            
            
            
<!-- Relais die mit der Methode cgi angesprochen werden -->            
<xsd:complexType name="relais_type_cgi">
    <xsd:annotation>
        <xsd:documentation >
        Relais-Kommunikation mittels Common Gateway Interface "CGI"
        </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>
        <xsd:element name="basic_auth" type ="xsd:boolean" minOccurs="0">
            <xsd:annotation>
                <xsd:documentation >
                    Basisauthentifizierung (nach RFC 2617) soll verwendet werden
                </xsd:documentation>
            </xsd:annotation>
       </xsd:element>
        <xsd:element name="digest_auth" type ="xsd:boolean" minOccurs="0">
            <xsd:annotation>
                <xsd:documentation >
                    Digest Access Authentication (ebenfalls RFC 2617) soll verwendet werden
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="http_request" type ="iprt:http_request_type" maxOccurs="2">
            <xsd:annotation>
                <xsd:documentation >
                Request "schalte_relay" zum Schalten eines Relais
                Request "relay_status" zur Abfrage eines Relais-Schaltzustandes
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="editable" type="xsd:boolean" use="optional">
        <xsd:annotation>
	       <xsd:documentation>
	       Attribut fuer Eingabefelder im WEB-Browser: Soll das Eingabefeld editierbar sein ? - true: ja, false: nein
	       </xsd:documentation>
	    </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="gui_is_optional" type="xsd:boolean" use="optional">
	    <xsd:annotation>
	       <xsd:documentation >
	       Attribut fuer Eingabefelder im WEB-Browser: Muss das Eingabefeld vorhanden sein ? - true: ja, false: nein
	       </xsd:documentation>
	    </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="is_simple" type="xsd:boolean" use="optional"> 
       <xsd:annotation>
           <xsd:documentation >
           Für WEB-Oberfläche: Einfaches Gerät mit 2 URLs zum Ein- und Ausschalten eines Relais 
           </xsd:documentation>
           </xsd:annotation>
    </xsd:attribute>
</xsd:complexType>
            

<xsd:complexType name="http_request_type">
    <xsd:sequence>
        <xsd:element name="url_string" type ="iprt:url_string_type" minOccurs="0">
            <xsd:annotation>
                <xsd:documentation >
                Aufbau des URL-Strings mit Platzhaltern: $Username$, $Passwort$, $Relay$, $Relay_STATUS_x$ wobei x eine Relaisnummer ist 
                </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="request_type" type ="iprt:request_type_enum" minOccurs="0">
         <xsd:annotation>
             <xsd:documentation >
             Sonderbehandlung für spezielle Geräte: Philips Hue (webbasierte Lampen), Energie/Gembird (webbasierte Steckdoesenleisten) 
             </xsd:documentation>
         </xsd:annotation>
        </xsd:element>
        <xsd:element name="http_response" type ="iprt:http_response_type" minOccurs="0">
         <xsd:annotation>
             <xsd:documentation>
             Sequenz zum Parsen der Antwort vom IP-Gerät, siehe iprt:http_response_type
             Aufbau: Schluesselwort (z.B. state :) $Relay_STATUS_x$, etc.; x ist dabei eine Relaisnummer
             Das Schluesselwort dient jeweils zum Auffinden des Relaisschaltwertes; 
             Steuerzeichen wie Linefeed, 0x0A oder 0x0D duerfen nicht enthalten sein
             Der jeweilige Schaltwert wird mittels der Atrribute "relay_turn_value_on" 
             oder "relay_turn_value_off" definiert. 
             Werden die Atrribute nicht verwendet, ist 1: ein und 0: aus. 
             </xsd:documentation>
         </xsd:annotation>            
        </xsd:element>
        <xsd:element name="response_contains_for_true" type ="xsd:string" minOccurs="0">
          <xsd:annotation>
              <xsd:documentation >
              String/Sequenz in der Antwort, die als eingeschaltet interpretiert werden soll.
              </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="response_contains_for_false" type ="xsd:string" minOccurs="0">
          <xsd:annotation>
              <xsd:documentation >
              future use: String/Sequenz in der Antwort, die als ausgeschaltet interpretiert werden soll.
              </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        <xsd:element name="http_body_request" type ="xsd:string" minOccurs="0">
          <xsd:annotation>
              <xsd:documentation >
              Sonderbehandlung für Philips Hue Geräte: HTML-Body mit Platzhalter "$Relay_STATUS$"
              </xsd:documentation>
            </xsd:annotation>
        </xsd:element>
        
    </xsd:sequence>
    <xsd:attribute name="name"  type="xsd:string" use="required">
      <xsd:annotation>
          <xsd:documentation >
          Request Namen: schalte_relay + relay_status 
          </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="response_is_in_http_body" type="xsd:boolean" use="optional">
      <xsd:annotation>
          <xsd:documentation >
          Wird nicht verwendet ! (Antwort ist im Body der Rückmeldung)
          </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="method" type="iprt:method_type" use="optional">
      <xsd:annotation>
          <xsd:documentation >
          Get, Put, Post
          </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="relay_turn_value_on" type="xsd:string" use="optional">
      <xsd:annotation>
          <xsd:documentation >
          Zeichenfolge für Relais einschalten z.B. "ein" oder "true", default ist "1"
          </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="relay_turn_value_off" type="xsd:string" use="optional">
       <xsd:annotation>
           <xsd:documentation >
           Zeichenfolge für Relais ausschalten z.B. "aus" oder "false", default ist "0"
           </xsd:documentation>
       </xsd:annotation>
    </xsd:attribute>
</xsd:complexType>

<xsd:simpleType name="request_type_enum">
  <xsd:annotation>
      <xsd:documentation >
      Sonderbehandlung für spezielle Geräte
      </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="just_one_relay_at_a_time">
        <xsd:annotation>
            <xsd:documentation >
            Geräte-Request erlaubt nur das Schalten/Abfragen eines einzigen Relais,
            z.B. Philips Hue, Allnet4076
            Achtung Änderung der Schlüsselworte: 
            $Relay$ : Nummer des zu schaltenden Relais 1..max
            $Relay_STATUS$ : zukünftiger bzw. aktueller Schaltzustand
            </xsd:documentation>
        </xsd:annotation>
    </xsd:enumeration>
    <xsd:enumeration value="just_one_relay_at_a_time_no_fill_ups">
      <xsd:annotation>
          <xsd:documentation >
          Sonderbehandlung für Energie Geräte
          </xsd:documentation>
      </xsd:annotation>
     </xsd:enumeration>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="method_type">
  <xsd:annotation>
      <xsd:documentation >
      3 Methoden für die URL-Anfrage
      </xsd:documentation>
  </xsd:annotation>

  <xsd:restriction base="xsd:string">
      <xsd:enumeration value="GET"/>
      <xsd:enumeration value="PUT"/>
      <xsd:enumeration value="POST"/>
  </xsd:restriction>
</xsd:simpleType>


<xsd:complexType name="url_string_type">
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
        <xsd:attribute name="editable" type="xsd:boolean">
		    <xsd:annotation>
		       <xsd:documentation >
		       Attribut fuer Eingabefelder im WEB-Browser: Soll das Eingabefeld editierbar sein ? - true: ja, false: nein
		       </xsd:documentation>
		    </xsd:annotation>
	    </xsd:attribute>
        <xsd:attribute name="gui_is_optional" type="xsd:boolean">        
		    <xsd:annotation>
		       <xsd:documentation >
		       Attribut fuer Eingabefelder im WEB-Browser: Muss das Eingabefeld vorhanden sein ? - true: ja, false: nein
		       </xsd:documentation>
		    </xsd:annotation>
	    </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>


<xsd:complexType name="http_response_type">
  <xsd:annotation>
      <xsd:documentation >
      Antwort (response) auf einen request
      </xsd:documentation>
  </xsd:annotation>

  <xsd:simpleContent>
   <xsd:annotation>
       <xsd:documentation >
       Zeichenfolge mit Platzhalter $Relay_STATUS_x$ x=1.. Relaisnummer
       </xsd:documentation>
   </xsd:annotation>
  
    <xsd:extension base="xsd:string">
        <xsd:attribute name="use_body" type="xsd:boolean">
        	<xsd:annotation>
		       <xsd:documentation >
		       Information zu Schaltzuständen ist im Message-Body ? - true: ja, false: nein
		       </xsd:documentation>
		    </xsd:annotation>
	    </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>


<xsd:complexType name="relais_type_udp">
    <xsd:sequence>
        <xsd:element name="Request" type ="iprt:udp_request_type">
	    <xsd:annotation>
	       <xsd:documentation >
	       UDP Request: siehe Feldbeschreibung
	       </xsd:documentation>
	    </xsd:annotation>
        </xsd:element>
        <xsd:element name="Response" type ="iprt:udp_response_type">
	    <xsd:annotation>
	       <xsd:documentation >
	       UDP Response: siehe Feldbeschreibung
	       </xsd:documentation>
	    </xsd:annotation>
        </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="editable" type="xsd:boolean" use="required">
	    <xsd:annotation>
	       <xsd:documentation >
	       Attribut fuer Eingabefelder im WEB-Browser: Muss das Eingabefeld vorhanden sein ? - true: ja, false: nein
	       </xsd:documentation>
	    </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="gui_is_optional" type="xsd:boolean" use="optional">
  	 <xsd:annotation>
	       <xsd:documentation >
	       Attribut fuer Eingabefelder im WEB-Browser: Muss das Eingabefeld vorhanden sein ? - true: ja, false: nein
	       </xsd:documentation>
	    </xsd:annotation>
    </xsd:attribute>
</xsd:complexType>




<xsd:complexType name="udp_request_type">
    <xsd:sequence>
        <xsd:element name="Protocol_label" type ="iprt:udp_Protocol_label_type">
  	        <xsd:annotation>
	        <xsd:documentation >
	        String z.B. fuer ein Protokollname mit einer Position innerhalb des UDP-Requuest Strings
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Relay_switching_time" type ="iprt:udp_Relay_switching_time_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			Feld für Relais-Schaltdauer mit einer Position innerhalb des UDP-Requuest Strings: \n
			Schaltdauer, Formatierung der Schaltdauer; Einheit
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Has_relay_number" type ="iprt:udp_Has_relay_number_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			Feld fuer eine Relaisnummer mit der zugehörigen Formatierung der Nummer
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Has_hash" type ="iprt:udp_Has_hash_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			UDP-String Inhalt wird per Hash-Wert gesichert ...
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Has_sequencenumber" type ="iprt:udp_Has_sequencenumber_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			Es werden Sequenznummern verwendet
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Has_pbx_ip" type ="iprt:udp_Has_pbx_ip_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			IP-Adresse der PBX wird übermittelt
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Has_password" type ="iprt:udp_Has_password_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			Passwort wird benötigt
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Response" type ="iprt:udp_response_type" minOccurs="3" maxOccurs="3">
  	        <xsd:annotation>
	        <xsd:documentation >
			3 mögliche Antworten vom Gerät:\n
			- Idle: keine Änderung der Schaltungsposition\n
			- Schaltung_war_erfolgreich\n
			- Schaltung_ist_fehlgeschlagen 
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        <xsd:element name="Fixed_chars" type ="iprt:udp_Fixed_chars_type">
  	        <xsd:annotation>
	        <xsd:documentation >
			
	        </xsd:documentation>
	        </xsd:annotation>
        </xsd:element>
        
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string" use="required">
  	 <xsd:annotation>
	       <xsd:documentation >
	       Key-Word für Request-Funktion: \n
	       Relais schalten - schalte_relay; \n
	       Relais umschalten - schalte_relay_toggle\n
	       ?? - Idle
	       </xsd:documentation>
	    </xsd:annotation>
    </xsd:attribute>
</xsd:complexType>




<xsd:complexType name="udp_response_type">
    <xsd:sequence>
        <xsd:element name="Has_request_sequence" type ="iprt:udp_Has_request_sequence_type"/>
        <xsd:element name="Has_hash" type ="iprt:udp_Has_hash_type"/>
        <xsd:element name="Has_respons_in_request" type ="iprt:udp_Has_respons_in_request_type"/>
        <xsd:element name="Response_code" type ="iprt:udp_Response_code_type"/>
        <xsd:element name="Fixed_chars" type ="iprt:udp_Fixed_chars_type"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>



<xsd:complexType name="udp_response_name">
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="status" type="xsd:boolean" use="required"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>


<xsd:complexType name="udp_Protocol_label_type">
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                Teilstring-Position im UDP/URL-String
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                future use
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
<xsd:complexType name="udp_Relay_switching_time_type">
  <xsd:simpleContent>
    <xsd:extension base="abt:posint_with_0">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                Teilstring-Position im UDP/URL-String
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                Wert hexadizimal formatieren: true - ja; false - nein
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_optional" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                Das Feld "udp_Relay_switching_time_type" ist optional? true - optional; false - mandatory
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="len" type="abt:posint_with_0" use="optional">
        </xsd:attribute>
        <xsd:attribute name="default_schalt_dauer" type="abt:posint_with_0" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                Wert: 0..  Schaltdauer in Sekunden
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="schalt_dauer_einheit" type="xsd:string" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                Einheit Schaltdauer: Z.Z. in Sekunden: String "sek"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
            
<xsd:complexType name="udp_Has_relay_number_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String wird eine Relaisnummer erwartet"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="abt:posint_with_0">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Relaisnummer wird als hexdezimaler Wert erwartet"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_short_String" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Relaisnummer nur als Byte-Wert 0..255; In Kombination mit is_string_hex: 0 .. FF"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
            
            
<xsd:complexType name="udp_Has_sequencenumber_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String wird eine Sequenznummer erwartet"
    </xsd:documentation>
  </xsd:annotation>

  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Sequenznummer wird als hexdezimaler Wert erwartet"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="len" type="abt:posint_with_0" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Länge der Sequenznummer in Byte"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

<!--  -->            
<xsd:complexType name="udp_Has_pbx_ip_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String wird die IP-Adresse der PBX erwartet"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Sequenznummer wird als hexdezimaler Wert erwartet"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
             
<xsd:complexType name="udp_Has_password_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String wird ein Passworterwartet"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring"-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Passwort wird als hexdezimaler Wert erwartet"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="fill_with_f" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Leerstellen werden mit F aufgefüllt"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
            
            
            
<xsd:complexType name="udp_Has_request_sequence_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String der Antwort ist eine Sequenznummer"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
<xsd:complexType name="udp_Has_hash_type">
  <xsd:annotation>
    <xsd:documentation >
    "Im UDP/URL-String wird ein Hash-Wert erwartet"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="is_string_hex" type="xsd:boolean" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "Pruefsumme als hexdezimaler Wert"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="hash_len" type="abt:posint_with_0" use="optional">
            <xsd:annotation>
                <xsd:documentation >
                "future use: Länge der Pruefsummer in Byte"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="default_hash_func" type="xsd:string">
            <xsd:annotation>
                <xsd:documentation >
                "Methode der Pruefsummen-Bildung, z.Z. nur SUM_XOR_256"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>



<xsd:complexType name="udp_Has_respons_in_request_type">
  <xsd:annotation>
    <xsd:documentation >
    "Response im Request-Antwort"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:boolean">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
           
<xsd:complexType name="udp_Response_code_type">
  <xsd:annotation>
    <xsd:documentation >
    "??"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
      <xsd:element name="key_byte" type ="iprt:udp_key_byte_type"/>
      <xsd:element name="value_byte" type ="iprt:udp_value_byte_type"/>
  
  </xsd:sequence>
  <xsd:attribute name="position" type="abt:posint_with_0" use="required">
      <xsd:annotation>
          <xsd:documentation >
          "Teilstring-Position im UDP/URL-String"
          </xsd:documentation>
      </xsd:annotation>
  </xsd:attribute>
</xsd:complexType>

<xsd:complexType name="udp_key_byte_type">
  <xsd:annotation>
    <xsd:documentation >
    "??"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="abt:posint_with_0">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

<xsd:complexType name="udp_value_byte_type">
  <xsd:annotation>
    <xsd:documentation >
    "??"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="abt:posint_with_0">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
            
<xsd:complexType name="udp_Fixed_chars_type">
  <xsd:annotation>
    <xsd:documentation >
    "??"
    </xsd:documentation>
  </xsd:annotation>
  <xsd:simpleContent>
    <xsd:extension base="xsd:string">
        <xsd:attribute name="position" type="abt:posint_with_0" use="required">
            <xsd:annotation>
                <xsd:documentation >
                "Teilstring-Position im UDP/URL-String"
                </xsd:documentation>
            </xsd:annotation>
        </xsd:attribute>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>
            
            
            
            
</xsd:schema>            