web-dev-qa-db-de.com

Was ist der Unterschied zwischen XML und XSD?

Was ist der Unterschied zwischen XML (Extensible Markup Language) und XSD (XML Schema)?

96

Eigentlich ist die XSD selbst XML. Sie dient dazu, die Struktur eines anderen XML-Dokuments zu überprüfen. Die XSD ist für kein XML obligatorisch, stellt jedoch sicher, dass XML für bestimmte Zwecke verwendet werden kann. Das XML enthält nur Daten in einem geeigneten Format und einer geeigneten Struktur.

130
anthares


Nimm ein Beispiel

<root>
  <parent>
     <child_one>Y</child_one>
     <child_two>12</child_two>
  </parent>
</root>

und ein xsd dafür entwerfen:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="parent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="child_one" type="xs:string" />
              <xs:element name="child_two" type="xs:int" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


Was mit XSD nicht möglich ist: möchte es zuerst schreiben, da die Liste sehr klein ist
1) Sie können einen Knoten/ein Attribut nicht mit dem Wert eines anderen Knotens/Attributs überprüfen.
2) Dies ist eine Einschränkung: Ein in der XSD-Datei definiertes Element darf nur mit einem Datentyp definiert werden. [Im obigen Beispiel kann für <child_two>, der in einem anderen <parent>-Knoten angezeigt wird, der Datentyp nicht anders als int definiert werden.
3) Die Überprüfung von Elementen und Attributen kann nicht ignoriert werden. Wenn ein Element/Attribut in XML angezeigt wird, muss es in der entsprechenden XSD-Datei definiert sein. Die Verwendung von <xsd:any> erlaubt zwar, hat aber eigene Regeln. Einhalten, was zum Validierungsfehler führt. Ich hatte einen ähnlichen Ansatz ausprobiert und war sicherlich nicht erfolgreich, hier ist das Q & A


was ist mit XSD möglich:
1) Sie können die korrekte Hierarchie der XML-Knoten testen. [xsd definiert, welches Kind unter welchem ​​Elternteil stehen soll usw., wobei festgehalten wird, welches als Fehler gezählt wird. In obigem Beispiel kann child_two nicht das unmittelbare Kind von root sein, aber es ist das Kind des "parent" -Tags, das wiederum a ist Kind des "Wurzelknotens", es gibt eine Hierarchie ..]
2) Sie können den Datentyp der Werte der Knoten definieren. [in obigem Beispiel child_two kann keine anderen Daten als number haben]
3) Sie können auch benutzerdefinierte Datentypen definieren, [beispielsweise für Knoten <month>. Die möglichen Daten können einen der 12 Monate sein. Sie müssen also alle 12 Monate in einem neuen Datentyp definieren, der alle 12 Monate schreibt Namen als Aufzählungswerte. Validierung zeigt einen Fehler an, wenn die Eingabe-XML einen anderen Wert als diese 12 Werte enthält.]
4) Sie können die Einschränkung für das Auftreten der Elemente festlegen, indem Sie minOccurs und maxOccurs verwenden. Die Standardwerte sind 1 und 1.

.. und viele mehr ...

103

XSD:
XSD (XML Schema Definition) gibt an, wie die Elemente in einem XML-Dokument (Extensible Markup Language) formal beschrieben werden.
Xml:
XML wurde entwickelt, um Daten zu beschreiben . Es ist unabhängig von Software und Hardware.
Es verbessert die folgenden Dinge.
-Datenübertragung.
-Plattformunabhängig.
- Erhöhung der Verfügbarkeit von Daten.

Unterschiede: 

  1. XSD basiert auf und basiert auf XML.

  2. XSD definiert Elemente und Strukturen, die im Dokument angezeigt werden können, XML hingegen nicht.

  3. XSD stellt sicher, dass die Daten richtig interpretiert werden, während dies bei XML nicht der Fall ist.

  4. Ein XSD-Dokument wird als XML geprüft, das Gegenteil ist jedoch möglicherweise nicht immer der Fall.

  5. XSD erkennt Fehler besser als XML. 

Eine XSD definiert Elemente die in den Dokumenten verwendet werden können, in Bezug auf die tatsächlichen Daten, mit denen sie codiert werden sollen.
für zB:
Ein Datum, das als 1/12/2010 angegeben wird, kann entweder der 12. Januar oder der 1. Dezember sein. Durch das Deklarieren eines Datumsdatentyps in einem XSD-Dokument wird sichergestellt, dass er dem von XSD vorgegebenen Format entspricht.

13
Skull

XML im Vergleich zu XSD

XML definiert die Syntax von Elementen und Attributen zur Strukturierung von Daten in einer wohlgeformt dokumentieren.

XSD (auch bekannt als XML-Schema) aktiviert wie zuvor die DTD die Spannung eX in XML, indem der Benutzer das Vokabular und Grammatik der Elemente und Attribute definieren kann in einem gültigXML Dokument.

5
kjhughes

EINFACHES XML-BEISPIEL:

<school>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</school>

XSD VON OBEN XML:

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Hier:

Komplexer Typ : Gibt an, dass er andere Elemente enthält . Einfacher Typ : Gibt an, dass sie keine anderen Elemente enthalten.

Typ: String, Dezimalzahl, Ganzzahl, Boolean, Datum, Uhrzeit,

Mit einfachen Worten, xsd ist eine weitere Möglichkeit, XML-Daten mit einem bestimmten Typ darzustellen und zu validieren. Mithilfe zusätzlicher Attribute können wir mehrere Vorgänge ausführen. Das Ausführen einer Aufgabe auf xsd ist einfacher als xml. 

0
shubham1js

XML hat eine viel breitere Anwendung als f.ex. HTML. Es hat keine intrinsische oder standardmäßige "Anwendung". Auch wenn es Ihnen vielleicht nicht wirklich wichtig ist, dass für Webseiten auch das, was zulässig ist, von Seiten des Autors aus festgelegt wird, möchten Sie wahrscheinlich genau definieren, was ein XML-Dokument enthalten darf und was nicht.

Es ist wie beim Entwerfen einer Datenbank.

Die Sache mit XML-Technologien ist, dass sie textueller Natur sind. Mit XSD bedeutet dies, dass Sie über ein Datenstruktur-Definitions-Framework verfügen, das an Textverarbeitungs-Tools wie PHP "angeschlossen" werden kann. Sie können also nicht nur die Daten selbst bearbeiten, sondern auch sehr einfach die Struktur ändern und dokumentieren und sogar Frontends automatisch generieren.

So gesehen handelt es sich bei XSD um "Kleber" oder "Middleware" zwischen Daten (XML) und Datenverarbeitungswerkzeugen.

0
Agnes K. Cathex

Grundsätzlich definiert eine XSD-Datei, wie die XML-Datei aussehen wird. Es handelt sich um eine Schemadatei , die die Struktur der XML-Datei definiert. Es gibt also an, was die möglichen Felder sind und welche Größe sie haben werden.

Eine XML-Datei ist eine Instanz von XSD, da sie die in der XSD definierten Regeln verwendet.

0
SelMez