web-dev-qa-db-ger.com

Was ist der Zweck von XSD-Dateien?

Warum benötigen wir eine XSD-Datei, da wir die XML-Datei von C # (.NET) aus abfragen können? Ich weiß, dass es sich um eine Metadatendatei einer bestimmten XML-Datei handelt. Wir können die Beziehungen in XSD spezifizieren, aber wie funktioniert es dann?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

Ich möchte Daten von den Order -Elementen gemäß einem bereitgestellten CustomerID abrufen.

Also: Was ist der Zweck der Angabe der Beziehungen in XSD?

86
Red Swan

XSD Dateien werden verwendet, um zu überprüfen, ob XML-Dateien einem bestimmten Format entsprechen.

In dieser Hinsicht ähneln sie den vor ihnen existierenden DTD .

Der Hauptunterschied zwischen XSD und DTD besteht darin, dass XSD in XML geschrieben ist und leichter zu lesen und zu verstehen ist.

102
Oded

Ohne XML-Schema (XSD-Datei) ist eine XML-Datei ein relativ freier Satz von Elementen und Attributen. Die XSD-Datei definiert, welche Elemente und Attribute in welcher Reihenfolge zulässig sind.

Im Allgemeinen ist XML eine Metasprache. XSD-Dateien definieren bestimmte Sprachen in dieser Metasprache. Wenn Ihre XSD-Datei beispielsweise die Definition von XHTML 1.0 enthält, muss Ihre XML-Datei an XHTML 1.0 und nicht an ein anderes Format angepasst sein.

44
Oleg

Sie erwähnen C # in Ihrer Frage, sodass es hilfreich sein kann, sich XSD als eine ähnliche Rolle wie eine C # -Schnittstelle vorzustellen.

Es definiert, wie das XML aussehen soll, ähnlich wie eine Schnittstelle definiert, was eine Klasse implementieren soll.

16
Garry

XSDs beschränken das Vokabular und die Struktur von XML-Dokumenten.

Bei XML dreht sich alles um die Vereinbarung , und XSDs bieten die Möglichkeit, die Vereinbarung über die grundlegende Definition von XML hinaus zu strukturieren und zu kommunizieren.

14
kjhughes

Fragen sind auch: Was ist der Zweck der Angabe der Beziehungen in xsd.

Angenommen, Sie möchten XML für das Tool einer externen Partei oder ähnliches generieren. Woher wissen Sie, welcher Struktur sie folgen darf, damit sie ordnungsgemäß für ihr Tool verwendet werden kann? Sie schreiben in ein Schema. Wenn Sie möchten, dass andere Benutzer Ihr Tool verwenden, schreiben Sie ein Schema, dem sie folgen sollen. Es kann auch nützlich sein, um Ihr eigenes XML zu validieren.

11
Robert

Bevor ich die XSD (XML Schema Definition) verstehe, möchte ich erklären;

Was ist ein Schema?

beispielsweise; emailID: peter # gmail

Sie können feststellen, dass die oben angegebene E-Mail-ID nicht gültig ist, da es kein @, .com oder .net oder .org gibt.

Wir wissen, dass das E-Mail-Schema so aussieht wie [email protected]

Schlussfolgerung: Das Schema validiert die Daten nicht. Es validiert die Struktur.

XSD ist eigentlich eine der Implementierungen von XML Schema. andere haben wir relaxng

Wir verwenden XSD, um XML-Daten zu validieren.

7
Premraj

Ein XSD ist ein formeller Vertrag, der festlegt, wie ein XML-Dokument erstellt werden kann. Es wird häufig verwendet, um ein XML-Dokument zu validieren oder Code daraus zu generieren.

6
troelskn

Eine XSD-Datei ist eine XML-Schemadefinition und dient als Standardmethode zum Überprüfen, ob ein bestimmtes XML-Dokument Ihren Erwartungen entspricht.

5
a'r

Eine .xsd-Datei wird als XML-Schema bezeichnet. Über ein XML-Schema benötigen wir möglicherweise eine bestimmte Struktur in einem bestimmten XML-Code - welche Elemente in welcher Reihenfolge, wie oft, mit welchen Attributen, wie sie verschachtelt sind usw. Wenn wir ein Schema für unsere XML-Eingabe haben, können wir dies überprüfen dass es die Daten enthält, die wir benötigen, und nichts anderes, mit ein paar Zeilen, die einen Schema-Validator aufrufen.

5
user395760

Die xsd-Datei ist das Schema der xml-Datei - sie definiert, welche Elemente auftreten können und welche Einschränkungen sie haben (wie Menge, Reihenfolge, Grenzen, Beziehungen, ...).

4
mort