Frage

Ich habe versucht zu lesen http://www.w3.org/tr/xml-infoset/ und die Wikipedia -Eintrag. Aber ehrlich gesagt bin ich mir immer noch nicht sicher, was der Unterschied ist.

Das Zitat :

Ein XML-Dokument enthält einen Informationssatz, wenn es gut geformt ist und die Namespace-Einschränkungen erfüllt. Es ist nicht erforderlich, dass ein XML -Dokument gültig ist, um einen Informationssatz zu erhalten.

Aus dem Wikipedia -Eintrag scheint keinen Sinn zu machen. Wie kann ein nicht gültiges Dokument irgendwelche Semantik haben und wie kann es ein "Information" -Set sein?

Was ist das "Infoset", das

gut geformt und erfüllt den Namespace eingeschränkt

XML hat? Und auf welche Weise ist es an sich nützlich. Mit anderen Worten, warum ist es semantisch gesehen notwendig, um das zu definieren Xml Infoset? Gibt es Informationen, die in XML nicht dargestellt werden können? Wenn ja, kann ich den begrenzenden Satz des XML -Infosets sehen, aber wenn nicht sicher ist das XML -Infoset so bedeutungslos wie "Information"?

Vielen Dank für die interessanten Antworten: Ich kann immer noch nicht verstehen, warum das XML -Infoset im Gegensatz zum Begriff Infoset einen Zweck hat. Aber ihr habt mir die direkte Antwort auf die Frage gegeben.

War es hilfreich?

Lösung

Eine nützliche Denkweise der Unterscheidung zwischen XML -Text und dem XML -Infoset besteht darin, das zu berücksichtigen Schnelles Infoset. Dies ist eine binäre Darstellung des XML -Infosets.

Sie haben also ein abstraktes "Infoset", ein konzeptionelles Modell, das XML -Daten darstellt (Knoten, Elemente, Attribute usw.). Dies kann physisch als Text XML -Dokument oder als schneller Infoset -Stream dargestellt werden. Beide repräsentieren dieselben Daten, aber auf radikal unterschiedliche Weise.

Andere Tipps

XML ist kein Text. XML "ist" das XML -Infoset. Dies kann dann in einem XML -Dokument in Text serialisiert werden, aber es ist das XML -Infoset, das die Realität ist.

Das Infoset kann beispielsweise als Dom -Baum im Gedächtnis existieren. Es existiert im Gedächtnis als Implementierung eines abstrakten Objektmodells.

Was ist, wenn ich es als UTF-8 und dann als UTF-16 serialisiert habe? Die Chancen stehen gut, dass die Ergebnisse zwei verschiedene Sätze von Bits sind, aber das gleiche Infoset.

Bedenken Sie auch, dass es mit Text sinnvoll ist, Dinge wie String -Verkettung zu tun. Sie möchten kein "<" in die Mitte eines XML -Elements verkettet. Sie müssen es zuerst codieren. Warum musst du das tun, wenn es nur Text wäre? Wenn Sie zum Beispiel das DOM verwendet haben, sagen Sie einfach Element.InNerText = "<"; Wenn er serialisiert ist, wird das "<" in "<" codiert. Trotzdem ist es das gleiche Infoset.

Ein gültiges XML -Dokument erfüllt die Anforderungen eines DTD oder XSD (oder anderen Standards). Wenn es gut geformt ist, kann es immer noch "ungültig" sein, wenn es gegen die Regeln in der angegebenen DTD oder XSD verstößt.

Bearbeiten: Ich bin neu in diesem Bereich von XML, aber es sieht so aus, als wäre das Infoset die Beschreibung der Teile eines XML Implementierung.

Ein XML -Infoset ist ein abstrakter Satz von Konzepten wie Attributen und Entitäten, mit denen ein gültiges XML -Dokument beschrieben werden kann. Laut der Spezifikation "besteht ein Informationssatz eines XML-Dokuments aus einer Reihe von Informationselementen. Der Informationen für ein gut geformtes XML-Dokument enthält mindestens einen Dokumentinformationselement und mehrere andere."

Nur weil ein XML -Dokument ein Infoset ist, bedeutet dies nicht, dass es einem XSD entspricht und ein gültiges XML -Dokument ist.

Bitte beachten Sie diesen Link von MSDN.http://msdn.microsoft.com/en-us/library/AA468561.aspx

Es ist eine wirklich gute Erklärung der Konzepte und wird Ihnen hoffentlich klar machen.

Ein gutes Beispiel, auf das ich gerade gestoßen bin, ist in David Chappells WCF PDF. So funktioniert es beispielsweise bei TCP:

Um eine optimale Leistung zu ermöglichen, wenn beide Parteien in einer Kommunikation auf WCF basieren, ist die in diesem Fall verwendete Kabelcodierung eine optimierte binäre Version von SOAP. Nachrichten entsprechen immer noch der Datenstruktur einer SOAP-Nachricht, die als Infoset bezeichnet wird. Ihre Codierung verwendet jedoch eine binäre Darstellung dieses Infosets anstelle des Standard-Winkel-Sprudels-und-Text-Formats von XML. Die Verwendung dieser Option wäre sinnvoll für die Kommunikation mit der Call Center -Client -Anwendung, da sie auch auf WCF basiert und die Leistung ein wichtiges Problem ist.

XML ist eine Sprache, daher hat sie Syntax, und das XML -Infoset hat die Spezifikation des Datenmodells. Dies ist auf Anwendungen zurückzuführen, die auf Datenmodell und nicht auf Syntax basieren. XML kommt vor XML Infoset; Referenz: Protokollüberlegungen für den Web -Linkbase -Zugriff

XML Infoset ist eine Voraussetzung dafür, wie Sie serialisiertes XML -Dokument strukturieren sollten.

Serialisierte XML kann unterschiedliche Formen haben, wie ein binäres Format (Schnelles Infoset) oder Text (beliebteste Form).

Grundsätzlich sollte für das XML -Dokumentformat (Text) jedes Element und jedes Attribut in einem entsprechenden Namespace von XSD definiert werden.

Hier Sie werden ein Beispiel finden.

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