Was ist der Unterschied zwischen XML (Extensible Markup Language) und XSD (XML Schema)?
Was ist der Unterschied zwischen XML (Extensible Markup Language) und XSD (XML Schema)?
Antworten:
Eigentlich ist die XSD XML selbst. Ziel ist es, die Struktur eines anderen XML-Dokuments zu validieren. Die XSD ist für kein XML obligatorisch, stellt jedoch sicher, dass das XML für bestimmte Zwecke verwendet werden kann. Das XML enthält nur Daten in geeignetem Format und geeigneter Struktur.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
aber am Ende bekam ich den Fehler: Error!!! The 'minOccurs' attribute cannot be present.
Nehmen Sie ein Beispiel
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
und entwerfe dafür eine xsd:
<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: Ich 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 validieren.
2) Dies ist eine Einschränkung: Ein in der XSD-Datei definiertes Element darf nur mit einem Datentyp definiert werden. [Im obigen Beispiel kann der Datentyp nur für int definiert werden , um <child_two>
in einem anderen <parent>
Knoten angezeigt zu werden.
3) Sie können die Validierung von Elementen und Attributen nicht ignorieren. Wenn ein Element / Attribut in XML angezeigt wird, muss es in der entsprechenden XSD genau definiert sein. Die Verwendung von <xsd:any>
erlaubt es zwar, aber es hat seine eigenen Regeln. Bleiben, was zum Validierungsfehler führt. Ich hatte einen ähnlichen Ansatz versucht und war sicherlich nicht erfolgreich. Hier ist die Frage und Antwort
Was ist mit XSD möglich
? 1) Sie können die richtige Hierarchie der XML-Knoten testen. [xsd definiert, welches Kind unter welches Elternteil usw. fallen soll, wobei das Verbleibende als Fehler gezählt wird. Im obigen Beispiel kann child_two nicht das unmittelbare Kind von root sein, aber es ist das Kind von "parent", das wiederum a ist Kind des "Wurzel" -Knotens, es gibt eine Hierarchie.]
2) Sie können den Datentyp der Werte der Knoten definieren. [Im obigen Beispiel kann child_two keine anderen Daten als number haben.]
3) Sie können auch benutzerdefinierte Datentypen definieren. [Beispiel: Für Knoten <month>
können die möglichen Daten einer der 12 Monate sein. Sie müssen also alle 12 Monate definieren In einem neuen Datentyp werden alle 12-Monats-Namen als Aufzählungswerte geschrieben.
4) Sie können die Einschränkung des Auftretens der Elemente mithilfe von minOccurs und maxOccurs einschränken. Die Standardwerte sind 1 und 1.
.. und viele mehr ...
<root> <A>A</A> <B/> <C/> </root>
und wenn Knoten <A>
ist <A>B</A>
, dann machen Sie <B>
obligatorisch, wenn <A>C</A>
dann <C>
obligatorisch.
XSD:
XSD (XML Schema Definition) gibt an, wie die Elemente in einem XML-Dokument (Extensible Markup Language) formal beschrieben werden.
XML
:
XML wurde zur Beschreibung von Daten entwickelt. 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:
XSD basiert und ist auf XML geschrieben.
XSD definiert Elemente und Strukturen, die im Dokument angezeigt werden können, XML jedoch nicht.
XSD stellt sicher, dass die Daten richtig interpretiert werden, XML jedoch nicht.
Ein XSD-Dokument wird als XML validiert, aber das Gegenteil ist möglicherweise nicht immer der Fall.
XSD kann Fehler besser erkennen als XML.
Eine XSD definiert Elemente , die in den Dokumenten verwendet werden können und sich auf die tatsächlichen Daten beziehen, mit denen sie codiert werden soll.
Zum Beispiel:
Ein Datum, das als 12.01.2010 ausgedrückt wird, kann entweder den 12. Januar oder den 1. Dezember bedeuten. Durch das Deklarieren eines Datumsdatentyps in einem XSD-Dokument wird sichergestellt, dass er dem von XSD vorgegebenen Format entspricht.
XML definiert die Syntax von Elementen und Attributen zum Strukturieren von Daten in einem wohlgeformten Dokument.
XSD (auch bekannt als XML-Schema) unterstützt wie zuvor DTD die e X- Spannung in XML, indem es dem Benutzer ermöglicht, das Vokabular und die Grammatik der Elemente und Attribute in einem gültigen XML- Dokument zu definieren.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<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:
xs: element : Definiert ein Element.
xs: sequence : Bezeichnet, dass untergeordnete Elemente nur in der angegebenen Reihenfolge angezeigt werden.
xs: complexType : Bezeichnet andere Elemente.
xs: simpleType: Gibt an, dass sie keine anderen Elemente enthalten.
Typ: Zeichenfolge, Dezimalzahl, Ganzzahl, Boolescher Wert, Datum, Uhrzeit,
Mit Hilfe zusätzlicher Attribute können wir mehrere Operationen ausführen.
Das Ausführen einer Aufgabe auf xsd ist einfacher als xml.
Grundsätzlich definiert eine XSD-Datei, wie die XML-Datei aussehen soll. Es ist eine Schemadatei, die die Struktur der XML-Datei definiert. Es gibt also an, welche Felder möglich sind und wie groß sie sein werden.
Eine XML-Datei ist eine Instanz von XSD, da sie die in XSD definierten Regeln verwendet.
XML hat eine viel breitere Anwendung als f.ex. HTML. Es gibt keine intrinsische oder standardmäßige "Anwendung". Obwohl es Ihnen vielleicht nicht wirklich wichtig ist, dass Webseiten auch von den zulässigen Bedingungen abhängen, möchten Sie vom Autor aus 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 Framework zur Definition von Datenstrukturen verfügen, das in Textverarbeitungswerkzeuge wie PHP "eingesteckt" werden kann. Sie können also nicht nur die Daten selbst bearbeiten, sondern auch die Struktur sehr einfach ändern und dokumentieren und sogar Frontends automatisch generieren.
So gesehen ist XSD der "Klebstoff" oder die "Middleware" zwischen Daten (XML) und Datenverarbeitungswerkzeugen.