Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Funktion und Sinn von XML Schemata (https://www.delphipraxis.net/108925-funktion-und-sinn-von-xml-schemata.html)

madas 21. Feb 2008 11:31

Re: Funktion und Sinn von XML Schemata
 
Zitat:

Zitat von Luckie
CSharp wäre nicht schlecht, weil ich es auch für C# dann bräuchte. Danke schon mal für eure Mühe.

Link

Luckie 21. Feb 2008 11:31

Re: Funktion und Sinn von XML Schemata
 
Zitat:

Zitat von Khabarakh
Es gibt auch Tools (zum Bleistift für .Net :zwinker:), die aus einem Schema eine entsprechende Klassenhierarchie (also Code) erstellen und umgekehrt. Imho übelst genial, damit wird die Arbeit mit XML leichter als mit jeder Ini- oder CSV-Datei.

Kannst du ein paar solcher Tools empfehlen?

Dax 21. Feb 2008 11:50

Re: Funktion und Sinn von XML Schemata
 
Zitat:

Zitat von Luckie
Kannst du ein paar solcher Tools empfehlen?

xsd.exe ;) Das ist in jedem .net-SDK enthalten.

Luckie 21. Feb 2008 12:37

Re: Funktion und Sinn von XML Schemata
 
[quote="shmia"]
Zitat:

Zitat von Luckie
Beispiel: folgende Struktur wurde vereinbart:
XML-Code:
<Verlag>
  <Author> ... <Author/>
  <Author> ... <Author/>
<Verlag/>
Also das Element <Author> muss unterhalb des <Element> Verlag auftauchen und darf beliebig oft erscheinen.
Würde jetzt folgende XML-Datei auftauchen:
XML-Code:
<Verlag>
  <Author>
    <Verlag> ... <Verlag/>
  <Author/>
  <Author> ... <Author/>
<Verlag/>

wie würden denn dazu die XML- und XSD-Dateien aussehen?

Ich habe es jetzt so probiert:
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema>
  <xs:element name="verlag">
  <xs:sequence>
    <xs:element name="autor" type="xs:string"/>
  </xs:sequence>
</xsd:schema>
Und
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<artikel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="verlag.xsd">
<verlag>
  <autor>Hans Peter</autor>
  <autor>Klaus Müller</autor>
</verlag>
Der Firefox gibt mir jedoch folgende Fehlermeldung aus:
Zitat:

Code:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: file:///D:/~ressourcen/XMLSchema/demos/verlag.xml
Zeile Nr. 6, Spalte 10:
</verlag>
---------^


shmia 21. Feb 2008 13:08

Re: Funktion und Sinn von XML Schemata
 
Zitat:

Zitat von Luckie
wie würden denn dazu die XML- und XSD-Dateien aussehen?

Dein Entwurf sieht auf den 1. Blick richtig aus.
Es kommt aber (wie üblich beim Programmieren) auf die kleinen Details an.
Ich kann dir den XML-Editor XML PAD empfehlen.
Wenn eine XML-Datei mit einem Schema verknüpft ist, prüft dieser es und unterstützt dich beim editieren.
Wenn die XML-Datei nicht auf das Schema passt, gibt der Editor an wo das Problem besteht.

Luckie 21. Feb 2008 13:37

Re: Funktion und Sinn von XML Schemata
 
Danke, ich werde mal gucken, wie weit ich damit komme.

Luckie 21. Feb 2008 13:59

Re: Funktion und Sinn von XML Schemata
 
Update.

Ich habe es jetzt so:
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="verlag">
    <xs:sequence>
      <xs:element name="autor" type="xs:string"/>
    </xs:sequence>
  </xs:element>
</xs:schema>
Und
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<artikel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="verlag.xsd">
<verlag>
  <autor>Hans Peter</autor>
  <autor>Klaus Müller</autor>
</verlag>
Fehlermeldung von XMLPad lautet:
Zitat:

no element found
und zeigt auf das schliessende Verlag-Tag in der letzen Zeile.

Lord_Stifterl 21. Feb 2008 14:17

Re: Funktion und Sinn von XML Schemata
 
Hi Luckie,

ich hab in der zweiten Zeile (im <xs>-Tag) zusätzlich nach

XML-Code:
<xs: ... XMLSchema"
noch folgendes stehen

XML-Code:
elementFormDefault="qualified" attributeFormDefault="unqualified">
Das heisst, dein XML-Schema müsste dann eigentlich so aussehen

XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="verlag">
    <xs:sequence>
      <xs:element name="autor" type="xs:string"/>
    </xs:sequence>
  </xs:element>
</xs:schema>
Versuch mal ob es dann funkt. Frag mich aber bitte nicht genau was diese zwei Attribute sein sollen, habs auch nur aus einer Vorlage.

LG
Alex

madas 21. Feb 2008 14:24

Re: Funktion und Sinn von XML Schemata
 
Laut Visual Studio sollte das Schema zur XML so aussehen:

XML:

XML-Code:
<?xml version="1.0" encoding="utf-8" ?>
<verlag>
  <autor>Hans Peter</autor>
  <autor>Klaus Müller</autor>
</verlag>
Schema:

XML-Code:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="verlag">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="autor" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Luckie 21. Feb 2008 15:00

Re: Funktion und Sinn von XML Schemata
 
So geht es:

XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<verlag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="verlag.xsd">
  <autor>Hans Peter</autor>
  <autor>Klaus Müller</autor>
</verlag>
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="verlag">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="autor" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.
Seite 2 von 3     12 3      

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