Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


XML-Validierung: Wozu? / xs:unique, xs:key, xs:keyref, xs:selector, xs:field

xs:unique, xs:key, xs:keyref, xs:selector, xs:field

xs:unique, xs:key, xs:keyref, xs:selector, xs:field

➪ Auch m:n-Relationen, wie sie in RDBMS üblich sind, können in XML problemlos abgebildet werden. XML-Schema bietet hier mit xs:unique, xs:key und xs:keyref effiziente Lösungsansätze.

Der Vorteil: Hier können gegenseitige Abhängigkeiten zwischen Elementen bzw. Attributen im XML-Dokument definiert werden, die die Datenqualität beträchtlich erhöhen und die spätere Auswertung mit XPath sehr erleichtern, etwa über und praktikable Ansätze. Siehe auch .


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="Orte">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Ort" maxOccurs="unbounded"/>
        <xs:element ref="Person" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
    <xs:key name="IDORT">
      <xs:selector xpath="./Ort"></xs:selector>
      <xs:field xpath="id"></xs:field>
    </xs:key>
    <xs:keyref name="RELORTPerson" refer="IDORT">
      <xs:selector xpath="./Person"></xs:selector>
      <xs:field xpath="idOrt"></xs:field>
    </xs:keyref>
  </xs:element>
  <xs:element name="Ort">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="id"/>
        <xs:element ref="name"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Person">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="id"/>
        <xs:element ref="name"/>
        <xs:element ref="vorname"/>
        <xs:element ref="alter" 
                    minOccurs="0" 
                    maxOccurs="1"/>
        <xs:element ref="idOrt" 
                    minOccurs="1" 
                    maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="id" 
              type="xs:nonNegativeInteger"/>
  <xs:element name="name" 
              type="xs:string"/>
  <xs:element name="vorname" 
              type="xs:string"/>
  <xs:element name="alter" 
              type="xs:nonNegativeInteger"/>
  <xs:element name="idOrt" 
              type="xs:nonNegativeInteger"/>
</xs:schema>

pic/xsd5.png

wg / 24. September 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSD3_6.html