[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FYI] Bin?res XML -



On Wednesday 01 October 2003 08:41, Markus Schaaf wrote:
> "Kristian Koehntopp" <kris@koehntopp.de> schrieb:
> > Das Problem sind nie die korrekten Daten, sondern die defekten.
>
> Das Problem ist eine falsche Interpretation von Daten. Wenn Du hier
> Redundanz zum Problem erklärst, ist das unsinnig. Die Frage ist nur,
> wie ich mit durch Redundanz erkannten Fehlern umgehe.

Nein, das Problem ist die Redundanz in den Daten. Diese erzeugt eine 
Überspezifikation, und dies ist ein Konflikt. Dieser Konflikt muß explizit 
gemacht werden, und er muß von jeder Implementation aufgelöst werden. Damit 
die Implementationen interoperabel sind, muß er von jeder Implementation 
gleich aufgelöst werden.

Das ist definitv ein Fehler im Datenformat, denn so ermutigt es fehlerhafte 
Implementationen:

a) Es stellt Daten (Längenbytes) bereit, die verlockend benutzbar für die 
Implementierung aussehen, aber tainted und nicht vertrauenswürdig sind
b) Es stellt mehr Daten bereit als für die Interpretation der Nutzdaten 
notwendig sind, und diese Metadaten können inkonsistent sein. Die dadurch 
entstehenden Konflikte machen die Implementation unnötig komplex, und 
zwangsläufig fehleranfälliger.


> > Das geht nur, weil ASN.1 an alles und jedes Längen dranschreibt,
> > anstatt Längen wie nicht-binäres XML implizit klar zu machen.
>
> ASN.1 schreibt nirgendwo Längen dran (_abstract_ syntax notation).
> Es gibt jedoch zwei etwas geschwätzige Transportcodierungen.

Ich weiß. Ich habe hier verkürzt formuliert.

> > Stimmt die Längenangabe im Array nicht, könnte ein Reader, der
> > den Array-Typ nicht erkennt ("unwissender Reader", der ohne DTD
> > auf wohlgeformten ASN.1 arbeitet), auf der Längenangabe oder dem
> > Inhalt des letzten Integer wiederaufsetzen, während ein Reader,
> > der den Array-Typ kennt, die Integer einzeln parsed.
>
> Aber auch nur, bis er die zu kurze Länge bemerkt und abbricht.

Das muß er nicht. Es zumindest theoretisch ist möglich, zwei valide 
(Codierungen von) ASN.1-Daten so ineinander zu nesten, daß ein wissender 
(einer der in Container hineinsehen kann) und ein unwissender (einer, der 
sich auf die Längenangaben des Containers als Skip-Information verläßt) 
Reader die Daten als valid interpretieren und beide unterschiedliche Daten 
"sehen".

Das geht in XML nicht.

Kristian


--
To unsubscribe, e-mail: debate-unsubscribe@lists.fitug.de
For additional commands, e-mail: debate-help@lists.fitug.de