Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#24

Re: Funktion und Sinn von XML Schemata

  Alt 22. Feb 2008, 16:47
Zitat von Luckie:
Ah, danke. Wurde als alternative aufgenommen.
Das VisualStudio hat einen ziemlich coolen XSD Designer.
Damit kannst du dir schnell mal ein Dokumentenformat zusammen klicken. Ich nutze das Ding schon seit Jahren .
Du kannst auch einfach eine XML im studio öffnen und dir aus der XML ein XSD geneieren lassen, was du dann als Fundament nehmen kannst.
Ich habe mal Klarabellas () Version damit etwas aufgewertet:
XML-Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="www.luckie.de/BuchBleistift"
           xmlns:bv="www.luckie.de/BuchBleistift"
           elementFormDefault="qualified">
  <xs:element name="verlag">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="buch"
                    maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="titel"
                          type="xs:string" />
              <xs:element name="autor">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:minLength value="1" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="erschdat"
                          type="xs:date" />
              <xs:element name="isbn"
                          type="bv:isbnType">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="isbnType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{3}[-][0-9]{3}[-][0-9]{3}" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
Aber IMO sind da zu viele Elemente. Die ISBN und das Datum hätten Attribute sein können, Titel und Author eigentlich auch...
Und wer so dumme, abgekürzte Bezeichner wie "erschtdat" in ein wirkliches Schema packen würde (nicht wie hier einen Bleistift), gehört in den Knast...

Und zum Validieren in deinem Code kannst du dir mal die Klasse XmlSchemaSet ansehen.
Miniaturansicht angehängter Grafiken
schema_568.png  
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat