Was ist das XSD-Dateiformat?
Eine .xsd-Datei enthält eine formale Beschreibung von XML-Dokumentelementen - in XML-Textformat gespeicherte Datendefinitionen. Sie definiert eine Reihe von Regeln, denen XML-Dateien entsprechen müssen, um als gültiges XML-Dokument zu gelten; ein validierender Parser weist jedes Dokument zurück, das diese Regeln verletzt.
.xsd-Dateien besitzen keinen eigenen Internet-Medientyp - sie teilen denselben Typ wie gewöhnliche XML-Dateien: application/xml oder text/xml. Dateien beginnen üblicherweise mit einer XML-Deklaration (<?xml version="1.0"?>) und einem Wurzelelement <xs:schema>, das an den Namespace http://www.w3.org/2001/XMLSchema gebunden ist. XSD-Daten können in Namespaces organisiert werden. Die wichtigsten Schema-Komponenten sind:
- Elementdeklarationen,
- Attributdeklarationen,
- Datentypen - einfach oder komplex, basierend auf Einschränkungen, Auswahllisten oder primitiven Typen,
- Wiederverwendbare Gruppen von Elementen oder Attributen (analog zu Makros).
Die XSD-Spezifikation wurde 2001 mit Hilfe des W3C (World Wide Web Consortium) entwickelt. XSD bietet mehr Funktionen als das ähnliche .dtd-Dokumentdefinitionsformat, einschließlich typisierter Daten und Namespace-Unterstützung. Webservice-Beschreibungsdateien wie .wsdl betten häufig XSD-Typdefinitionen für ihre Nachrichtenstrukturen ein. Die XSD-Spezifikation ist in drei Teile gegliedert:
- Teil 0. Primer - enthält eine allgemeine Beschreibung des Standards und Grundlagen, häufig von weniger technischen Benutzern, die mit
.xsdarbeiten, konsultiert, - Teil 1. Strukturen,
- Teil 2. Datentypen.
Teile 1 und 2 sind viele Seiten lang und in technischer Sprache verfasst. Eine zweite Version der Spezifikation wurde 2004 veröffentlicht, und XSD 1.1 wurde 2012 vom W3C genehmigt und ergänzt Assertions und bedingte Typzuweisung. XSD-Dateien werden zum Speichern von Metadaten für XML-Dokumente verwendet, können aber auch von Entwicklern zur Code-Generierung oder zur Erstellung von Dokumentationsbeschreibungen in menschenlesbarer Form eingesetzt werden.
Sicherheit
RISIKO: LOWEine XSD ist Nur-Text und kann keinen Code ausführen, daher ist das Öffnen zum Lesen sicher. Die eigentlichen Risiken sind indirekt: <xs:import>/<xs:include> können externe Schemas einbinden (XXE-artige External-Entity-Angriffe zielen auf den XML-PARSER, nicht auf das Schema selbst ab), daher sollten Sie nicht vertrauenswürdige XML-Dateien mit deaktivierter Entity-Expansion und externen Abrufen validieren. Die eingebettete <xs:documentation> kann interne Feld-/Systemdetails preisgeben, was ein Informationsoffenlegungsproblem und kein Malware-Risiko ist.
Formatdetails
kurz gefasstProgramme zum Öffnen von XSD-Dateien
Technische Details
technische Spezifikation| Dateiformattyp | Nur-Text-XML-Dokument (UTF-8-kodiert) |
| MIME-Typ | application/xml oder text/xml (gemeinsam mit allen XML-Dateien; kein XSD-spezifischer MIME-Typ vorhanden) |
| Wurzelelement | <xs:schema> oder <xsd:schema>, gebunden an den W3C-Namespace http://www.w3.org/2001/XMLSchema |
| Dateisignatur | Keine (Nur-Text); Dateien beginnen konventionell mit einer XML-Deklaration <?xml version="1.0"?> |
| Namespace-Präfix-Konvention | xs: oder xsd: (beide gültig; xs: ist die heute gebräuchlichere Wahl) |
| Integriertes Typsystem | 44+ primitive und abgeleitete Typen: string, integer, decimal, dateTime, boolean, base64Binary, anyURI und mehr |
| Typableitung | Komplexe Typen unterstützen Ableitung durch Einschränkung oder Erweiterung; einfache Typen durch Einschränkung, Liste oder Vereinigung |
| Validierungsbeschränkungen | Inhaltsmodell (sequence, choice, all), Kardinalität über minOccurs/maxOccurs und Facetten wie pattern, length und enumeration |
| Namespace-Unterstützung | Das targetNamespace-Attribut deklariert den Schema-Namespace; xs:import, xs:include und xs:redefine-Direktiven kombinieren Schemas |
| Annotationsmechanismus | <xs:annotation> mit <xs:documentation> für menschenlesbaren Text und <xs:appinfo> für maschinenlesbare Metadaten |
| XSD 1.1-Ergänzungen | Assertions (xs:assert), bedingte Typzuweisung (xs:alternative) und gelockerte Ko-Vorkommen-Beschränkungen |
| Im Vergleich zu DTD | Löst DTD für typisierte, namespace-fähige Validierung ab; DTD hat keine Datentypen und keine Namespace-Unterstützung |
| Im Vergleich zu RELAX NG | Breitere Tool-Unterstützung als .rng; RELAX NG ist einfacher, verfügt aber nicht über XSD-Typvererbung |
| Tool-Integration | Unterstützt von Visual Studio, VS Code und Altova XMLSpy für AutoVervollständigung, Echtzeit-Validierung und schemagesteuerte Code-Generierung |
| Häufige Anwendungskontexte | Validierung von Konfigurationsdateien, SOAP/WSDL-Webservices, Datenaustauschverträge, OOXML-Office-Dokumentformate |
| Veröffentlicht | 2001 (W3C XML Schema 1.0 Recommendation); 1.1 in 2012 |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.w3.org |
XSD-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu XSD-Dateien.