XML, was ist das: null oder empty-element?

Betreffend zu meiner anderen Frage: XML Deserialisieren null Elemente?

Habe ich Elemente wie diese von einem Drittanbieter-server für die API-Test:

<Taxable />
<DefaultPurchasePrice />

Ich erkannte, dass jetzt ich bin verwirrend mich, ob Elemente wie vertreten, dass null-Objekt oder leer.

Reden über Objekte, Sie sind die gleichen, null-Objekt ist normalerweise leer Objekt-Referenz richtig? Aber versuchen abzubilden, ein XML-element auf ein Datenfeld/Wert, Sie könnte auch anders sein, ich.e null-Zeichenfolge eine leere Zeichenfolge, aber für Dezimal - /Preis-oder Boolean-Wert, Sie sind undefiniert, welche gleich leer, aber nicht null sein, es sei denn, Sie sind definiert als Werte zulässt.

Wieder, das problem mit meinem XmlSerializer ist das nicht behandeln, übertragen ein leeres element wie. konnte ich leicht beheben, dass in meinem code. Oder sollte ich die Leute bitten, bieten die XML-haben eine definierte XML? Da scheint ein leeres XML-element ist nicht definiert: es ist hier, aber könnte entweder null oder leer ist spielt keine Rolle für XML-element selbst? Aber für dieses element wird mein code müssen herausfinden, wie zu umgehen, es sei denn, ich setze alle meine C# Klasse Datenfeld als string-Typ. Ansonsten, wenn mein code-Versuch direkt anzeigen eines leeren oder ungültigen XML-element zu einem bestimmten Datenfeld, wird es scheitern, das ist sicher.

Ich Stelle diese Frage, weil ich festgestellt XML-haben viele dieser Elemente
und für diejenigen, die besonderen Elemente, meine .NET XMLserialization code müssen zugeordnet diese Feld als string und wenn der string nicht leer ist, ich Fall in Korrespondent Datentyp, sonst setze ich Sie auf null. Und ich am Ende entfernen Sie die leere element, bevor ich meine Deserialisierung, da ist es viel einfacher. Aber ich Wanderns: "Was mache ich eigentlich in meinem code? Habe ich nur zum entfernen von null-Elementen oder leere Elemente? Denn Sie sind eindeutig anders! Aber die Menschen schreiben, die XML-denken, Sie sind die gleichen, weil XML selbst nicht Konzept der 'null', und einige Leute argumentieren, dass es meine Verantwortung ist, zu entscheiden, ob er null ist oder leer. Aber XML ermöglichen Sie dar 'null' - Elemente in klarer Weise

Edit:

Im Beispiel I dargestellt, werden diese beiden Elemente klar sollte null sein, eher als leere Elemente. XML-haben nicht wirklich ein Konzept der null, aber diese Elemente können entweder weggelassen werden (wenn Sie null sind, nicht setzen Sie Sie in XML) oder mit besseren Darstellung wie bereits erwähnt werden @svick. Oder in anderen Fällen, leere Elemente sollten verwendet werden, wenn Sie Sinn machen. Aber nicht für Dezimal-oder Boolean.

  • Ein leeres-element-tag gültig ist XML. Wie Sie interpretieren, null, leer oder was auch immer, es ist völlig bis zu Ihnen.
  • das sollte eine Antwort sein... ich würde es upvote
  • so ist es ein leeres element dann?
  • fpmurphy war ganz klar. Sie haben zu entscheiden, es gibt keine standard-interpretation.
  • Garnison, so ist es mehrdeutig?
  • Es ist nicht mehrdeutig. Es ist nicht definiert in der XML selbst. Was für eine leere tag heißt, ist völlig bis zu Ihrer interpretation.
  • Wenn es nicht eindeutig ist, ich akzeptiere, ich habe meine eigene Entscheidung. Aber ich spreche von XML-Versorgung von third-party-Server für die API-Test, scheint es eine schlechte Praxis zu liefern mehrdeutig XML-Elemente und das andere Ende müssen Lauffläche jedes Feld ist von Fall zu Fall eher als das Angebot XML-zeigen deutlich, entweder es ist null, oder null-Werte zulässt oder leer, das sollte eine bessere Lösung sein.
  • Die XML-Spezifikation nicht definieren die Semantik der Daten. Das ist bis auf die Spezifikation der jeweiligen Wortschatz, den Sie verwenden. Wenn diese Spezifikation nicht sagen, was dieses Konstrukt bedeutet, dann ja, es ist mehrdeutig. Wenn Sie nicht über eine solche Spezifikation, dann ist ALLES in der XML, ist unklar.
  • möglich, Duplikat der Was ist die richtige Methode zur Darstellung von null-XML-Elemente?

InformationsquelleAutor Paul L | 2011-08-30
Schreibe einen Kommentar