Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XSD Unique Element aber wie.....? (https://www.delphipraxis.net/198467-xsd-unique-element-aber-wie.html)

creehawk 5. Nov 2018 16:26

XSD Unique Element aber wie.....?
 
Moin Moin.

Ich murkse jetzt schon den ganzen Nachmittag rum um entsprechend der folgenden XM Struktur..

Code:
<?xml version="1.0"?>
<Adressen xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance" xsi:schemaLocation="Adressenliste.xsd">
   <Adresse>
      <Index>4711</Index>
      <Anrede>Frau</Anrede>
      <Titel>Dr.</Titel>
      <Vorname>Anneliese</Vorname>
      <Nachname>Rampelburger-Meschbach</Nachname>
      <Strasse>Knödelweg</Strasse>
      <Hausnummer>38</Hausnummer>
      <Postleitzahl>47120</Postleitzahl>
      <Ort>Kassebur-Segersheim</Ort>
      <Telefon>04985/83984938</Telefon>
      <Mobil>0175/3986582364</Mobil>
      <EMail>Anneliese@t-online.jo</EMail>
      <Geburtsdatum>12-12-12</Geburtsdatum>
      <Kommentar></Kommentar>
   </Adresse>
</Adressen>
der folgenden XSD das Feld Index als UNIQUE Element zu verpassen.

Code:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Adressen">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="Adresse" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element type="xs:int" name="Index"/>
                  <xs:element type="xs:string" name="Anrede"/>
                  <xs:element type="xs:string" name="Titel"/>
                  <xs:element type="xs:string" name="Vorname"/>
                  <xs:element type="xs:string" name="Nachname"/>
                  <xs:element type="xs:string" name="Strasse"/>
                  <xs:element type="xs:integer" name="Hausnummer"/>
                  <xs:element type="xs:int" name="Postleitzahl"/>
                  <xs:element type="xs:string" name="Ort"/>
                  <xs:element type="xs:string" name="Telefon"/>
                  <xs:element type="xs:string" name="Mobil"/>
                  <xs:element type="xs:string" name="EMail"/>
                  <xs:element type="xs:date" name="Geburtsdatum"/>
                  <xs:element type="xs:string" name="Kommentar"/>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
</xs:element>
</xs:schema>
Falls jemanden diese beiden ausgewählten Stücke bekannt vorkommen siehe letzten Thread.

Ich habe wirklich jede verdammte Google Fundstelle und natürlich auch hier gesucht. Ich finde nix das ich verstehe.

Hat da jemand einen Hilfestellung parat? Ein Code-Schnipsel?

creehawk

Schokohase 5. Nov 2018 17:19

AW: XSD Unique Element aber wie.....?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mit dieser XSD
XML-Code:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           attributeFormDefault="unqualified"
           elementFormDefault="qualified">
  <xs:element name="Adressen">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Adresse" maxOccurs="unbounded" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:int" name="Index"/>
              <xs:element type="xs:string" name="Anrede"/>
              <xs:element type="xs:string" name="Titel"/>
              <xs:element type="xs:string" name="Vorname"/>
              <xs:element type="xs:string" name="Nachname"/>
              <xs:element type="xs:string" name="Strasse"/>
              <xs:element type="xs:integer" name="Hausnummer"/>
              <xs:element type="xs:int" name="Postleitzahl"/>
              <xs:element type="xs:string" name="Ort"/>
              <xs:element type="xs:string" name="Telefon"/>
              <xs:element type="xs:string" name="Mobil"/>
              <xs:element type="xs:string" name="EMail"/>
              <xs:element type="xs:date" name="Geburtsdatum"/>
              <xs:element type="xs:string" name="Kommentar"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
    <xs:unique name="uniqueAdresse">
      <xs:selector xpath="Adresse/Index"/>
      <xs:field xpath="."/>
    </xs:unique>
  </xs:element>
</xs:schema>
und dieser XML
XML-Code:
<?xml version="1.0"?>
<Adressen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="Adressenliste.xsd">
  <Adresse>
    <Index>1</Index>
    <Anrede>Frau</Anrede>
    <Titel>Dr.</Titel>
    <Vorname>Anneliese</Vorname>
    <Nachname>Rampelburger-Meschbach</Nachname>
    <Strasse>Knödelweg</Strasse>
    <Hausnummer>38</Hausnummer>
    <Postleitzahl>47120</Postleitzahl>
    <Ort>Kassebur-Segersheim</Ort>
    <Telefon>04985/83984938</Telefon>
    <Mobil>0175/3986582364</Mobil>
    <EMail>Anneliese@t-online.jo</EMail>
    <Geburtsdatum>2012-12-12</Geburtsdatum>
    <Kommentar></Kommentar>
  </Adresse>
  <Adresse>
    <Index>1</Index>
    <Anrede>Frau</Anrede>
    <Titel>Dr.</Titel>
    <Vorname>Anneliese</Vorname>
    <Nachname>Rampelburger-Meschbach</Nachname>
    <Strasse>Knödelweg</Strasse>
    <Hausnummer>38</Hausnummer>
    <Postleitzahl>47120</Postleitzahl>
    <Ort>Kassebur-Segersheim</Ort>
    <Telefon>04985/83984938</Telefon>
    <Mobil>0175/3986582364</Mobil>
    <EMail>Anneliese@t-online.jo</EMail>
    <Geburtsdatum>2012-12-12</Geburtsdatum>
    <Kommentar></Kommentar>
  </Adresse>
</Adressen>
erhalte ich folgendes Ergebnis
Anhang 50207
(geöffnet in Visual Studio 2017)

BTW

Wenn du ein Schema ohne Namespace hast, dann musst du das Schema so angeben xsi:noNamespaceSchemaLocation="Adressenliste.xsd"

creehawk 6. Nov 2018 06:37

AW: XSD Unique Element aber wie.....?
 
Och Mönsch.......:shock:

Immer alles so einfach. Ich alber hier rum und wälze dicke Webseiten...

Vielen Dank für die Antwort, funktioniert bestens.

creehawk


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz