Frage

Wir nutzen den XML-Datentyp in Microsoft SQL Server 2005 für ein Projekt. Einige Mitglieder des Teams und ich glaube, dass wir auch XSDs während die Mitglieder des anderen Lagers verwenden sollten das Gefühl haben, dass wir die XMLs ad hoc halten sollte und behandeln sie nicht als „Typen“.

Die XMLs sind ein Versuch, Struktur und Zentralität auf eine Reihe von Text-Konfigurationsdateien zu bringen, die ein Wartung Alptraum sind.

Wir sind mit .NET 3.5 / C # und unseren Tabellen mit den entsprechenden Datentypen ausgelegt. Mein Argument ist, dass wir bereits „Typen orientieren“ in unserem Denken, warum diesen Ansatz brechen, weil es XML ist. Es ist wegen der fehlenden Typen mit der Text-Dateien, die das ursprüngliche Problem ist aufgetreten. Keine „Typen“ Ansatz lässt uns offen für das gleiche Problem.

Kann mein Verständnis für die Vorteile von XML-Schemata sind falsch. Also, was sind die Vor- und Nachteile von XML-Schema mit?

War es hilfreich?

Lösung

Leider auch der Autor Körper von XSD (W3C) versteht, dass XSD eine ziemlich schlechte Technologie ist. Das heißt, es ist Absicht nicht unbedingt schlecht ist. Einer von C # 's wichtigsten Vorteile ist, dass es statisch typisiert ist. Statisch gibt ihnen die gleichen Vorteile der XML-Dokumente eingeben. Was ist hier wohl am besten Ihre Klassen Reverse Engineering des Schemas unter Verwendung der XML-Serialisierung Attribute zu erzeugen. Wenn Sie das tun wird diese C # einen benutzerdefinierter Datenleser für Ihre XML-Datei erstellen, welche die Leistung erheblich verbessern wird.

Eines der größt Kosten von XML ist, dass es Zeichenfolge analysiert werden. Je mehr Annahmen können Sie Ihre XML-Dateien machen (zum Beispiel ihrer Struktur), desto besser ist Ihre Leistung ist wahrscheinlich.

So ist letztlich wie viele Dinge, ist sie genug von einem Bedarf an Leistungsvorteile, die Kosten in Entwicklungszeit zu rechtfertigen. Oder gibt es einen stark genug Wunsch statisch typisierte Systeme zu verwenden, um die Kosten für das Schreiben der XSD zu rechtfertigen.

Schließlich wird Ihr Projekt Bedürfnisse diktieren, was Sie tun sollten, aber statische Typisierung und Leistung Vorteile wichtigsten zu berücksichtigen.

Andere Tipps

ohne XSD ein Repository von XMLs Keeping verwandt ist (meiner Meinung nach), um eine Datenbank mit dem alle Arten als VARCHAR (n) deklariert sind. Sie kümmern sich nicht, welche Art von Eingabe, die Sie bekommen, wollen Sie nur Eingang.

XSDs versichern, dass Ihre XMLs die Art der Eingabe, die Sie erwarten. Sie geben Struktur zu Ihrem Modell, das genau das, was Sie suchen.

Nun, sagt wie in den anderen Pfosten und in der Frage, XSD stellt sicher, dass Sie die richtige Art an der richtigen Stelle in Ihrem XML verwenden und dass Sie haben zweimal zu überlegen, bevor ihre Struktur zu verändern.

Aber XSD ist wirklich über ausführlich, wenn ich das so sagen kann. Und es ist manchmal wirklich ein Chaos te eine komplexe Struktur, mit bedingtem Inhalt beschreiben.

Hoffentlich ist XSD nicht der einzige Weg, um eine XML, eine viel einfachere Methode zur Validierung verwenden RelaxNG und vor allem seine kompakte Syntax, die wirklich besser lesbar als das, was Sie jemals mit XSD vorstellen kann.

Ein großer Vorteil Schema ist, dass es sicher hilft, dass jeder an dem Projekt zustimmt, wie sollte ein XML-Dokument angelegt werden. Auch durch die Schemata verwenden, können Sie die Validierung in Ihrem XML-Parser aktivieren, so dass es leichter zu sagen, wenn einige Stück Code schlägt fehl, weil es eine schlechte XML gegeben hat.

Auf der anderen Seite, die Aufrechterhaltung Schemata ein Schmerz sein können, und es kann nicht lohnt die Mühe auf Ihrem Projekt abhängig.

Wenn Sie kein Schema haben, werden Sie alle die Validierung Neuimplementierung sich (überhaupt nicht oder nicht Validierung und stürzt auf ungültige Eingabe) enden. XSD-Parser / Validatoren tun all diese Arbeit für Sie, und werden optimiert und auf Fehler von Experten auf ihrem Gebiet. Warum würden Sie all das wiederholen sich selbst arbeiten?

XSD ist nicht das einzige XML-Schema zur Verfügung. Verwenden Sie http://relaxng.org/ statt. RelaxNG können Sie das Schema in XML auszudrücken, anstatt erfordern noch eine andere Daten „Sprache“ als XSD des do lernen.

wichtiger Grund für die Entwicklung von XML ist, dass es für die Verwendung von Daten aus mehreren Quellen und in vielerlei Hinsicht erlaubt, da es ein allgemein akzeptierter Standard für den Austausch von Daten zwischen einem beliebigen Anzahl von Computersystemen worden ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top