2012-06-13 3 views
5

Ich verwende XDocument, um eine Liste von Dateien zwischenzuspeichern.Was ist der richtige Weg, um einen Dateinamen in XML zu speichern?

<file id="20" size="244318208">a file with an &amp;ersand.txt</file> 

In diesem Beispiel habe ich XText, und lassen Sie es Zeichen im Dateinamen automatisch entkommen, wie die & mit &amp;

<file id="20" size="244318208"><![CDATA[a file with an &ersand.txt]]></file> 

In diesem, habe ich XCData mich verwenden zu lassen eine literale Zeichenfolge und keine maskierte Zeichenfolge, sodass sie in der XML-Datei wie in meiner Anwendung angezeigt wird.

Ich frage mich, ob einer von ihnen unter bestimmten Bedingungen besser ist als der andere, oder wenn es nur persönlicher Geschmack ist. Auch wenn es irgendetwas bedeutet, können die Dateinamen illegale Zeichen enthalten oder nicht.

Antwort

3

Beide sind im Wesentlichen gleich und es gibt keine spezifische "Best Practice".

Persönlich reserviere ich <![CDATA[]]> für große Mengen von Text, der viel Flucht erfordert (sagen Bits Code oder HTML Markup).

In diesem speziellen Fall würde ich eher die & zu &amp; wie in Ihrem ersten Beispiel entkommen.

0

Es spielt keine Rolle.
Sie sind beide gültige XML, und sie haben beide die gleiche Bedeutung.

5

würde ich nicht explizit Verwendung entweder XText oder XCData - ich würde nur einen String liefern und LINQ to XML tun lassen, was sie will.

Ich denke, dass die Nicht-CDATA-Version im Allgemeinen klarer ist. Ja, Amperanden sind entkommen - und < wird auch - aber das ist immer noch deutlich weniger Flaum als der CDATA Start/Ende-Abschnitt.

Vergessen Sie nicht, dass es ziemlich selten für Menschen sein sollte, die XML-Darstellung selbst zu sehen - die Idee ist, dass es ein Transport für Informationen ist, die in dieser Darstellung vernünftig lesbar ist , wenn Sie benötigen. Ich würde mich nicht allzu sehr darüber aufregen.

1

Die meisten Dateinamen enthalten keine Et-Zeichen oder weniger als Symbole. Also geh mit XText. Reservieren Sie XCData für Fälle, in denen Sie viele dieser Zeichen erwarten, z. B. beim Einbetten und HTML-Fragment in ein XML-Dokument.

Begründung: Unterschied in der CPU-Auslastung zum Serialisieren und Parsen von Text sind völlig vernachlässigbar. Aber es gibt einen (kleinen) Unterschied in der Speicher-, Bandbreiten- oder Speicherbedarf. Wenn alles andere gleich ist, verwenden Sie das Format mit dem geringsten Speicherplatz (auch wenn die Unterschiede klein sind).

Verwandte Themen